[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.