Welcome, Guest. Please Login
 
  HomeHelpSearchLogin FAQ Radified Ghost.Classic Ghost.New Bootable CD Blog  
 
Page Index Toggle Pages: 1
Send Topic Print
Programming languages: Scripting/dynamic vs System languages (Read 9098 times)
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Programming languages: Scripting/dynamic vs System languages
May 9th, 2009 at 2:56pm
 
Regarding the topic of programming languages in general, and Scripting/dynamic vs 'System' languages specifically .. I found these pages very enlightening:

http://www.tcl.tk/doc/scripting.html

http://www.tcl.tk/about/compare.html

Big-picture stuff, which I find helpful & illuminating at this point in my study.

I was deleving into a little JavaScript .. and one thing led to another. You know how that goes.

I also stopped by here:

http://en.wikipedia.org/wiki/Processor_register

It's starting to make sense .. slowly.
 
WWW  
IP Logged
 

MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #1 - May 9th, 2009 at 7:06pm
 
Just glancing over them quickly, I have a few thoughts. 

In the first one, I just read the abstract, but I think it really hits on some key points.  Scripting languages (or more explicitly, *interpreted* languages) used to be just to glue things together and to prototype things quickly.  They were useful for automating backups and sifting though log files, but they were too slow to be used for full applications. 

As the article points out, improvements in the language interpreters and increases in hardware potency have made interpreted languages fast enough and powerful enough to be used for serious work.  In fact, one of the Internet's fastest growing sites - Twitter - uses the Rails framework, which is written in Ruby.

After glancing through the second article, it is missing some of what I understand the point to be.  The difference they should be discussing is between *interpreted* and *compiled* languages.  Briefly, the difference is that a compiled language takes source code and compiles it into machine code as soon as the source is finished.  When you want to run it, you just execute the machine code.  When you execute an interpreted language, you actually execute the interpreter, which reads the source code and translates it into machine instructions at run-time.

The second article seems to be making an arbitrary distinction between scripting languages and 'system' languages.  They choose Java as an example of a system language and Ruby as a dynamic language.  In the nuts and bolts, however, Java is actually compiled into byte-code and then the byte-code is interpreted by the JVM, which is not very different from how Perl works. 

They say that dynamic languages tend to be "higher level," but Java is considered a high level language since it does its own memory management.  They mention type-safety as a feature of a 'system language' but Ruby is also type-safe.

So, overall, my take on the second article is that it makes arbitrary distinctions between 'dynamic' and 'system' programing languages.

Going through SCIP, the last few lessons show you how to write an interpreter.  They actually write a LISP interpreter in LISP (along with an interesting discussion of the utility of such a circular interpreter.)  It allows you to see at a very basic level what the differences are between a compiled and interpreted language, which is really the important distinction.  All the other things like "object orientation" or "type-safety" or "high/low level" are just trade offs and decisions made during the design and evolution of the programing language.

SCIP delves a little bit into Processor registers at the very end.  I liked that part.  It was a little tedious, but I really like knowing what is going on at the lowest level.  Understanding how things work is the fun part for me.
 
WWW  
IP Logged
 
Spanky
Radmeister
**
Offline


Rad's non-Admin Test profile
in Seamonkey

Posts: 73
Same as Rad


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #2 - May 9th, 2009 at 9:46pm
 
MrMagoo wrote on May 9th, 2009 at 7:06pm:
They say that dynamic languages tend to be "higher level," but Java is considered a high level language since it does its own memory management. 

As I understand it (or don't) the term "higher" as they use it is relative, while your use of "high" is not .. no? As in "Cheech is high, but Chong is higher."  Smiley
 
WWW  
IP Logged
 
Spanky
Radmeister
**
Offline


Rad's non-Admin Test profile
in Seamonkey

Posts: 73
Same as Rad


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #3 - May 9th, 2009 at 9:50pm
 
MrMagoo wrote on May 9th, 2009 at 7:06pm:
SCIP delves a little bit into Processor registers at the very end.I liked that part.It was a little tedious, but I really like knowing what is going on at the lowest level.Understanding how things work is the fun part for me.

The section labeled "Answers" here (~ 3/4 the way down):
http://norvig.com/21-days.html
ties into that.
 
WWW  
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #4 - May 10th, 2009 at 12:24am
 
Spanky wrote on May 9th, 2009 at 9:46pm:
As I understand it (or don't) the term "higher" as they use it is relative, while your use of "high" is not .. no?

I guess I cannot say exactly how they mean to use the term "higher level."  It has been my experience that when a computer scientist calls computer languages "high level" they mean a language where memory management and other fine details of running the program are taken care of the by language itself.  This is the opposite of a language like C/C++, where memory management and things like that are the responsibility of the programmer.  By this definition, Java would be a high level language, which contrary to what they are saying. 

If they are just using "higher level" as a relative term, then I guess I don't know exactly how they mean it and I can't really get the meaning of what they are saying by what is written in the article.

 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #5 - May 10th, 2009 at 4:37am
 
Got a note from Nigel saying:

Quote:
Although it's good that you've found Osterhout's paper useful, it's woefully inaccurate in most respects - his examples are extremely selective, and his thesis about "Scripting Language" is really just reflective of his innate bias in promoting TCL, which he originally wrote (and which doesn't compare well at all to any of the older dynamic languages such as Lisp- or Smalltalk-family designs, which is why he grossly underplays Lisp and never mentions Smalltalk, or any modern descendants of those two such as Javascript).

TCL certainly is a scripting language, but as a language design it's really more like the most extreme kind of scripting language - the command interpreters, like the Bourne Shell language. TCL is merely a form of shell language designed to embed in C programs -  interop with C code is why TCL puts so much emphasis on strings, since C has no *built-in* data structures more sophisticated than that.

Good to see you're getting into Javascript. The better you've learned Scheme (via SICP or HtDP) the better you'll do at Javascript since it is basically a Lisp too. I recently did a Javascript implementation myself that compiles to bytecode, and I hope to write a JIT to native code for that in the near future.
 
WWW  
IP Logged
 

MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: Programming languages: Scripting/dynamic vs System languages
Reply #6 - May 10th, 2009 at 4:55pm
 
Ya, I think TCL has limited usefullness compared to other languages.

Good to hear Nigel is still in touch.
 
WWW  
IP Logged
 
Page Index Toggle Pages: 1
Send Topic Print