[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: feature incompatibilities
I had this idea awhile ago about a modal language. One that could
express programming at a high level (ie. lisp,perl), but also allow
the programmer to change modes to something closer to the hardware.
Kind of like C's ability to incorporate assembly, but on a grander
scale. Maybe by having a scope qualifier specifying the mode.
This was born out of some frustrations I encountered while writing
some perl scripts, where I really wanted to optimize specific parts
of the program, without having to extend perl.
On Mon, Mar 31, 2003 at 04:22:38PM -0800, Michael Vanier wrote:
> Date: Mon, 31 Mar 2003 16:22:38 -0800
> From: Michael Vanier <email@example.com>
> To: firstname.lastname@example.org
> Subject: feature incompatibilities
> It occurs to me that a lot of the current landscape of programming
> languages is determined by which language features don't play well
> together. I can think of several of these incompatibilities:
> -- explicit pointer arithmetic and garbage collection
> -- strong static typing and reflection
> -- static typing and dynamic typing
> -- imperative programming and implicit lazy evaluation
> None of these is absolute. For instance, there are (conservative) GCs for
> C/C++, java has strong(ish) static typing but also has reflection, Dylan,
> Curl and Common Lisp combine (to some extent) static and dynamic typing
> (and reflection), Haskell uses monads to get the effect of imperative
> programming, etc. However, it seems like it's very hard if not impossible
> to have such feature pairs together in one language without compromising
> one or the other of the pair. For instance, conservative GC is not
> guaranteed to be reliable.
> I think a lot of us dream of creating one language that could do everything
> well, but I think the incompatibilities I listed above suggest that such a
> dream is misguided. Can anyone think of other incompatibilities of this
> kind? Any other opinions?