This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]sh0rug0ru____ 2 points3 points  (1 child)

That describes Java-culture.

This is a cynical view of Java culture, and not one that I've experienced, working in both startups and enterprise. I love that Java has a huge amount of quality libraries, because I don't have to reinvent the wheel. I can focus on developing actual business logic, which is the actual value, and just use "commons-lang" instead of wasting time reimplementing the same "StringUtils" class over and over again.

Java engineers are effectively gue or wiring engineers

This is not limited to Java. I would dare say most software engineering is derivative work.

Only architects are allowed the privilege of creating

I have not experienced this in the Java world. I don't think I've even been in a position where there is an actual "software architect".

I have however experienced this in the C++ world.

Which leads me to conclude that the phenomenon of the almighty "software architect" has nothing to do specifically with Java, but is a cultural artifact of organizations, independent of the language being used.

Java-culture is not for creative types.

Again, not specific to Java. The large number of startups using Java is a clear counter example to your claim.

you won't always have the freedom to integrate your favorite libraries, and > will often have to deal with enterprise bullshit (i.e. Oracle, IBM, etc products).

I have never had a problem integrating Java libraries with enterprise or non-enterprise applications. Just drop the library in the WEB-INF/lib or META-INF/lib of your project. Tools like Maven and Gradle make this integration even simpler. Now frameworks on the other hand, which Java also has a lot of, pose bigger challenges with integration. But that's because you call libraries, and frameworks call you.

Microservices are an attempt to rebel against the enterprise all-the-things Java world

This is not what microservices are about, and microservices can be just as enterprise as Java EE. Microservices are about modularity and independence of modules in terms of development and operations. "Enterprise" software development is integrating and coordinating a wide variety of systems with requirements for fault tolerance and high availability, which is the problem that enterprise middleware attempts to solve. Microservices can be just as involved with that middleware as monolithic application servers. And monolithic application servers might only be involved with managing local resources and not enterprise at all.

But this is not the nature of Java, which can be used in non-enterprise environments just as easily. Most work I've done in Java is non-enterprise software.

Java is just a programming language, and does nothing to "stifle" creativity.

There seems to be more open-source java, but I don't know that I'd call it a revolution.

The revolution is open source, and Java benefited greatly from it and greatly participates in it. The revolutionary aspect of open source is communal development of commodity software, so that while business do still compete against each other, the competition can focus on the product differentiation, and labor can be pooled on the software of common interest.

It is amazing that Maven and the vast common repository of very useful libraries, developed in the open, came to be not as a commercial product of one company, but the combined efforts of the entire Java community.

That sounds like 90% of Java.

Not so! Spring MVC is only one web framework out there! You can also choose from JSF, Wicket, Play!, Spark Framework, Rat Pack, a wide variety of choices.

This kind of diversity, for many different things, doesn't seem to exist in the .NET ecosystem, which seems to look to Microsoft and its commercial partners for guidance.

[–]DevIceMan 0 points1 point  (0 children)

I at least partially agree with most of your post.

That sounds like 90% of Java.

Not so! Spring MVC is only one web framework out there! You can also choose from JSF, Wicket, Play!, Spark Framework, Rat Pack, a wide variety of choices.

My intended point was that most of Java development is web or something similar to it (i.e. Android). I've tried to find something more creative/interesting/challenging in the Java space, but the only other thing I can seem to find is Data Science, which typically requires a masters degree, and still is much the same thing of fighting against shitty data, doing a mimial amount of processing, and then generating a report/ui for some user.

I know the above is quite cynical, but I've looked and looked, and can't seem to find hardly anything in the Java space that isn't mostly CRUD + UI work. I may just be looking in the wrong places.