LebGeeks

A community for technology geeks in Lebanon.

You are not logged in.

#1 May 29 2011

Joe
Member

Why I don't use IDE

I have always advocated the use of text editors over IDEs when programming. And here's why:

Programmers need have a variety of tools at their disposal: a text editor, but also version control, debuggers, packaging tool, automated compiling, unit testing frameworks, continuous integration servers, ... Saying you should use a text editor is the same as saying: I'd rather have five separate tools each serving one purpose, than one big monster that does it all.

In theory, IDEs are great. They give you all the tools you need, in one convenient place. Being centralized, they can make the tools work together to give a heightened experience: auto-completion, suggestions, they can show you all the information you need in one place.

But what's really happening is that IDEs are now so big and complex, they completely hide their internals. Tools like gcc, have a manual that's over 15 000 lines. You can't really reduce that to a point and click interface. Each tool is very powerful and give you great flexibility.

How many .NET developer know exactly how the CLR work? Forget about the CLR. How many really know how to write a .csproj file, an ant build script or a makefile?

Now the real question is: Are these really necessary?

I believe they are. This is why I always prefer to separate the tasks completely. I have one tool for each task, so that I can concentrate on each task separately. Also, after you become a bit at ease with Vim (it's been over a year now ^^), you can't possibly imagine editing text (let alone a source code) with anything but Vim.

However, the corporate world thinks differently. They believe that the app developer should focus on one thing, code fast, respect deadlines, deliver projects, ... The gain of productivity an IDE give you will allow you to remain competitive. This is probably true, but it would justify a lot of crappy code in the industry. And hey if anything, that means more jobs for us :^P

Offline

#2 May 30 2011

xterm
Moderator

Re: Why I don't use IDE

At first, I figured we're just beating a dead horse all over again with this topic, but then I read this:

rahmu wrote:

However, the corporate world thinks differently. They believe that the app developer should focus on one thing, code fast, respect deadlines, deliver projects, ... The gain of productivity an IDE give you will allow you to remain competitive. This is probably true, but it would justify a lot of crappy code in the industry. And hey if anything, that means more jobs for us :^P

I find it very astonishing that people actually believe that this is remotely true. So before i proceed with my comments let it be known that I believe you can write down on a piece of paper, scan it and you're still as productive as you can be. That said, follows my comments:

However, the corporate world thinks differently.

Define corporate world. The top IDEs in the 'world' are Visual Studio and Eclipse, both used for commercial products and for open source projects.

They believe that the app developer should focus on one thing, code fast, respect deadlines, deliver projects, ... The gain of productivity an IDE give you will allow you to remain competitive

So what you're saying is that, you'd much rather handicap yourself than be able to achieve the problem you're trying to solve, quickly? Whether you're using an IDE or a text editor, respecting deadlines and delivering projects is in no way related to the tool you're using. The bit about remaining competitive, with whom? the ones that are using text editors? or the other parties that are using IDEs as well?

This is probably true, but it would justify a lot of crappy code in the industry.

Crappy code exists, whether you use an IDE or a text editor, i fail to see how this is in any way relevant.

And hey if anything, that means more jobs for us :^P

'us' as in the text editor users? I guess switching to a text editor magically makes you a better developer?

-

Finally, you dismissing IDEs and yet you promote the use of frameworks such as RoR which hide 99% of the underlying architecture in order to keep you focusing on reaching your goal in a quick and nifty manner.

I eat taboulé with bread, you eat it with lettuce. I wear armani, you wear prada. I use an IDE, you use an editor.

Offline

#3 May 30 2011

Kassem
Member

Re: Why I don't use IDE

rahmu wrote:

How many .NET developer know exactly how the CLR work? Forget about the CLR. How many really know how to write a .csproj file, an ant build script or a makefile?

Why would I care about the inner workings of the CLR? How does that make me a better coder? And why would I want to write a .csproj file (which is a boring task) when the IDE does it neatly on my behalf? The thing is, if you're going to care about every single detail of your workflow, you're going to end up stuck at those details rather than writing a software that actually provides value.

rahmu wrote:

However, the corporate world thinks differently. They believe that the app developer should focus on one thing, code fast, respect deadlines, deliver projects, ... The gain of productivity an IDE give you will allow you to remain competitive. This is probably true, but it would justify a lot of crappy code in the industry. And hey if anything, that means more jobs for us :^P

Believe it or not, coding is not some sort of a charity work or just a way to fill up your spare time. Coding is a profession that is supposed to provide you with a decent life-style. And that can only be achieved through better productivity. More productivity equals more projects achieved in a certain time span equals more money for X (coder, agency... whatever). So yeah, if an IDE is going to hide some details away from me, while providing me with increased productivity, then so be it, I won't complain. If and only if I ever needed to know about those details (assuming that would help achieve something or solve a problem in my project), I could easily look it up, but if I never actually needed it then why should I? Waste of time.

Offline

#4 May 30 2011

CSGeek
Member

Re: Why I don't use IDE

Ok, let's put it like this.

'I'll use whatever software that make it "easy for me" to focus on solving the real world problem'.

Depending on the framework,  sometimes you have no choice but to limit yourself to command line, editor, and a compiler.  Say you're programming for a Point of Sale device that still uses an old C language standard.

For the majority, I see it as follows:
1- You have OO developers whose work is better fulfilled with the use of an IDE.
2- You have C/perl, let's call them OS programmers/sysadmins who find themself more at ease by using the shell/cmd line.

I guess a language paradigm greatly affects the choice of using an IDE or not.

@rahmu:

You fit in 2 if I'm not mistaken.
Regarding your GCC comment, you can always call whatever program from an IDE with whatever parameters.  The IDE doesn't need to know about all programs out there but it provides you with a perfect interface to use them.

@kassem

I understand what you're saying about not writing a project file etc, but you need to be ready to tackle whatever problem comes out of it if any occur,  or if you need to customize it.

@xterm

Great job at making it clear that some ideas are in no relevant

Offline

#5 May 30 2011

ali.koubeissi
Member

Re: Why I don't use IDE

I was going to write a point-to-point kind of posts as I found almost everything you said is simply .... not correct. However, there is only 1 statement that blew me off ... I'm talking about twitching okay? :

How many .NET developer know exactly how the CLR work? Forget about the CLR. How many really know how to write a .csproj file, an ant build script or a makefile?

Associating knowledge with a piece of software, really? am I an  idiot that doesn't know the internals of the CLR because I use an IDE? Not only that, but I'm ignorant enough not read anything about it. Why? Well because you're using an IDE!  What is this CLR thing that you speak of? How do I access it from Visual Studio?

/rant.

Offline

#6 May 30 2011

Kassem
Member

Re: Why I don't use IDE

Actually, the CLR is not something hidden by Visual Studio, it is hidden by the .NET framework itself! Of course we do understand what the CLR is and what it does in the broad scope, but we do not really need to know how it does it.

Offline

#7 May 30 2011

Joe
Member

Re: Why I don't use IDE

Yes I do argue that using a text editor makes you a better programmer, just like driving a stick shift makes you a better driver. Why should I care about shifting gears if my car can do it automatically for me? The analogy is perfect.

xterm raised an interesting question though: why do I promote the use of web frameworks, but not the use of IDE?

I'm not saying that adding abstraction layers is a bad thing. I'm just complaining that IDEs hurt a lot. I believe there's a difference between automation and limitation. Django and Rails do not limit you or handicap you. IDEs limit the power of the tools you're using.

I will also add that "corporate" and "open source" are not incompatible. Red Hat or Novell are prime examples.

When I say "more work for us", I mean "us the programmers. All of us".

Finally, can someone give me one good reason to use an IDE?

Offline

#8 May 30 2011

Kassem
Member

Re: Why I don't use IDE

Finally, can someone give me one good reason to use an IDE?

I'll start with: Code-hinting/Code-completion (intellisense in Visual Studio)

Let's see what others will say :)

Last edited by Kassem (May 30 2011)

Offline

#9 May 30 2011

proners
Member

Re: Why I don't use IDE

An IDE eats a lot of RAM and makes me feel happy about the money i spent on my brand new machine

Offline

#10 May 30 2011

GN90
Member

Re: Why I don't use IDE

Kassem wrote:

Finally, can someone give me one good reason to use an IDE?

I'll start with: Code-hinting/Code-completion (intellisense in Visual Studio)

Let's see what others will say :)

code-hinting/code-completions is the best feature of an IDE ; It saves lots of time and prevement digging through documentation/searching the internet in lots of cases.

If IDE were bad or awful, they wouldn't be spending money and time to make them better.

however, the IDE may allow bad habits to happen ; if you are working on a text editor you would probably come up with a naming system for your variables and methods to remember them easily, with an IDE you might not care about it cause the intellisence find it for you. And another thing, IDE makes debugging and error spotting simpler and quicker, even sometimes it auto corrects it for you (VB.net with VS) ; this is really a nice , but i think if you don't spend hours and hours to fix the errors yourself you can not master the language/frameworks (if you heavily depend on IDE, try to write something on vi or gedit or notepad++ and see how many syntax errors you will make and how many methods you will forget because you just rely on seeing it appearing in front of you.)

IDE are a great tool to develop projects and debug them in an faster , more productive way, yet i don't think someone should depend 100% on them cause after all they are just a tool.
Much like photoshop/all graphics programs for designers. The real designer is the one who can really design without depending on the features/GUI of the prog he is using even if he always use it.

Offline

#11 May 30 2011

saeidw
Member

Re: Why I don't use IDE

I regularly use both IDEs and text editors.

I love using my text editor because I'm a fiddler. I like to mess around with my environment and customize until it feels right. That works well with my "play" mode of programming. Most of the time I'll cobble together a nice vimrc for Vi to make it do what I want, or drop in a new Emacs mode that does something awesome. (You can think of Emacs as an IDE if you want, I like to think of it as a partially-sentient hyperdimensional code monster).

Most IDEs don't let you play around that much. They're designed to help you get things done. Of course you can change them. My Visual Studio looks completely alien to most people. Still, their main purpose is to put things in front of you so you don't have to reach out to get them.

Try writing a VB.NET program that does something significant outside of Visual Studio. I shudder at the thought! (Not so much for C#, it has a nice syntax and I can imagine writing it in Vi).

One last thing: Code completion (IntelliSense) isn't really a killer feature of IDEs. You can get it in Vi and Emacs (what can't you get in Emacs? I mean really!). I'm sure there are much better features of IDEs that you can't find in text editors, but code completion isn't one of them!

Offline

#12 May 30 2011

Kassem
Member

Re: Why I don't use IDE

saeidw wrote:

One last thing: Code completion (IntelliSense) isn't really a killer feature of IDEs. You can get it in Vi and Emacs (what can't you get in Emacs? I mean really!). I'm sure there are much better features of IDEs that you can't find in text editors, but code completion isn't one of them!

