Advertisement

"Scripting languages"

Started by September 03, 2011 03:08 PM
21 comments, last by ddn3 13 years ago
I'd say it's more a (vague) property related to a particular usage, rather than a case that every language IS or ISN'T a scripting language.

So I'd talk of a "script" if it's just a quick thing that can be run without compilation from command line to do a task; or also something that's run to control or run something within an application or game.

So if someone uses Python to do this, it's a script. But if someone's written a full blown standalone application in Python, it's not in any meaningful sense a script.

Java is a good point too - whilst it can't do scripts in the running interpreted from a command line, it can be used for calling from a larger application or game, which I would still call scripting.

PS - please warn us if this thread will be locked, we have better things to do than get involved in a discussion that we then can't respond to someone who replied to us.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

Lots of interesting opinions on the subject. Obviously, in the context of a particular game or application, any language is a "scripting language" if it's used to script said game/application, and I guess it could make sense to define a "scripting language" as a language the primary use of which is to provide that sort of functionality for applications. That would still disqualify both Python and PHP from "scripting language" status though.



[quote name='valderman' timestamp='1315062514' post='4857167']
So, what exactly is a scripting languages?

Not C, C++, Java, C#.

This is how they are defined.

Erlang, Haskell, OCaml, Lua and such do not count, since they do not exist as far as mainstream programming world is concerned.


The distinctions here also matter only for commodity programming. There is very little money involved, a fraction of a percent, compared to software industry in general. So the bikeshed principle applies.
[/quote]Well, let's pretend for a second that proof-by-shitloads-of-money isn't available; I think that'll make a more interesting discussion.

Also, I wasn't aware that Galois, Jane Street Capital, Firaxis, Blizzard, Standard Chartered, Ericsson, AT&T, Bank of America, Bluespec, Barclays, Credit Suisse, Deutsche Bank, Qualcomm, Facebook, Google, Adobe, EA, Crytek, Relic, Adobe, Cisco and MySQL, among others, don't exist.
Advertisement


Also, I wasn't aware that Galois, Jane Street Capital, Firaxis, Blizzard, Standard Chartered, Ericsson, AT&T, Bank of America, Bluespec, Barclays, Credit Suisse, Deutsche Bank, Qualcomm, Facebook, Google, Adobe, EA, Crytek, Relic, Adobe, Cisco and MySQL, among others, don't exist.


What does this mean?

[quote name='valderman' timestamp='1315224085' post='4857788']

Also, I wasn't aware that Galois, Jane Street Capital, Firaxis, Blizzard, Standard Chartered, Ericsson, AT&T, Bank of America, Bluespec, Barclays, Credit Suisse, Deutsche Bank, Qualcomm, Facebook, Google, Adobe, EA, Crytek, Relic, Adobe, Cisco and MySQL, among others, don't exist.


What does this mean?
[/quote]I disagree that Erlang, Haskell, O'Caml and Lua aren't used in industry. All the companies I listed use one or more of those four languages. Of course, if your definition of existence goes along the lines of "no technology that makes up less than 10% of its respective field really exists," then I have to agree that they don't exist. But on the other hand, then video games or image manipulation software doesn't exist either.

[quote name='valderman' timestamp='1315062514' post='4857167']
So, what exactly is a scripting languages?

Not C, C++, Java, C#.

This is how they are defined.

Erlang, Haskell, OCaml, Lua and such do not count, since they do not exist as far as mainstream programming world is concerned.
[/quote]What? Lua isn't used in the mainstream?

http://en.wikipedia....e)#Applications
http://en.wikipedia....ted_video_games
A scripting language is deployed as source code. JIT or interpreted, strong/weak/dynamic typing doesn't really matter. Some languages can be used as a scripting language or not (in fact most have some sort of pre-compilation tool for performance-sensitive code).

If your client executable or your server deployment uses uncompiled source code, you're using a scripting language.
Anthony Umfer
Advertisement

What? Lua isn't used in the mainstream?

http://en.wikipedia....e)#Applications
http://en.wikipedia....ted_video_games


No...

Mainstream is PayrollModulePluginV34. Written in VB6, deployed via ASP. There are currently some 2 billion people being managed by them and there are millions of deployed instances with a several million developers involved in development of these systems.

