[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 <mvanier@cs.caltech.edu>
> To: ll1-discuss@ai.mit.edu
> 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?
> Mike