Linux Journal Survey

G

George Sakkis

The annual Linux Journal survey is online now for any Linux users who
want to vote for Python. http://www.linuxjournal.com/node/1006101

....

18. What is your favorite programming language?

(15 choices, Python not included)


19. What is your favorite scripting language?

o Python

o Perl

(5 more choices)


Python is much more than a "scripting language" (whatever this means,
other than a semi-derogatory term used by clueless PHBs). Sorry, I'll
pass.

George
 
B

Ben Finney

George Sakkis said:
...
18. What is your favorite programming language?
(15 choices, Python not included)

19. What is your favorite scripting language?
o Python
o Perl
(5 more choices)

Python is much more than a "scripting language" (whatever this
means, other than a semi-derogatory term used by clueless PHBs).
Sorry, I'll pass.

I agree entirely.

The term "script" has the strong connotation of a limited-purpose
program designed to solve a problem expressed almost entirely as a
simple series of steps. Languages that are often used to write such
scripts are usually referred to as "scripting languages", which
becomes a denigration because such a language need not have support
for much else.

In contrast, the term "program" (and hence "programming language")
implies support for a much broader set of practices and solutions.

This term seems quite prevalent among the Python core developers,
unfortunately. The 'distutils' module even has the term 'script' used
in its interface, to refer to the programs that are to be distributed.
 
P

Paddy

I agree entirely.

The term "script" has the strong connotation of a limited-purpose
program designed to solve a problem expressed almost entirely as a
simple series of steps. Languages that are often used to write such
scripts are usually referred to as "scripting languages", which
becomes a denigration because such a language need not have support
for much else.

In contrast, the term "program" (and hence "programming language")
implies support for a much broader set of practices and solutions.

This term seems quite prevalent among the Python core developers,
unfortunately. The 'distutils' module even has the term 'script' used
in its interface, to refer to the programs that are to be distributed.

