3 ms·
In some ways the Java philosophy seems like the antithesis of the Unix philosophy. Instead of a lot of small, fast, composable tools that do one thing and do it
by dcolkitt 7y ago
In some ways the Java philosophy seems like the antithesis of the Unix philosophy. Instead of a lot of small, fast, composable tools that do one thing and do it well, Java culture mostly promotes giant self-contained systems that capture everything in a sprawling OO type system.
This distinction is reflected in even small design details. For example Java programs are comparatively slow to boot up. If you're mostly used to the Unix way of repeatedly piping the STDIN/STDOUT of small utilities in an interactive command line, this is painfully inconvenient.
But if your workflow involves a monolithic server that manages every component of the business logic in a single process, then 5 second boot times aren't really a big deal. Because maybe you bounce the server once a week at most.
- zten 7y agoYes! Things like Spring Boot are actually a reaction to the days of Java EE and the web of Java-centric technologies. This always confused me as a newer developer. Vendors competed with each other with different JavaEE implementations (WebSphere, Glassfish etc) that all conformed to the same interface and provided everything including the kitchen sink, but what really differentiated the products were vendor-specific features that require you to go outside the interface, but if you tried to use that stuff, another senior developer would tell you that we can't marry our implementation to a specific vendor... meanwhile, literally every company you go to uniformly uses Spring and Hibernate, and both will inevitably require you to not pretend that they're dumb implementations of javax.inject and javax.persistence.
- imtringued 7y agoAnd Micronaut is a reaction to Spring Boot bloat... And GraalVM native image is a solution to Micronaut bloat... When does it finally end?
- pjmlp 7y agoTHE UNIX FOSS philosophy, hardly seen in commercial settings.
- dionian 7y agoback in the day when i started java, which was its early days(90's), we didnt even have a package manager type solution for java libraries (i.e. maven) - UNIX had a massive head start on java in some respects
- oftenwrong 7y ago5 second boot time? Most Java programs I have worked on start up near-instantly. Small programs can be written in java. It's a general purpose programming language. You could write grep in java.
- aembleton 7y agoHave you worked on any that make use of a framework that uses lots of reflection such as Spring?
- oftenwrong 7y agoI have avoided Spring as much as possible. Performance is one reason. But I thought we were talking about Java: "For example Java programs are comparatively slow to boot up."