As far as the carbon footprint, well, yeah, it depends. At Google I remember a friend talking about how he cringed whenever he added more code to the pipeline that ingests the entire internet. He said that he wondered how much extra carbon was release into the atmosphere just because of his stupid code.
As for numpy, we are seeing that loops are stupid and Iverson and APL were right. :-)
I wish companies were under more financial pressure to actually track and mitigate this. (hint hint, carbon taxes)
Funnily enough someone said that exact same thing 10 years ago in that thread:
>* Functional programming / dynamic languages will go out of fashion. People still using them will be judged as incompetent programmers by the people who moved on to the new fashionable programming paradigm(s). At the same time, huge corporations will embrace functional programming / dynamic languages and third world universities will start focusing on them in their courses.
Wrong then wrong now.
While pithy, that's not actually an interesting rebuttal.
You should elaborate, especially since "huge corporations", namely Apple, Google, and Mozilla (I guess?), are the ones pushing Swift, Go, and Rust, respectively.
So what happens is that people gravitate towards languages which are pleasant enough to work on to try new ideas in.
The progressing of bash -> awk -> perl -> python happened for a reason. Hell we're even seeing people use lisp like languages unironically for the first time in decades.
More powerful languages enable talented developers to be more productive individually, but it's hard to teach all the other developers about the new and interesting abstractions that the powerful languages enable, and it's impossible to hire for them directly. This limits velocity.
And it's not just huge corporations, it's any company which is trying to scale from 10 to 100 developers; where you're hiring continuously, where there are too many other developers to efficiently rely on ambient learning.
Cloud spot pricing is I think one example where things that can be batched and deferred will be cheap even in a energy-decline future.
This is assuming we don’t sink so far as to lose our productive capacity for energy infrastructure altogether. Depends how bull/bear you are about the whole thing I suppose. In that scenario, there’s also gonna be no market to sell whatever you’re coding to.
In overall total effort needed to make something robust, something like rust will beat something like ruby, because the dynamic language-ists compensate via a larger test suite.
JS really shows what's possible in this field with some benchmarks even outperforming c++. This space of expressive yet fast languages is a gap that remains to be filled and will probably be by 2030, sadly it's a bit of a chicken-and-egg situation because you don't only need a good syntax to become popular, also a healthy ecosystem around it. What we will see is probably not any new language but rather that existing languages from both sides of the spectrum converge more towards the middle ground.
Like yeah, you can make an interpreted dynamic language that's pretty neat, but you can also make something like go, swift, or Julia that jits and also captures 90% of that ease of use while significantly reducing your hosting costs/energy consumption.
Going forward I think static compiler inference will be the future of language design. Either for safety like in rust or for convenience like in swift.
And we can already see pitfalls in the interpreted world of python where the wrong implementation, like using a loop instead of numpy, can lead to devastating performance impacts. Looking forward, something like this seems as outdated as having to manage your 640k of executable space in DOS: an unreasonable design constraint caused by the legacy implications of the day.
My prediction is 10 years from now we'll look at interpreters and language VMs as relics from a simpler time when clockrates were always increasing and energy was cheap.