Python is the best and most popular general purpose scripting language; the universal scripting lang

R

Ron Stephens

Python is the best and most popular general purpose scripting
language. That is, Python is the best and most popular general
purpose, dynamic, interpreted language. Sure, there are other
scripting languages that are more popular for specific application
domains, and there are big company backed systems languages that are
far more popular; but in its niche, Python is tops.

Being open source, and not backed by big companies' marketing dollars,
Python is not even in the same league as Java, and the .NET languages
C# and VB.Net. Those corporate backed entities have incredibly
powerful tools, IDE's and marketing dollars behind them.

And, among scripting languages PHP is tops for server side web
scripting, Perl is number one for text parsing and CGI, Ruby is
perhaps most popular with object oriented purists who don't mind the
Perl-like syntax, and Javascript is most popular for client side web
scripting, given its nearly universal support by web browsers. But for
general purpose scripting, Python is clearly number one and gaining in
strength.

That positions Python as the universal scripting language. Not only
does the Python virtual machine run on almost every platform, but
Jython is available for the JVM and IronPython is in the works for
..Net and Mono.

Let's face it, we could sit around and bemoan the fact that the big
commercial "systems" languages have such incredible tool support and
marketing muscle, such as the .Net juggernaut and the IBM, SUN, BEA
and other IDE's for Java.

But, better to take heart that for the pure writing of code, Python
has the opportunity to become the universal solvent. It just may be
that, twenty years from now, Python code will run everywhere, and will
be the scripting language of choice on all the big company IDE's as
well.

There may by then be a lot of application areas where subject
specialists create their own database front end's and customize real
applications, by using big company tools that require no code to be
written at all. But, computers will always need actual code, and
Python can be the lingua franca.

And on top of all that, while .NET, Eclipse, JBuilder etc. may
outclass any one Python tool, we do have a plethora of good choices
for almost any job requirement, including good access to about every
important GUI toolkit imaginable, and we even have easy point and
click GUI builders like PythonCard and the on-coming industrial
strength Boa Constructor.

So, Python is well on its way to world domination, just not in the
same manner as Java or C#. Python is more like an underground movement
that sneaks in around the edges and winds up playing a most
significant role for the long run.

Long live Python, the universal solvent!

Ron Stephens
www.awaretek.com/weblog/index.html
 
R

Roy Smith

Python is the best and most popular general purpose scripting
language.

Which raises the question, exactly what makes something a "scripting"
langauge? When I tell people I do Python, they often say something
like, "that's a scripting language, right?". My usual response is
something along the lines of "Well, I suppose that depends on who you
ask" and I'm not sure what to say after that.

So, what makes something a "scripting language" as opposed to a
"programming language"?
 
J

John Roth

Roy Smith said:
Which raises the question, exactly what makes something a "scripting"
langauge? When I tell people I do Python, they often say something
like, "that's a scripting language, right?". My usual response is
something along the lines of "Well, I suppose that depends on who you
ask" and I'm not sure what to say after that.

So, what makes something a "scripting language" as opposed to a
"programming language"?

The distinction isn't "scripting" versus "programming" language,
it's "scripting" versus something that doesn't really have a name.
Scripts are executed from the top down once. In other languages
(such as Java and C++) there's a designated starting point (main())
that the compiler locates.

Python is a scripting language because each module is executed
from the top down as its loaded.

As far as being most popular, I think Perl is still well ahead of
it, and it's still well ahead of Ruby. I don't have a good feel for
where either PHP or TCL stand in the "most popular" sweepstakes.

John Roth
 
J

Jarek Zgoda

Roy Smith said:
So, what makes something a "scripting language" as opposed to a
"programming language"?

I think the opposition of "scripting language" would be "general purpose
language", not "programming language".
 
P

Paul Prescod

Jonathan said:
# So, what makes something a "scripting language" as opposed to a
# "programming language"?

In a general sense I think "programming" languages are compiled and
"scripting" languages are interpreted. (If you want to go academic,
you could say python is both, but the internals of the interpreter are
irrelavant insofar as one might say it is an interpreted language.)

So which is Lisp? Prolog? Smalltalk? ML?

What happens if I compile Python to a binary via Pyrex or to JVM
bytecodes via Jython?

I propose:

A scripting language is a language that makes scripting (gluing together
components) easy.

A programming language is a language that makes programming (including
the creation of components) easy.

Python is both.

Paul Prescod
 
J

Jonathan Daugherty

