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

============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to