Hacker News new | ask | show | jobs
by beothorn 5049 days ago
The verbosity of java allows an IDE like eclipse to exist. I agree that's very hard to program java without a powerful IDE, but there are a lot of things that you can do only with a static typed language and a IDE like eclipse. It's a fair trade. Could you ellaborate on the link between IDE dependency and the spawn a whole caste of very mediocre programmers? (english is not my first language, so sorry if anything I wrote sounds rude)
1 comments

Sure, I can elaborate.

The idea is that as a programmer, you have to have an intimate understanding of what is going on in order to make the machine do your bidding quickly and correctly.

But that mediocre Eclipse user I caricaturized does not have that understanding. He certainly knows how to get the job done for a certain set of tasks, but he does not know the details of how this is happening. Thus, he creates programs that follow "best practices", "conventions", "design patterns" and lots of automatically created wizard-boilerplate.

That might not be "bad code" mind you, but it almost certainly is not "great code", either. Thus, mediocre. And then these people create libraries that are mediocre and try to use only libraries that they can understand and that are hence mediocre. A culture emerges that is very consistent, but also very mediocre.

From what I see, knowledge comes from experience and study. An IDE doesn't magically separates you from the need to know how stuff works. What you describe is a unexperienced programmer, but those exist in any area, using or not a IDE. From what I understood you, your see a problem with code generated by a wizard or by an automated process and if that's your point I agree, but that's not how eclipse is used. Besides that, I don't think there is a link between bad code and IDE. You can't look at a bad code and say..hmm this code probably was written in eclipse, or at a good code and say that it was written with vi, because this connection does not exist.
I agree that an IDE does not separate from the need to know how stuff works. But I certainly know a few programmers who do not dare to think beyond what their IDE allows them to do. They use built-in wizards and refactorings, but they do not seek solutions that are not easily expressible with those.

Hence, their code is factored just the way the IDE would, even if there are better alternatives available. This is the kind of mediocrity I am talking about. (And by the way, you could go much worse than Eclipse at that)

I actually had quite a few discussions where the main misunderstanding was that we used different tools and thus thought of different things as "easy" or "natural". In one case, one developer argued that it would be a good idea to create a whole bunch of classes to encapsulate a problem space. However, creating all these classes really would not have been necessary at all, he could have accomplished the same goal with a much simpler list of functions. Thus, we ended up with a HUGE file containing some several dozen classes that no-one but him could navigate, because it was factored just right for his programming editor but was all but unusable for anyone else.

One developer even told me that he did not know how to write a correct if statement in C because his editor had a template for that. What my argument boils down to is that this kind of behavior is bad, and I have seen it becoming a sad kind of sub-culture in Eclipse/Java land.

That said, I completely agree that if used correctly, there is nothing inherently wrong with Eclipse or Java per se.

Refactoring can't create functionality. What you are saying is not compatible with the theory if entropy. Eclipse is a high level language running on the JVM, and not a bad one.