22 ms·
Most(ly dead) Influential Programming Languages
- DylanSp 7y agoGlad to see a mention of CLU; it pioneered a lot of ideas. Reading Joe Duffy's blogs about the Midori project (greenfield language/system design at Microsoft), he mentions CLU as an inspiration a number of times.
- pjmlp 7y agoOne can still play with CLU today, http://www.pmg.lcs.mit.edu/CLU.html http://www.pmg.lcs.mit.edu/CLU.html I would already be more than happy if Go 2.0 generics would be CLU like, no need for something more fancy.
- pjc50 7y agoDespite having a CS degree I had never heard of CLU, which is a shame. Author is Barbara Liskov of the Liskov Substitution Principle, influential in early OO design.
- dionys 7y agoInteresting to see Pascal on the list - it was the language of choice in my high school and my first programming language, back in 2010. I haven't touched it since, but I do remember it was pretty easy for me to pickup the syntax, especially compared to languages I would learn later in uni, like say C.
- greencore 7y agoIn Lithuania and perhaps in similar countries Pascal is still main programming language in classrooms. Also no other language has beaten Pascal in number of released books so it will stay for very long time.
- non-entity 7y agoI almost started a new retrocomputing-related project in pascal recently because FreePascal seems to be the only stable maintained toolchain that still can target 8086
- dionys 7y agoI can confirm! My high school was in Slovakia and I know other people had the same experience with Pascal.
- QuesnayJr 7y agoIt took me years before I stopped accidentally typing ":=" in my C code.
- FpUser 7y agoI switch quite often. Sometimes 3 languages a day: Delphi/Lazarus/FreePascal, C++ and Javascript so it now takes few minutes to adjust.
- QuesnayJr 7y agoI try not to switch too often, just because I find it hard to remember the details. The one that always stumps me the most is comments -- I always stare for several seconds trying to remember how comments work in that language.
- FpUser 7y agoOh, I completely agree. I do not switch because I want to, but because I have to.
- benibela 7y agoI still write almost all my code in Pascal It compiles very fast to native code, has properties with implicit setters/getters, null-safe strings with mutability xor aliasing, function and operator overloading. It is really amazing
- gwbas1c 7y agoWait, Pascal was in use in 2010? I thought it was a dead language when I used it in high school in 1997-1998.
- kick 7y agoPascal has been in an incredibly strange state of being both dead and alive simultaneously for the past thirty years. ...but yeah, it was definitely doing pretty good throughout the 1990s.
- sigzero 7y ago"That is not dead which can eternal lie, / And with strange aeons even languages may die."
- Tyr42 7y agoI know Turing (which is pascal packed up with a graphics library and manual and editor all in one exe) was in use in Ontario Schools as late as 2010.
- abetlen 7y agoWeird right? I learned Pascal in highschool in Ontario around 2010 as well. I remember being really frustrated at the time because we weren't learning some modern language like Java or Python. Instead we were stuck with Turbo Pascal, writing in an IDE so old it only supported 8 character long filenames. Thank god we had an amazing teacher which ended up making it one of the best CS classes I've ever taken.
- badsectoracula 7y agoWell, depending if you count Free Pascal and Delphi (aka Object Pascal) or only Wirth's original Pascal, it is still used today.
- jodrellblank 7y agoTurkey bought Delphi licenses for a million students just a couple' months ago: https://news.ycombinator.com/item?id=22116275 https://news.ycombinator.com/item?id=22116275
- bryanrasmussen 7y agoI linked to something on Erights.org a few days ago http://www.erights.org/ http://www.erights.org/ I think E was more influential than its distribution would suggest.
- evgen 7y agoAs cool as E was, it was almost entirely based on core ideas lifted from Joule and KeyKOS. I can't really see any influence beyond a "wouldn't it be great if language X had feature Y like you find in E".
- bryanrasmussen 7y agoI was also thinking of the community, as they moved out into other languages and carried some ideas with them that they maybe got exposed to in the E community.
- QuesnayJr 7y agoAre there active languages influenced by E? I came across that erights site years ago, and I always meant to learn more about it.
- pjc50 7y agoThere are a few things present in COBOL that I would like to see lifted into more modern languages. One is the use of the full stop as an expression terminator, as in English, instead of the semicolon. Another is the whole "picture" mechanism for number formats. More languages should also steal Verilog's use of _ as an optional digit separator. It's just arrived in C# 7.
- gerikson 7y ago"_" has been an option to separate digits in Perl for ages. I use it all the time if the integer is >10,000
- guggle 7y agoI think Nim also has digit separator.
- nimmer 7y agoIt does.
- abrolhos 7y agoC++ has an optional digits separator too. Not '_' but single quotes, since c++14 [0]. Which is cool. Swift has it too [1]. Erlang has the full stop '.' as expresssion/statement terminator [2]. [0] https://en.cppreference.com/w/cpp/language/integer_literal https://en.cppreference.com/w/cpp/language/integer_literal [1] https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID414 https://docs.swift.org/swift-book/ReferenceManual/LexicalStr... [2] https://erlang.org/doc/getting_started/seq_prog.html https://erlang.org/doc/getting_started/seq_prog.html I like those features too! I'm glad they are coming to contemporary languages.
- onychomys 7y agoIf we start using periods to end expressions, would we then have to use semicolons to chain things together? Or would you let the compiler know that foo.size(). was okay and that it shouldn't be waiting around for another function call there?
- ldeangelis 7y agoGreat article, I love learning more about language influence. I was wondering something: > Smalltalk wasn’t the only casualty of the “Javapocalypse”: Java also marginalized Eiffel, Ada95, and pretty much everything else in the OOP world. The interesting question isn’t “Why did Smalltalk die”, it’s “Why did C++ survive”. I think it’s because C++ had better C interop so was easier to extend into legacy systems. Maybe it's linked to performance? Even today some application are rewritten from Java to C++ (or clones are made) to gain performance (like with Cassandra and Scylla).
- linguae 7y agoI have another theory about why Java beat other object-oriented programming languages except C++: cost. I can't speak for Eiffel and Ada since I'm unfamiliar with those environments, but in the mid-1990s Java caused a revolution of sorts by providing free-as-in-beer runtimes and development tools that were available for download. I don't know how good GNU G++ was in 1995, but I know that Borland's Turbo C++ and Microsoft's Visual C++ were affordably priced. By comparison, commercial Smalltalk implementations had expensive licensing fees, and in 1995 Squeak and Pharo didn't exist. There was also OpenStep and Objective-C, but that was also very expensive; this 1996 article from CNet (https://www.cnet.com/news/next-gets-to-nt/ https://www.cnet.com/news/next-gets-to-nt/) says that the Windows NT version of OpenStep cost $5,000 per developer and $25,000 for a version that allowed deployment. With the high prices of Smalltalk and Objective-C environments, Java attracted a lot of companies and developers who wanted an object-oriented programming language that provided some of Smalltalk's benefits (e.g., garbage collection, memory safety, a rich standard library) without having to shell out the cash for a Smalltalk implementation.
- pjmlp 7y agoI bought Turbo Pascal for Windows 1.5 (last release before Delphi) for about 150 euros, and Turbo C++ for Windows was about 200 euro, when converted for today's money. This in 1990 - 1992.
- jhbadger 7y agoBut there was an affordable Smalltalk system in the early 1990s -- Digitalk's Smalltalk/V. It cost $99 and came with a huge manual that had a great tutorial. It introduced me (and lots of others) to the whole idea of object-orientation.
- linguae 7y agoAnother highly influential programming language not listed in the article is Self (http://www.selflanguage.org http://www.selflanguage.org). Although I've taken two graduate-level courses in programming language theory, I didn't learn about Self until just a few years ago when I was bitten by the Smalltalk and Lisp bugs and started reading about the history of these languages and their environments. One of Self's most significant contributions is the idea of prototype-based programming, which is the influence behind JavaScript's traditional lack of classes (though newer versions of JavaScript have support for classes). I don't know if Self was ever commercialized; I do know that once Java was released Sun focused much of its attention on promoting Java at the exclusion of other object-oriented environments that Sun invested in (such as the OpenStep Objective-C API, which was actually jointly developed by NeXT and Sun). But Self is probably one of the most influential programming languages; it's just a shame that this language was never brought up in any of the computer science courses I've taken.
- j-pb 7y agoSelf has an even bigger legacy, the JVM is basically all the technology that made Self fast ported over to Java. David Ungar pioneered not only Self and prototype based inheritance, but also generational garbage collection, and polymorphic inline caching. Before Sun cannibalised the Self team into Java, it was actually slow as a snail. Another fun fact, a reduced version of Self was used the programming language for most of the Apple Newton, because Dylan was taking too long to get off the Ground.
- evgen 7y agoHaving played with Self a bit before the Newton came out and then seeing it in NewtonScript, it was a very cool thing to watch the idea of system-wide prototype-based inheritance filter through the community. I think it was a bit too much for most people to grok, but the ability of a coder to modify only a few prototypes in the system soup to change the behavior of existing apps was absolutely amazing.
- jakear 7y ago
- andybak 7y agoLisp? (ducks for cover) I know someone writing Smalltalk on a daily basis for this system: https://kyma.symbolicsound.com/ https://kyma.symbolicsound.com/
- diggan 7y agoThe article is about "mostly dead" languages. Lisp lives on under many forms, Common Lisp, Clojure and Racket being some of the more popular ones. If we're only talking about influential languages, I'd agree with you and put lisp on the top.
- amyjess 7y agoI'm surprised by how hard this article is on Algol 68. It was pretty influential: - Influenced C's type system. I'm just going to quote Dennis Ritchie on this: "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. The central notion I captured from Algol was a type structure based on atomic types (including structures), composed into arrays, pointers (references), and functions (procedures). Algol 68's concept of unions and casts also had an influence that appeared later." - Influenced bash's syntax (fi, esac) - I'm not sure if this counts as an influence or not, but objections to Algol 68's design lead Niklaus Wirth to revive his earlier proposal for a new version of Algol, called Algol W, and ultimately evolve it into Pascal.
- kick 7y agoThat ALGOL-68 was hated by almost everyone who like previous ALGOL versions is not to be discounted. ALGOL-68 was loved by people who would have never used ALGOL to begin with (and they didn't start doing so with ALGOL-68). It was difficult to write compilers for, slow & far too complex.
- ThomasBHickey 7y agoLooking back at ALGOL-68, it looks like comparatively small language compared to many of our current languages, e.g. Java, C++ and Python. I loved the definition of it, but never got to use it.
- kick 7y agoThat modern languages are even worse does not make ALGOL-68 good, in my opinion. It's understandable why people would like it, though, compared to modern languages.
- eeZah7Ux 7y agoIt's very similar to Go. And like go, it's loved by people who don't know ALGOLs and hated otherwise.
- QuesnayJr 7y agoThat was an incredibly interesting article. I never quite grasped the historical significance of CLU. Something I always wonder about COBOL, since it has so little influence on other languages, is if there are good ideas that we missed out on.
- rebataur 7y agoABAP which runs in all of SAP systems in Fortune 500 companies as an ERP is derived from COBOL. The core product has 400Million lines. Extensions would be 4X
- ngcc_hk 7y agoGuess online and efficient. Done my 10k lines batch COBOL. It is a waste of life. Verbose. C is better but unfortunately it is not very io. Still ... batch COBOL with mainframe parallel io sub-processor helps a lot. May be the cics where 1000+ users can use a pc (3-5 mips even emulated) with 16MB is something unusual.
- urxvtcd 7y agoInteresting stuff! Is there a kind of web archive of programming languages? Can we make sure their compilers, interpreters, etc. are not lost? Sure, there are issues of them being proprietary, or needing some virtualization to run; I'm just wondering.
- pmcjones 7y agohttp://www.softwarepreservation.org/projects http://www.softwarepreservation.org/projects Is a start.
- tyingq 7y agoExpecting to see Perl in an article like this in 5 to 10 years. Wasn't the first language I learned, but there's a fond place in my heart for it. At the time, it was the (only) less painful way to get at sockets, libc calls like getpwnam(), etc. I know the TIOBE index is flawed, but...ouch: https://www.tiobe.com/tiobe-index/perl/ https://www.tiobe.com/tiobe-index/perl/
- PopeDotNinja 7y agoAnd maybe Ruby in another 10 to 20?
- goto11 7y agoBut how how influential was it? It seems most of the unique ideas in Perl have not been adopted by other languages. But if Perl can be credited with kick starting the dynamic language boom (Python, Ruby) then it have been massively influential.
- tyingq 7y agoI'd say it was pretty influential for Ruby, CGI-BIN, pcre, and other things that will live on in more refined forms. PHP has some obvious Perl influence as well. Edit: Maybe also Perl's Configure (crazy wide cross-platform portability) and CPAN. They were pretty ahead of their time.
- LeonidasXIV 7y agoWhile I agree that Perl influenced Ruby which I guess in turn influenced CoffeeScript and Elixir to some degree, the lineage of PHP seems to be dead. I don't really know any languages that are inspired by PHP itself, other than maybe Hack which one could argue is very closely related to PHP.
- tyingq 7y agoEven if the lineage dies with PHP, that pulls in Facebook and WordPress. Smarty could possibly take credit for inspiring some of the template engines out there also.
- dleslie 7y ago> The interesting question isn’t “Why did Smalltalk die”, it’s “Why did C++ survive”. I think it’s because C++ had better C interop so was easier to extend into legacy systems. Video Games. From around 1999 to recently, C++ was the language of game development. It only recently came under serious threat, from C#.
- Someone 7y agoAnd that wasn’t because it had better C interop?
- jeltz 7y agoNo, while C interop was useful it was mostly because it was easier to write low latency code in C++.
- frabert 7y agoI don't really buy into the fact that enterprise apps are written in C++ because gamedev uses it
- pjmlp 7y agoVery bad example. Video games community is very luddite in what concerns adoption of technologies, they usually only move forward when the platform owners force them to do so. Many moons ago, C, Pascal, Modula-2, Basic were seen as Unity is seen nowadays, naturally real game devs had to use Assembly, specially to take care of the special purpose graphic and sprite engines. Playstation 1 was probably the first console that force them to start using C instead, while on 16 bit. So slowly everyone accepted that doing games in C, Pascal and what have wasn't that bad. C++ only became kind of accepted years later, and even then it was more "C compiled with C++" than anything else. The major boost for C++ were the OS vendors for home and office computers, Apple, IBM and Microsoft, alongside Zortech, Borland and Watcom, with their full stack C++ frameworks, something that ironically C++ has lost (OS C++ SDKs where it has the front role).
- davedx 7y ago
- ngcc_hk 7y agoPascal have two moments which really peak. Turbo pascal and Apple Mac. After that not sure what its use. Ucsd pascal always slow.
- Scarblac 7y agoDelphi should be mentioned as well.
- chadcmulligan 7y agoIts not actually dead either
- jksmith 7y agoSmiling at comments from afar :) TurboP/Delphi probably has made companies more money commercially than Lisp or below top 8 in tiobe (haven't looked at it lately). The biggest codebase I've ever worked on was in Delphi - all 8 million lines. Anybody every worked on a private company codebase that big? (Fun with svn blames).
- 7thaccount 7y agoYeah, Turkey just bought a zillion licenses.
- avian 7y agoDoes anyone know whether Turbo Pascal DOS/Windows compiler produced slower code than C compilers at the time? For a long time I was sticking with Pascal and resisted switching to C, even when everyone around me was doing so. One thing I do seem to remember from that time was that the things people were coding up in C seemed to work faster (not sure if it was Borland's Turbo C or something else). It was one of the arguments I remember for leaving Pascal. Am I misremembering and it was just an urban legend/marketing from C compilers? Thinking back it doesn't seem logical that C would offer any significant performance benefits - both Pascal and C were compiled down to machine code and had approximately the same levels of abstraction.
- fanf2 7y agoThe ML section misses out some significant successors: there was a fork between CAML and SML. Ocaml is still widely used, and has its own spawn such as ReasonML and BuckleScript.
- LeonidasXIV 7y agoNeither ReasonML nor BuckleScript are really OCaml descendants. ReasonML is a different syntax for OCaml, with even closer match than CoffeeScript 1.x had to JS. Compiled ReasonML code cannot be distinguished from code that was written in OCaml. BuckleScript OTOH is a set of forks of older compiler versions which have a JS backend. It works with both Reason and OCaml syntax. ReasonML therefore is much closer to the revised OCaml syntax (a failed previous alternate syntax) than it is to its own language.
- tyingq 7y ago360 Assembler and Flash/ActionScript seem like good additions to the list.
- muizelaar 7y agoWhat did ActionScript influence?
- greencore 7y agoTypeScript, I'd say.
- WorldMaker 7y agoAlso TC39's efforts in all of JavaScript just about ever since. ActionScript's ES4 efforts left a lot of scars and that "lost version" of JavaScript is quite influential in the very least for how much ES2015+ avoids ES4/ActionScript ideas/problems/concerns as much as it learns from them and eventually reincorporates some of them.
- tyingq 7y agoArguably HTML5 and JS to get both in a state where Flash wasn't needed. Not just for what Flash is famous for either. I used it a lot for "copy this text in a div to the clipboard" when browsers were all over the place on support for that.
- EamonnMR 7y agoIf you're at all interested in this topic and have access to the ACM library, the 'History Of Programming Languages' (HOPL) conference includes papers on these and many other languages and is fascinating reading.
- EamonnMR 7y agoAnd they just opened this up today! https://dl.acm.org/action/doSearch?AllField=HOPL&startPage=&LimitedContentGroupKey=10.1145%2F154766 https://dl.acm.org/action/doSearch?AllField=HOPL&startPage=&...
- ChrisMarshallNY 7y agoI started off with BASIC, FORTRAN, and Pascal (as higher-level languages). I also used PERL and PL/1. I don’t miss them too much, but they were important stepping stones.
- gbrown_ 7y ago> At a time when adding two lists of numbers meant a map or a loop, APL introduced the idea of operating on the entire array at once. Am I missing something, how is this different from a map?
- 7thaccount 7y agoAPL by default operates on entire arrays even if they're multi-dimensional like a matrix. You can just say matrix x 3 and it will automatically do the nested for-loops behind the scenes.
- gbrown_ 7y agoAha, thank you.
- icen 7y agoIt keeps going! 3 3 3 ⍴ ⍳10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 M ← 3 3 3 ⍴ ⍳10 M*M 1.00000E0 4.00000E0 2.70000E1 2.56000E2 3.12500E3 4.66560E4 8.23543E5 1.67772E7 3.87420E8 1.00000E10 1.00000E0 4.00000E0 2.70000E1 2.56000E2 3.12500E3 4.66560E4 8.23543E5 1.67772E7 3.87420E8 1.00000E10 1.00000E0 4.00000E0 2.70000E1 2.56000E2 3.12500E3 4.66560E4 8.23543E5 That's 3 nested 3x3 matrices, and we take the pointwise product of each of them with just the usual multiplication operator. How many maps did you want?
- RodgerTheGreat 7y agoIncidentally this property is why most of the "translations" of APL expressions into another language you'll see online are cheating- they assume a specific rank for arguments and "bake in" an appropriate degree of mapping.
- bonzini 7y agoIsn't that a pointwise exponentiation (1^1, 2^2, 3^3, ...)?
- 7thaccount 7y agoThe APL section seems a little off. I downloaded the latest Dyalog version and the RIDE IDE and it was all very simple to use. Despite having zero APL experience I wrote a pretty nifty program to simulate something in my domain in like 3 lines of code. The keyboard thing is a non-issue as the IDE let's you enter symbols and you quickly start to memorize that you can enter command-key r to enter rho and so forth. I've used the ASCII J before and find the APL glyphs help me learn what's going on better. It's right that it isn't a popular language, but that is sad. Dyalog has a lot of tools too from web server, database libraries, R & Python Bridges, GUI...and so forth.
- mlochbaum 7y agoI think it's fair to say that font issues were a significant reason for its decline in the late 80s and 90s (well before good unicode support). Other major factors were spreadsheets, which did many of the things APL was best at with an intuitive graphical interface, and OOP. APL didn't have OOP, so it was for dinosaurs. Structured programming could have had the same effect—mainstream APLs picked up ifs and while loops 10-20 years later than the rest of the world—but I think the usability gap between APL and anything else for arrays was just too large at the time for that to hurt APL too much.
- mlochbaum 7y agoThe article is wrong about mixing strings and numbers though. The requirement for homogeneous data, and the use of boxes, is a feature of the SHARP APL lineage, which includes J (although these languages could allow mixed arrays if they wanted to). But the APL2 and NARS families simply allow anything as an element of an array. These are much more popular, to the point that every recent APL I'm aware of uses this style of array. Possibly a reason why J wasn't very successful; probably not a reason why APL usage disappeared. See also https://aplwiki.com/wiki/Array_model https://aplwiki.com/wiki/Array_model.
- 7thaccount 7y agoThanks Marshall. I'll yield to you in anything APL as I'm a total noob. For those that don't recognize his username, I think he works for Dyalog in APL implementation. Is that right?
- yiyus 7y agoI'm sorry Forth is not on that list. It could be argued that it was not so influential for mainstream languages, but there is a whole range of concatenative languages that can be considered direct descendants.
- carapace 7y agoI think Forth's influence is more subterranean. I.e. PostScript and coreboot, etc. Forth is there, but rarely in your face. As far as the underlying concepts, speaking as someone who has experimented recently with Joy (one of the concatenative languages you mention. although it wasn't directly influenced by Forth, I think, it's a case of convergent design), I think it's a shame it hasn't been more influential. The time may come: check out Conal Elliot's Compiling to Categories.
- yiyus 7y agoJoy is a great language! I also wish it had been more influential. Maybe you already knew this, but there are lots of great articles about Joy in nsl.com, and there is also Thun: http://joypy.osdn.io/ http://joypy.osdn.io/ (which someone suggested me around here).
- carapace 7y ago:D yeah, dude, that was me (Thun, not nsl.) Cheers!
- _0ffh 7y agoYeah, also the only other language that is as simple at it's core as Forth is Lisp. I suspect that lots of CS people have at some point written their own of either, or both, just for the experience.
- gtk40 7y agoI'm a younger millennial (born in early 90s) who got his start with BASIC. The first programming I did was on Q-BASIC on our aging desktop machine (386 with Windows 3.1) that we didn't use for much, especially with very limited Internet use. When I took programming in high school, we started with TI-BASIC on TI-83 calculators for about a month, as my programming teacher felt like this best replicated his experience learning programming on a TRS-80. I tend to agree, and this is a great use of BASIC. It's the default programming interface on a widely used computer to this day. We then moved to VB6 for our "serious" programming, although we also did JavaScript and Java. My first programming professionally was done in an office setting at a temp job using VBA to help with some Excel work. And then my first job as a software engineer, even though I wasn't writing it, did have some Visual Basic.NET floating around (most of my work was in C#).
- ORioN63 7y agoI started to learn programming, by writing programs in TI-BASIC on the TI-84 (compatible with the 83) calculator. I just got it, because it was required to have a graphic calculator for math class. It was just enough of a push. Small programs and games were fine and I actually got really used to the keyboard (I can still type on it pretty quickly these days). For longer programs I def. remember wanting to program with more monitor real estate and not having to rely on GOTOs. That's how I started to learn Python, which I still use daily.
- nemo1618 7y agoSame. My TI-BASIC magnum opus was 527 lines of spaghetti code, implementing dozens of nested menus for solving any trigonometry problem I was assigned. I honestly think that this is one of the best ways to introduce programming to a kid: "Hey, that math homework looks pretty tedious...wouldn't it be nice if your calculator could do all the work for you?"
- gen220 7y agoMy story is similar to the OP's. Started with TI-BASIC, and downgraded to Java for a programming class. :) It turns out, you can actually write programs in TI-BASIC on a computer, and sync the file to the calculator with the usb connector. I used to charge kids in my class for copies of my games (Snake, and a Zork-esque text adventure). a lot of early business lessons there, in retrospect.
- dfan 7y agoI took two software engineering courses at MIT around 1990 that used CLU as the implementation language (one was a general medium-scale software engineering course, one was on writing compilers). I found it to be a very pleasant language, although the main thing I had to compare it to was C (C++ was just getting off the ground). It's always nice to see it mentioned in lists like these.
- thrownaway954 7y agoVery surprised that ColdFusion isn't on this list. Say what you want about it, but remember this... You know how all you React, VueJS and frontend developers just LOOOOOVE components... Yeah... ColdFusion had that first in what was called "Custom Tags". Heck... It had alot of features that you find today in almost every other language, but it is dying a SLOOOOOOOOW death.
- codingdave 7y agoYou are correct that ColdFusion pioneered some modern features, but the author had a specific definition of influence, and states: "Before we start, a quick primer on finding influence. Just knowing that X was the first language with feature Z doesn’t mean that X actually influenced Z.", and then goes on to state that influence only counts if it exists in citations of papers or documentation. You can absolutely go to town arguing whether or not their definition of influence makes sense, though.
- InfiniteRand 7y agoIt's questionable (although certainly possible) whether ColdFusion's custom tags inspired custom tags in other languages. There were a lot of other elements in the air at the time, such as server side include syntax, that made the idea of incorporating programming logic into markup a logic next step. And then from there it isn't too far to get to custom tags, of course, it's hard to retrospectively estimate the amount of brain effort to leap between concepts, so maybe my assessment is way off, but this is where finding direct documentary links between how technology developed can be helpful.
- WorldMaker 7y agoColdFusion had much more limited exposure to the general world than say PHP. Also, arguably and IMNSHO, ColdFusion was quite bad at a lot of its own features. Custom Tags specifically as the given example, were barely more than duct tape over SSI (Server-Side Includes) and never really had a "proper" Component model or DOM for most (if not all, again IMNSHO) of its history. (CF is a language on my list of hopes to never see again.)
- paulsutter 7y agoI’m surprised that Ada isn’t listed
- ThomasBHickey 7y agoMentioned only in passing as one of the languages that Java sqashed.
- azhenley 7y ago> CLU might be the most influential language that nobody’s ever heard of. Iterators? CLU. Abstract data types? CLU. Generics? CLU. Checked exceptions? CLU. Well, I learned something new and I spend a lot of time reading about PL (and even teach undergrad PL!). Had never heard of CLU before.
- restalis 7y agoI'm still trying to reconcile "most influential" with "nobody's ever heard of". It may be that CLU implemented in premiere some concepts, but if later those concepts may as well just have been rediscovered (like the iterator design pattern) as the obvious thing to do, then what that leaves us?
- carapace 7y ago> reconcile "most influential" with "nobody's ever heard of" We ignore the past. I've worked with people who hadn't heard of Alan Kay. I worked with a guy tasked to revamp an expert system who had never heard of Prolog.
- 7thaccount 7y agoI work with a lot of people who write software and a few professional developers (~10-20 years experience in .NET & Java) and only one of them (has a computer science degree) has ever heard of Prolog and neither had ever heard of Smalltalk, APL, Forth, or Lisp when I brought them up around lunch. They're great at what they do and are much more experienced/talented than I at creating software, but it always makes me wonder why more professional software developers aren't more curious about the past and other alternative solutions. I can tell you how engineers did my job each decade going about 100 years back and how all the tools evolved over that time.
- deleted 7y ago[deleted]
- WorldMaker 7y ago
- celeritascelery 7y agoI wonder which of these languages are completely inaccessible today? As in you can’t run them on any modern machine or even find an emulator for them.
- goto11 7y agoI would love some online tutorials/sandboxes for exploring these historical languages.
- icen 7y agoIt wouldn't surprise me if all of these languages were alive in some way or other. There are MLs and APLs and Pascals alive and well.
- therealcamino 7y agoThat's an interesting question. I was going to guess CLU, but I was very wrong: there are native VAX and SPARC implementations, a Portable CLU implementation, and even a CLU-to-C compiler. Impressive for a language I hadn't heard of before today! http://www.pmg.lcs.mit.edu/CLU.html http://www.pmg.lcs.mit.edu/CLU.html
- jbotz 7y agoBoth ML and Smalltalk are definitely not dead, not even mostly dead, they’ve just evolved into language families whose members have different names. The ML family has Standard ML, OCaml, and Haskell, and the Smalltalk family has Pharo, GemStone, GNU Smalltalk, and others. These all may not have hugely wide adoption, but they are actively used in both academia and industry, and continue to grow and evolve, and their continued evolution is still influencing other languages. Ok, you can argue about the definition of "mostly dead", but whatever you decide these two just aren't in the same category as the others on this list.
- danharaj 7y agoHaskell isn't in the ML family. It is a descendant of Miranda and some other lazy functional languages.
- jbotz 7y agoGranted. 8-)
- igouy 7y ago> definition of "mostly dead" It's easy enough to understand — just look at when they were very much alive. "UbiquitousApplications:Embedded Systems to Mainframe" http://www.davethomas.net/papers/ubiquitous1995.pdf http://www.davethomas.net/papers/ubiquitous1995.pdf
- JoeAltmaier 7y agoRPG? Or is that encompassed by Cobol...
- padseeker 7y agoNo one is doing anything new in COBOL but there is so much old stuff that could only be replaced by a massive investment in rebuilding infrastructure. COBOL isn't dying anytime soon. At one point, like 10-15 years ago, I knew experienced well paid COBOL programmers being laid off and being replaced by kids fresh out of school. And then CS programs, if not outright stopped, at least greatly reduced teaching COBOL courses. And no one coming out of school learning Java and Python and Node wants to write COBOL. And then old timer COBOL programmers started retiring, but companies (especially banks) were not replacing their existing mainframe infrastructure. So now you have a gap between supply (COBOL programmers) and demand ( mostly banks), to the point that retired programmers are doing part time work for $200 an hour. Here's an article from 4 years ago; https://www.reuters.com/article/us-usa-banks-cobol/banks-scramble-to-fix-old-systems-as-it-cowboys-ride-into-sunset-idUSKBN17C0D8 https://www.reuters.com/article/us-usa-banks-cobol/banks-scr...
- agumonkey 7y agoI wonder if IBM is still trying to migrate COBOL to something
- kjs3 7y agoI know at several dozen companies in my state alone who are still "doing something new" in COBOL, including the company I currently work for. No, that's not just maintenance, it's new apps and projects. Most of these are on a 'Fortune' list in terms of size. Startups and small companies can ignore anything that isn't new and shiny; companies processing billions of dollars/transaction know better.
- pjdemers 7y agoWhy I think Pascal is gone for commercial use. Back in the mid-80's I was working on a new project on PCs under DOS. Our first choice language was Pascal. However, sometimes we needed to write at low levels for performance, or to access hardware directly, or call Fortran code. For all of these reasons, we switched to C.
- WorldMaker 7y agoAt least one simplified view of the death of Pascal is the rise and fall of Borland. Borland's compilers were the fastest. Borland invested more in FFI work and C-interop than competitors. Eventually Pascal was Borland (and vice versa), because no commercial entity (in the 90s-ish) was using a non-Borland Pascal compiler. Borland making bad business decisions and Microsoft making good business decisions in poaching key Borland staff at the right moments, seems like some obvious death nails in Pascal's coffin. (Obviously that's still a very simplified narrative to history, but it is an easy and common one.)
- dboreham 7y agoAnyone else here written BCPL? I must be one of very few people to have used it at _two_ different jobs.
- dnautics 7y agoI love both languages (well c99 anyways), but I feel like Pascal/C is like betamax/vhs. I think I it didn't help that free Pascal compliers were harder to come by. IIIRC
- throwaway17_17 7y agoI’ve seen multiple statements from people that Pascal was a better language than C, but I absolutely love the VHS/BETA-Max analogy (it contains a lot of context which usually take a good deal longer to write out in the pascal vs c discussions). My education and experience effectively skipped Pascal, other than mentions that it existed. So, do you have any off the cuff reading or materials that demonstrate where Pascal shines? I’d be interesting to see if any of Pascal’s qualities that made it ‘better than C’ were ripe for plucking out and putting in another language.
- dnautics 7y agoI haven't used Pascal in 20 years. I learned it in cs/AP cs (literally the last year it was on the apcs exam), used it for my high school science fair project and in my senior year I self taught and rewrote it to c++ and never went back. Looked at Eiffel for a hot sec in college but it never stuck, because no toolchain for beos, which I used in college. These days I program in elixir, and am learning Zig.
- TomMasz 7y agoI did my Master's (1994) work with Smalltalk (specifically Little Smalltalk) and I still play around with Squeak when I have some free time. Not exactly producing production code, obviously, but you can build things for yourself and there's nothing wrong with that.
- mkchoi212 7y ago"almost all of logic programming actually stems from Prolog" Why isn't Prolog on the list then?? :O
- detaro 7y agois Prolog deader than the logic programming systems stemming from it? The field seems fairly niche overall, but from the limited insight I have Prolog seems to be still around?
- mkchoi212 7y agoMy thought was that prolog is now mostly used in colleges around the world to teach students basic concepts within AI. Correct me if I'm wrong though. Would love to see examples where Prolog is used in real life!
- detaro 7y agoAcademic work certainly seems to still use it, and I've seen it once or twice for "business rule" type stuff. That's not much, but I can't remember much else in this direction either. I guess constraint solvers like Z3 are in the same category kind of(?), but I don't know if/how their syntaxes are related.
- btilly 7y agoI am sad that Forth did not make the list. It showed how to make a minimal programming language that runs in a very small amount of space with just a stack. And did a lot to popularize RPN notation. Even if you do not write in Forth, you can still benefit from knowing the ideas. For example I could not have written my answer at https://stackoverflow.com/a/60817908/585411 https://stackoverflow.com/a/60817908/585411 if I did not know the ideas of Forth.
- vanderZwan 7y agoIt was probably considered too "alive" in the embedded world to be on the list.
- lucas_membrane 7y agoNice article. Missed one thing about PL1 that I think it got first and that you see nowadays in most languages (other than low-level languages like go and C) and most large programs -- a hierarchy of error types, blocks of code to catch errors (exceptions) according to type, and the ability to replace one error-handler with another temporarily within a narrower scope. Not to say that this is good, but it is what we've got.
- V-2 7y ago"COBOL was also enormously complex, even for today’s languages" Is that true? What was the complexity about? I've never done COBOL, but I was always under impression that it was quite straightforward in its infamous clunkiness, lacking lots of constructs that've been obvious for decades now
- agumonkey 7y agoI don't know but there's the ALTER (and maybe a COMEFROM) ?
- peter303 7y agoReads like the graveyard of my high school and college languages BASIC 1970 high school computer hacking LISP 1972 MIT A.I. course APL 1973 MIT circuits course PL/I 1973 MIT systems programming course OS360 Assembly MIT systems programming course FORTRAN 1974 MIT physics research C 1976 Stanford research PASCAL, ObjectPASCAL 1984 Macintosh developer ObjectiveC 1987 NeXT Developer C++ 1986 scientific programming Java 1994 scientific programming
- rst 7y agoFor all the mentions of FORTRAN in the description of other languages, it's a real surprise that FORTRAN doesn't rate a mention of its own -- though there are corners of the world where it's still in use. It's notable not only for being the Lingua Franca of scientific computing through at least the '80s, but also for breaking ground in programming language technology, starting right at the beginning -- the Fortran I compiler, for the IBM 704 in 1957, was the first to have an optimizer (and the technical papers on that compiler introduced terminology which has since become standard to the field -- e.g. "basic block").
- kjs3 7y agoIf you leave the HN/SV bubble, you find huge amounts of Fortran. It's still plays a significant role in scientific computing. If you lost track of it in the '80s, you might be interested that the language had major updates in '90, '95, '03, '08 and 2018. It's just not a part of the world of cat pix sharing websites and innumerable "Foo of Bar" startups. Same with COBOL.
- couchridr 7y agoOne thing I credit COBOL with is the use of descriptive variable naming. In FORTRAN you see variables named i, j, x etc (just look at Numerical Recipes) but in COBOL you see TOTAL_MONTH_SALES and the like. It is considered good style and “self-documenting” to do that today.
- kjs3 7y agoCOBOL was intended from the start to be "self-documenting" and English-like with the thinking being that it could be used by 'non-programmers' to create business logic. Not sure that I buy it achieved that goal, but it was the intent.
- hiddenhandle 7y agoNo mention of Snobol? Precursor. Only saw it in texts though of Perl
- mbo 7y agoThis article echos a lot of the themes that I saw in "Family spaghetti of programming languages" (https://erkin.party/blog/190208/spaghetti/ https://erkin.party/blog/190208/spaghetti/) which seems to be the best attempt at developing a family tree of programming languages I've seen thus far.
- amyjess 7y agoOoh, I really like the idea of this, but I kinda wish he broke Fortran into a whole family, with separate entries for each major version. There was a lot of cross-influence between Algol and Fortran, and while the original Fortran inspired Algol, Algol ended up as a massive influence on how Fortran developed later.