It's a variation on the famous "Your post advocates a [...] approach to fighting spam" form from Slashdot during the days of the email spam crisis: https://craphound.com/spamsolutions.txt .
You haven't had the pleasure of using VS 2012/2013 with Resharper, I see. My cursor lag while I type. Occasionally the entire IDE sputters to a halt, becoming unresponsive for seconds at a time, because Resharper decided to perform some static analysis on a 200-line Javascript file. On an 8-core, 32-GB RAM machine with an SSD.
That's exactly the experience I had with Resharper when I installed it (and subsequently removed it for good after a few days) years ago when I still wrote C# code. I never understood the "Resharper is essential" attitude. Plain Visual Studio was just fine.
ReSharper is a crutch for .NET developers who are too lazy to learn all the features of Visual Studio and who get confused by LINQ. The best feature of ReSharper is the ability to easily turn itself off without totally un-installing; this allows you to conform to the notion of having ReSharper installed but not crippled by having to use it.
I use NetBeans on a daily basis and never find it to be slow. Eclipse on the other hand....it's a giant turtle monster masquerading as an IDE wrapper around OSGI.
Versions of this have always applied to creating editors -- or for that matter, any new {language, system, product}. And yet, new ones are created all the time, some even become widely successful. Your finality is drastically overstated, and fundamentally negative in value.
I understand the frustration of the author of this list, but do still believe there's room for improvement in the field of IDEs. Light Table is the most promising new IDE that I know of, do think it has a decent chance of bringing benefits to coding, partly because it seems to focus on the one important area that I still feel lacks any real polish in many current IDEs, which is in debugging.
I think the humour of the original spam-solution form https://craphound.com/spamsolutions.txt was always meant to be double-edged, and it was usually taken as such.
The great thing about this list (and the original programming language one that I stole from, of course) is that it mocks itself.
It is true that almost all IDEs are doomed to fail and the reasons why are easily listed. But it is also true that the critics of those are giving so little insight that all of their criticisms often boil down to a few things you could put on a checklist.
Hi! Perhaps the people of HN can offer some advice:
I’ve happily been using Emacs for about a year now, with loads of customizations from where I worked. Now that I no longer work there, the customizations don’t really make sense for my own projects. I started from scratch today, and now I totally hate emacs! I want to just start coding, and not spend a whole day setting up my IDE. Do you have any suggestions for other IDEs/reasons for me stick it out with Emacs? (I’m on a mac, doing mostly rails and node development btw)
Actually, Sublime Text 3 [0] (although in Beta) is quite stable and already has massive support within the community. I was lucky enough to get started with ST in my early days (not too long ago, tbh) and I haven't felt the need for a full-fledged IDE yet and I whole-heartedly recommend it for someone looking to move from (IMHO) bulky IDEs like Eclipse to a more minimalistic editor.
ST3 + SublimeIntel + SublimeLinter and suddenly, I feel like a keyboard ninja. Believe me, for a newbie, that is a massive boost of confidence! :D
Do this support C++11? there's already some days I'm looking a new IDE/text editor with real C++11 support to I switch to. Also, I can change the theme too, right? this black isn't very good to my eyes.
Sublime is a text editor, so it doesn't offer debug/refactoring or other IDE features for languages out of the box. But you should find plenty of plugins that can help with different things, and it will syntax highlight just fine out of the box. What type of support are you looking for?
Sublime is an awesome text editor. It is not an IDE. Most notably lacking is any project level code intelligence. You can't, for instance, click a method name and go to its definition and this is not easily solved by a plugin. You also can't get intellisense for custom functions. I love Sublime as an editor, but the lack of those two things make it a poor IDE for any project of any complexity.
Idea is abysmal at editing ruby/node, even with the plugins for those environments. He could grab webstorm and ruby mine? but that would be quite an investment.
It would be an investment, but for a software developer these are professional tools. The problem, though, is that free alternatives exist for those who don't mind a learning curve.
Oh I didn't mean exclusively in terms of time. Using a quasi open source editor means you are invested into the future of the editor itself (see TextMate). Having said that, Jetbrains has been around for a while and Idea is kick ass for Java.
Vim user, but in general: the advantage of text-configurable editors is that you can carry your configs around with you.
If you find you've got customizations you don't need, organizing them so that they relate to specific functionality which you can activate / deactivate as needed is a Good Thing.
The advantage of vi/vim or emacs over other alternatives is that you very nearly always have them available. A significant downside of any given IDE is when it's not there for you.
I used to hold this logic. Currently though, I'm using Sublime. I've found that the situation where I need a console editor isn't overly common. When I do, I just page in the vi key bindings tweak a file or 2 and move on.
If you switch computers often, this isn't bad (although I've rarely met a machine that doesn't have vim installed). But outside that, what's the rationale?
There's a lot to be said for knowing keybindings, shortcuts, syntax highlighting, file menus, etc. I can program 2x times faster with my .vimrc than a fresh vim install.. and probably double that again with a strange editor I've never used. I'm not saying vim is better by any means, but rather that familiarity is.
I'm a contractor so I switch roles and projects a lot. Much of the time the project is already in full swing and tightly bound to a particular IDE by the time I'm brought in (which is usually because something has gone very wrong and they need help).
I find that being as IDE agnostic as possible, rather than coming to rely on the features of any one IDE (or editor or whatever), helps me just dive in and get going faster.
Raw speed at churning out lines of code seems a lot less relevant to me as time goes on.
I usually use Aptana (Eclipse based). It still takes me the best part of a day to set everything up the way I like it so I don't know if you will gain anything.
Atom could have been Github his expansion. Its final monopoly settlement. A web based IDE so modernly written it would only work on Chromium nightly (for few months). A business model in which your IDE is in the cloud backed by Github. One private repository for free, public unlimited and after that maybe $0.99 per private repository/IDE-project or something. Synced all across the cloud, responsive, adaptive, buzzwords alike.
You log in to atom.io and boom there is your IDE. Partner with Google for Chrome OS. But no, instead we get some poorly optimized, hacky IDE with half of a Sublime Text look-and-feel. In Javascript. On the desktop.
This could have been it. They had all the ingredients. Too bad. Maybe in the future.
See, web ides have two fundamental fails that no one has figured out yet.
1) your browser context is not isolated; you have other tabs that kill performance, you have browsers you need to restart periodically (dns cache), or die because of dev javascripty things (eg webgl).
Restarting your ide all day? yeah, no.
2) no access to local files without a stupid plugin.
enough said.
There are some not terrible run-your-own-local web ides, but how is that any better than a fat client?
Its not a wasted chance; its that what you want currently cant exist in a form that isnt worse than the current solution.
3) not using the terminal, which is the best way to have a shell nearby, and the shell with its extensible toolset is necessary for any serious coding task.
Add to this list - good window docking system, and by good I mean Visual Studio, because what's built-in Qt is not enough, and while QT Creator is great, and it's very well suited for laptop use, I can't use all my monitors at work as much as I want to.
You think you're being clever with your checklist dismissiveness. But your smug cynicism actually makes you one of history's greatest monsters, because...
Yeah! People should never try to build new things that fit their needs/philosophy. I'll stick with Eclipse 1.0 thankyouverymuch.
Or not. Discouraging people who build or discuss interesting things without actually offering a better solution is petty and a waste of everyone's time. if someone thinks that building a new IDE where you type upside-down that only supports Arc, good for them. One of those people might come up with Visual Studio or intelliJ, and then save tons of people countless hours.
> Yeah! People should never try to build new things that fit their needs/philosophy.
Correct. Certainly in the software world.
Software for young white males is done to death. And although this article is pure humour it makes an important point.
As if the IDE is going to be fixable on a whim. It's used and thought about by every person who writes software most days, as if there are any magic bullets left to implement.
And if you get put off by a humours article which you don't get the points on, you're doomed to failure anyway.
Go off and try something different. If people can't think of reasons why you shouldn't do it, then there's a chance it's a good idea that might have some lowing hanging fruit on it.
To quote ESR, "Every good work of software starts by scratching a developer's personal itch." For me that truism underlies the passion that gets all good hackers into designing and implementing software. It's the very linchpin of what makes a good software engineer. Someone who's driven to build something, even if its yet-another X. It's "the bug" that I expect to see in any half-decent job candidate for an entry-level position.
Dismissing that seems, to me, tantamount to taking all the fun out of programming.
66 comments
[ 3.8 ms ] story [ 134 ms ] threadI doubt it
Even NetBeans is faster.
Let that sink in for a second.
Yeah.
EDIT: To reiterate what leoc posted below, the format this is presented in is a well-used "meme" in the tech world.
It is true that almost all IDEs are doomed to fail and the reasons why are easily listed. But it is also true that the critics of those are giving so little insight that all of their criticisms often boil down to a few things you could put on a checklist.
I’ve happily been using Emacs for about a year now, with loads of customizations from where I worked. Now that I no longer work there, the customizations don’t really make sense for my own projects. I started from scratch today, and now I totally hate emacs! I want to just start coding, and not spend a whole day setting up my IDE. Do you have any suggestions for other IDEs/reasons for me stick it out with Emacs? (I’m on a mac, doing mostly rails and node development btw)
http://www.sublimetext.com/
(Note: I personally use vim, so I'm not plugging Sublime based on any bias.)
ST3 + SublimeIntel + SublimeLinter and suddenly, I feel like a keyboard ninja. Believe me, for a newbie, that is a massive boost of confidence! :D
[0]: http://www.sublimetext.com/3
Sublime is a text editor, so it doesn't offer debug/refactoring or other IDE features for languages out of the box. But you should find plenty of plugins that can help with different things, and it will syntax highlight just fine out of the box. What type of support are you looking for?
I only know PhpStorm but I don't regret the investment, time and money-wise (bought it on sale though).
If you find you've got customizations you don't need, organizing them so that they relate to specific functionality which you can activate / deactivate as needed is a Good Thing.
The advantage of vi/vim or emacs over other alternatives is that you very nearly always have them available. A significant downside of any given IDE is when it's not there for you.
I use nano, gedit, eclipse, slick, sublime, whatever's on the machine I use at the place I work and available in the situation.
I don't think a good IDE holds you back, but if you can learn to live without one then you're probably ahead of the game.
That said, I'm just an old C hacker, so what would I know...
There's a lot to be said for knowing keybindings, shortcuts, syntax highlighting, file menus, etc. I can program 2x times faster with my .vimrc than a fresh vim install.. and probably double that again with a strange editor I've never used. I'm not saying vim is better by any means, but rather that familiarity is.
I find that being as IDE agnostic as possible, rather than coming to rely on the features of any one IDE (or editor or whatever), helps me just dive in and get going faster.
Raw speed at churning out lines of code seems a lot less relevant to me as time goes on.
You log in to atom.io and boom there is your IDE. Partner with Google for Chrome OS. But no, instead we get some poorly optimized, hacky IDE with half of a Sublime Text look-and-feel. In Javascript. On the desktop.
This could have been it. They had all the ingredients. Too bad. Maybe in the future.
See, web ides have two fundamental fails that no one has figured out yet.
1) your browser context is not isolated; you have other tabs that kill performance, you have browsers you need to restart periodically (dns cache), or die because of dev javascripty things (eg webgl).
Restarting your ide all day? yeah, no.
2) no access to local files without a stupid plugin.
enough said.
There are some not terrible run-your-own-local web ides, but how is that any better than a fat client?
Its not a wasted chance; its that what you want currently cant exist in a form that isnt worse than the current solution.
I particularly liked 'no one believes your new IDE is any faster than any of the other successful new IDEs other people have made'.
...
Or not. Discouraging people who build or discuss interesting things without actually offering a better solution is petty and a waste of everyone's time. if someone thinks that building a new IDE where you type upside-down that only supports Arc, good for them. One of those people might come up with Visual Studio or intelliJ, and then save tons of people countless hours.
Correct. Certainly in the software world.
Software for young white males is done to death. And although this article is pure humour it makes an important point.
As if the IDE is going to be fixable on a whim. It's used and thought about by every person who writes software most days, as if there are any magic bullets left to implement.
And if you get put off by a humours article which you don't get the points on, you're doomed to failure anyway.
Go off and try something different. If people can't think of reasons why you shouldn't do it, then there's a chance it's a good idea that might have some lowing hanging fruit on it.
Dismissing that seems, to me, tantamount to taking all the fun out of programming.
That being said, I do find atom kind of silly.