News for hackers. Stuff that matters.
Re:Why not just use an IDE if you want IDE features? by SwellJoe on Saturday October 01, 2011 @06:03AM (#3059755)
The best code I've ever read was written in emacs. The second best code I've ever read was written in vi. I can't think of code I've seen written in an IDE that I considered notably great code.

If the doohickeys your IDE does for you to improve code quality actually do so, I would expect to see evidence of it.

And, regarding your sad rant...The reason the web crowd (and many others) keep using those tools (though I don't understand the appeal of TextMate, in a world with vi and emacs), is because they are more productive with them than alternatives. One of the best Java developers I've known (famously so, he'd written some Open Source libraries that were in very widespread use), turned into one of the best Python programmers I've known nearly overnight when he got hired by a Python shop. And, while he occasionally lamented the loss of some of Java's tooling (mostly for testing and coverage and instrumentation of the running code), he used emacs for both languages.

In short, when I meet a developer that relies on an IDE, I have suspicions that they may be a cargo cult programmer, rather than the kind of programmer I want to work with. It may not be true, and I'm sure there are excellent coders working in IDEs. But, I can't really take your pro-Java/pro-IDE rant seriously, because I know what happens when good developers get the chance to work in a better language (of which there are many; Python and Ruby are among them).

Re:Why not just use an IDE if you want IDE features? by henrikschroder on Saturday October 01, 2011 @07:20AM (#3059846)
> If the doohickeys your IDE does for you to improve code quality actually do so, I would expect to see evidence of it.

...and then you bring up examples of superstar programmers. They are outliers, they'd be productive in whatever. That's not where IDEs do anything, instead you should look at average programmers in average companies with large codebases. That's where IDEs shine, because they can analyze large amounts of other people's code and hint you and guide you in the right directions when interfacing with it, without forcing you to read all of it.

Another improvement IDEs offer, especially when doing Java in Eclipse, is that you're always in a compiled state, and any errors in your code are highlighted while you write. You don't have to "context switch" to another mode where you run a compiler to check what you just written for syntax errors and other errors, and then bring that information back with you when you switch back to editing. It's all there, all the time, which increases your productivity, because it decreases the time you spend on fixing small errors, spelling errors, syntax errors, etc.

In short, when I meet a developer that rejects IDEs, I have suspicions that he may be a grumpy old programmer that just refuses to go outside his comfort zone.

I don't see a difference between someone rejecting a newer better language to stick with one they know, and someone rejecting a newer better IDE to stick with an environment they know.

Re:Why not just use an IDE if you want IDE features? by bmj on Saturday October 01, 2011 @07:34AM (#3059863)
So your critique of IDEs is as much about the language as it is the IDE?

As far as your Java programmer, how long did it take him to get emacs in a state with a similar amount of power as an IDE? I'm thinking about compiling, debugging, source control integration, code completion and API hints, and so on? I do a fair amount of C# coding at my day job, and I've tried to work exclusively in vim, and the productivity hit I take trying to get the conveniences of an IDE in vim pushes me to just Visual Studio and install vim emulation.

As far as other text editors go (Sublime, TextMate, Notepad++), aren't the existence of these just proof that programmers like to build things?

Re:Why not just use an IDE if you want IDE features? by stonemetal on Saturday October 01, 2011 @09:21AM (#3059999)
I would say there are two components to it. Language and project size. Java and C# where designed with IDE use in mind. I am not sure I would want to work in either without an IDE. For smaller languages like C and Python an IDE wouldn't be my first choice of tooling, the cost of using the tool just isn't worth the benefit provided. I could see switching to an IDE if the project got a little too large.
Re:Why not just use an IDE if you want IDE features? by arethuza on Saturday October 01, 2011 @09:37AM (#3060030)
C# probably was but I suspect it wasn't a factor in the initial design of Java - I don't even remember there being any IDEs for the first couple of years of Java being widely available.
Re:Why not just use an IDE if you want IDE features? by burgerbrain on Saturday October 01, 2011 @12:32PM (#3060335)
I would say that Java was designed to be used with committees. Basically a language to use if you're in a design by committee situation. IDEs were then introduced to give individuals their own "virtual design committees".
Re:Why not just use an IDE if you want IDE features? by bmj on Saturday October 01, 2011 @11:04AM (#3060152)
Agreed regarding C#. I've tried using vim as my C# editor, then switching to VS for builds and debugging, but I miss Intellisense too much (and with vim emulator in VS, I don't lose any of my keyboard efficiencies).
Re:Why not just use an IDE if you want IDE features? by Nick_C on Saturday October 01, 2011 @11:54PM (#3062009)
As a counterpoint, the way VS does autocomplete drives me insane. In the middle of a frenzy of flow typing, I have to move my hands away from the keyboard to the mouse to select which autocomplete entry I want. Aargh. It breaks the flow. (Although, I am using the Express edition so have not tried a vim emulator; perhaps their autocomplete is better.)
Re:Why not just use an IDE if you want IDE features? by stonemetal on Sunday October 02, 2011 @08:14AM (#3062665)
Those are the default settings you can turn off the popups and get all your auto complete needs from ctrl-space, and complete with enter.
Re:Why not just use an IDE if you want IDE features? by berntb on Saturday October 01, 2011 @07:17AM (#3059843)
I'm not going to argue against your points, but an alternative explanation is that Emacs/Vi(m) users have on average lots of more experience than the average IDE user.

(Otoh, IDEs aren't that new anymore. Those programmers might have more of a tendency to exchange the keyboard for a tie?)

My personal problem with IDEs is the screen real estate. On the same screen I get an A4 of shell and two A4 of code with Emacs, the local Eclipse users get at most 40 lines of code...

Disclaimer: I've gotten scared of judging anyone since I saw really cool people speaking at conferences -- and realized they use Windows. :-)

Re:Why not just use an IDE if you want IDE features? by henrikschroder on Saturday October 01, 2011 @07:37AM (#3059866)
The point you're overlooking is that with your shell+emacs solution, you NEED those windows, because you need to run your compiler in one window, and edit in another, and lookup code in the third, and maybe have a browser for the javadoc or other reference in a fourth.

With an IDE, all of that is in the same window, but in popups and overlays. It's presented differently, and the flow is different, so comparing lines of code on the screen is meaningless, it just shows that you haven't really gotten far enough into it that you understand how it is different.

Re:Why not just use an IDE if you want IDE features? by burgerbrain on Saturday October 01, 2011 @12:34PM (#3060341)
What you're overlooking is that with Vim, I can code in 80x24 or less and be perfectly fine. Try that with an IDE.. Of course I can also throw more space at it if I wish, and it's just that much nicer.
Re:Why not just use an IDE if you want IDE features? by berntb on Saturday October 01, 2011 @08:52AM (#3059959)
>>you need to run your compiler in one window

Uh, no. [edit: It is not only compiler/tests.]

I also have half a dozen tabs of shell, where I also keep documentation (perldoc, pydoc, etc). (Real Emacs users use emacs buffers for all their shell needs and documentation. I'm a wimp.)

>>comparing lines of code on the screen is meaningless

I have used IDEs (not exactly lately) and have seen people use them quite a bit.

Personally, I don't make non-intuitive claims, and argue that others just don't know what they talk about, without good references.

>>presented differently, and the flow is different,

Obviously the work model is different. But...

You are arguing that all the screen area left to buttons etc is paid for by the IDE's popup functionality.

Screen estate has simple and obvious advantages, since when I write the code, I can see the documentation and/or the functions it calls at the same time.

You need references for your claim.

That said, with a language which gives Cobol fingers (Java, etc) and/or use half a sentence to write a library call, I do see a case for an IDE.

Re:Why not just use an IDE if you want IDE features? by uriel on Saturday October 01, 2011 @12:46PM (#3060378)
For comparison purposes: The best code I have ever read was written with Sam ( http://sam.cat-v.org ) by Ken Thompson, the second best code I have ever read was written in ed(1) (by Ken and Dennis Ritchie), and the third was probably code written by the rest of the Plan 9 team at Bell Labs written using mostly acme ( http://acme.cat-v.org ).

P.S.: Both sam and acme were written by Rob pike (ken wrote ed), in Plan 9 circles some people would call acme 'an ide', and while I use acme, I would consider sam a better text editor in part because it is precisely just: a text editor and nothing else.