5 ms·
I am probably part of the silent majority, at least until this comment. Be aware that my comment is focused on business. What you do as a hobby or a side projec
by gettingitdone 4y ago
I am probably part of the silent majority, at least until this comment. Be aware that my comment is focused on business. What you do as a hobby or a side project is out of scope.
The debate around languages often focus on syntax differences, as if they alone would make a huge difference. We need to consider the eco system as a whole.
Many have probably read the "blub paradox". The context of that article is his experience from building a product in the late nineties, when the eco system was so much smaller than what we have today. In a world where you have to invent your own frameworks and libraries to get things done, the article makes sense. I don't doubt that you will benefit from a powerful language, when you need to make something truly novel.
Today we are in a completely different solution where 90% of web startups should use one of the existing frameworks and libraries to build upon, rather than making your own. It's basic "plumbing" compared to what we used to do 20 years ago. For the remaining 10% where they need to (re)invent a database or framework, a powerful language may have advantages when your product is mostly code.
Another tendency caused by the bubble effect of HN/Reddit, is that many move on to different languages and is left with their impression of a language as it was years ago when they last used it.
One good example of this is Java. If you asked me 10 years ago, I would say that Java had stagnated. If you ask me today, I will tell you of all the improvements that have been made and many more planned. A lot of the arguments against Java is based on old articles and experiences that are no longer valid.
I am also wondering if some of the dislike is also caused by many learning it in school in an environment that has little to do with real work, but that is a different rant.
I'm not saying Java is the coolest language out there, but the massive amount of open source and battle tested frameworks like Quarkus and Spring is a differentiator. I would argue that the "Blub paradox" of yesterday should be replaced with a "Bubble paradox", where the real work is done by pragmatic developers who use an ok language with an excellent eco system.
It is sometimes frustrating to read articles about startups who clearly should have chosen better. Everything is fine in the beginning, and they write blog posts about the success they had which is circulated within the bubble. After some time they need to scale up and implement functionality that is not supported well in their eco system. They then spend time on solving problems that seem novel to them, but is basically a solved problem in a more mature eco system. Instead of growing the product, they are forced to spend time on the "glue".
To paraphrase Breaking Bad: Are we in the money business, or the programming business?
If I have to bet on two startups, where one uses the latest bubble language and the other Java, I would bet on Java in 90% of the cases. I know that they will get things done. Perhaps even modern PHP would be preferable.
- orwin 4y agoI disagree only on your last paragraph. It heavily depends on what the startup is selling and it's customers. I would only take Java for a B2B onprem app. For anything else, I'd go with other languages.
- kefir 4y ago> only take Java for a B2B onprem app What's your reasoning? Java has one of the best ecosystems with lots of libraries and frameworks, especially for high-perf distributed applications (see Hadoop, Kafka, Ignite, Cassandra, etc). And there are plenty of developers to hire. So it is a good choice for most backends. As a developer I prefer C# (IMO the best general purpose language these days), but from the business perspective Java may be a better choice in some cases.
- marcosdumay 4y agoAs a rule, Java is not very productive. Yes, it has a lot of good libraries, and bad frameworks. The focus on code generation, distributed systems, and high complexity environments are all on the wrong side of starting something up. (One of those may be right after you are big, but then, Java isn't the best choice for any of it.) The one large selling point of Java, that is to help you enforce a minimum level of quality on code that lots of people change, is completely meaningless for a small team starting up.
- manuelabeledo 4y ago> As a rule, Java is not very productive. I don't see how this is true. Java has a great ecosystem all around for backend applications, which happens to be as focused as it can be, i.e. there are one or two big, high quality frameworks that everyone uses, and you're good to go if you stick to either of them. Also, every single cloud vendor supports Java as a first class citizen, so you get very low friction at CI and any step beyond it. > The one large selling point of Java, that is to help you enforce a minimum level of quality on code that lots of people change, is completely meaningless for a small team starting up. I haven't read this before, I must say it sounds a bit myopic. Let's say it is true. Then what's the point of starting with any other language? Either you are a hobbyist, or you need to plan for scaling up your venture; and given that your team is small in the very beginning, where are you going to get the resources to give your product a makeover or rewrite it in a different language?