7 ms·
> Java (and JavaScript) are too weak. No, they are not. People have built, and are still building, amazing products using plain JS. They are also doing so usi
by usrbinbash 3y ago
> Java (and JavaScript) are too weak.
No, they are not.
People have built, and are still building, amazing products using plain JS. They are also doing so using very simple, lightweight frameworks.
Abstractions are useful and can increase productivity.
The problem is, abstractions have a diminishing return. Using more and more of them stops being useful, and starts becoming detrimental.
But, alas, doing so creates the illusion of productivity, because look at all that code I am writing which doesn't actually solve the business problem, but satisfies the abstraction! Look at how amazingly tall my tech-stack tower is, and nevermind all the SRE hours this monstrosity eats, it's state-of-the-art after all! It also makes people feel very smart, because they learned how all these abstractions work, even though nearly the only application of that knowledge is "how to use these specific abstractions". It also creates moats, which a lot of people seem to like (cue "Looking For Frontend Dev, minimum +6 years experience in framework-that-came-out-last-year" - Joke).
And lastly, "big tech" are using these abstractions, so "This-Is-The-Way", and nevermind that these companies exist, and have to solve, a completely different problem space.
- hurril 3y agoFind me one company that uses either of the languages without a framework and you make your point. I'll wait.
- usrbinbash 3y agoDone, the company I work at does in several front end applications. Wow, that didn't take long at all. Also, take a look at this: https://news.ycombinator.com/hn.js https://news.ycombinator.com/hn.js That's the JS that powers this very well known, and very widely used website. It's all of 152 lines, including whitespace. And it uses plain Javascript. It's so small, and so simple, it doesn't even need to be minified. So in conclusion, no, JS isn't "too weak", and neither is Java for that matter, and yes people can and are building great products with plain JS. And I write that as someone who really despises both of these languages.
- hurril 3y agoBah, cheap and weak. But sure, the hill is yours, strong warrior.
- usrbinbash 3y agoSo my arguments are pretty damn solid. Glad that's sorted out.
- hurril 3y agoNo, dear Internet adversary. There is a reason why the framework landscape looks the way it does. You can see proof of my point in every job ad there is and frankly, I'm quite disappointed really. Cool companies and interesting ideas get solved by using 19 century tech, so the technical state of the art remains where it has been since forever. This makes me bitter. I constructed my own DI frameworks in the early 2000:s when I did Java. Trying to find interesting places to work now means that I get to work in new codebases that look exactly the same as they did 15-20 years ago. Why is that? Have we learned nothing? I honestly don't even understand your position here. Are you trying to claim that Java is as useful for a normal team of software developers without using Spring Boot? My first 10 years of Scala, I never even once thought about looking for a lightweight framework for managing shared state, DI and/or configuration management. I'll happily concede that working with ZIO is a dream, however. But it is truthfully not needed the way Spring Boot really is for Java to be modern and useful. Same goes for JavaScript in the browser. It isn't really about the lack of powerful tools at your fingertips, it's that you cannot make them in pure Java. You have to "cheat" but resorting to an emulation layer so that you can apply transforms and abstract lifecycle concept. We called them cross cutting concerns in 2003-2004. As in: how do you correctly (read: typesafely) construct a unit of work, correctly configured, with the correct dependencies and correctly interacting with caches and databases for all the 4000 features? In Haskell, you'll easily solve it with a few functions, the usual combinators and the reader monad. In Java, this is Spring Boot quite literally. You need this stack to traverse ground. Without such a type system and the ability to abstract over functions, you either invent it yourself with tests instead of types and adapters/bytecode weaving/code generation instead of functions and monads or you use a framework. Both work and probably work just as well. Without the framework, you have to make it. And there is a basically 100% proof of this in Job Ads. This is what I am critical of. The fact that you want to win over this because your unmentioned company has several frontends that you claim don't use or invent any frameworks is just weak sauce.