Skip to main content

How dependent are you on your IDE?

I couldn't develop code without it
18% (157 votes)
I could adapt, but it would be difficult
56% (498 votes)
I would be fine without it
20% (174 votes)
I don't use an IDE
6% (57 votes)
Total votes: 886

Comments

3rd century

Do we really need to talk about this...? I mean... come on. Next java.net poll: DO YOU PREFFER TO CODE HIGH LEVEL LANGUAGES OR ASSEMBLY?

3rd century

Hi, I prefer both to be worked parallel. It would be the best approach that assembly level should be used to make high level languages more flexible in work. This approach is not a new idea to talk about as the till this write up where high level language stands is all concieveable due to the improvization on assembly language. Only the things that needs to be explore following three basic anteriorities: 1. How can assembly level languages be grapple to be perform at its best tuning with high level languages. 2. How can high level languages be grapple to be more flexible, convinient to the developers to form a basic component. 3. How assembly level and high level languages be aligned and work together to prove at its best performance. Obvious, any developer would prefer for quick coding which is the basic theory of High level languages, mean while it is also required to consider how can we make assembly level language to provide a better approach to make working with high level languages simultaneously. Its something like a father and son both learn all the life simultaneously, Father doesn't stop learning things after being the father. :-)

What is programming really about?

Programmers create software for the benefit of non-programmers... Generally the features of the software are something that the non-programmer wants or needs.

A good IDE helps the programmer remain focused on the non-programmer's requirements rather than on the intricacies of translating those requirements into code that a computer can actually execute... IDEs are an extension of the trend that began when programmers started using assembly language instead of machine code.

-JohnR

Understanding the fundamentals

IDE's with all their bells and whistles are perfectly acceptable if the the developer/development team using the tool have a solid understanding of Java SE and EE fundamentals, and how the specific tool applies itself to these technologies. Having an IDE generate code, whether it be Java classes or Ant build files, in a way that is not understood by the developer can in many cases lead to something unmanageable. It is also my opinion that an IDE should not be your first introduction to java or any other programming language or technology. Grinding your teeth using the bare bones tools and studying the specifications and javadoc can deepen a developer's understanding immensely. This in turn will lead to a better understanding of IDE's and what they provide; making an IDE an acceptable productivity enhancement tool, but only at the point where the fundamentals of the technology and the tool are understood.

Understanding the fundamentals