--
\ "Money is always to be found when men are to be sent to the |
`\ frontiers to be destroyed: when the object is to preserve them, |
_o__) it is no longer so." -- Voltaire, _Dictionnaire Philosophique_ |
Ben Finney

Hi George, Ben,
In the past I have taken the high ground by arguing that the usual
tasks associated with scripting are very important and that languages
like Python/Ruby can script as well as write substantial programs in
the non-scripting sense. Therefore, if their language of choice does
not encompass scripting then it is a lesser language.
'They' may look down on scripting but a lot of that is a mixture of
ignorance and envy :)

- Paddy.
 
S

samwyse

Ben said:
I agree entirely.

The term "script" has the strong connotation of a limited-purpose
program designed to solve a problem expressed almost entirely as a
simple series of steps. Languages that are often used to write such
scripts are usually referred to as "scripting languages", which
becomes a denigration because such a language need not have support
for much else.

I strongly disagree with your interpretation. Scritping languages
provide high-level facilites for process control. Historically, they
were purely interpretive but now they tend to compile to some sort of
byte code. Examples include the various shells, Rexx, and various
languages whose names start with "P". Languages which only express a
"series of steps" are generally called batch languages. I've never
heard anyone refer to a .BAT file as a script.

In scripting languages, speed of execution is often less important than
speed of implementation. When speed of execution is important, it is
easier to invoke an external module than to patch or rewrite the
interpreter. In Python, PERL and BASH, these modules can be dynamically
linked libraries as well as stand-alone executables.

Finally, the provided process control facilities are often generalized
into quite powerful support for "programming in the large", especially
both object-oriented and functional programming. This leads to supprot
for a much broader set of practices and solutions than any mere
programming language can easily provide.

The only drawback I've ever found to this is that it's easy to
accidentally use huge amounts of memory, for instance by 'slurping'
files into memory in a single command.
> This term seems quite prevalent among the Python core developers,
> unfortunately. The 'distutils' module even has the term 'script' used
> in its interface, to refer to the programs that are to be distributed.

Apparently the core developers agree with my interpretation, not yours.
 
R

Russ P.

...

18. What is your favorite programming language?

(15 choices, Python not included)

19. What is your favorite scripting language?

o Python

o Perl

(5 more choices)

Python is much more than a "scripting language" (whatever this means,
other than a semi-derogatory term used by clueless PHBs). Sorry, I'll
pass.

George


Someone please correct me if I am wrong, but I think of a Python
"script" as a flat source file with no (or few) functions or classes,
whereas a full-blown "program" has functions and classes. Both have
their place.

I agree it is unfortunate that the Linux World poll classified Python
as a "scripting language." I suspect they did that because Python is
not (typically) compiled and does not have static typing.
 
P

Paul Boddie

18. What is your favorite programming language?

19. What is your favorite scripting language?

20. "What is your favourite colour?" ;-)
Python is much more than a "scripting language" (whatever this means,
other than a semi-derogatory term used by clueless PHBs). Sorry, I'll
pass.

Well, LJ isn't my chosen reading material any more, but a "write-in
vote" sends the appropriate message in this case. I anticipate the
usual "C/C++ is the favourite programming language on Linux" routine
when the results get published but, as I wrote, LJ passed the point of
no subscription some time ago.

Paul
 
T

Tim Chase

want to vote for Python. http://www.linuxjournal.com/node/1006101
18. What is your favorite programming language?

(15 choices, Python not included)

I'm not sure why some folks have their knickers in a knot...I
took the survey and there was an "Other" box, so I just wrote in
"Python" for my favorite programming language.

I mean, Basic, Lisp, and Prolog make it in there...I use Python
for programming a heckuva lot more than I use any of the others.
19. What is your favorite scripting language?

o Python

and answered Python for this question too.

-tkc
 
S

Steven D'Aprano

I strongly disagree with your interpretation. Scritping languages
provide high-level facilites for process control. Historically, they
were purely interpretive but now they tend to compile to some sort of
byte code. Examples include the various shells, Rexx, and various
languages whose names start with "P".

Do you have a source for your claim that the shells (e.g. Linux/Unix
shells bash, ksh, zsh, etc. or Windows shells cmd.exe, command.com) are
compiled to byte code? I don't believe this is the case, I understand
that they are typically "immediate interpreted" languages, that is, each
line in interpreted from source code immediately before being executed,
as often as it takes.

Note to purists: yes, I know that being interpreted or compiled is a
property of the implementation, not the language. But when all the
implementations of a language (where "all" might mean "the only one"), I
think it is reasonable to blur the lines.

Languages which only express a
"series of steps" are generally called batch languages.

Maybe in the Windows/DOS world, but not typically in the Linux/Unix
world, where they are called scripting languages.

I've never
heard anyone refer to a .BAT file as a script.

Linux/Unix/Mac admins may be excused for saying that they've never come
across a .BAT file at all.

$ locate .bat | wc -l
14

Oh well, what do you know! I've got fourteen of the beggars. Hmmm... two
are in the Python standard lib, two are in wxPython, six seem to be in
the game Abuse, a couple of false positives, and a few odd files.

$ locate .sh | wc -l
606
 
D

Dennis Lee Bieber

On Thu, 24 Jan 2008 12:22:04 +0000, samwyse wrote:


Maybe in the Windows/DOS world, but not typically in the Linux/Unix
world, where they are called scripting languages.

In my background, they were "job control languages" (and the TRS-80,
running under L(S)-DOS even had a two-level job control language: if
simple in-line substitution it was direct "inject command to command
interpreter" form; but it also had the ability for complex stuff (those
with conditionals or loops) to be "compiled" -- in processing the
conditional/loop logic to generate a pure "in-line" control file which
was then executed).

And the only language I've encountered that I truly considered a
"scripting" language was the Amiga implementation of REXX (and, barely,
the original IBM version since it could address the standard IBM
editor), as ARexx could "address" any application that opened a named
ARexx port (Regina and OoRexx seem to be restricted to only addressing a
command shell with environment variable translation, or a command shell
without such -- that is spawn a program by itself, or spawn a program
through a console interpreter). And any statement that is not a Rexx
statement (easiest done by quoting it to a string) is automatically
passed to the "current" "address"

address WORDPROCESSOR
'top'
'select'
'end'
'cut'
text = RESULT
address MAILCLIENT
'newmail (e-mail address removed) "Current Text"'
'paste' RESULT

{totally fictitious example, but it gets the point across}
--
Wulfraed Dennis Lee Bieber KD6MOG
(e-mail address removed) (e-mail address removed)
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: (e-mail address removed))
HTTP://www.bestiaria.com/
 
P

Paul McNett

Steven said:
Linux/Unix/Mac admins may be excused for saying that they've never come
across a .BAT file at all.

$ locate .bat | wc -l
14

$ locate .sh | wc -l
606


$ locate .bat | wc -l
115
$ locate .sh | wc -l
763
$ locate .py | wc -l
44030

Hmmm... that matched all the .pyo and .pyc files, too. Not fair.

$ locate -r '\.py$' | wc -l
17425
$ locate -r '\.sh$' | wc -l
278
$ locate -r '\.bat$' | wc -l
49

Still a bit unbelievable, although I do have all the branches and tags
checked out of my main projects, and I tend to make lots of little .py
files so most of that 17,425 number is probably me.

Paul
 
A

Albert van der Horst

Someone please correct me if I am wrong, but I think of a Python
"script" as a flat source file with no (or few) functions or classes,
whereas a full-blown "program" has functions and classes. Both have
their place.

I agree it is unfortunate that the Linux World poll classified Python
as a "scripting language." I suspect they did that because Python is
not (typically) compiled and does not have static typing.

In the context of linux a programming language is
a language that generates an ELF binary executable to be stored
in a /.../bin/ directory.
A scripting language is a language whose programs are normally
distributed in human-readable form. It is appropriate to call
such a program a script. If the first two characters is "#!"
and the execution bit is set, it is a script in the linux sense.

So as far as I can tell it boils down to a clear technical
distinction, and I'm sure they didn't mean offence.

Groetjes Albert
 
S

Steve Holden

Albert said:
In the context of linux a programming language is
a language that generates an ELF binary executable to be stored
in a /.../bin/ directory.
A scripting language is a language whose programs are normally
distributed in human-readable form. It is appropriate to call
such a program a script. If the first two characters is "#!"
and the execution bit is set, it is a script in the linux sense.

So as far as I can tell it boils down to a clear technical
distinction, and I'm sure they didn't mean offence.
What you describe as a scripting language is normally referred to as a
"interpreted language". Of course with the introduction of virtual
machines we can no longer talk about "compiled languages" unambiguously.
Compiling used to mean "compiling to machine code", but alas no longer.

"Scripting language" has always had a fairly nebulous meaning.

regards
Steve
 
C

Carl Banks

In the context of linux a programming language is
a language that generates an ELF binary executable to be stored
in a /.../bin/ directory.
A scripting language is a language whose programs are normally
distributed in human-readable form. It is appropriate to call
such a program a script. If the first two characters is "#!"
and the execution bit is set, it is a script in the linux sense.

So as far as I can tell it boils down to a clear technical
distinction, and I'm sure they didn't mean offence.


Java doesn't compile to ELF binaries, last time I checked.


Carl Banks
 
K

Kay Schluehr

...

18. What is your favorite programming language?

(15 choices, Python not included)

19. What is your favorite scripting language?

o Python

o Perl

(5 more choices)

Python is much more than a "scripting language" (whatever this means,
other than a semi-derogatory term used by clueless PHBs). Sorry, I'll
pass.

George

There is an optional field "other language" where you can insert
"Python" as well.
 
F

Florian Diesch

Albert van der Horst said:
In the context of linux a programming language is
a language that generates an ELF binary executable to be stored
in a /.../bin/ directory.
A scripting language is a language whose programs are normally
distributed in human-readable form. It is appropriate to call

So a scripting language is a language that is usually used for Open
Source software while a programming language is usually used for
ClosedSource software?

What kind of language has C been in the good old days when gcc
produced aout binaries instead of ELF?
such a program a script. If the first two characters is "#!"
and the execution bit is set, it is a script in the linux sense.

Thanks to the binfmt_misc kernel module you can execute python byte
code just like you execute native code:

diesch@vogon:~% bin/hello
Hello world!
diesch@vogon:~% file bin/hello
bin/hello: python 2.5 byte-compiled
diesch@vogon:~% head -n1 bin/hello
³ò
So as far as I can tell it boils down to a clear technical
distinction

IMHO it's neither a clear nor a useful one.


Florian
 

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

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,038
Latest member
OrderProperKetocapsules

Latest Threads

Top