Meaningless Drivel is fun!*
The moose likes Meaningless Drivel and the fly likes What the heck is a Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "What the heck is a "scripting language" these days?" Watch "What the heck is a "scripting language" these days?" New topic
Author

What the heck is a "scripting language" these days?

Bert Bates
author
Sheriff

Joined: Oct 14, 2002
Posts: 8883
    
    5
Seems like over time the definition has blurred...

Anyone have a tight, current definition?


Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Christophe Verré
Sheriff

Joined: Nov 24, 2005
Posts: 14688
    
  16

Anything you don't need to compile ?


[My Blog]
All roads lead to JavaRanch
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

Google say:
http://www.google.com/search?q=define%3Ascripting+language
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42908
    
  68
I must say I don't really like any of the definitions Google comes up with. The closest to a one-line definition I can think up is: A language that is not compiled, or where the result of the compilation is not kept long term.

The fact that it's a purely technical definition -that says nothing about usage of the language- speaks volumes about how scripting languages have grown in capability.

There was a discussion on that in http://www.coderanch.com/t/409/Ruby/Ruby-scripting-or-programming-Language
Abimaran Kugathasan
Ranch Hand

Joined: Nov 04, 2009
Posts: 2066

Ulf Dittmer wrote:I must say I don't really like any of the definitions Google comes up with. The closest to a one-line definition I can think up is: A language that is not compiled, or where the result of the compilation is not kept long term.


Could you please give an example for where the result of the compilation is not kept long term? Which language?

Thanks!


|BSc in Electronic Eng| |SCJP 6.0 91%| |SCWCD 5 92%|
Devesh H Rao
Ranch Hand

Joined: Feb 09, 2002
Posts: 687

Abimaran Kugathasan wrote:
Ulf Dittmer wrote:I must say I don't really like any of the definitions Google comes up with. The closest to a one-line definition I can think up is: A language that is not compiled, or where the result of the compilation is not kept long term.


Could you please give an example for where the result of the compilation is not kept long term? Which language?

Thanks!


.class
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42908
    
  68
Abimaran Kugathasan wrote:Could you please give an example for where the result of the compilation is not kept long term? Which language?

Perl and TCL use compilers that generate native code at runtime. But that native code is not stored, and thus thrown away when the process is terminated. That's what I mean by "long term" - after the process terminates.

Devesh H Rao wrote:.class

Java is actually a mixed case. Source files are compiled into class files, and those are kept around long term. And then the bytecode contained in class files is usually compiled again at runtime into native code, but that native code is thrown away when the JVM terminates.
Abimaran Kugathasan
Ranch Hand

Joined: Nov 04, 2009
Posts: 2066

Ulf Dittmer wrote:
Java is actually a mixed case. Source files are compiled into class files, and those are kept around long term. And then the bytecode contained in class files is usually compiled again at runtime into native code, but that native code is thrown away when the JVM terminates.

But, the Java stores the compilation output for long time. So, why do you thing it's a mixed case? I think, it's a programming language according to your above definition.

Thanks!
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 3018
    
  10
By saying "the result of the compilation", the definition assumes that there is just one compilation phase, and the entire result of that one phase is kept long-term. In Java, however, there is an initial compilation for which the results are kept, and subsequent JIT compilation for which the results are not kept. So I agree with Ulf; it's a mixed case.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

I think, IMHO, etc. that the "compiled vs interpreted" distinction stopped being useful towards the end of last century. It was a popular theological argument at programmer's bar room bull sessions, but meaningless in the real world.

I'm not even sure that the "scripting language" distinction is meaningful anymore. Does the phrase have value as anything other than a put-down: You are not a real programmer, you just use a scripting language.

I do believe that there is a great value in lightweight languages that don't require a ton of boilerplate to get working to do simple tasks. Perl is a classic good example of that, at least early versions of Perl. But Perl has gotten a lot more powerful and has added is own boilerplate.

One can have a nice bar room discussion over what makes a lightweight language. Once upon a time, Java was lightweight, the language itself was tiny, and the runtime libraries were small and concise. Of course, it evolved, with the language adding "features" that made the Java manual grow and the explanations become far more complex, just as the number of libraries expanded exponentially. Sadly, very few of the initial libraries have been deleted, so the whole of the language and the libraries just keeps growing. One easy example: the Date class in Java is a joke. Yet nearly all programs use it, JDBC uses it, and the replacements, such as Calendar, are not complete.
Joe Ess
Bartender

Joined: Oct 29, 2001
Posts: 8996
    
    9

Pat Farrell wrote:I'm not even sure that the "scripting language" distinction is meaningful anymore. Does the phrase have value as anything other than a put-down: You are not a real programmer, you just use a scripting language.


I don't know about a put-down. I'd call something a "scripting language" if one primarily uses it for controlling other applications (first definition in David's link).
I've written scripts using Java, but mostly I use it to create applications, so to me, it isn't a scripting language. Even when it was 1.0, I thought of Java as a "programming language".
I've been using Python to create scripts lately, so to me, it is a "scripting language". Except when I write Python programs. Then it's a "programming language".

[How To Ask Questions On JavaRanch]
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 19060
    
  40

Joe Ess wrote:
I've been using Python to create scripts lately, so to me, it is a "scripting language". Except when I write Python programs. Then it's a "programming language".


Agreed++. IMHO, whether something is a scripting language or not really depends on what you are doing with it. The distinction of whether the language is compiled or not, used to be a representation of whether a language is to be used for scripting or not, but not anymore. Other distinctions that also used to represent, but not anymore, are whether the language is "strongly typed" or "loosely type", or whether it has regular expressions support or not.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Henry Wong wrote: or whether it has regular expressions support or not.

I will argue that Java the language does not have regular expression support; no more than Fortran or Cobol has regex support. The usual library for Java includes regex support, but the language does not. You have to use explicit subroutine calls to do anything regex.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
A "scripting" language is a type of computer programming language. Anything which includes the ability to write sequential, iterative and conditional statements is a computer programming language. XSL is a programming language for example.
 
permaculture playing cards
 
subject: What the heck is a "scripting language" these days?