5 ms·
For my money, Java is a pretty good language; there are only a couple of things that I think were real mistakes in the core language. And the JVM certainly perf
by johan_larson 11y ago
For my money, Java is a pretty good language; there are only a couple of things that I think were real mistakes in the core language. And the JVM certainly performs.
But the ecosystem around Java is very complex and hard to manage. Dealing with JVM configuration, webserver configuration, build system configuration, IDE configuration and God knows what else takes up all kinds of brain-space.
And every so often the community goes off on some crusade. Everything must be Design Patterns. Everything must be specified in XML. Everything must be a Bean. No, everything must be Injection. No, no, everything must be Annotation.
The Java culture really needs to learn the value of the simple and explicit.
- joelg236 11y ago> And every so often the community goes off on some crusade. Everything must be Design Patterns. Everything must be specified in XML. Everything must be a Bean. No, everything must be Injection. No, no, everything must be Annotation. You couldn't have described this better for me. This is my exact frustration with the ecosystem, and it's the only thing that keeps me from using Java as my default language of choice. The language itself can be used very well, just wish the tooling was more concise and functional.
- stcredzero 11y ago> culture really needs to learn the value of the simple and explicit. This is true for any programming community.
- paulddraper 11y ago"Compile times must be fast"
- dcposch 11y agoThis is my favorite thing about Go. All language arguments aside, Go coders are usually pragmatic and humble and Go code is usually simple and explicit.
- deleted 11y ago[deleted]
- epalmer 11y agoI'm lucky that I develop Java CLI apps that only I need to maintain and one other person. But damn there are days in which I scratch my head and wonder why I have to write so much code to do simple things. But on the other hand my best work has been writing Java apps. I have a love hate relationship with Java. I do have Java apps that runs 24x7, day after day without failure. I think I protest too much.
- iofj 11y agoWhy would you configure a webserver for a java process ? Just have every process include a webserver. At what address ? Well simple : any free address, then register the address you've started up on in zookeeper. Likewise, contact your dependencies by resolving them on zookeeper (this can be done using DNS if you want minimal changes. Protip: SRV records have both ip and port). Having the webserver is useful for reasons beyond just being independant of the webserver itself, like exporting metrics. Making the logs inspectable. Getting thread dump, inspecting current state, ...
- pjmlp 11y agoJust wait when Go EE becomes a thing. Then you will get testing frameworks, libraries each with its own generics workaround and cool interface spaghetti that looks beautiful in UML diagrams at the scrum wall room. People don't really get that before Java there was C EE and C++ EE, all with similar sins. One can change the language of the enterprise, but not what those architects do with them.
- johan_larson 11y agoI fear you are right. Go's simplicity, its pattern of having one and only one way of doing anything, is likely a product of its youth and unpopularity. As the years pass and its following grows, people will come along who want to do things differently, and the ecosystem will become richer but also more confusing. Perhaps the best thing for the language would be for it not to become too popular.
- jimmaswell 11y ago>there are only a couple of things that I think were real mistakes in the core language. Type erasure was a pretty big one that I've felt the impact of a few times in the small amount of Java code I've written (99% being school assignments). One of the reasons I strongly prefer C#/.NET as a language/environment. What I've tried of ASP.NET coding seemed nice.
- teh64 11y ago> JVM configuration This is the mother of all premature optimization. Other than maybe modifying heap size or setting client vs. server, most of the default JVM configurations work for almost everything. > build system configuration I actually find maven pretty easy to use, but maybe it's just that I am used to it. > IDE configuration I don't know what crazy IDE you are using, but both Intellij and Netbeans need very little, if any, configuration out of the box. > [Java] community goes off on some crusade As opposed to everyone else? /s
- randallsquared 11y agoTo combine the JVM configuration and IDE configuration points, out of the box on a new 16GB Macbook Pro Retina, Intellij (at least, as PHPStorm) will spend an enormous amount of time unresponsive at startup and periodically thereafter. Why? Because of two things: the default JVM settings it ships with starve it of resources, and the default validation settings have it trying to check everything under the sun. There's also the initial indexing, but I can live with that, since it enables beautifully fast jump-to-definition, which is hard to live without.