Another mainstream is WordPress (not even PHP, but platform). It serves about 15% of internet with millions of developers.

That is mainstream.

More perspective. All the companies listed above combined employ <100k software engineers. Perhaps even under 50k. That is less than number of CS graduates produced each year, not even counting that considerable portion of software development done by those not having background in CS.

If all those companies combined use language X, they represent <1% of software industry.


If you are on this forum, or any other programming forum, you are the 1% yourself.

Such discussion boards do not attract people who work 9-5 in VB6, being perfectly content with their job, updating the tax deduction factors year after year to compensate for changing legislation. Just don't make the mistake of thinking that world is a myth. It's not glamorous and would be "downvoted" on every hip site. But it represents the majority. Also never underestimate the size of Java. Another non-glamorous ecosystem.

Some numbers - Eclipse Forum. What is the hottest and biggest topic? BIRT, followed by EMF. Management and reporting. You'll never find them even mentioned anywhere like programming forums or blogs.

Visual Studio User Voice. Top requested by posters (the mentioned 1% forum posters) - native development/performance. Features accepted. (the actual 99% of VS users).


Software industry is boring, dated and mundane.
I would say that a scripting language is a programming language which is used to write programs that run in and extend other applications. JavaScript is a scripting language because it extends web browsers. VBA is a scripting language because it extends MS Office products. Lua is a scripting language because it is used to extend WoW and some other games.

I would say that a scripting language is a programming language which is used to write programs that run in and extend other applications. JavaScript is a scripting language because it extends web browsers. VBA is a scripting language because it extends MS Office products. Lua is a scripting language because it is used to extend WoW and some other games.


At first I thought there might be something to this argument, but many of these scripting languages can be run without anything like a web browser or game beneath them. PHP can be run standalone for example. It's still extending the PHP runtime in a way I suppose, but then you're just boiling it down to whether or not the language requires runtime support (making C++ a scripting language) or is interpreted (virtually any language could be run in an interpreter).

I think I'll just have to go with the idea that there is no decent way to categorize a language as a scripting language with any sort of verifiable diagnosis. There are definite symptoms, but no way to be positive that something is a scripting language just by looking at its features. Things come in degrees of scriptiness I suppose.

My personal definition would be that any language that can be executed without an explicit compilation step is probably something that I would consider a scripting language. Generous standard library / API support and things like dynamic variables (a blessing and curse) and implicit memory management are some symptoms and definitely things that would make me favor considering something a scripting language, but not enough alone.

To be clear, I would probably consider a C interpreter enough to make C seriously appear as a scripting language. Maybe not, since it still has a lot of baggage that makes it slower to develop in (such as explicit memory management), but it wouldn't be easy to name anything that made it not a scripting language. One of the more important things about scripting languages is that they're faster to develop in, which is pretty hard to judge. Removing compilation would definitely flavor C more as a scripting language, letting you presumably test changes to your code faster (which is not to say that it would all be roses, but that's a whole new debate on the tradeoffs).
Success requires no explanation. Failure allows none.

[quote name='Oberon_Command' timestamp='1315367446' post='4858467']
I would say that a scripting language is a programming language which is used to write programs that run in and extend other applications. JavaScript is a scripting language because it extends web browsers. VBA is a scripting language because it extends MS Office products. Lua is a scripting language because it is used to extend WoW and some other games.


At first I thought there might be something to this argument, but many of these scripting languages can be run without anything like a web browser or game beneath them. PHP can be run standalone for example. It's still extending the PHP runtime in a way I suppose, but then you're just boiling it down to whether or not the language requires runtime support (making C++ a scripting language) or is interpreted (virtually any language could be run in an interpreter).

I think I'll just have to go with the idea that there is no decent way to categorize a language as a scripting language with any sort of verifiable diagnosis. There are definite symptoms, but no way to be positive that something is a scripting language just by looking at its features. Things come in degrees of scriptiness I suppose.

[/quote]


My thought is that any Turing-complete computer language is a scripting language when used like a scripting language and a programming language when used like a programming language. It's all in how it's used. So JavaScript, as used in a web browser, is a scripting language and when used to write stand-alone apps is a programming language. Basically it boils down to one question: are you writing "scripts" or "programs?"

This topic is closed to new replies.

Advertisement