[FRIAM] The Go Programming Language
Marcus G. Daniels
marcus at snoutfarm.com
Thu Nov 12 09:25:09 EST 2009
Owen Densmore wrote:
> I was hoping there'd be a rational core set of languages:
> - Systems language: C/C++ level. Used for kernel/OS/drivers.
> - Shell languages: Basically an easy way to pipe code written in
> System Language
> - Scripting: Python, Ruby, JavaScript level. Rapid prototyping
> where performance
> less important.
> - Domain Specific: modeling (NetLogo etc), web (PHP, Javascript) .. etc
Scripting languages frequently allocate and free memory as types are not
declared and lifetimes of objects aren't considered. C++ programmers
are indoctrinated to stack allocate and template, and that results in
fast code (and clarity). Meanwhile garbage collectors are fast and
highly evolved, and there are runtime compilers (e.g. .NET, OpenCL,
LLVM), so code generation can be done equally well in interactive
languages as it is in `system languages'. Tear down those two walls and
there's no real justification for these other categories. It's just up
to the programmer to be efficient if they want to be; any good language
should be usable as a `system language'. Some languages fail to
provide enough control to be system languages (NetLogo), and others fail
to provide enough features to be useful for human communication and
programming in the large (C). The only justification I can see for
Domain Specific Languages are for certain classes of optimization or
automated analysis that are difficult to do without lots of
constraints. Mostly Domain Specific things can be done just fine in
libraries.
Marcus
More information about the Friam
mailing list