• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

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

 
author
Posts: 9050
21
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Seems like over time the definition has blurred...

Anyone have a tight, current definition?
 
Sheriff
Posts: 14691
16
Eclipse IDE VI Editor Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Anything you don't need to compile ?
 
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Google say:
http://www.google.com/search?q=define%3Ascripting+language
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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 https://coderanch.com/t/409/Ruby/Ruby-scripting-or-programming-Language
 
Ranch Hand
Posts: 2066
IntelliJ IDE Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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!
 
Ranch Hand
Posts: 687
Hibernate jQuery Spring
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 2066
IntelliJ IDE Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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!
 
Master Rancher
Posts: 4806
72
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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".
 
author
Posts: 23951
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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

 
Pat Farrell
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Ranch Hand
Posts: 2187
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
reply
    Bookmark Topic Watch Topic
  • New Topic