Choosing the Right IDE
Nerval's Lobster writes: Modern software development often requires working with multiple tools in a variety of languages. The complexity can give even the most skilled developer a nasty headache, which is why many try to rely on Integrated Development Environments (IDEs) to accomplish most of the work; in addition to source-code editors and automation, some even feature intelligent code completion. With so much choice out there, it's hard to settle on an IDE, so we interviewed several developers, who collectively offered up a list of useful questions to ask when evaluating a particular IDE for use. But do developers even need an IDE at all? When you go to smaller, newer developer shops, you're seeing a lot more standalone editors and command-line tools; depending on what you do, you might just need a good editor, and to master the command-line tools for the languages you use.
What IDE do you prefer, if any, and why?
Emacs. Next question.
Dewey, what part of this looks like authorities should be involved?
C-x-C-c
IDE's don't do any of the work- they take care of the things aren't actually programming.
love is just extroverted narcissism
Seriously they answered the main question right there for you: "you might just need a good editor, and to master the command-line tools for the languages you use."
Bingo!
Also, Bazinga!
Also, Benghazi!
Also, Benfoldsfive!
Also, Bengay!
This is the NSA, we're gonna geet U h@x0r5! Also, what is a h@x0r5?
This is a fucking microsoft ad.
Mod me down, my New Earth Global Warmingist friends!
Windows Development = VS 2015
OS X / iOS Development = XCode
Linux/Unix = Text Editor de jour + Posix Toolchain
I use QtCreator a lot.
It's great for C and C++ even if you don't use Qt.
In term of useful features, I'd rank it above Visual Studio, because its features are actually fast and often handy in my experience.
Use whatever makes you most productive and understand that it will vary from developer to developer. 99% of IDE / Editor debates make stuff all difference to the outcome. Instead focus on:1. Only implementing exactly what you need. 2 Testing the thing, then going back and reviewing the testing with a view to adding more tests. 3. Not let the implementation get ahead of the tests. 5. Get someone else to test. 6 .. Test.
.. test
Test.. test
"Nerval's Lobster writes: "
I'll bet it is a Dice article.
assuming you have decent build system: use vim plus unix shell
But do developers even need an IDE at all? When you go to smaller, newer developer shops, you're seeing a lot more standalone editors and command-line tools; depending on what you do, you might just need a good editor, and to master the command-line tools for the languages you use.
Oh, yeah, i remember "standalone editors and command-line tools" from the old days - now they are "trendy"? I have some punch cards to sell them, so they can be "super-fucking-trendy"...
Antisthenes: "Wisdom begins by examining the words/names." - excuse my English, i am (slightly...) better with my Greek!
Delphi. There is still nothing better.
Call me crazy, spoiled or lazy, but I can't stand typing commands in the DOS command prompt or configuration files. I rather click check boxes and select options using drop-down menus like those in Microsoft .net Studio Express IDEs. I click one button to have the IDEs compile and make code.
I like Visual Basic and Borland Delphi too. Don't laugh.
I guarantee that you're not going to find good advice about what IDE is best on a Dice "insights" clickbait page.
Mod parent +1
The 90s called and wants its programming technology back.
Real men don't need IDEs.
http://boingboing.net/2015/05/...
You are welcome on my lawn.
with syntax highlighting
Now go to Wikipedia and see the list! Lame!
Agreed. The Unix way is to use modular tools. IDE's are the antithesis of that. Eclipse is systemd of development, one size fits few and shitily. Completely inflexible. Emacs is by far the best option available, on any platform. Used to be you'd be laughed off this forum if you suggested anything else.
an ill wind that blows no good
An older yet capable IDE that I use in Windows and in Linux with Wine. The only IDE that works for me with my development habits across a wide amount of development tools and targets.
Moving past a text editor is a big help. Sure, it's good to understand the command line and all that, but having a tool that understands code and allows you to manipulate it is really useful. Refactoring support matters. A lot, actually. Safe delete, rename, extract method/parameter/etc. are all basic tools that can make a code base better. Code completion (intellsense, etc) support matters too. What does this thing do. Does it do what I think it should? Why or why not. Add in things like smart templates, etc. and even the most code aware text editors just look like nothing more than keyword colorers.
Personally, I can't recommend Visual Studio/Resharper or the IntelliJ product line enough. Worth every single penny and then some. JetBrains has a laser like focus on just getting things done. High DPI support was a problem for their IDEs, so instead of waiting on Java 8/2D to catch up, they forked it just to get it work, and they admitted it was not a great solution, but a workaround.
The question is: "What language are you writing this project in?"
The language dictates the best IDE for the job.
I do not fail; I succeed at finding out what does not work.
Most drupal developers are switching to phpstorm. Not only does it have excellent Drupal and Symfony extensions, it also integrates well with git, databases, xdebug, etc. And it makes integration with these systems really simple.
Being able to autocomplete is great, being able to see the API docs with a simple key? priceless. Having a debugger work with remote servers is handy for shared development environments or when using a development environment behind a docker container.
But what makes it really shine for me is that your 'project' is as easy as opening a folder. No complicated setup needed, just open up the folder and go. Phpstorm does all the work for you.
Now only if it was open source. I used to use jEdit, but I could never see myself going back to it or vim ever again. It'd be make development way too slow.
Use the latest "Visual Studio Enterprise Edition", so long as it's pirated...
What a lot of programmers don't realize is that an IDE is just a lens with a glamorous frame around it. Don't grow too attached or you'll risk going out of style along with it and that's when people start looking at you funny. No one should care what you program with as long as you keep to the style guidelines and the code you check in does the job.
I prefer Eclipse for Java, PyCharm for Python, Sublime/YCMD for C++ with Valgrind on Linux and WinDbg on Windows, etc; but requirements and individual tastes may differ. That's why I use cross-platform shell scripts and makefiles. This allows me and anyone else I work with to use whatever IDE on whatever platform they are most comfortable with without the fear of vendor lock-in.
One question I always ask when evaluating a new whizz-bang high sparkle product is: can I turn the features off?
If you use more than one application in your development, you're always bumping into interface inconsistencies. Having to stop and look at the result of what you typed is annoying, time consuming and distracting.
I can type <tab> really, *really* fast, so it makes absolutely no sense to try to overcomplicate things by having the editor try to do some sort of indentation for me - it only means that I have to stop and look every time, and I can't get used to the feature because no other application does it the same way.
For emacs in particular, all the various "electric $LANG" modes have different ideas of which characters are electric, what their behaviour is, and what coding style I should be using. Selecting a coding style to use is about 2 hours of internet search, editing the profile, restarting, and testing. (And that's if you're using one of the approved styles, otherwise you're either stuck or forced to learn lisp. *shudder*)
(And for the record, turning off electric-mode in emacs is wildly difficult to actually do. One pitfall example: having "save state" turned on will override the profile file, leaving you wondering why the profile command from the online tutorial didn't work.)
You can't get used to it, you can't develop muscle memory or take your eyes off the screen because the minute you switch to something else (the browser, E-mail client, putty terminal, LibreOffice or anything else), muscle memory results in errors.
Lots of applications have these inconsistencies. Clicking in a text editor will place the cursor where the mouse is, while clicking on the address bar in the browser *selects* the line and places the cursor at the end. It takes 1 click to insert text normally, it takes 3 clicks to insert into the address bar. Muscles don't remember that.
People spend an inordinate amount of time fumbling the interface without actually thinking about it. Your "rich, user experience" isn't warranted and reduces efficiency.
Just give me a simple, direct interface.
for .NET dev.
I like the IntelliJ family for other stuff.
If you were me, you'd be good lookin'. - six string samurai
Frankly I'm concerned that someone will read this thread and think its ok to use an IDE.
If the langugage is Java (or even Python to a lesser degree), then I haven't come across anything that even comes close to IntelliJ. It's code completion and introspection are so good, that I find I don't need to test as often. And I rarely find any issues when I do.
I also use Eclipse and Netbeans, and everything seems to take an extra step or two and that really adds up, over time. Netbeans is good for C++ though, so I muddle through with it.
According to the article: "Some people love syntax highlighting; others hate it with the fiery passion of a thousand suns."
Is that really true? I've never met someone who hated syntax hilighting.
"First they came for the slanderers and i said nothing."
Visual Studio/C# with Resharper is my preferred environment. I've also had good experiences working in Zend Studio/PHP and Eclipse/Java.
I've always hated when the code completion fizzles out in my IDE because when it does I'm faced with realization I can't remember shit.
Rather than continue without it more often than not I will take the time to rebuild database or fix whatever is wrong this time. Mind you I do this even when working with libraries and APIs I've designed myself and use all the time.
On the other hand there are languages I always code outside the ide using a basic text editor with just a basic macro library.. For some reason this experience does not bother me and more often than not I am able to remember everything I need to and don't find myself missing a fancy IDE which is good because no such thing exists.
I think in some ways a number of the tools, debuggers and even language features while useful time savers that really do make peoples jobs and lives easier also carry hidden costs. If the cost of not having to remember is cheap I don't remember. If debugging is cheap I might incorrectly assume I can afford to be less careful or skimp on assertions/logging. If I can edit code and apply changes in real-time I might experiment with one-off changes rather than batch several before clicking the compile button. If a language feature saves time then perhaps I can now select a suboptimal design and sort of get away with it where before I would have made a much different calculation much earlier.
Notepad++ is my daily driver.
While I have coded without an IDE in the past, and I still do it occasionally for one-off throwaway programs, when it comes to larger projects, I do find that having an IDE dramatically boosts my productivity. All of the things I do with an IDE could theoretically also be done with vi and an appropriate suite of tools, but for myself, the point of using an IDE is to really just have it all bundled in as one, and not have to switch to a different window just to show a call graph or function definition for what is at the current cursor, for example, when a simple hover-window can do the same thing, and since the window disappears as soon as I start typing or otherwise navigating, I don't even need to switch windows again when I resume editing.
File under 'M' for 'Manic ranting'
I work on simple projects and use a variety of languages. There is no need to complicate matters with IDE's, which tend to target a limited range of languages.
...that can't run EDT.
My favorite IDE is a computer. When I wrote programs without a computer it was much harder. (I wish I was joking)
“Common sense is not so common.” — Voltaire
Joe's Own Editor. I don't use a traditional IDE, but do still use JOE. Am I alone with this? *sigh*
gibberish. At least have a summary for the bollocks you're selling.
gedit, yep that's right, and getting paid for it :)
It started out as a quick code editor/viewer, but it's going enough basic shortcuts for coding that I'm happy with it.
When I log into my Xenix system with my 110 baud teletype, both vi *and* Emacs are just too damn slow. They print useless messages like, 'C-h for help' and '"foo" File is read only'. So I use the editor that doesn't waste my VALUABLE time.
Ed, man! !man ed
ED(1) UNIX Programmer's Manual ED(1)
NAME
ed - text editor
SYNOPSIS
ed [ - ] [ -x ] [ name ]
DESCRIPTION
Ed is the standard text editor.
---
Computer Scientists love ed, not just because it comes first alphabetically, but because it's the standard. Everyone else loves ed because it's ED!
"Ed is the standard text editor."
And ed doesn't waste space on my Timex Sinclair. Just look:
-rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed /usr/ucb/vi /usr/bin/emacs
-rwxr-xr-t 4 root 1310720 Jan 1 1970
-rwxr-xr-x 1 root 5.89824e37 Oct 22 1990
Of course, on the system *I* administrate, vi is symlinked to ed. Emacs has been replaced by a shell script which 1) Generates a syslog message at level LOG_EMERG; 2) reduces the user's disk quota by 100K; and 3) RUNS ED!!!!!!
"Ed is the standard text editor."
Let's look at a typical novice's session with the mighty ed:
golem> ed
?
help
?
?
?
quit
?
exit
?
bye
?
hello?
?
eat flaming death
?
^C
?
^C
?
^D
?
---
Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.
"Ed is the standard text editor."
Ed, the greatest WYGIWYG editor of all.
ED IS THE TRUE PATH TO NIRVANA! ED HAS BEEN THE CHOICE OF EDUCATED AND IGNORANT ALIKE FOR CENTURIES! ED WILL NOT CORRUPT YOUR PRECIOUS BODILY FLUIDS!! ED IS THE STANDARD TEXT EDITOR! ED MAKES THE SUN SHINE AND THE BIRDS SING AND THE GRASS GREEN!!
When I use an editor, I don't want eight extra KILOBYTES of worthless help screens and cursor positioning code! I just want an EDitor!! Not a "viitor". Not a "emacsitor". Those aren't even WORDS!!!! ED! ED! ED IS THE STANDARD!!!
TEXT EDITOR.
When IBM, in its ever-present omnipotence, needed to base their "edlin" on a UNIX standard, did they mimic vi? No. Emacs? Surely you jest. They chose the most karmic editor of all. The standard.
Ed is for those who can *remember* what they are working on. If you are an idiot, you should use Emacs. If you are an Emacs, you should not be vi. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!!
Use an IDE where it's the defacto standard, use a text editor everywhere else.
Fighting an IDE with Java, .NET, or Objective-C/Swift is for masochists; just give in and choose one-- it doesn't matter which one you choose, just stick with it. They all suck, they're all ugly but all are required to get anything done.
In the past few years I've largely use Eclipse. I tend to write small programs in C, C++, or CUDA C. I like Eclipse because it's free, has easy support for all these languages and others that I expect to use (Python, Java), runs on Debian/Ubuntu/etc., and there's tons of support online.
With 2 ides available to choose from (netbeans and visual studio). There's not much of a choice ... For the unknowledgable, at a minimum, an IDE provides a code editor, debugger, and GUI designer. There are only two IDEs to choose from at the time of this post.
Is fast. Has syntax highlighting and code completion for many languages. Organises source files in a project. Has a good editor. Has a nice GUI. But most importantly, it does not get in my way.
Personally, I find Vi to be a fast and efficient text editor. The ones built in to an IDE are inevitably inefficient for me.
Some languages have so much boiler plate that it makes sense to start in an IDE (I'm looking at YOU Java), but I generally prefer languages that don't need that. Vim handles syntax highlighting just fine. It doesn't help that so many IDEs seemingly want 12 terabytes of ram.
So far I used Eclipse for Android development, but that's coming to an end. Google forces me to use Android Studio, which is terrible. Which makes me think: how can so many developers prefer AS over Eclipse? What does that say about developers? About me?
no, I don't have a sig
I work mostly with Go and HTML/JS so my "IDE" of choice is Sublime Text 3 + GoSublime/TernJS/SublimeGit+HTML-CSS-JS Prettify plugins.
For SQL and PL/SQL coding as well as shell scripting I use Notepad++. For Java stuff I use Eclipse because of the shop standardization.
Codeblocks...
Chris Lukehart
you can argue all day about whether chocolate ice cream is better than vanilla and there is really no possible way that anything interesting will result from the conversation
Visual Studio 6 for lyfe
No, using an IDE means you are a productive programmer. I swear most of these vi/emacs hipsters are still students or are unemployed.
... because I like to be a white hot ball of rage before noon.
VIM for C, Scripting, PHP and all command line work
Intellji when I need to do larger web development work.
Xaramin when I need to do C# / GTK#
Visual Studio when I need to do raw C# on Windows
MPLAB X when I have to do Microchip development
Atmel Studio for Atmel development
I'm sure I'm missing a bunch, but you can't just have one, you need the right IDE for the right job and none of them do it all.
Is the one you are comfortable enough using that you can get your work done.
Everyone else's opinion on the matter is complete shit.
IBM VisualAge. Its heir, Eclipse, is a worthy IDE. I got to watch the whole evolution. Eric Gamma and others in Zurich morphed the VisualAge Smalltalk IDE into VisualAge Java. Then Eric and Kent Beck morphed that into Eclipse. IDEs derived from Eclipse are still the shin dizzle, AFAIAC.
For development, the best I've ever learned to use: VS, Xcode, IntelliJ, Borland's (for it's day). Eclipse can eat a dick. Netbeans is surprisingly decent, better than Eclipse. Eclipse can eat a dick. Didn't we go over this already?
vi is for modifying config files.
32 years development experience, 20 professionally.
Does the editor allow you to see multiple windows of code at the same time? The thing I hate most about IDEs I've used is that they're using this bizarre MDI model, big file list or class browser on one side, command output or such at the bottom, menu bar and icons at the top, and one big space wasting code window in the middle. I want to see file A on the left and file B on the right while I'm editing file C in the middle.
The perfect IDE for me that might get me to use one:
- multiple code windows simultaneously
- not written in Java so it's fast
- does not try to second guess me
- lets me configure it fully, I want emacs keybindings dammit, not mock-emacs
- let me plug and play different components from different vendors. Don't force the vendor lockin or tool lockin. I want to replace the editor or the debugger or whatnot. And do not suggest that Eclipse can do this because it can not.
- get the pointless windows and GUI fluff out of the way when I am not using them. If I have a modern high resolution monitor then I want to get more stuff on the screen rather than just higher resolution fonts.
- don't force me to use its lame project management system, use my own Makefile or set of scripts (because no one's yet come up with a suitable replacement), don't do something moronic like assuming every file in a directory is a part of the project, don't insist on a directory layout style, let the user be in charge.
- make it easy to program instead of making me struggle locating obscure hidden menu entries
- don't make me point and click.
Get a good hint from Genera on the old Symbolics Lisp machines. A GUI designed by smart people for smart people.
Look at all those people throwing eggs on Visual Studio and Eclipse just because they are "too good" to have any kind of help when programming! Wow, you write your code just using a text editor??? WOOOOWW! YOU MUST BE AMAAAAAZING!!!
Now, seriously, tell me how do you do it professionally, working with 100+ people (many of them new on the job or even new with the language) on the same project. How do you keep the same productivity that an IDE gives you? *Please* tell me how you did convince the directors of your company to embrace this approach of not using an IDE, despite the obvious gaining of productivity by the less sr. programmers? (Please tell me the truth. I mean to talk to my director about doing that as an experience).
Sure it's a dead product, killed by Borland but it still does everything I need to do. And yes the binary I'm using is 15 years old, probably older than a good portion of /. users.
In my beginning CS classes the professors all were using eclipse. Which was frustrating until I tried Netbeans. Which makes eclipse feel nasty. I have tried several IDEs, but netbeans works the best for me. My only problem with it is that sometimes it takes a lot of memory...
Please... at home
Currently, Sublime Text.
If you are into c/c++ programming i would recommend qt-creator. It has nice code completion vi-mode and support for different projects types like: make (via import),
autotools (never tried it), pro and qbs.
It has nice remote deployment and with the baremetal plugin you can go into small embedded systems programming.
Its also running on strange platforms like Mac or Win.
It can... although usually I dock all my editor windows to one pane, and use tabs.... but the IDE I use allows me to add any number of panes.
It's interesting that many of the things you've mentioned are ideal for you actually are preferences of mine as well, and in fact, why I use the IDE that I do. It's written in Java, but it performs adequately on my hardware, which for me is all that really matters.
File under 'M' for 'Manic ranting'
After years and years of writing in various languages and using lots of different IDEs, I changed to notepad++ 6 months ago, and haven't looked back.
Choose a good fixed font that differentiates between ({ 0O 1l etc, set it to white on black, and the only thing you worry about is the task that the code is performing. Colours, syntax highlighting, identifier suggestion, auto-indent, project trees and code completion all distract from the thought process in hand.
Once again, the thoughts in my head turn into code on the screen without the need for translation, and code flows effortlessly. Like it did 30 years ago.
Most of the people I know that use vim as their main text editor have it pimped out to a full IDE anyway. They just don't realize it.
... And no one mentions Notepad++. Also, Intellij has got to be the best Java IDE available right now (better than NetBeans and Eclipse that is for sure).
https://xkcd.com/378/
FTFY
Yeah, I dislike syntax highlighting, just as I dislike "COLORDIR" to the point of automatically saying "unalias -a" whenever I run into such things. Used to use it way back, had my own custom sets and everything, until I realised that it was just holding me back. For some reason the extra channel interferes with my processing. It distracts me and slows me down.
So I prefer my editor (nvi for me, no vim, no emacs, thanks) in just boring old white and black, just like my irc sessions(!), my shell and assorted commands, and so on. I positively loathe anyting that turns colours on by default (certain linux distributions, some busybox builds of all things, irssi, cmake which makes it hard and annoying to turn off to boot, others). It just isn't up to you to decide that for me.
Possibly related is that I don't use IDEs; the way I write software means I build on primitives and only the primitives build on other things, so I neither need nor want fancy GUIs that helpfully cross-reference, show manpages (I have another shell for that in the screen session that holds the editor, and the make shell), or otherwise be "useful". It just isn't useful to me. In fact, I think that way of working reeks of poor abstraction and poor practices. Be that as it may, that's just my outlook and you don' t have to agree. I know what works for me, and presumably you know what works for you.
If I wanted to be nasty I could ask, ``just how much ``improved productivity'' do you see in IDE use, how do you measure that, and what effect does it have on code quality?'' but since I'm not interested in such discussions, I'll just say that you can have your colours and features and things as long as you leave me well alone, that is, don't force me to find out how to turn off all those bells and whistles I neither want nor need.
It really comes down to this: We should know by now, though plenty still don't understand, the horses for courses thing, in both "pick the right tool for the job" and the "de gustibus non est disputandem" senses.
I have been in this business since the late 80's. And worked on projects in a load of different environments, using more tools than I can remember, including several years with C/C++ coding, using Emacs and command line tools on Solaris and Linux. And I can appreciate the beauty of simplicity, ie one tool one purpose. But when I write code today, I use Visual Studio for Windows projects, Xcode for Mac and iOS projects and various tools from JetBrains for Linux and Android projects. And no doubt, I am more productive today than I ever was using Emacs and command line tools. I have no problems to accept, and adopt my way of coding to the tools used. And I must admit that today I would avoid employing developers using Emacs and/or Vi. I have come across to many of them that simply are not flexible enough to be useful as developers. Often refusing to, or incapable off, adopting their way thinking to the current tools at hand.
Go on then. Demonstrate it.
The IDE that works, is free/FOSS and runs cross-plattform is the best for me. That would be Netbeans for me, since I mostly do PHP. QtCreator looks neat aswell. And after Anjuta, CodeBlocks and whatnot crashing on Ubuntu for me or not being supported for OS X it seems like a good candidate for C/C++.
In fact, I'd go as far and say that not having a good IDE that runs on Mac, Linux and perhaps Windows is actually a dealbreaker for a new programming language for me.
Example: ... Couldn't say though that I'm all ready for this cross-compiled for JavaScript fad that's going on right now, so I'm not gonna hold my breath.
Yesterday I came across Dart again and clicked through a few websites on it. I still have it in the back of my head and haven't dismissed it yet because - Tadaa! - Google offers a chrome based IDE for it.
That's my take on IDEs.
We suffer more in our imagination than in reality. - Seneca
That's it.
I'm not a developer, but do a fair amount of scripting. notepad++ is a new free multi-language editor that knows what to do with tabs. Also extensions/plug-ins supported.
is for Windows or Office, Visual Studio Community. Plus, I'm not that good so I rely heavily on intellisense.
I wonder what IDE the developers of MS Windows use? I wonder what IDE Linux kernel developers use. Which one is more robust?
UNIX is my IDE.
I assume anyone who says "You don't need an IDE" is not someone who does any real development. And they're certainly wasting time. Even if it's a small development outfit, there's no reason not to use an IDE. They're free, easy to use, and they increase your productivity in every way imaginable.
From TFA:
"Products such as Visual Studio try to be everything including the kitchen sink, but there’s a point when a developer starts to realize that ultimately software development is primarily about writing code."
No. This is so incredibly wrong. Software development is about: drawing up requirements, making an architecture, design, implementation, testing, verification and validation, and so many other things that aren't "writing code". If all you understand of software development is writing code, you're useless to me. You deserve an entry-level salary or less. If you've been in the industry for more than a year and you still believe software development is all about writing code, you deserve less than an entry-level salary because you're either unwilling or incapable of learning the craft, and deserve to be punished for it.
Visual Studio is nice, if your company is willing to shell out the $$$ for the team development edition or whatever they call it these days. You get full integration with your bug tracker and source control, and it provides the ability to have traceability all the way from requirements through testing and V&V.
Eclipse is great too because you get a lot of that for free. A lot of bug trackers offer free plug-ins for Eclipse, and subversion has a plethora of plug-ins available. There's the Formatter which is part of Eclipse which allows you to hit Ctrl + Shift + F and it formats the whole file(hopefully adhering to your coding standard). And then there are handy plug-ins like Checkstyle that will enforce your coding standard for you(it creates warnings for each infraction) so that your code reviews aren't full of redline defects like "This needs to be capitalized." or "Curly brace needs to move to the next line." Eclipse also has a plug-in that does code coverage, and yet another that shows design documents, and jUnit is there from the get-go.
And finally...the command line. Anything that can be done on the command line can be automated. If you're issuing command line commands manually(as part of development, not normal computer usage of course) then you're wasting time and you're inefficient. IDEs also offer a lot in terms of issuing commands, and usually give you full access to your system's CLI in some way or another. I can excuse a developer testing things on a command line in order to get a script to work, but most of the time they shouldn't be doing more than running a script or make file.
If you start with Vim you'll get a great text editor with a focus on actual text editing. You can then add plugins to add IDE-like features.
My favourite plugins:
* fugitive
* dbext
* syntastic
* YouCompleteMe
* Command-T
* Unite
* multiple-cursors
* gundo
* sparkup
* easy-align
I use gedit (the basic GUI text editor on Linux), and the command line for compiling and debugging. But, I've got a few customizations that make it more similar to an IDE:
1. A keyboard shortcut that lets you select a class name and then jump to its header file.
2. A GUI program that parses the build output, shows all errors and warnings, and lets you click on one to jump to the line that caused the warning.
Those are the two IDE-like features I wouldn't want to go without.
I'm a .NET guy working in a .NET shop, and Visual Studios is part and parcel for my days. Occasionally I'll flip to Eclipse for php and java work, but any more VS is getting better about dealing with the those too so, hopefully, in the near future I won't have to.
At home it's VS as well - typically for my python and other side work.
With the wave of plugins and templates available - as well as an ever expanding reach for new languages bolted in - Visual Studios is becoming hard to beat. Unity support, Minecraft mod support, actual python, web dev, etc. Heck - the Community Edition is now supporting localized reports (for free!) so that's a major plus. Also the snippet system is nice to fill in with repeated code chunks.
Go on then. Demonstrate it.
http://stackoverflow.com/
SJW n. One who posts facts.
Slashdot, please stop posting stories that come from dice.com. Thanks.
Democracy Now! - your daily, uncensored, corporate-free
you’ll want to be able to set the language for the file type. In the case of Web development, you’ll often have three languages in one file, such as PHP, HTML, and JavaScript; if you do, and you need syntax highlighting, you’ll want to make sure that the tool can handle all three at once. If this is how you organize your code, with three languages intermixed in one file, your choice of graphical tool set is irrelevant to your success. An IDE is not a substitute for good code organization and separation of concerns. Yes, it will help you untangle code. Good. Even better to not tangle it up in the first place.
Eclipse for Java and Scala. Notepad++ for SQL, HTML and javascript.
If I need a full-featured IDE, it's typically NetBeans. That was the first IDE I used while learning every flavor of java for my associate degree in computer programming. (The school couldn't afford to renew the Microsoft site license for a few years.) Otherwise, it's Notepad++ for Windows and Text Wrangler for Mac.
I had a chance to use Eclipse for 2+ years, Netbeans for 1 year, IntelliJ for a couple of month, PhpStorm for 3 years, and Visual Studio for about 8 years. Visual Studio is today where IntelliJ and PhpStorm will be in 4-5 years if they keep pushing. Eclipse and Netbeans are legacy products that remind me of the 90s.
Why do you assume that your IDE has features that Emacs doesn't? It's been in active development for 39 years to be a great, productive programming environment. Do you honestly believe that it's had 4 decades of worldwide contribution and not become reasonably good at helping people write software?
Without exception, everyone I've heard decry Emacs and Vim as "just text editors" has never used them beyond "open file / type / save" and has no idea what they were working with. It's like dismissing Linux because you've only used it as an AWS shell, and you feel sorry for people who won't upgrade to Windows so that they can use a web browser.
Dewey, what part of this looks like authorities should be involved?
While any developer worth their salt should be able to write code in a text editor, any developer worth their salt will also know that it can easily become a slow, error-prone process when dealing with larger or more complex code bases. Using a decent IDE can dramatically speed up development and reduce the likelihood of introducing errors.
Myself, I've used a number of IDEs in the past - Eclipse, NetBeans, IntelliJ IDEA - and I have to say that IntelliJ IDEA is really hands down (in my opinion) the best one out there.
A few reasons why:
It's fast. It's extremely customizable, and there are hundreds, if not thousands, of plugins available to extend the IDE's functionality. It supports dozens of languages and file types. It's got an excellent debugger. Git and Maven integration are fantastic. Refactoring can be done perfectly in seconds or minutes instead of potentially hours if done manually. Navigating the code base is made super easy with "Find usages" and "Go to source."
Also, because the company (JetBrains) is in the business of making money, they actually sell their products instead of just giving them away for free (although there are free, reduced-functionality versions available), they have a lot more money to pour into their products than other options out there, and it shows.
Basically, as a software developer, I want to spend my time writing code, not dealing with associated peripheral tasks, i.e. noise. Using a good IDE can help you do this.
Good luck with your decision making process!
Anything more and you are far too pampered.
Only verbose and bloated languages require an IDE to even be productive.
If an IDE is required to remove a lot of the drudgery and boilerplate you are using the wrong language.
That said, I typically use IntelliJ. It also has support for the decent languages I do use and not because I have to use it to take care of boilerplate and other nonsense. I don't use the Java language or any Java lib in my work but occasionally make use of the JVM.
It is just more convenient for debugging, running tests and using mercurial but it doesn't really offer any productivity boost for me. If not for the peripheral functionality it would have no benefit to me over a great text editor.
Those poor Java and C# schmucks. The time to finish a task would increase exponentially without an IDE and offers no real productivity boost in sane languages.
If your Emacs has all the features of my IDE, then it's an IDE.
So you can't.
Then why am I a vi/emacs hipster to you?
Dewey, what part of this looks like authorities should be involved?
The right balance of close to the metal, clean edit functions, extension manager is good. Like the vertical editing function. Some extensions get a bit behind. O well. jedit.org Zero dollars. Thanks jEdit!
Jesus Christ I thought you were *JOKING*.
Are you honestly so stupid you think any drooling moron placed in front of an IDE is productive???
I can demonstrate it by pointing to a few of the drooling morons I know who have somehow become employed as programmers, or you know the legions of idiots on stack exchange.
SJW n. One who posts facts.
You're obviously an amateur, or someone who works on very small projects.
You're obviously an amateur, or someone who works on very small projects.
And you obviously lack a basic understanding of logic. Let's say we accept your absurd premise that one needs an IDE to be productive.
That makes an IDE necessary but not sufficient to be productive. If you put a monkey in front of an IDE, you wouldn't have a productive programmer.
The fact that you seem to think an IDE makes even very bad people productive is a strong indication that you either don't work in programming at all or you only ever work with the bottom 20% so you don't know what a productive programmer actually looks like.
SJW n. One who posts facts.
For many years I was a staunch fan of just using VIM, tags, and the CLI.
Today I still use VIM, but for coding in a big project I used SlickEdit.
SlickEdit has been around a really long time, supports multiple platforms, and it has really great key binding modes, including VIM and Emacs. So I can get all the features of a modern IDE (auto completion, preview, integration with my builds, easy refactoring, etc etc), but it edits just like VIM.
The only downside is that it's not free, and it's not cheap.
McDonalds versus Homemade
Actually, the vast majority of professional programmers I've known primarily use vi, some use emacs. Very, very few use an IDE. You gotta get into the $150-250k salary range to get away from IDE's and back into terminals and text editors.
You're not fooling anyone. You gave it away with the lazy slashdot stereotype of StackOverflow. Spending 3 hours on an issue that a StackOverflow search would have found you the key to in seconds is not being a productive programmer. And it's certainly not being a professional one.
You're a poser, not a programmer. You don't do this for a living. You have far too much to learn.
Ducking and weaving, ducking and weaving. Oh and invective and ad homenim too.
All to avoid admitting your original point was flat out wrong and illogical. Still if it comforts to do so, please be my guest and keep on fooling yourself :)
SJW n. One who posts facts.
You're stil not fooling anyone. Your comments are as foolish as a carpenter saying he only ever uses hand tools. When you're learning to be a carpenter, then of course you'll learn to use hand tools. But professional carpenters in this day and age are using power tools for most of their work.
Your comments are as foolish as a carpenter saying he only ever uses hand tools.
Oh analogy time. Firstly, my comments are nothing like that. If you think so then your reading comprehension is so low then there's little chance of you ever understanding this post. But whatever, I'll use your analogy, because bits of it work (also carpentry is a hobby of mine as it happens---though I'm not especially good).
Your original claim is like saying that sticking anyone in front of power tools will make them a productive carpenter.
But professional carpenters in this day and age are using power tools for most of their work.
This is hilarious. Remember your claim that "anyone in front of an IDE is productive", translates to "anyone in front of power tools is productive". If you let someone completely incompetent into a good woodworking shop with actual proper power tools, you're more likely to end up with a pile of fingers on the floor and broken machines than anything coherent made out of wood.
Because tools alone are not sufficient to make someone productive.
That last line is really the crux. The fact that you appear to not understand it is quite frankly astonishing. I do hope you're not in charge of any hiring decisions. Because according to what you're espousing here, you can hire literally anyone, stick them in front of an IDE (or powerful woodworking tools---why not) and have a productive member of the work force.
Anyway your analogy still sucks, because all of the IDE related tools are available with equal or more power outside the IDE.
SJW n. One who posts facts.
I pretty much use the same tools for Windows / Java / OS X/ iOS and started my career about the same time. Pick the best IDE for the target environment / source language rather than one to rule them all.
I started my professional career writing Windows apps in C++ and never saw the point of the 80 character per line limited text mode editors that were available on Windows / DOS at the time. After college it was a long number of years before I saw Unix again, and by then I was accustomed to GUI based editing. I will never forget fighting with folks in the early 90s who wanted to impose a 80 character line limit as part of our coding standards because that's all they could see in their text mode editors. Bogus!
I have to say though that the worst IDE I have used is Eclipse. I spent about 6 months in Eclipse 3 years ago before a more senior Java developer showed me IntelliJ and I never looked back. Major gripes:
When you start Eclipse, the UI is already in a bad state. The toolbar buttons are enabled as if you are debugging. If you click the "Stop the Debugger" button, you get a dialog telling you that the button you just pressed is not enabled. Uh, yeah it was otherwise how did I press it to get this dialog? If you can't even get the initial UI state right, it doesn't inspire confidence! I still saw this in the last version I tried. I'm assuming that the design of the code must be so bad that this must be very hard to fix so it stays broken in version after version. And no, I'm not going to pull down the code and try to fix it when the community version of IntelliJ is free of cost and works fine.
So many times Eclipse would show all these red underlines in my code but when I compiled the code from the command line there were no warnings or errors. Deal breaker! Absolutely unacceptable waste of my time! All of the files had been saved. If it has no errors from the command line compiler it shouldn't be showing errors in the IDE. It's like the IDE is senile or something...
When I was developing servlets, every month or so the integrated Tomcat would just stop working for no apparent reason. I never had a problem with IntelliJ and standalone Tomcat.
Having to reset your font and color settings for each workspace is tedious. Having the IDE forget some of your key mappings when you start it, even if you haven't changed workspace is downright annoying. Another waste of my time. The whole thing just feels so brittle.
You really are an incompetent. Your entire argument is based on a misquote.
Anyway your analogy still sucks, because all of the IDE related tools are available with equal or more power outside the IDE.
You're showing your ignorance again. An IDE is about productivity. You can for example type a complex command in a CLI to do a refactor, but there's no usable interface there to examine preview of the refactor before you do it.
The IDE user leaves you and your primitive tools in the dust.
BTW, I see you are still waiting for a single person to agree with your dumb argument.
You really are an incompetent. Your entire argument is based on a misquote.
lolno
Do you deny you actually said precisely this:
No, using an IDE means you are a productive programmer
Because the meaning is entirely clear. I like how you have now admitted that you've lost (by claiming I've "misquoted" you even though the quote is entirely clear). Well done. Nice to see you admit defeat with honour and good grace.
SJW n. One who posts facts.
Do you deny you actually said precisely this:
No, using an IDE means you are a productive programmer
Do you deny that you made precisely this incorrect quote: "anyone in front of an IDE is productive"
Obviously tools like cut'n'paste are beyond you. You're also too stupid to realise they don't even mean the same thing. You lose.
And I see you're still waiting for a single person to agree with you.
And I see you're still waiting for a single person to agree with you.
Ah I see you're using sociallogic. It's not about the reasoning it's all about the number of likes!
You're right, what I was giving wasn't s direct quote, it's a logical conclusion of what your quote means. If using an IDE means you are a productive programmer, then an idiot who caan't even figure out fizzbuzz using an IDE is, according to your reasoning, a productive programmer.
End result: you said something stupid. Stop trying to defend it, just own it and move on.
SJW n. One who posts facts.
Nope. It was the answer to the question "If I use an IDE, does it mean I'm a bad programmer". Implicit in the question is whether that particular tool makes him a bad programmer. Everything else is out of context (context, something you'd understand if you were a programmer). Returning the answer in the same framing (context) means that that particular tool makes him more productive.
Everyone else got it. Hence the +5 Insightful. And hence your downmods.
Now, are you going to continue being an ignorant arsehole?
Nope. It was the answer to the question "If I use an IDE, does it mean I'm a bad programmer".
And your reply was that it makes him a productive programmer. Which it doesn't: if he's a bad programmer (irrespective of IDE use), using an IDE won't make him productive. It will make him a bad programmer with an IDE.
So your assertion that an IDE will make him a productive programmer is vapid.
Returning the answer in the same framing (context) means that that particular tool makes him more productive.
MORE is the crucial word there. You didn't use it. So basically this entire thread is due to your inability to actually write clearly and say what you mean. You've as good as admitted it there when you subtly modified what you said to change the meaning entirely. Of course you don't actually have the good grace to come out and say that, but I'll accept what you write as an admission of defeat.
Everyone else got it. Hence the +5 Insightful. And hence your downmods.
Why not take the argument over to facebook to see who gets the most likes, or twitter to see who gets the most retweets? Do you really feel populism is a substitute for reason?
Now, are you going to continue being an ignorant arsehole?
Now I know I've won :) :) :)
SJW n. One who posts facts.
Now, are you going to continue being an ignorant arsehole?
Now I know I've won :) :) :)
That'd be a yes then.
And still not a single person agrees with you.
I'm glad and surprised you conceded. Well, props to you for admitting it.
And still not a single person agrees with you.
You seem to believe I care.
You should try using your mind for logic and reason than using it for worrying about how popular you are, especially with random people on the internet.
SJW n. One who posts facts.
What an imbecile you are.
What an imbecile you are.
If you think so...
Bear in mind, I'm not the one making illogical statements and then judging their value on how many "likes" I get.
SJW n. One who posts facts.
If you don't like it, you can also try to play around with semantic patching (like coccinelle)
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]