7 ms·
Programming Languages: Survivors and Wannabes (1996)
- kartan 8y ago> 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 8y agoI don't think I'd describe C++ either "terse" or "deceptively simple"
- kartan 8y agoYou 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 8y agoI 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.
- pjmlp 8y agoThat is true for UNIX based OSes, thankfully those aren't the only ones around.
- orbifold 8y agoWe 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.
- dnautics 8y agoNo doubt. What's the median age of the new developers that you hire? Do you think that's sustainable over the next 20 years for your ecosystem?
- dianeb 8y agoWell, "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 8y ago> 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. "
- kristopolous 8y agoSure, but also C++98 wasn't even out yet ... so you have to lob off the past 5 language extensions for a true analysis.
- C1sc0cat 8y agoI would not say JavaScript is anything like Basic - Python might be a better analogy now.
- projectramo 8y agoI would say the main thing that basic had going for it is that everyone seemed to have it on their desktop. In that sense, Javascript is a worth heir because it is right there in everyone's browser. I think BASIC felt simple because you got used to it but, when it came down to it, was it really that much "simpler" than Pascal or C?
- reallydude 8y agoThe environment similarities of javascript and Basic are important to note. If I started up an Apple X (without a disk), I would have access to an environment where I could run code. Javascript is accessible from my (ubiquitous) browser today. This seems to be an important factor in first language selection. The symbols used in javascript () {} [] and spreading it among multiple files are are a major cognitive barrier. Basic was barely approachable by non-techies because it seemed closer to a word processor, at a glance. PHP, ironically, was more similar to Basic if you knew something about FTP and weren't scared of lots and lots of dollar symbols. GET PYTHON ON THE BROWSER and it will become the first language for at least a generation.
- guidedlight 8y ago> 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 8y agoHaven't you got the memo? http://teavm.org/ http://teavm.org/
- exitcode00 8y agoNo mention of Ada in 1996? How rude!
- lamarpye 8y agoI'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.
- Jtsummers 8y agoThere is the theory it was a Cold War weapon of economic warfare. But the US government employs a lot of Ada programmers so it seems to have backfired.
- pjmlp 8y agoI 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 8y agoAs a student in Lisbon, may I ask which university?
- pjmlp 8y agoFCT/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 8y agoVery 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 8y ago> 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 8y agoJava 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 8y agoInterfaces 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 8y agoJava 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 8y agoJust 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
- sagartewari01 8y ago
- mdhughes 8y agoVery 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.
- pjmlp 8y agoRegarding Borland, as historical note, Microsoft C/C++ 7.0 for MS-DOS was the very last MS-DOS compiler to add support for C++. Borland was already selling version 3 of their compiler by then. On Windows side, Object Windows Library and Visual Component Library were much more productive, ahead of time Qt, than MFC ever was. But then Borland's missteps meant that MFC was the only framework left, and only a couple of enterprises still get to enjoy C++ Builder's RAD productivity.
- fiddlerwoaroof 8y agoThere's http://www.lazarus-ide.org http://www.lazarus-ide.org now, which is still pretty productive for one-off GUIs, especially anything involving database access.
- pjmlp 8y agoSure, I was just focusing on the C++ part of the story, which tends to be forgotten when talking about Borland tooling.
- Elrac 8y agoI can only speak for myself, but I was and am a Microsoft hater. I bought and play-tested VB, decided it was garbage and never used it again. Delphi allowed me to "do" Windows GUIs elegantly, without all that Petzold garbage and the many limitations of VB. I also loved Delphi 1 for its world-class truly useful help files. I enjoyed Delphi's performance and recommended it to a customer for that reason, but my own primary motivation was to avoid the terminally cumbersome Windows API.
- interfixus 8y agoAnders 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.
- deleted 8y ago[deleted]
- mcv 8y agoI 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?
- forgottenpass 8y agoMy 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.