These days even the much hatted EJBs are POJO based and lot easier to work with. Not to mention Lambda support in Java 8 and the hybrid approach of Scala, my favorite.
Java Developers
121–130 of 321 posts
Re: Java Developers
#122Earlier quoted context omitted.
Interesting! The most important difference between frameworks and libraries seems to be the "don't call me, I'll call you" pattern. Frameworks call your code, while libraries get called by your code. It's easy to see why "don't call me, I'll call you" leads to unreadable code. A piece of code is readable if you can understand how it works, not just what it does, and a big part of "how it works" is figuring out the co…
There are several examples of simple libraries in Java that makes you realize it is possible to provide solutions to problems without the "culture" that predominates the ecosystem. For example Simple ( http://simple.sourceforge.net ) is a great XML serialization framework that does very well what it is supposed to do. And there are others I haven't used, but you look at the API and think, this is what I want. I was v…
Have a look at jOOQ if you haven't seen it yet. There is a pre-compilation stage which generates DAO for you and they can then be used with static type guarantees.
Re: Java Developers
#123I disagree with this, as a part time Java developer (I do C# most of the time). The points I disagree with: 1. OO is bad . Every paradigm is bad if you misuse it. If you build deep abstractions then you will hang yourself regardless. Some very elegant and simple designs can emerge from OO code, but only if you think about the problems first. The majority of pain consists of forgetting to do that step. There is no mag…
Some of the complaints about the over-formal language is a matter of taste, perhaps, but it does grate and is not a new complaint (see also: the Kingdom of Nouns rant). However Java developers are learning (or migrating to Scala/Groovy/Clojure). And there is hope -- the Play framework, for example, is an example of Java done right (imho). Spring 4 is moving in the right direction.
Scala can be used instead of Java to build systems, though when a Java developer uses it for the first time to build a system, that system will need heavy refactoring to make use of Scala's functional facilities. Groovy's really intended for use with Java, not instead of it, such as gluing Java apps together, testing Java objects, scripting Grails, and 20-liners for Gradle builds. I don't know how much Clojure's used to build systems in industry, though it's certainly my language for scripting.
Re: Java Developers
#124I think the author is out of touch with modern Java development practices. Any decent Java developer would have got exposed to POJO based development[1] by now. [1]Expert One-on-One J2EE Development without EJB - Rod Johnson, 2004 These days even the much hatted EJBs are POJO based and lot easier to work with. Not to mention Lambda support in Java 8 and the hybrid approach of Scala, my favorite.
Re: Java Developers
#125Earlier quoted context omitted.
> Once real systems (like UI frameworks) are written with FP, we can compare apples to apples. Until then...wtf? OO actually works well for scaling complexity, much better than toy immutable functions do. FP wasn't mentioned in the article. Criticism of OO doesn't necessarily mean embracing FP, as far as I know.
What other choice is there? Old fashioned procedural? Logic rule driven? Some "other flavor of OO but lets not call it OO" (e.g. component entities)? From a paradigm perspective, there are really only two in active contention.
Re: Java Developers
#126Earlier quoted context omitted.
Are you really generalising to an entire industry from the build procedure for a build tool? Why are you even building Maven in the first place? My experience with Maven has been: 1) Download and unzip 2) Run it and that's all that was necessary. Meanwhile on the fly dependency resolution is very nice and a feature of most modern platforms.
I think I already mentioned why Linux distros build the entire chain from source: they provide support for it, they need to be able to patch it and they can't take responsibility for binaries built in an unknown environment. However, I don't understand why you mix two things: maven concept and design (which is fine) with what I criticized: a build tool that depends on everything that it intends to build in the first…
Re: Java Developers
#127Earlier quoted context omitted.
OOP is well suited to UI programming because it is built around metaphor. FP doesn't quite work because UI programmers like to think in terms of buttons and windows rather than f and g. > Functional programming is often used to write server code that must easily parallelize and scale across cores, CPUs and clusters. Mostly because the FP paradigm is more obviously advantageous in that setting, but also because those…
> FP doesn't quite work because UI programmers like to think in terms of buttons and windows rather than f and g. This is because people have been educated in thinking in objects for thirty years now. This is again a result of history, not because of the qualities of OO over FP. Besides, there's no reason why you couldn't do that using functional programming. FP is not (necessarily) object oriented, but that doesn't…
Re: Java Developers
#128Earlier quoted context omitted.
Most of the Googlers I know writing Java code would rather not be writing Java code. They would prefer Python or even Javascript (and a lot of FP enthusiasts also), but Java is what Android needs so Java it is. I would be very surprised if Google was hiring many people who only knew Java or were even very enthusiastic about it. Perhaps the only language more reviled than Java in Google is C++.
I worked at Google for a long time. The most problematic language at Google was (by far) Python. Mostly because tools that would start out as small Python scripts would evolve to become large Python codebases that ended up being unmaintainable. There were several examples of unmanageable Python codebases at Google that got rewritten in C++ or Java. I'm struggling to think of examples of code going in the opposite dir…
Re: Java Developers
#129Re: Java Developers
#130Earlier quoted context omitted.
ArrayIndexOutOfBoundsException ... extends IndexOutOfBoundsException extends RuntimeException extends Exception extends Throwable Not exactly an abomination, but I would not call it thing of beauty
Most words exist in fairly deep ontologies also, is English an abomination?
I think this is an example of an hierarchy without a purpose.
Pointless OO, what's not to love here..