4 ms·
This is a great article but... it may be just me but I'm allergic to the word "modern". I feel it's a word trying to manipulate my emotions (who wants to be out
by adrianmsmith 4y ago
This is a great article but... it may be just me but I'm allergic to the word "modern". I feel it's a word trying to manipulate my emotions (who wants to be out-of-date?) without actually contributing anything objective to the discussion. For example the sentence
> A modern language that is aiming for performance should take this very important aspect of language design into account.
could have been rewritten as
> A language that is aiming for performance should take this very important aspect of language design into account.
and been clearer and more objective for it.
- b3morales 4y agoWould "contemporary" work better for you? There certainly is a cluster of languages that have developed and gained (more or less) traction in the last 10-15 years. I've even heard it referred to as a "generation" -- specifically I think it's the fifth. Rust, Go, Nim, Clojure, Swift, Elixir; to a lesser extent, Zig. I'm probably forgetting a few. (We might also include Crystal or Pony though I'm not sure they are widely used at all. And Hare is an open question.)
- jhbadger 4y agoUnfortunately that's another word that dates itself. Think of the "Contemporary Resort" in Disney World. It has its charm to be sure, but it is very much a period piece evoking the early 1970s when it was built. Every time thinks it has the definitive opinion on design whether architecture or programming language design. History says otherwise, and it is unclear if any actual progress as opposed to simple shifting fashion is responsible.
- ssivark 4y agoI think Julia (built around multiple-dispatch) also ought to be mentioned in any discussion of generic programming in contemporary languages.
- ayende 4y agoA better term might be state of the art, but that has its own issues. In this case, I mean, recent
- mncharity 4y agoI suggest "modern" here is part of a stronger claim. That if a language doesn't do X, it is not "modern": It doesn't reflect current understanding of best practice, reasonable expectations, etc. It's a failure of due diligence, not an engineering tradeoff. For example, languages of a certain generation didn't have community archives. Python was born at the transition, and suffered for years with multiple dysfunctional ones. Ruby got gems because of that "don't be Python" cautionary tale. A language of the current generation, putting forth that older story of "people can just put up their code whereever, and no doubt someone(s) will likely make a list(s) of those" might reasonably be described as "not modern". Software engineering, and language design, reflect a great deal of "you say we've known how to do this better for years... but, well, shrug". Ratcheting up the bar on "modern" seems one way our community achieves its oh-so-slow progress. With an emotional vibe of "open sewers on streets, regardless of their historical precedence, low build cost, and current prevalence, are something we just shouldn't be doing nowadays."