Language Niches (long)

Paul Prescod paulp at ActiveState.com
Sun Jul 29 17:36:27 EDT 2001


Robin Becker wrote:
> 
>....
> >worth consideration.
> >
> >Now let's examine some of the other languages out there:
> >
> > * For a long time, C was the only way to do system programming for Unix
> 
> what language does one use nowadays. If not C then pretty much any
> scripting language can do the same things as C given that we have the
> wrapping tools like swig. What's swig coded in?

I'm not sure what point you are trying to make. C became popular between
twenty and thirty years ago. Its current popularity is a result of that
early boost. Python is not typically used for "systems programming." I
think of systems programming as the programming that goes into building
the heart of an operating system or relational database etc.

>...
> > * Java was the only way to do client-side graphics and then evolved
> >into "Servlets" and "EJBs"
> 
> Java actually represents a new thing; write once run anywhere.

Java is not much better at that than Tcl or Python.

> >
> > * Perl was the defacto way to do sysadmining when sed and awk ran out
> >of steam
> 
> so C wasn't ever that needed?

For system administration? I would say "not much". Systems programming
and system administration are two different thing.

>...
> > * Visual Basic and Tcl were the only easy way to make GUIs for their
> >respective platforms for a long time
> 
> This is just nonsense. There are many ways to do CGI and even more ways
> to do guis. You neglect all those other semi-proprietary languages. The
> H***card one is an example. Even if you restrict Tcl to unix, Tcl is
> only a scripting language. The Tk extension is what makes Tcl/Tk into a
> gui platform. 

Right. And Tcl became popular while it was only possible to program Tk
in that one language and it lost popularity when Tk became popular in
Python, Perl etc. That goes to the heart of my argument. Tcl's
popularity was a side effect of the popularity of its platform. Expect
was another driver for Tcl's popularity.

> ... Visual basic is promoted by M$, Delphi is not and has as
> many if not more adherents.

Delphi came years after Visual Basic. Really, if Microsoft did not
invent Visual Basic as a GUI-building technology the Basic language
would be long-since dead. In fact you could argue that it is because
Visual Basic is becoming less and less Basic-like.

>...
> The above is a list of languages; all are thriving. 

Not all of them are thriving but all of them gained popularity based on
a particular environment or niche programming task. Sometimes the
environment got generalized (Tk and soon Visual Basic) and sometimes the
language outgrew the environment (C). But not once did a language carve
out its own niche based purely on technical merits (as you claim). If
Python does so it will be the first.

> ... For some more nearly
> dead languages try simula, simscript etc. What was that wonderful
> rebarbative predecessor of m4 called?

I wasn't trying to be comprehensive. There are thousands of languages
out there. I was demonstrating that the major languages that make up the
modern computing landscapes did so by grabbing on to a niche or a
particular task.

>....
> I consider the above to be an assertion. I certainly don't know the true
> number of regular Python users now or in the past. Perhaps we could do
> some comparative newsgroup posting analysis to get some idea of who's
> programming/interested in what language. But all of the little languages
> would be as noise to SQL and Cobol (even if you count them as languages)
> in terms of the total code volume and economic significance.

So your point is that SQL and Cobol carved out their large market shares
by being technically wonderful and wonderfully stable? I find that
extremely hard to believe. Look at the growth in the SQL standard. Look
at the quality of the Cobol language.

I'm waiting for you to point out a language that was so great
technically that it became very popular without hooking on to some
particular niche or platform or at least having a company with a
billion-dollar valuation behind it. This is a real problem for Python.
It has no big company and only tiny niches.

> > ....
> >*All* of the scripting languages change constantly. I guess they are all
> >bad.
> >
> 
> in some senses yes.  A *good* programming language is one that is easily
> applicable to a large set of problems. Sed is clearly not very good at
> matrix algebra. Awk can't plot graphs. Sed is easily better than Python
> at most simple stream substitutions. Python beats awk at list processing
> etc etc etc.

So SQL and COBOL are your examples of "good" programming languages?
Because of their wide generality????

>...
> >There is a lot of crap in C and C++ that the inventors of those
> >languages would like to change but it is too late now. Guido is trying
> >to avoid that fate. As an aside, Perl users seem remarkably accepting of
> >change considering the installed base of the language.
> >
> 
> So these languages aren't mature?

No, compared to languages that are 20 or 30 or 40 years old, Perl and
Python are certainly not mature. In particular, many people use Python
today in radically different ways than they would have five years ago
(in particular much bigger projects). They make certain demands on
Python that may cause it to grow in particular directions. Five years
from now there will be other new users with other new demands. I don't
see that happening for C or COBOL or SQL.

>...
> If there were a single right way there wouldn't be so much discussion.
> The one true way is often wrong, otherwise we wouldn't have seen the
> Architect change the '/' operator.

That's why I used the word "opinion".

Every change is a question of costs and benefits. While the user
community is small, the costs are smaller than they will be when the
community is large. That's why Python changes so much more quickly than
C or C++. It doesn't mean that it is worse, merely that we have more
opportunity to improve it than those who are stuck with hundreds of
millions of lines of legacy code. Guido is no more or less benevolent
than those who do not have the option of fixing their languages. He has
the opportunity, so he takes it. They don't.

-- 
Take a recipe. Leave a recipe.  
Python Cookbook!  http://www.ActiveState.com/pythoncookbook




More information about the Python-list mailing list