
Programming Languages: Survivors and Wannabes (1996) - droptablemain
https://www.nytimes.com/1996/09/09/business/programming-languages-survivors-and-wannabes.html
======
mdhughes
Very simplistic and shallow list, but it's by Charles Petzold, noted Microsoft
shill and bad tech book writer.

In '96, LISP (tail end of the AI winter regardless), Perl (half the WWW was
Perl), Tcl (maybe a quarter of the WWW and telnet-based services were Tcl),
awk, & Ada were quite common, and Smalltalk, RPG, REXX, & PL/1 were at least
as common as COBOL. Python was still obscure but gaining ground. PHP had just
been released like smallpox on a vulnerable population.

I had a laugh at Delphi being for people who hate Microsoft. Its actual virtue
was good performance and safety in large programs, you bought Borland tools
because you wanted to double your program's speed, not for ideology.

~~~
pjc50
> Based on a totally unscientific survey (those programming languages that
> occupy at least 3 feet of shelf space in the McGraw-Hill Bookstore in
> Manhattan)

Use a bad metric, get bad results.

Who else remembers this era of giant, unhelpful, rapidly-obsoleted books in
the computer section of bookstores? Who remembers bookstores? OK, OK, I've
been into Waterstones recently, but it never occurred to me to look at
computing related books. What use would they be?

1996 was the beginning of the O'Reilly heyday. If you got a book with a white
cover with a coloured bar and animal woodcut on it, there was a good chance of
it being helpful. Otherwise it was a lottery - there was a cottage industry of
people turning out bad books about software filled with screenshots that
mostly replicated the online help.

~~~
currysausage
Next level: fill whole pages with output from random Linux commands with 4
verbosity flags set:
[https://imgur.com/a/rnVE9u4](https://imgur.com/a/rnVE9u4)

Spent 45 EUR on this Linux Network Administration handbook by Addison-Wesley
Germany as a teenager. Still hurts whenever I think about it.

(Yes, the author also did the screenshot thing: "Look, this is how you
configure it using SuSE YaST, and this is how you do it using the Red Hat GUI.
Let me show you every single step of the wizard GUI, just to be sure. And this
is basically the whole default config file for this daemon, but with "#
Created by Bad Tech Writer" prepended. There you go!")

------
guidedlight
> Java's biggest selling point is that little Java applications (called
> applets) can be incorporated in a World Wide Web page along with text and
> pictures.

Not anymore.

~~~
pjmlp
Haven't you got the memo?

