Live data from Hacker News

Java Developers

nsainsbury.svbtle.com

121–130 of 321 posts

Re: Java Developers

#121
I 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

#122

Earlier 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…

Just had a look at jDBI and it doesn't exactly look like a simple library to me. There's a lot of run-time annotation processing.

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

#123

I 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.

> Java developers are learning (or migrating to Scala/Groovy/Clojure)

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

#124

I 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.

I think the commentator should read the article. The author does not once mention EJB. The problems he describes are endemic to all kinds of libraries and frameworks and are VERY much a part of most shop's interpretation of "modern" Java development.

Re: Java Developers

#125
post #45

Earlier 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.

It is possible to use OOP without taking the AbstractFactoryInjectorBean train all the way to the last stop.

Re: Java Developers

#126

Earlier 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…

Bootstrapping any tool is going to look that way. To compile gcc you need a C compiler don't you?

Re: Java Developers

#127
post #74

Earlier 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…

These scalable messaging systems...we have those also. Also C++ mostly. I would be surprised if Google was very different.

Re: Java Developers

#128

Earlier 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…

That's a really useful insight. What particular problems did you run across in Python that Java/C++ handled better?

Re: Java Developers

#130

Earlier 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?

Sidestepping much? We are, obviously, not speaking about a natural language here.

I think this is an example of an hierarchy without a purpose.

Pointless OO, what's not to love here..

Post reply on HN