# So which is Lisp? Prolog? Smalltalk? ML?

I didn't claim that it necessarily holds for every language. :)

# A scripting language is a language that makes scripting (gluing together
# components) easy.

You're defining it in terms of itself; what is scripting? The use of
scripting languages, or the accomplishment of tasks quickly and
easily? Some would argue the latter can be done with programming
languages.

# A programming language is a language that makes programming (including
# the creation of components) easy.

By this metric many languages are both, since the definition is
subjective.

--
_ ,^. _
,'/ -' '- \`.
/ | \ / | \ Jonathan Daugherty
| | | | | |
| \_,' `._/ | http://www.cprogrammer.org
| |
\ /
`. .'
`--._.--'
 
R

Ron Stephens

Jarek Zgoda said:
I think the opposition of "scripting language" would be "general purpose
language", not "programming language".


Hmm, yes, I think you are all correct. I was a little sloppy in my
choice of the words "programming language" to oppose "scripting
language".

I guess my main point is, Python is the best general purpose scripting
language. Maybe I (and maybe some other folks too?) sort of wanted
Python to out-compete Java and C#: but it isn't happening. Likewise,
as someone said, Perl is definitely more popular still than Python,
BUT, I think Python is more general purpose than Perl. Perl has a heck
of a lot of libraries (CPAN etc) and Perl is great for text
processing; I also can't help but notice that Perl is the most
commonly available and well supported language for CGI. But Perl
doesn't get used for apps like Zope and Chandler, Python does. PHP is,
for that matter, more popular than Python also, but for a limited
problem domain.

For better or worse, Python isn't going to be as entrenched in the
corporate world as Java or .Net any time soon. Neither is Python going
to displace PHP as most popular in PHP's domain, nor will Python even
surpass Perl in absolute terms any time soon.

BUT, Python is the most general purpose of the scripting languages and
this gives Python a very interesting niche for the long term. Having
Jython and now IronPython is a nice long term situation also.

This may be a case of the tortoise beating the hare; but its not going
to be just because the tortoise is the underdog and people's favorite;
Python has something very real going for it, the fact that Python is
the best and most popular general purpose scripting language.

I know some of us take offense at the very term "scripting language"
when its applied to Python, thinking that Python should be compared
directly with Java and its ilk; that was one of my motivations to post
this. I think we should get over it.

There is nothing wrong with being a scripting language. Some people
think scripting languages are the future. And Python is the best
general purpose scripting language. Python, I think, has the chance to
become the universal scripting language, the universal solvent among
programming languages, ubiquitous but certainly not alone.

Sorry for my sloppy use of words in the original post.

And, of course, many feel that it is just plain silly and pointless to
talk about which languages are most popular and which are gaining or
losing in the popularity race for the future. I hope those people will
just ignore this thread or at least not flame me too hotly ;-)))

Ron Stephens
 
R

Roy Smith

[...]
Python is the best general purpose scripting language.
[...]
Python is the most general purpose of the scripting languages
[...]
Python is the best and most popular general purpose scripting language.
[...]
Python is the best general purpose scripting language.

Come on Ron, tell us how you really feel :)
 
S

simo

I always thought "scripting language" means interpreted instead of
compiled into machine code (not bytecode).

Although where that definition puts Java, I don't know.....

As far as [popularity] ranking goes, I would say with 99% confidence
that Perl is #1 for web and sysadmin applications.

For web apps, I'd then say PHP, for sysadmin or prototyping tasks, I'd
say Python would be #2.
 
M

Michael Geary

John said:
The distinction isn't "scripting" versus "programming"
language, it's "scripting" versus something that doesn't
really have a name. Scripts are executed from the top
down once. In other languages (such as Java and C++)
there's a designated starting point (main()) that the
compiler locates.

Python is a scripting language because each module
is executed from the top down as its loaded.

By that definition, these would be scripting languages:

Algol 60
Algol 68
APL
Basic (traditional)
BCPL
Focal
Forth
Fortran
Intel 8086 assembly in a "com" format executable
Lisp
Pascal
PostScript
Simula
Snobol
Turing (language)
Turing (machine)

I may have one or two of those wrong, but you get the idea... ;-)

Wikipedia has a pretty good article on scripting languages:

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

Even as informative as the article is, in the end it nearly gives up on the
idea of distinguishing between scripting and other languages: "However, the
boundary between scripting languages and regular programming languages tends
to be vague, and is blurring ever more with the emergence of new languages
and integrations in this fast-changing area."