[http://teavm.org/](http://teavm.org/)

------
interfixus
Anders Hejlsberg is Danish, not Swedish - and this is about as factually
correct as Petzold ever gets in the part about Pascal. The article is from
September 1996. Delphi 2 was out by then, and taking 32 bit Windows
development by storm. Delphi programmers generally had nothing but scorn for
Visual Basic. _Not_ because it was Microsoft, but because it really was a
shitty tool, and programs produced with it tended to be slow, bloated, hard to
maintain, and often poorly coded.

------
kartan
> BASIC, the Beginners All-purpose Symbolic Instruction Code

I think that BASIC has been replaced by JavaScript. The lack of typing and the
immediate feedback match the same uses.

> PASCAL was invented in the late 1960's by Prof. Niklaus Wirth of Zurich as a
> tool to teach students proper programming structure before their brains
> became hopelessly warped by Basic.

Java fits this niche. It introduces typing and object oriented programming in
a very structured way making it good for teaching. And it has not the hardness
of C++.

> C is a terse, elegant, deceptively simple language that allows programmers
> almost unlimited flexibility.

C is being replaced by C++. But, without an ABI, C++ is not a complete
replacement. So, C still goes strong for interfacing with the OS.

~~~
saghm
I don't think I'd describe C++ either "terse" or "deceptively simple"

~~~
kartan
You are right. C++ does some of the opposite trade-off that C does.

C++ is good for speed, good mapping with hardware features and fine tuned
memory management. There is a replacement for C. But, it chooses to add
complexity to the language to facilitate memory management, expressiveness and
other perks. So, in that regard is the opposite that C.

~~~
dnautics
I think people who have been using c for the last 15 years and haven't started
using c++ for a given application are unlikely to ever start using c++, so
it's not really a replacement. Additionally c++ keeps piling on complexity, so
I suspect adoption is going to slow; C will likely outlast, not be replaced
by, c++, since it's use as the foundation for operating system kernels and vms
is going to be hard to assail, not to mention it's use in native function
interfaces.

~~~
orbifold
We use C++ (17) to program an embedded POWER processor with 16kB of scratch
pad memory and a custom vector extension. The compile time features of c++
alone (templates, constexpr) and lambda, namespaces, typed enums alone make it
much safer and better than C.

~~~
dianeb
Well, "better" is a loaded word, and you need to remember that C++ is not a
superset of C. The two languages intersect in a fairly large subset of C, but
there are parts of C++ that are not the same. I would claim that C++ is
remarkably less safe than C because of the crazy games some people play with
what's laughingly called "template meta-programming." You can abuse the C
preprocessor, but not to the extent that its C++ mode permits.

That aside, the comparison of programming languages to automobiles still
holds: C is a Formula One race car without seatbelts. C++ now resembles Ada in
terms of size to the extent that it's a large staff car that comes in only one
color. Java, which originally seemed to be a sane C++, is sort of like my
father's Buick -- it looks nice but when you really need to do something
slightly out of the ordinary like carry skis you can't do it without an
accessory. That's right, it is a proprietary language (hence C#)

~~~
kazinator
> _C++ is not a superset of C_

C++ contains a subset which is a dialect of C that is so compatible with C (in
particular C90) that you can write code in it that compiles as C, and with
very little effort. (Which I know from extensive personal experience, not just
theory).

(Such code benefits from the extra checks and diagnostics C++ provide; and
with some #ifdef switching and macros, it can take advantage of some
additional C++ diagnostic fatures when being compiled as C++.)

Quotes from Bjarne Stroustrup's C++ FAQ:

"Well written C tends to be legal C++ also."

"It is not uncommon to be able to convert tens of thousands of lines of ANSI C
to C-style C++ in a few hours. "

------
forgottenpass
My biggest take away from this is noticing America was in a much better mood
in 1996.

> In theory, the use of objects makes program code easier to maintain and
> reuse, although no one has actually shown this to be true.

This has gotta be the cheekiest thing I've ever read in NYT outside the
opinion pages.

>As a programming tool, it has roughly the sex appeal of a wrench.

We're way too sex negative and tightly wound for such a metaphor to get past
copyeditors today.

------
exitcode00
No mention of Ada in 1996? How rude!

~~~
lamarpye
I've spent a large percentage of my life in bookstores and I have never seen
an Ada book. I've never met an Ada programmer or met someone who knew an Ada
programmer. Is there any proof that the language actually existed? Maybe it
was a CIA plot to trick the commies into wasting their time.

~~~
pjmlp
I have bought a couple of them during the mid-90's in Lisbon technical
bookstores for university students.

Our university library also had a couple.

Indeed our university library was a treasure well for anyone doing the
compiler design and systems lectures.

~~~
ttsda
As a student in Lisbon, may I ask which university?

~~~
pjmlp
FCT/UNL, back in the mid 90's.

Smalltalk, Concurrent Pascal, Oberon, Concurrent C, ML, Eiffel, __*Lisp,
Algol, Ada, and many more on the library section available to Master /Phd
students.

~~~
ttsda
Very interesting. I'm very disappointed at the state of my faculty's library
(FCUL). Even landmark works by the most influential of computer scientists are
missing, being in their place endless copies of mindless "for dummies" garbage
from the 90s and 00s.

------
sagartewari01
> In its general syntax, Java is very much like C++. But it does introduce
> some changes that (depending on your perspective) correct some flaws of C++
> or botch up some features.

Are you sure about that? Was java really like C++ during it's earlier years?

~~~
meddlepal
Java was designed to have a syntax familiar to C++ programmers as its original
intended use case was on embedded devices where C++ was king.

What about the language design makes you think it _is not_ influenced heavily
by C++?

~~~
pjmlp
Interfaces are based on Objective-C protocols.

The class reflection, dynamic loading, JIT come from Smalltalk.

Checked exceptions from CLU, Modula-3.

Packages from Modula-2, Mesa, Ada,...

GC from Lisp, Mesa/Cedar, Similar, Smalltalk,...

~~~
mcv
Java takes a lot of features from a lot of different languages, but I too
remember Java being intended as an improved C++, by keeping most of the
syntax, while adding some badly needed features like memory management,
exceptions, more consistent standard classes (at the time; it's turned into a
mess now) etc.

~~~
pjmlp
Just like it happened with Go, around 20 years later.

However the similarities are only superficial, given the semantic differences.

Here are some nice links regarding it.

[https://cs.gmu.edu/~sean/stuff/java-
objc.html](https://cs.gmu.edu/~sean/stuff/java-objc.html)

[https://www.artima.com/intv/gosling1P.html](https://www.artima.com/intv/gosling1P.html)

------
mcv
I love the blunt wit of the article.

So how should a modern version of this list look?

Surely Pascal and Basic are gone. Javascript is near the top spot. I think
Python really needs to be on the list too. Is COBOL still relevant? In some
ways Java is becoming the new COBOL now. C#? Go? Ruby? PHP?

