5 ms·
Am I the only one who sees no clothes on this article? I mean, it seems that the person who wrote it spends a lot of time thinking about programming and much l
by guard-of-terra 14y ago
Am I the only one who sees no clothes on this article?
I mean, it seems that the person who wrote it spends a lot of time thinking about programming and much less time programming; that's where he ends up with meta-ideas that are interesting but also mostly wrong.
Languages are substantially different. You don't (and can't) understand every concept under the hood to drive the thing. You can't add and substract features, they're interdependent.
- brudgers 14y agoLISPs allow features to be added. The under-the-hood concepts are very simple. It may be an error to see programming languages as technologically similar to computer hardware. But there's no Moore's Law of programming languages. It's hard to say that there are widely accepted analogs 45nm and 90nm fabrication. Instead, computer programming languages are like other languages. They are more or less appropriate for a particular task in a particular context. Clojure isn't objectively a more advanced LISP. However, it is more appropriate for concurrency. Particularly in a Java dominated context. Clojure primarily seeks to solve a different set of problems than Common Lisp. The C Programming Language is tailored for a different set of problems than ALGOL 68 or Fortran. Perl a different set than C. And so it goes. Languages are abandoned because they lack expressiveness relevant to the goals of the programmer not because a new language ships with 16GB and 5ghz.
- kd0amg 14y agoThe comment about the last 20 years also makes me twitch a bit. That sort of thing always makes me wonder if it's supposed to be about the state of actual usable programming languages or of recent PL research. Either way, the first two things I think of when asked about recent advances are substructural types (maybe stretching the 20-year limit) and higher-order contracts, and these are both available in things intended as general-purpose languages (Rust and Racket).
- jes5199 14y agoYeah, it's almost like he's making a definition that's impossible to satisfy: the changes in mainstream languages (since 1993!) don't count because the features already existed in academic languages, but the new features in academic languages don't count because they aren't mainstream.
- ajuc 14y agoAdding features to languages happens all the time. Closures were added to C++. Generics to Java. Classes to php. Many other features were added to various languages over time. I don't understand your objection.
- guard-of-terra 14y agoWhat I meant is that you never say "we had those ten features and we added five more, now we have fifteen". You can't really count features and derive something meaningful from that. Every other new feature is a game changer. Or sometimes it is barely visible.
- gtani 14y agoHe sort of concedes as much re: static typing https://twitter.com/laurencetratt/status/321612459741958146 https://twitter.com/laurencetratt/status/321612459741958146
- coldtea 14y ago>Languages are substantially different. You don't (and can't) understand every concept under the hood to drive the thing. You can't add and substract features, they're interdependent. All the above are patently false. -- Most languages in common use are NOT substantially different. Not just obvious things like Java/C#, or F#/Haskell/Ocaml/ML but even C# to Ruby or Objective-C to Javascript are not that different, much less fundamentally. -- For most languages a lot of good programmers can and DO understand "every concept under the hood" (VM internals, runtime costs, etc). -- And you sure CAN (and language designers do all the time) add and substract features. They add features from other languages and they remove some to create theirs. And then, when the reach version 2.0 of the language, they cherry pick and add some more features from other languages, or remove out-of-favor features.