[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