-Mike
 
R

Richard Krehbiel

Roy said:
Which raises the question, exactly what makes something a "scripting"
langauge? When I tell people I do Python, they often say something
like, "that's a scripting language, right?". My usual response is
something along the lines of "Well, I suppose that depends on who you
ask" and I'm not sure what to say after that.

So, what makes something a "scripting language" as opposed to a
"programming language"?

There isn't one big thing that makes the distinction, but there are "clues:"

Scripting Languages are "interpreted", not compiled to machine code.
(Having a JIT engine like Psyco doesn't change my opinion on this; the
code deployed is the source, or an intermediate form like .pyc.)

Scripting languages do not have variable type declaration statements.
Variables in scripting languages are dynamically-typed, and hold
whatever type you assign to them.

Scripting languages put a lot of emphasis on string manipulation, and
usually have regular-expression support built in. They usually have a
"big raw string literal" syntax, by which a string literal spanning
multiple lines and containing most of the usual escape characters can be
expressed simply.
 
R

Roy Smith

I always thought "scripting language" means interpreted instead of
compiled into machine code (not bytecode).

When Apple first came out with the PowerPC processors, they emulated the
old 68k instruction set in software, so you could continue to run 68k
binaries. Did those old programs suddenly become scripts instead of
programs because they were no longer running on the hardware? :)
 
R

RPM1

"Ron Stephens" wrote
I guess my main point is, Python is the best general purpose scripting
language. Maybe I (and maybe some other folks too?) sort of wanted
Python to out-compete Java and C#: but it isn't happening. Likewise,
as someone said, Perl is definitely more popular still than Python,
BUT, I think Python is more general purpose than Perl. Perl has a heck
of a lot of libraries (CPAN etc) and Perl is great for text
processing; I also can't help but notice that Perl is the most
commonly available and well supported language for CGI. But Perl
doesn't get used for apps like Zope and Chandler, Python does. PHP is,
for that matter, more popular than Python also, but for a limited
problem domain.

For better or worse, Python isn't going to be as entrenched in the
corporate world as Java or .Net any time soon. Neither is Python going
to displace PHP as most popular in PHP's domain, nor will Python even
surpass Perl in absolute terms any time soon.

BUT, Python is the most general purpose of the scripting languages and
this gives Python a very interesting niche for the long term. Having
Jython and now IronPython is a nice long term situation also.

From what I've seen over the years, it seems like one of Python's
strong niches is scientific and numeric computing, which seems
like a weird place for a "scripting language" to excel. It's probably
due to Python's talent at wrapping C and Fortran code. Python
does for programmers what GUI's do for users.

Just my $0.02
Patrick
 
R

Ron Stephens

Ok, "scripting language" is perhaps an extremely imprecise term. But,
some folks will still use it in describing Python; and I'm not sure
that is a bad thing.

I still think that Python can be meaningfully described as being the
best general purpose scripting language, sort of the Swiss Army Knife
of programming languages. No matter how many programming languages you
might already know, Python will give you a wide range of advantages in
an awful lot of problem domains. On the other hand, if you are a
business analyst or program manager and you are only going to learn
one language, Python would be the best choice for you also.

Ron Stephens
<a href = "http://www.awaretek.com/plf.html">Python Learning
Foundation</a>
 
V

val

Ron Stephens said:
Python is the best and most popular general purpose scripting
language. That is, Python is the best and most popular general
purpose, dynamic, interpreted language. Sure, there are other
scripting languages that are more popular for specific application
domains, and there are big company backed systems languages that are
far more popular; but in its niche, Python is tops.
[...]
Long live Python, the universal solvent!

Ron Stephens
www.awaretek.com/weblog/index.html

An interesting discussion, and i'd like to ask experts
a general question. Looking at a huge variety of programming
languages each with its specific design and application niche,
does it make a sense to design an *adaptive* language/interpreter?
'Adaptive' in terms of optimizing its structure/design and libraries
based on the specified criteria (performance, footprint, or whatever),
including even its run-time dynamics degree (compilation/interpretation
ratio).
Such a beast would evaluate its input(code and data) making proper
generalizations and restructuring itself properly within available
hardware resources. I don't think this is a great innovation.
JCL was probably a step in this direction. Also, at that time
there were a few publications on "self-organizing compiler"
(by Friedberg from IBM, 1958?). Then meta-programming and meta-classes,
though without specific focus on the interpreter/compiler
optimization.
It may, though, confuse a user in terms of in what language to
write an application; well, that's where the classical Python would
probably be a great choice.
Does it make any sense?

