Radified Community Forums | |
http://radified.com/cgi-bin/yabb2/YaBB.pl
Rad Community Non-Technical Discussion Boards >> The Water Cooler >> Programming languages: Scripting/dynamic vs System languages http://radified.com/cgi-bin/yabb2/YaBB.pl?num=1241898979 Message started by Rad on May 9th, 2009 at 2:56pm |
Title: Programming languages: Scripting/dynamic vs System languages Post by Rad on 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. |
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by MrMagoo on 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. |
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by Spanky on May 9th, 2009 at 9:46pm MrMagoo wrote on May 9th, 2009 at 7:06pm:
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." :) |
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by Spanky on May 9th, 2009 at 9:50pm MrMagoo wrote on May 9th, 2009 at 7:06pm:
The section labeled "Answers" here (~ 3/4 the way down): http://norvig.com/21-days.html ties into that. |
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by MrMagoo on May 10th, 2009 at 12:24am Spanky wrote on May 9th, 2009 at 9:46pm:
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. |
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by Rad on May 10th, 2009 at 4:37am
Got a note from Nigel saying:
Quote:
|
Title: Re: Programming languages: Scripting/dynamic vs System languages Post by MrMagoo on 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. |
Radified Community Forums » Powered by YaBB 2.4! YaBB © 2000-2009. All Rights Reserved. |