Great. Master the fundamentals with a text editor so you understand the details, and you can appreciate what an IDE does for you. But I would say that most of Java's critics (Bruce Tate included) have an unfavorable oppinion of Java because they don't develop with an IDE. Of course you'll have productivity complaints when you pound out everything in vim or notepad. If you're not going to learn and use a modern IDE (and yes, vim and emacs do not even scratch the surface -- they don't count) to really exploit the advantages of Java (a static, type-safe language), then you're better off with a scripting language. Go ahead and learn the fundamentals, but anyone who wants to be more productive with Java than the alternatives will need to master an IDE. Don't put the MENTAL in fundamental. -Bryan

hard core

I build all my apps bit-by-bit using a magnet and a 3 1/2 inch floopy, starting with a hand crafted JVM! The question is a bit ambiguous, because any intermediate java developer could always just use plain text editor and the command line to do anything. I think there's even a debugger that comes with the standard JDK. You would have to deal with so many more lower level details then you need to.

hard core

"You would have to deal with so many more lower level details then you need to" For one person working on one 'project' this is not necessarily the case. The IDEs have an enormous amount of overhead which assumes; that you are working in a team, deploying to wierd and wonderful environments, working on multiple projects which each use a different JVM and you have a CVS set up somewhere. Netbeans even has a whole lot of stuff in there in case I want to do things like JUnit. On the other hand, one person just slapping something together on their own box has a number of advantages; the only two tools they need are Java and Javac (during development, if they want to 'produce' something they'll use jar at the end), they can compile and test with a couple of keystrokes (up arrow at the command line), more importantly they get to use the Extensions directory (huge time saver). IDEs have a number of advantages. If you are using CVS then any IDE with halfway decent support for it will be much better than using the command line. Running things like JUnit is presumably much easier through an IDE than the command line. Basically once your build process gets sufficiently complicated that you start seriously entertaining the use of Ant then you are better off switching to an IDE. Also, if you spend all day refactoring code then an IDE is a good thing. This is where the solo developer has an advantage, they can sit down with pen and paper and in a couple of hours mock up a design and solve the sorts of issues that would otherwise require weeks of refactoring. My current IDE demonstrates both the good and the bad aspects really well. We're trying out different parts of the new EE 5 spec, and having Netbeans go 'oh so you want a webservice, okey dokey, here it is, annotations and all' is just amazing compared to the sheer pain that webservices used to be. The bad side is, that if I want to clean and build and run my app again on Glassfish, I must *reboot* the machine to kill Glassfish before I can redeploy and restart. Now obviously not everyone has to do this or there would be mass hysteria and wailing and gnashing of teeth all round. So there must be something wrong with my config... but it is easier to reboot the machine several times a day than play around with the config. Config is definitely the dark side of modern development, and IDEs are no exception. If your job is to shave Yaks, then IDEs win hands down. :D

An Ode to Java IDEs

This is an interesting poll question. In past dev environments I've worked in, I've never been quite comfortable with my dependance on a commercial tool to be productive. That didn't sit right with me when dealing with Visual Studio or JBuilder. I had to buy (or pirate, yikes!) a copy of the development tool to be productive. The modern Java landscape eliminates my apprehension about being tied to a tool (the IDE) for optimal productivity. With Java IDE's there are at least two major free and open source IDE's to choose from (Eclipse and NetBeans) as well as a defacto standard open source build tool (ant). I don't care that I'm dependant on Eclipse/NetBeans to be productive. Do you care that you're dependant on Apache? No! Because it's open! Due to the free/open nature of the software, I can use the tool at any company I work at. I can use it at home. On my laptop and desktops. It doesn't matter. I'm not going to be screwed in the future like VB6 developers were. My IDE is free and will always exist and be supported. And it will always evolve and improve. Intimately knowing and using an IDE at this point is nothing but a positive. Java IDE's, I solute you. w00t! -Bryan

I'm completely dependent on it.

No shame in admitting it, it's simply reality. Eclipse's templates, and assists, and refactoring make coding so painless, it feels like I'm perpetually in "psuedocode" mode. Without an IDE, I wouldn't want to code Java.

I'm completely dependent on it.

Agreed, This is a huge strength of Java (or any static, type-safe, structured languge). People who claim that Java is too verbose, and that it is not a productive language compared to Perl/Python/Ruby/PHP/etc. are ABSOLUTELY RIGHT. Yeah, they're right as long as you're developing with a text editor. If you use an IDE (like Eclipse or NetBeans or IntelliJ), then you will be far MORE PRODUCTIVE than you would be with a scripting language. With scripting languages that have no type-saftey and only know about object identity at runtime can never have the sweet features that Java IDEs have. Autocompletion would be primitive at best, you'll not know the order of parameters for a method, or what "type" they should be (number or string or an Elephant object? -- who knows?! It's not type-safe nor static). Mixins and closures cause problems. No context-sensitive help/integrated-javadoc for dynamic langs -- because there is no type-safety a scripting lang IDE could never know what kind of object your refering too. No API lookup, etc. Dynamic langs have the edge if you develop with vi, but compared to an IDE it is a MAJOR STEP BACK in productivity. The parent is right. Writing code with an IDE is like writing psuedocode. I type a few keys but the IDE autocomplets, auto-formats, auto-expands templates, refactors code, shows errors as I type, etc. ,etc. A good IDE makes all the difference. -Bryan

I'm completely dependent on it.

"Without an IDE, I wouldn't want to code Java." I totally agree. That Java is so structured and standardized that it can be parsed and manipulated by IDEs like Eclipse is absolutely fantastic. If it wasn't for Eclipse, I would have gone for Python/Ruby a long time ago.

Ill posed question

I am never "dependent" on my IDE, in the sense that I can run all the ant scripts from command line, change code, etc... I "could" develop code without it, but the point is that I "wouldn't".

You're kidding me, right?

Could those who have selected "I don't use an IDE" please post why they don't? Why on earth would you choose to not use an IDE?

If I've got a compiler error, my IDE will take me to the line of code that's wrong. If I can't remember if the size of an array is length(), length or size() my IDE will tell me. If I want to step through my code, my IDE's debugger will let me do so. If I want to build a GUI I use Matisse (try doing *that* by hand!). If I want to distribute my project I've got an Ant build script that is produced for me.

Why wouldn't someone want all this?

You're kidding me, right?

I don't use any single IDE or tool, and certainly am not totally dependent on any. I use Eclipse, JBuilder, and VIM to write Java code, all those and Visual Studio for XML deployment descriptors, Visual Studio and VIM for C# and C++, VIM for Python, etc. etc.

Then there's Unix and Windows command shells for executing commands (ANT, CVS, etc. etc.)

You're kidding me, right?

Matisse is quite good. Sort of a cross between Project Builder and VB, without being quite as strong as either of them. So you have the property pane of VB, but you also get the 'layout guidelines' of PB. It has some niggles. On my first or second form the second Button didn't end up quite where it was supposed to be. It's just a couple of pixels out but doesn't line up the way the other button does. The other would be that double clicking on a button lets you edit the text of the button, rather than taking you to the code. It may not sound like a big difference, but just describing Matisse to someone who knows Java and .Net he started getting excited about it and that was one of the things he mentioned that he likes about VB. BTW - some of us *can* build GUI's by hand. If you have a good head for hierarchies of components it isn't too hard. You can get some big wins by building your own subclasses which are compositions of a bunch of controls on a panel, or even just: A panel, containing a label and a component. Define a constructor which takes the component and a String to use as the label and you are good to go (you need to think about the issue of hooking up an event listener to the component, there are some elegant solutions. Also Actions are really cool. And hey, those of us that started out with javac can read the compiler errors anyway. The difference with the IDE is that if you are debugging your own code, you will no doubt recognise the offending line and know where it is, whereas if you have to debug someone else's code it is quite handy to (as you said) just be able to click on the offending line and go straight there. Every new major version of Netbeans comes out with really cool stuff, but it seems to lose half the reasons I liked the previous version at the same time. If Netbeans does something really well in version X, then it is even odds that it'll be nerfed in version X++.

You're kidding me, right?

Well, I'm pretty convinced that without an IDE, then Ruby or Python is a better choice than Java. With an IDE (such as Eclipse), Java makes a much better choice especially for teams of several people (or more) or with a large code base. That said, I haven't tried Matisse, although I played with Apple's GUI builder some. I've also used WYSIWYG HTML editors and word processors. I almost always prefer a good text editor and a programming language or markup language to any of these WYSIWYG things. But I might change my mind someday. Before Eclipse, I prefered Vim to any IDEs out there. And I've seen NetBeans Ant files. Unless it's changed, the things are monstrosities. I'd much rather right a build.xml by hand. But still, as I said above, modern IDEs are fairly vital to Java programming itself.

Eclipse + IDE

I agree, Eclipse was the first IDE that actually got me out of the text editor world. I primarily use it for Java development, I don't really care for code generation stuff. Although I am starting to change my mind on such things (if I find a good tool ... meaning a good+free UML editor for Eclipse and it would work with a good code generation tool such as AndroMDA) I avoid using Ant, I tend to use Maven. Of course I am a bit more masochistic.

You're kidding me, right?

You can create a Netbeans project with an existing Ant build script if you want to use your own, so you aren't forced to use the generated one. The main benifits of the generated build script is that it allows right-click build and run more easily than a custom build script.