too-many-languages-too-short-life-ly y'rs,
val
 
P

Paul Prescod

Jonathan said:
# So which is Lisp? Prolog? Smalltalk? ML?

I didn't claim that it necessarily holds for every language. :)

But you didn't really answer the question. Is Lisp a scripting language
or not? If not, why?
# A scripting language is a language that makes scripting (gluing together
# components) easy.

You're defining it in terms of itself; what is scripting? The use of
scripting languages, or the accomplishment of tasks quickly and
easily? Some would argue the latter can be done with programming
languages.

Scripting is the gluing together of components potentially written in a
variety of languages.
# A programming language is a language that makes programming (including
# the creation of components) easy.

By this metric many languages are both, since the definition is
subjective.

Yes. The term is both historical and subjective. If you try to draw any
line in the sand you will find outliers like Lisp and even Java (which
is bytecode interpreted just as Python is) will cause you problems.
There are compilers for Python and interpreters for C.

Paul Prescod
 
N

Nelson Minar

Roy Smith said:
exactly what makes something a "scripting" langauge?

A scripting language is a language that you can't use to write an
operating system kernel.

A scripting language is a language that isn't a pain in the ass to use.


'When I use a word,' Humpty Dumpty said, in a rather scornful tone,' it
means just what I choose it to mean, neither more nor less.'
http://sundials.org/about/humpty.htm
 
P

PiedmontBiz

You're defining it in terms of itself; what is scripting? The use of
Scripting is the gluing together of components potentially written in a
variety of languages.


Yes. The term is both historical and subjective. If you try to draw any
line in the sand you will find outliers like Lisp and even Java (which
is bytecode interpreted just as Python is) will cause you problems.
There are compilers for Python and interpreters for C.

Paul Prescod

I have the answer. Scripts are concatenated sequences of instructions to the
computer operating system to perfom a certain task. The script I create for my
own purposes and my own personal use (or my work group) will always be known as
a script.
If my script is needed and used by others (outside my workgroup), it will now
be called an application. The source code of applications is not changed by the
user.
My script is subject to refinements as required to suit my needs. If the user
of an application needs the app to be modified, he must go to a programmer who
then makes the changes to the script. The modified script is then given back to
the user as an modified application.

I am working on the chicken and egg thing also.


Here is an overview of JCL.
This is the archetypical scripting language perhaps.
=====================
http://www.okstate.edu/cis_info/cis_manual/jcl_over.html

What is JCL?
Job Control Language (JCL) is a means of communicating with the IBM 3090 MVS
Operating System. JCL statements provide information that the operating system
needs to execute a job.
--------------------------------------------------------------------------
------
A job is something that you want to accomplish with the aid of a mainframe
computer, e.g. copy a data set, execute a program, or process multiple job
steps. You need to supply the information that the job requires and instruct
the computer what to do with this information. You do this with JCL statements.
A job step consists of statements that control the execution of a program or
procedure, request resources, and define input and/or output.
--------------------------------------------------------------------------
------
This includes information about:

the program or procedure to be executed
input data
output data
output reports
A JCL statement also provides information about who the job belongs to and
which account to charge for the job.
========


allen
 
A

Andrew Dalke

John Roth
Michael Geary
By that definition, these would be scripting languages:

Actually, by that definition Python isn't a scripting language.
A Python program is fully parsed and converted to byte code
before anything in it is executed.

Andrew
(e-mail address removed)
 
P

Peter Hansen

Roy said:
Which raises the question, exactly what makes something a "scripting"
langauge? When I tell people I do Python, they often say something
like, "that's a scripting language, right?". My usual response is
something along the lines of "Well, I suppose that depends on who you
ask" and I'm not sure what to say after that.

So, what makes something a "scripting language" as opposed to a
"programming language"?

For anyone thinking of adding to this thread, please consider
reading (or re-reading) the following threads first, and post
only if you have something original to add. It would make our
good friends at Google feel like all their hard work (and Python)
code hadn't gone to waste. <wink>

From 2002:

http://groups.google.ca/[email protected]

From 2001:

http://groups.google.ca/[email protected]

From 2000:

http://groups.google.ca/[email protected]

From 1999:

http://groups.google.ca/[email protected]

At this point, Guido needed the time machine back and I had to stop
searching...

-Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top