[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Questions for a language designer

Scott McKay wrote:
>     In particular, is high-performance an issue?  This
>     says something about whether you want to implement
>     a VM-based or a natively compiled language.

That question may relate less to the language design than to the
architecture of its first implementation.  All the *best* languages support
both VMs as well as native compilation, one way or another.  :)

Some more questions:

* How portable across platforms do you want the language to be?  Relates to
the FFI question and the VM question.  Also impacts the way the language
supports graphics and/or GUIs.

* Distribution & code mobility: do you want to allow code to be easily
transmitted across networks and run elsewhere, as e.g. Java does?  Do you
want to provide built-in support for remote execution, like RPC/CORBA/RMI?
(Really two questions.)  A VM can simplify some of these issues.

* Security: do you care about providing security constraints and
capabilities and in the core of the language, as in the JVM?  Again, a VM
can really help here.

* Relating to the object system question, the meta-object system, and a
different dimension of the bootstrapping question, a more general question
(as I see it) is: do you want to implement a language which provides a bunch
of predefined and fixed constructs, such as an object system, or do you want
to provide a layered language that implements such constructs in terms of
lower-level features in the language.  The latter can allow very flexible
customization, which tends to be traded off against standardization.  Note
that even a language with a powerful built-in meta-object system won't
necessarily allow you to replace that object system with something else, for
example, unless the language supports that sort of thing.