Live data from Hacker News

An opinionated history of programming languages

artagnon.com

51–60 of 135 posts

Re: An opinionated history of programming languages

#51
post #41

The graph is missing the complete hierarchy of the Wirth languages. A very important part of programming language history. They influenced many languages and of course are a direct predecessor to Go. While Go has mostly a C-style syntax, in my opinion, it is otherwise closely based on Oberon.

Also missing is Ada from that same lineage, the entire category of concatenative languages (with Forth the best known example), COBOL, SNOBOL/Icon, BASIC, APL, PHP, Racket, etc. It's laughably incomplete, not a history at all, and "opinionated" is a severe understatement. Was not at all surprised to see that the author's still a student specializing in Coq and similar things. Experience building actual complex system…

Those other languages are interesting today only insofar as they have affected currently important languages.

The exception is COBOL, which is still important in the way FORTRAN and Java are, but similarly will not affect future languages.

Re: An opinionated history of programming languages

#52
post #51

Earlier quoted context omitted.

Also missing is Ada from that same lineage, the entire category of concatenative languages (with Forth the best known example), COBOL, SNOBOL/Icon, BASIC, APL, PHP, Racket, etc. It's laughably incomplete, not a history at all, and "opinionated" is a severe understatement. Was not at all surprised to see that the author's still a student specializing in Coq and similar things. Experience building actual complex system…

Those other languages are interesting today only insofar as they have affected currently important languages. The exception is COBOL, which is still important in the way FORTRAN and Java are, but similarly will not affect future languages.

> only insofar as they have affected currently important languages

If this is meant to be any kind of history, that would seem to be grounds for inclusion. After all, Bourne Shell gets a spot, even though it's not actually a language and hasn't influenced any other language to any significant degree (unless you consider Tcl and even that's a big stretch). It seems like many things were included merely as excuses to express like or dislike, without any regard for historical importance or relevance. The fact that it favors C++ over alternatives might please some, but doesn't make it a good article.

Re: An opinionated history of programming languages

#53

The problem with any of these directed-graph based "histories of programming languages" is that they ignore the fact that languages change. Sure, neither Haskell nor Ocaml are descendants of the other, but features in one have inspired features in the other countless times, making both languages better. The same goes for Ruby and Python, Java and many of the other languages on this chart and not on this chart, and mo…

Indeed, current C++ is strongly influenced by the MLs.

But after 1985.

Re: An opinionated history of programming languages

#54
post #9
post #3

The author marked Clojure as a "dying language". I'd be interested to find out the metric by which this is true. In my experience, it is very much alive and thriving.

Is the language community net growing or shrinking though? A language can be very alive and still not be experiencing tremendous growth.

Lazarus/Free Pascal is another example of a language still very alive, but not growing like crazy.

Re: An opinionated history of programming languages

#55

Earlier quoted context omitted.

Python is still vital and thriving but I wouldn't be surprised if its market share is declining (slowly). As you say, it's dominant for data science... but recently it and R were the only practical choices... now other languages (Julia, for example) are valid options. The development of alternative Jupyter (formerly IPython) kernels has accelerated adoption of other languages. Similarly, a few years back it seemed li…

I want this to be true, by the way. As I mention in some other comment, I think Python is rather mediocre as an actual language for building software. Its appeal cannot be denied, but a majority of my peers would really like to use a language that has its tooling shit together. Python is the only language I've had to deploy that makes me understand why anybody would want to use containers.

Maybe we should separate the evolution of languages from the evolution of package/versioning systems. They do tend to go hand in hand, but that has more to do with logistics and organizational issues than any technical necessity.

Re: An opinionated history of programming languages

#56
post #51

Earlier quoted context omitted.

Those other languages are interesting today only insofar as they have affected currently important languages. The exception is COBOL, which is still important in the way FORTRAN and Java are, but similarly will not affect future languages.

> only insofar as they have affected currently important languages If this is meant to be any kind of history, that would seem to be grounds for inclusion. After all, Bourne Shell gets a spot, even though it's not actually a language and hasn't influenced any other language to any significant degree (unless you consider Tcl and even that's a big stretch). It seems like many things were included merely as excuses to e…

You will find an increasing incidence of pipe forms ("X | Y | Z" meaning something akin to "Z(Y(X))", but different) in current languages. C++ and Rust both use it, and Haskell has a variation.

Re: An opinionated history of programming languages

#57
post #56

Earlier quoted context omitted.

> only insofar as they have affected currently important languages If this is meant to be any kind of history, that would seem to be grounds for inclusion. After all, Bourne Shell gets a spot, even though it's not actually a language and hasn't influenced any other language to any significant degree (unless you consider Tcl and even that's a big stretch). It seems like many things were included merely as excuses to e…

You will find an increasing incidence of pipe forms ("X | Y | Z" meaning something akin to "Z(Y(X))", but different) in current languages. C++ and Rust both use it, and Haskell has a variation.

So it contributed one character? The same concept has been in many functional and concatenative languages since even before sh, and those are more likely to have inspired contemporary languages. The influence of absent Simula or Algol is multiple orders of magnitude greater than sh, so the point about the arbitrary standard for inclusion still stands.

Re: An opinionated history of programming languages

#58
post #56

Earlier quoted context omitted.

You will find an increasing incidence of pipe forms ("X | Y | Z" meaning something akin to "Z(Y(X))", but different) in current languages. C++ and Rust both use it, and Haskell has a variation.

So it contributed one character? The same concept has been in many functional and concatenative languages since even before sh, and those are more likely to have inspired contemporary languages. The influence of absent Simula or Algol is multiple orders of magnitude greater than sh, so the point about the arbitrary standard for inclusion still stands.

Bourne shell is most practicing programmers' first exposure to language features supporting safe concurrency without locks or shared storage. Those features are still finding their way into C++.

And no, it is not the same concept.

When was the last time you had any contact with a running Algol or Simula program? I use sh -- bash, really -- every day.

Re: An opinionated history of programming languages

#59
post #58

Earlier quoted context omitted.

So it contributed one character? The same concept has been in many functional and concatenative languages since even before sh, and those are more likely to have inspired contemporary languages. The influence of absent Simula or Algol is multiple orders of magnitude greater than sh, so the point about the arbitrary standard for inclusion still stands.

Bourne shell is most practicing programmers' first exposure to language features supporting safe concurrency without locks or shared storage. Those features are still finding their way into C++. And no, it is not the same concept. When was the last time you had any contact with a running Algol or Simula program? I use sh -- bash, really -- every day.

> Those features are still finding their way into C++.

Not the only area in which C++ is 30 years (and counting) behind state of the art.

> When was the last time

The OP is supposedly about history, thus current usage is irrelevant. There's no longer a Mongol Empire either, but its existence is still historically important and only the worst kind of dilettante would try to write a history of the world without mentioning it.

Re: An opinionated history of programming languages

#60

Anyone care to explain what template void recurseFillChildren(CurTy &E) { using PackTy = std::variant ; using TyL = std::variant_alternative_t ; static_assert(std::is_same_v ); using TyR = std::variant_alternative_t ; for (i32 j = 0; j ()); if constexpr (i + 1 (E.Children.back()); } }; does, and why it can't be translated into Rust?

I used to know C++. But not sure what's happening here.

This is me too and sometimes I feel like the language is going in two directions. The academic / scholar path where people show off unreadable C++ like this and the business path where professionals that use a subset of the language (mandated by corporate code base or teams) that are competent C++ developers but maybe not writing this complicated C++.
Post reply on HN