15 ms·
If my text-editor has tight unix integration, smart-completion, a repl, and good build integration... what am I missing out on?
by sharkbrainguy 18y ago
If my text-editor has tight unix integration, smart-completion, a repl, and good build integration... what am I missing out on?
- snprbob86 18y agohttp://www.jetbrains.com/idea/features/ http://www.jetbrains.com/idea/features/ http://www.jetbrains.com/resharper/features/ http://www.jetbrains.com/resharper/features/ http://www.jetbrains.com/ruby/features/index.html http://www.jetbrains.com/ruby/features/index.html
- jrockway 18y agoYou are "missing out" on "code generation". Apparently some languages have so much verbose boilerplate that the only way to be productive in such a language is to pick the boilerplate out of a menu when you need it. Or so the IDE folks say. (Other problems include insane organizational schemes that require the computer to move code between specifically-named files in order for your app to run.) Anyway, the IDE thing is a classic example of a "local maximum". The language made a bunch of bad decisions, and the only to get productive again was to invent an incredibly complex tool to abstract away some insanity. Sure, it's kind of good. But if you threw both away and started over, you'd get a better maximum with less complexity. The word "blub" comes to mind. So in the end, you are exactly right -- if you are using a reasonable programming language. If you are using Java, you need all the help you can get. (And yes, I mean that in two ways.)
- axod 18y agoThat's really untrue. The most productive Java programmers I know do not use IDEs. I've worked with Java programmers in the past who used IDEs. They produced more lines of code, with far less functionality. Going through their code was horrible. I'm guessing because their IDE conveniently hid most of the cruft from them. As a result they knew far less about the code base than those not using an IDE. etc etc If your bottleneck is how fast you can type the verbosity, then you're doing something seriously wrong.
- jrockway 18y agoSure, maybe. I've found Java much easier to deal with when I do everything from scratch instead of letting Eclipse handle it. (This basically means setting up Tomcat myself, making an Ant file to build everything, and then editing it all in emacs.) Java is still unpleasant either way. What takes ten files in Java would be ten lines in any other (real) language. Also, the standard library is horribly, horribly designed. If you read the implementation, you'll see it's clear that nobody writing it has any idea what OOP is, which makes me very very sad. Anyway, this idiotic design makes writing Java even more difficult, IDE or not :) Hopefully I will never have to write Java again.
- axod 18y agoidk I think as a language it's fine enough for what it does well. I wouldn't even trust Tomcat personally though. The NIO library for example is fantastically well designed. >> "What takes ten files in Java would be ten lines in any other (real) language." Come on now, it's not quite that bad. Also, I don't really buy into the whole 'all verbose languages are bad' thing.
- snprbob86 18y agoPersonally, as a heavy IDE user, I practically never use any code generation (unless you count token completion, but text editors do that too). Additionally, I don't really code much Java (haven't in years). Most of the time I use Visual Studio and Resharper for C# 3.0. C# 3.0 has a lot of advanced functional features and the code that you write really doesn't have all that much boilerplate compared to Java. However, in the real world, people don't always get to pick their programming language. But let's say you do: Do you consider Ruby to be an unreasonable programming language? For me, the three biggest IDE feature areas I love are navigation, refactoring, and code analysis. Navigation: Jump to type or method (super and subclasses or by name), find usages (filtering by callers or assignments), and especially "go to definition". All things that help me spend more time reading code and less time reading code to find the code I want to read. Refactoring: the power to rename an identifier across my entire project in half of a second is sorely missed when I work on Python stuff. Never underestimate the productivity gains of one keystroke method extraction or safely safely rearranging parameters. Make those changes you are afraid to make with confidence and without manually fixing in a long list of text search results. Code analysis: finds compile and runtime errors before ever even compiling. Little colored squiggles under my code have saved me so much time, it is not even funny. You'd be surprised at the level of support these things can offer. Resharper, for example, lets me know when I use method overloads that don't pass an optional culture parameter. My code never has a localization bug with list separators such as commas and periods because Resharper warns me when I am not specific about what the correct behavior is.
- blinks 18y agoFor navigation, at least, see http://ctags.sourceforge.net/ http://ctags.sourceforge.net/