19 ms·
My problem with Java is exactly this. I've avoided it my entire professional life, no matter its promises or success stories. I'm not saying Java doesn't work,
by artyom 3y ago
My problem with Java is exactly this. I've avoided it my entire professional life, no matter its promises or success stories. I'm not saying Java doesn't work, but makes my daily life as a programmer miserable.
But there was a period when Java paid the bills, so I got proficient at it. Jumped ship as soon as I was able to.
I still don't know if there's any other language with that amount of "ceremonial syntax" out there.
- kagakuninja 3y agoUsed Java 15 years before switching to Scala. Never wrote a FactoryFactoryFactory. Not sure if I've ever written a FactoryFactory, maybe once for some obscure reason. As annoying as Java is, please don't mistake pattern over-engineering with the language. One could choose to do the same things in any OO language, like C# or C++. And as someone pointed out here, there are similar obscenities in the FP world, they are just obscured under higher-kinded types and algebras.
- computerdork 3y agoI agree. Yeah, as most people here know, C# is Microsoft's version of Java (they used to say if you know one, you pretty much know the other, although have diverged a more as time progressed). So to some degree, most of the problems of Java can be found in C#... ... although you alluded to one problem that Java has. Its frameworks were developed during the height of design patterns and many (like Spring) are bloated or overly complex or not worth the trouble (and actually, I think design patterns, when used very carefully and in truly useful situations, can be fantastic).
- vips7L 3y agoSpring is not Java. I haven’t worked on a Spring app in the last 10 years. There are other frameworks like Quarkus, Helidon, or Micronaut which all have a modern design.
- computerdork 3y agoAgreed. And actually, realized I screwed up what I was trying to communicate in my last comment. What I was trying to say is that Java and C# are at their core basically the same language, and no one is calling C# bloated and syntax heavy. Yeah, actually, I like Java (it gives application devs just the right amount of control) and think to save it, needs to purge itself of Spring.
- artyom 3y agoI don't disagree. Java as an object-oriented strongly-typed JVM-based language may be beautiful as theory. But in practice "FactoryFactoryFactory" (*) is commonplace across codebases, frameworks, libraries, etc. Java in the real world doesn't happen in vacuum. (*) I know it's an extreme example, just kind of trying to make a point succinctly
- za3faran 3y agoI've used golang at an employer who invented their own "application framework", including dependency injection and hooked up to the rest of their libraries, including RPC side car and whatnot. Let me tell you, that was not a pleasant experience at all. And given golang's inherent verbosity, it made it even more ceremonial that what you probably were exposed to. Using a modern Java framework would have been such a superior approach. And it's even better now with records, pattern matching, virtual threads, and string templates (in preview).
- peterashford 3y agoThere are no FactoryFactories in Java or its standard libraries.