Hacker News new | ask | show | jobs
by Animats 2510 days ago
The big mess seems to be in the CSS/Javascript space, where fad frameworks come and go rapidly. There's more change than improvement. Visually, most web pages haven't changed much, and web development has become much harder.

But we can now scroll forever. Slowly and jerkily.

On the language front, we really should have had a replacement for C/C++ by now. We don't. D never got traction. Go is mostly for web back ends, where it has really solid libraries heavily used within Google. Rust looked promising but was taken over by the "functional" crowd and is doomed to Haskell obscurity. C++ itself is now trying to fake ownership tracking at run time, with mediocre results. The abstractions always leak because too many old things need C pointers. Java was supposed to replace C/C++ but became tangled in its own libraries and ended up replacing COBOL.

There's been some progress. There's now grudging agreement that the way to go is type declarations with some type inference. Having to type everything is too much of a pain. Not typing anything makes for unreadable programs. Function definitions really do need type info. So C++ added "auto" and Python added "advisory typing", moving both towards the center. Which is about where Go started.

2 comments

>Rust looked promising but was taken over by the "functional" crowd and is doomed to Haskell obscurity.

I think that's unfair and inaccurate. Rust is going to remain niche because most developers are happy with garbage collected languages and have no need to switch to Rust. Rust will eat a bit into C++'s domain, but I don't think it'll ever take over the world. GC is good enough, works great now and worked great 20 years ago.

Theres many applications where any unexpected garbage collection pause is absolutely detrimental. Even pauses when the kernel cleans up memory cache during a Malloc are detrimental.

Garbage collection is great until then.

Your post doesn't contradict the post you're replying to. There are obviously many cases where it is no desirable to have GC, but there are even more where GC does just fine.
> Visually, most web pages haven't changed much, and web development has become much harder.

Both true, yet engineers keep switching to newer frameworks and libraries anyway, rather than sticking with what they have and just building stuff.

The question then becomes, assuming they are rational, why?

I'll propose at least one major reason: efficiency. What's improving isn't what is possible to build with these technologies, but how effectively those things can be built, to a reasonable degree of reliability, in the same amount of time, even accounting for the greater difficulty in learning and using the technologies.

That's where progress is being made here. Not in the what but in the how easily, how quickly, how well. You could do anything you can do in React (say) with vanilla JS, imperatively updating the DOM with cumbersome APIs etc. The question is how much longer would it take / what more could you have built in that time using React.