4 ms·
It probably comes from an earlier experience with a crappier Java. But Java 2, Java 5, and most of all Java 8 (and IMHO, a gradual attitude change from J2EE-sty
by galdosdi 10y ago
It probably comes from an earlier experience with a crappier Java. But Java 2, Java 5, and most of all Java 8 (and IMHO, a gradual attitude change from J2EE-style architecture astronautism to Guava-style DRYism) have transformed it into a very pleasant language to use, on a very mature, reliable platform, that also connects to other interesting languages like Scala. I don't know any other popular (popularity matters! a large ecosystem is very useful) language that is as well suited for making very maintainable, low defect codebases. (Although, I'm working on learning golang.)
Java's now-undeserved reputation is just a historical legacy now, but it serves a useful purpose: keeping people like you, who might compete, from using the best tools available. Strangely, I think Java can, at least for a while, count as a "secret weapon" the way Paul Graham described lisp once. (Or is the cat too far out of the bag already? Given how much software is still being unnecessarily written in languages like Python, Ruby, JavaScript that lack type verification, I think Java is still a secret weapon for now)
- jahewson 10y agoI would describe Java as verbose, inflexible, and outdated. While it's possible to write maintainable code, it's a real uphill battle. Core libraries such as Java2D are also pretty buggy... after all these years. Give me C# any day, or better yet, F#.
- plandis 10y agoAnd how much time have you actually spent writing Java code?
- galdosdi 10y agoIt's true (so I hear) that C# has been ahead of Java on this for a while, but I think the JVM is ahead of the CLR in terms of ecosystem. If you like F#, maybe try Scala on the JVM. Did you use Java 8 last time you worked with Java? And ideally, maybe something like lombok or scala case classes or protobufs to make value object classes easy to declare? Also, don't use Java2D then. There's better libraries for that. Maybe it's technically considered a core library, but I wouldn't consider it important