41 ms·
I'm sorry if 25 years of experience in Java programming doesn't seem a lot to you. Given it's almost as long as Java has been about, and I've worked at EA and
by SillyUsername 4y ago
I'm sorry if 25 years of experience in Java programming doesn't seem a lot to you.
Given it's almost as long as Java has been about, and I've worked at EA and other companies full time as a mobile server side architect, am an open source contributor (albeit not a popular contributor, but one who codes in 4 languages regularly) perhaps you might like to reconsider my experience as sufficient.
Java has a lot of required infrastructure, typically Spring these days, which brings with it all the boiler plate. Spring Boot is an "opinionated stack" (Google it) which basically is needed because _there is so much configuration required_ due to its enterprise level design, you can't just strip Spring out and have Java serve a basic 200 RESTful endpoint in the same footprint as other modern languages.
Additionally most projects typically include a lot of legacy mis-steps or third party Apache libs that have added bloat (3-4 logging libraries in a single project not uncommon, 2-3 Date apis, numerous XML or JSON parsers etc etc). So while code on the surface seem compact, in actual fact it's built on bloat. And my God the stupid FactoryFactoryFactory antipattern and similar over-engineered crap (I'm ashamed of the neckbeards of my age that actually thought this was a good idea).
In contrast TS (or JS), for server side do not require boilerplate, and the syntax lends itself to near native JSON handling removing the need for heavyweight parsing of RESTful or GraphQL endpoint arguments and responses.
Then there's Serverless... Java cold starts in themselves are still a joke, Java is clearly better when it comes to batch work and warmed up, but need a quick small AWS Lambda to do something, a true one purpose "microservice" and TS will be both shorter to write and quicker to start, moreover it's half the cost owing to memory and CPU overhead (there are cloud metrics out there to prove this) but Java is more performant and we're talking about streamlining here so I've gone off topic.
If you're a Java fanboy, like I once was, you'd do well to spend some time in other languages, not just to play in some small projects, then you'll come back to Java with a different perspective.
- vips7L 4y agoFWIW I wasn’t personally attacking you. I was just trying to make sure you provide evidence of something being bad when you claim it to be bad. That being said I think your experience isn’t representative of the ecosystem today. Spring is not Java. It is not a required dependency. In the last 10 years I haven’t worked on a single Spring application. There are plenty of alternatives with modern apis: Play, Quarkus, Micronaut, Helidon, Javalin etc. > Additionally most projects typically include a lot of legacy mis-steps or third party Apache libs that have added bloat (3-4 logging libraries in a single project not uncommon, 2-3 Date apis, numerous XML or JSON parsers etc etc). Left pad, right pad, isNumber, isArray? I’ll give you serverless, but I’ll repeat what I said in other comments: languages are about trade offs and use cases. They don’t have to be the one language to rule them all.
- peterashford 4y agoSome clunky frameworks are written in Java therefore the language is bad. Great argument
- kaba0 4y ago> Spring Boot is an "opinionated stack" (Google it) which basically is needed because _there is so much configuration required_ due to its enterprise level design And more often than not you do want to have a whole toolbox available. How long will it take for you to add X to your TS microservice? Finding a dependency that looks somewhat stable (which will already bring in half of npm packages) is already hard enough, and my experience has never been too great with the JS ecosystem. It has a few gems among a trillion low-quality, always breaking shit. Also, most newer project definitely don’t bring in datelibs, as the java.time package is very great (and was actually “brought into” the standard lib from a popular library, which is how it should be). That overengineered bullshit actually comes from C++ of the time, it just probably didn’t segfault in java and thus higher levels of abstractions could have been achieved in the latter, sticking the concept to java, but I fail to see again, how it has any relevance. Come on, JSON parsing is like one library - that not being available as is is not a problem at all.. Re: serverless. Honestly, is it really as popular a deployment method as I see it mentioned all around? Like, I can’t imagine a serious web app using it for anything besides converting images, videoes/etc, any you ain’t gonna use TS for that either. Coldstart still matters, but it is way overhyped. So.. how exactly TS is better? If you claim to “spend some time in other languages” at least mention something on the language side that would somehow cause a difference. TS is not a paradigm-changing language at all..
- pjmlp 4y agoI love the coding Java in C++ critic, when what Java designers did was adapt Objective-C semantics to the most common C++ programming patterns pre-1996, in a safer package, and GoF book used Smalltalk and C++, published about two years before Java came to be. While, Java EE is a pivot from Objective-C framework, from the collaboration between NeXT and Sun, Distributed Objects Everywhere. It is like people don't get history of programming languages.
- krzyk 4y agoI'm Java fanboy, but I look at other languages. Python is nice, Scala is great. But JS (and TS as a result) are amalgamation of different features pushed together by different browser vendors. The resulting code is unreadable gibberish, and support in any IDE is almost non-existent because of the dynamic nature of that language (similar to python) and finding usages almost always needs to be done using string search. I would understand any other language to be better than Java, but Javascript is in same line as PHP of bad.