The debugging capabilities and the ability to view the state of variables at every step of the program's execution is simply indispensable.

Offline

#13 May 30 2011

jsaade
Member

Re: Why I don't use IDE

1- Build settings and configuration using a visual tool.
2- Templates: No need to reconfigure or create multiple and unmanageable batch files.
3- Integrated version control
4- Oranizing your project (folders,...) especially with projects dependecies (you might have a project with more than 100 files).
5- Easy Compilation
6- Easy Debugging with "visual" tools.

Last edited by ZeRaW (May 30 2011)

Offline

#14 May 30 2011

Joe
Member

Re: Why I don't use IDE

True about emacs.
I'm a die hard Vi fan, and you know what they say about emacs: It'd be a great operating system if it had a decent text editor

On the other hand, I'm not trying to prove anything, really. I'm simply sharing my experience.
I have used both. IDEs and text editor. I've tried Netbeans, Eclipse, Visual Studio, Code Blocks, Dev C++ (on Windows, back in the days). I've also tried Notepad++, gedit, jedit, Kate, GNU emacs, Vim, Vi.

I've been very picky about my choice of code-writing tool. I sincerely feel that working with a text editor makes you more ... "playful". Like Saeid described. I discovered the power of Make, Ant, git, python, ksh, bash, gcc, g++, java, javac, and so on. I learned to use them, simply because I had to use them.

I have spent hours reading the manuals of each of these tools, which taught me so much about the system, the compiling, the execution, kernel, userspace, ...

Did it make me improve? I believe yes.

Above anything, I really recommend you guys tried working in a simple text editor for a while. You'll see coding differently. Once again, think about the manual/automatic car analogy.

Offline

#15 May 31 2011

jsaade
Member

Re: Why I don't use IDE

The only problem with your analogy is the existence of tiptronic, semi manual...
Which means to each project its own handling.
For a PHP project I do not use an ide.
for a small to medium c or c++ you can escape from using an ide if you are a good driver.
Starting out with .net/wpf... will force you to use an ide
Etc
In the end no matter if the car handling is manual or automatic
The objective is to arrive safely and minimize accidents not to drive fast.

Offline

Board footer