Hacker News new | past | comments | ask | show | jobs | submit login

We would not have Amazon, Netflix, Youtube, Facebook, Google Docs, Deep Learning, name any other modern software technology or product, if we were still writing and optimizing everything by hand in assembly or C. Those "2 to 4 orders of magnitude" that are "sitting on the table" are actually being used to make it possible for developers to work at a much higher level and be much more productive.

I totally agree with your first paragraph, though.

I disagree. The slowness of these languages is mostly uncorrelated with increases in productivity. People only think there’s cause-and-effect here because they haven’t seen counterexamples, because the trend in language design for 25 years has been to make slow languages.

They haven't seen counterexamples because there are virtually none. If what you said was correct wouldn't there be many examples of big bodies of code written in a language like C? (And you can't say "linux kernel" - low-level code needs to be written in a low-level language, in order to communicate with the lower levels like hardware and controllers and such. There is a practical reason to write that in C.)

> because the trend in language design for 25 years has been to make slow languages

No one sets out to make a language to make them slow. The trend is to make higher level languages. Do you really think that there is no reason for it besides novelty and coolness factor?

I think the point that the comment you're replying to is trying to make is not that big complicated software engineering can be done in say, C with similar levels of productivity to say, Java.

He's instead saying that it's very much possible to build a language with a similar level of abstraction/ergonomics to say, Java, or Python, or C#, or whatever but with similar performance characteristics to a lower level language like C. And we are starting to see this - there are languages like Rust or D which are (at least to my eyes) much less arduous and foot-gun prone than languages like C or C++ while having similar (or better) performance.

Of course there's also Jai, but I think we should remain unbiased here :P

As an aside though - I think some of those orders of magnitude of performance gains could be had by just writing better code in your existing high level languages. (At least in my experience with enterprise software dev).

The trend is to make solving problems easier for the untrained; giving the heavy lifting to the machines, making the machines slower for the actual task at hand. Nobody is actually targeting the experts who will love to have more power over safety

This won't be popular here, but maybe the economics work against the experts. If most problems out there can be solved with mediocre interchangeable cogs much faster than with the available pool of experts, the cogs will win long term.

So far, reality seems to confirm my intuition.

I do not disagree with you here. In the economic (real) world, "better" is the enemy of "good enough". In the hacker world, the craft is appreciated more.

> you can't say "linux

Can I say "pretty much all of Linux userspace"? Or Java VM? Or Gnome?

We would absolutely have all those things still writing in C, the biggest difference between C of 30 years ago and modern Java are _libraries and IDEs_, not higher level programming. Those things you listed are pretty much all Java, and Java doesn't really provide any "higher level" thinking other than forgetting about memory management.

A lot of optimizations left on the table have nothing to do with manual memory management, and have everything to do with "eh, let's just the query the database again, that'll shave a day off the schedule".

Why exactly do you think we have all these things for modern languages and not C despite its incredible head start?

Answer that and I get the feeling you’ll understand why your current thinking is so misguided.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact