From: | hgg9140@heckle.ca.boeing.com (Harry G. George) |
Newsgroups: | comp.compilers |
Date: | 30 Mar 1998 21:41:38 -0500 |
Organization: | The Boeing Company |
References: | 98-03-032 98-03-098 98-03-141 98-03-147 98-03-159 98-03-186 98-03-201 98-03-233 |
Keywords: | interpreter, practice |
Chris Reedy <creedy@mitretek.org> writes:
> A quick question: What are the key differences between a scripting
> language and an ordinary programming language? That is, what is it
> about a language that makes it better or worse for the uses described
> above?
Has someone formally analyzed this? I think of a scripting language
as a "better shell script". That implies it can make certain
assumptions (e.g., numerical analysis and graphics are not critical)
and must meet certain constraints:
a) Rapid iterative development cycle (a few seconds per tested idea)
b) Full new app in under 30 minutes. Tweak and test old app in
under 5 minutes.
c) Can call all (most?) POSIX functions using traditional names
d) Can do backquote, e.g. array_of_lines = `cmd`
e) Good treatment of regular expressions and string concatenation
f) Usable for cgi's
In contrast, an ordinary language seems to balance more toward
a) Handle anything -- including casting, high performance, numerical, etc.
b) Careful treatment of programming-in-the-large (e.g., type safety,
modularity, maintainability)
As an experiment, I'm doing the same task (build a dev-and-test dir tree,
and generate app and utility skeletons) in several languages (* = completed):
1) Perl *
2) Guile *
3) Python
4) Perl, embedded in Modula-3
5) Guile, embedded in Modula-3
6) Python, embedded in Modula-3
7) Perlish module in Modula-3 *
Personally, "7" is looking pretty good right now.
But in a commercial setting I use "1".
--
Name: Harry George
Email: harry.g.george@boeing.com
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.