Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Those generalizations about why change is hard can be applied to any change in every field. Ideas are always decades if not centuries ahead of their implementations. Not even ideas, but proof of concepts too.

So lets talk specifically about software. The biggest problem that prevents moving forward are platforms and companies. Yes, businesses and organizations are usually the biggest factor in dampening progress because they have so much mass it influences everything around them. But you would think that with the low barrier to entry in software, anyone could just spin up some OSS project and it would quickly trickle it's way through. Even slow organizations are often quick to adopt new tech in certain conditions. There were fintech companies that adopted Docker really early on. But it's usually something that's isolated.

It's platforms that hold us back. The reason we don't see huge jumps in things like functional programming is because that stuff is great for parallelism, and we don't see jumps in parallelism because the OS, or game engine, or drivers, or chips have poor support. We could have better functional languages if browsers decided to support more functional principles in ecmascript, or even some other scripting language. We don't have all the cool programming stuff because it's piles of abstractions with groups that don't want to coordinate.

Sure there are other factors - there are cultural issues that lead to programmers making bad decisions and writing bad code. Java for example was a good language that got ruined by horrible enterprise culture. It's not like people didn't point out the flaws early on, but they got ignored. Lots of people took microservices are a good idea to mean "everything must be a microservice". But even then these problems are perpetuated by companies that mishandle their platform. If companies made user guides clearer we wouldn't have these issues. Not only is the communication bad, but it's often in arcane places. To figure out how to use something you have to read through github discussions or follow mailing lists to get useful information.

If rungs to your ladder are broken, you're not going to be able to climb very high.



Java was a good syntax. The language itself had way too many limitations back when Sun ran it, for really dumb reasons proffered by too smart for their own good people. I was sadly paying attention to the wretched arguments about how there was literally no way to reasonably make first class functions work, or closures, or value types, or escape analysis, or any of the million things that C# just said yes to from day one which worked out fine. It was a lot of edge case kvetching that really needed a dictator to cut through, but Sun were terrible stewards and let the worrywarts run the show.

The enterprise culture could I guess be blamed, but Sun was a shite enterprise company when it came to financials, you'd think MS would be much worse in terms of command/control but C# ended up as a damn good version of Java, and once Oracle grabbed the ball hairs Java got pretty great. So it's not the whole problem.


I did my time with Java back in the 1.5 days.

It was not a good syntax. It felt, as they say, like a battle with the compiler.

I originally learned on Pascal, C, and C++ in college, so it's not like I was natively biased against C-like languages.

Discovering Python was like a breath of fresh air, at the time.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: