• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

why are IDE frowned upon?

 
william chaple
Ranch Hand
Posts: 135
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I got a new job as a system developer and they asked me why I am using an IDE, or netbeans? To me, netbeans gets the job done and is just the same as using VIM or GEDIT.

I pretty much have the application at /var/www/html (root) and I just use netbeans to open those files. So what exactly is the difference?
 
Henry Wong
author
Marshal
Pie
Posts: 21427
84
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
william chaple wrote:I got a new job as a system developer and they asked me why I am using an IDE, or netbeans? To me, netbeans gets the job done and is just the same as using VIM or GEDIT.

I pretty much have the application at /var/www/html (root) and I just use netbeans to open those files. So what exactly is the difference?


Well, I don't think that it is frown upon -- especially, since you are only using it as an editor. I have a question though. How do you edit a file, that is on a headless server, halfway around the world? You will be surprised at how common this situation is.

Henry
 
Steve Luke
Bartender
Posts: 4181
22
IntelliJ IDE Java Python
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you ask me I don't think they should be frowned upon assuming you already know how to program in java (or your language of choice) and know what goes into building and running the application.

In fact ides can make you more productive if you know how to use them. But therein lies their problem, you have to learn to use them and sometimes learning how to integrate them into a specific build system or development environment can be a lot of work. So often people will question whether their learning curve is worth the benefit they provide.

And I guess the answer to that depends a lot on how you use it (the ide) and how stable your environment is. If you have six different build systems then maybe an ide is just not worth it.
 
Ali Gordon
Ranch Hand
Posts: 182
Eclipse IDE Hibernate Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Steve Luke wrote:If you ask me I don't think they should be frowned upon assuming you already know how to program in java (or your language of choice) and know what goes into building and running the application.

In fact ides can make you more productive if you know how to use them. But therein lies their problem, you have to learn to use them and sometimes learning how to integrate them into a specific build system or development environment can be a lot of work. So often people will question whether their learning curve is worth the benefit they provide.

And I guess the answer to that depends a lot on how you use it (the ide) and how stable your environment is. If you have six different build systems then maybe an ide is just not worth it.


And becoming an expert at an IDE can come only from (a lot of) experience. I don't know if there is a single go to source which teaches you all the most commonly used features like debugging, accessing databases etc.
 
Ulf Dittmer
Rancher
Posts: 42968
73
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A question like "why are you using an IDE?" is only acceptable if it means "I know nothing about IDEs; please educate me". Any undertones of "I think you would be better off using X" presumes that whatever works for the person asking the question will also work for someone else - not a correct assumption, work styles and preferences are too personal for that. As long as the outcome ties into whatever build system is used, the choice of development tools should be a personal one.
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 65124
91
IntelliJ IDE Java jQuery Mac Mac OS X
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What Ulf said. I've worked at a number of places where the tools are dictated from on high and that's just dumb.

Around the Ranch, you'll generally find novices dissuaded from starting with IDEs because learning the intricacies of the IDE at the same time as learning a new language can be daunting. Also, frequently IDEs will do work for you that you should learn to do yourself. But I don't know if anyone would say never use an IDE.

One exception I make is for web development: I use an IDE for what it provides (editing assist, refactoring, etc), but run the web environment outside of the IDE. I find that the limitations and complexity of running the container within the IDE is a hindrance rather than a help, and doesn't reflect how the app will run in the real world. As always, YMMV.
 
J. Kevin Robbins
Bartender
Pie
Posts: 1801
28
Chrome Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bear Bibeault wrote:
One exception I make is for web development: I use an IDE for what it provides (editing assist, refactoring, etc), but run the web environment outside of the IDE. I find that the limitations and complexity of running the container within the IDE is a hindrance rather than a help, and doesn't reflect how the app will run in the real world. As always, YMMV.


I agree with this. Before I even install an IDE (I use NetBeans) I install the standalone version of Tomcat and get it working using the startup and shutdown batch files. After it's working to my satisfaction I install the IDE and uncheck the boxes where the IDE offers to install Tomcat or Glassfish. Then within the IDE project configuration I point it toward my existing Tomcat installation. I've found this to provide a lot cleaner setup.
 
Tapas Chand
Ranch Hand
Posts: 549
8
BSD Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In our institute(in my study days) they first taught us how to use
javac <>
java <>
jar -cvf <>

Then they allowed us to use eclipse for bigger programs.

Then they taught us how to use
CATALINA_HOME
deploy war in tomcat
start/stop tomcat
change port/memory in tomcat


Then they allowed us to configure tomcat in eclipse.
I think this should be the way.
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15448
42
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tapas, that's generally what we recommend to beginners here on the Ranch too.

If you're a beginner, then it's easier to start with a text editor and the command line, so that you can concentrate on learning the basics of the language first and you don't need to be concerned with learning an IDE at the same time as learning the programming language. Most IDEs are very powerful but also reasonably complicated, so it can become overwhelming if you're trying to learn programming and using the IDE at the same time.

Also, it's good to have an understanding of how the command line tools such as javac work, it will teach you for example what the classpath is and how it works. An IDE hides those things, but if you don't know the basics of for example the classpath, it will be harder to understand how Java works and how to solve errors such as NoClassDefFoundError.

For professional work, an IDE is essential, because it helps your productivity a lot. Managing some big project with just a text editor and the command line is a daunting task.
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18277
56
Android Eclipse IDE Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The reason for the poor reputation of IDEs is that too many IT shops think that an IDE is a replacement for a well-trained developer. The IDE has all the intelligence, so you can set a monkey in front of it, pay peanuts, and get professional results.

As we've seen this very week, professional results are sadly uncommon in the IT world, which might be a hint that it's not working.

If it's not, hang around the ranch and hear some of the really appalling questions that get asked by people who start off with "My IDE is..."

Thankfully, you've been trained better than that.
 
Tapas Chand
Ranch Hand
Posts: 549
8
BSD Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:The reason for the poor reputation of IDEs is that too many IT shops think that an IDE is a replacement for a well-trained developer. The IDE has all the intelligence, so you can set a monkey in front of it, pay peanuts, and get professional results.
+1 for this statement .

And yes, I consider myself lucky that my upbringing has been done in the correct way.
 
Tapas Chand
Ranch Hand
Posts: 549
8
BSD Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jesper de Jong wrote:For professional work, an IDE is essential, because it helps your productivity a lot. Managing some big project with just a text editor and the command line is a daunting task.

In my very first job, they were not using IDE. We used to code directly in IBM AIX with edit plus.
Eventually the productivity was considerably low.
But I cant deny the fact that as a programmer I was benefitted a lot.
And this does not mean that I am against IDE for professional work.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49827
69
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
An IDE helps an experienced and good programmer work better. It also helps a bad programmer work worse
 
Paul Anilprem
Enthuware Software Support
Ranch Hand
Posts: 3764
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Around 2001, I was working with a games development company in NYC. I had recently joined a project, which was at an initial stage, and the manager was just building the team. The first day I joined, he asked me to develop a Java GUI application that would demonstrate what he was planning to do. His said he wanted a "POC" but his idea of POC was really a fully functional application. And he wanted it in like two days ...of course, it was just a POC
So I asked him what IDE do you use (at that time there was no Eclipse or NetBeans). "Notepad!", he said. "All a smart developer needs is Notepad", he added in a tone that made me look stupid for asking that question.
There was no way in hell I was going to write swing code in Notepad. Now, in my previous project I had used VAJ (Visual Age for Java, it formed the basis of Eclipse later) and had loved it very much. I knew I had very little time to show him something but even then, I spent a few hours in downloading and installing VAJ. I developed something good in couple of days and when I showed it to him, his eyes popped out. He thought I downloaded some code off the internet. It took him a while to understand that that was not the case. I know I couldn't have done it without VAJ.

The bottom line is, there are people who don't realize the value of an IDE. Don't try to tell them different because they will not understand. (I am not talking about OS developers from the 70s and 80s. Those people were indeed genius but that is a different story.) But know that IDEs are extremely powerful and to take advantage of that power, you absolutely must know how to do everything by hand. IDEs only do what you do by hand. But they do it faster...a lot faster
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18277
56
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Paul Anilprem wrote:,,,, And he wanted it in like two days ...of course, it was just a POC

Now THERE's a guy who's thoroughly infected with the AYHTD! Syndrome (All You Have To Do Is...)

Campbell RItchie wrote:An IDE helps an experienced and good programmer work better. It also helps a bad programmer work worse

Paul Anilprem wrote: IDEs only do what you do by hand. But they do it faster...a lot faster

Actually, the most dangerous part of the IDE - excepting the monkey - are the "wizards".

Wizards, of course, are the components that can generate something by filling in a simple form or 2 and pushing a button. Pointy-Haired Bosses think that this means that the Wizard is "writing the code", hence the lack of need for intelligent button-pushers.

The wizard isn't writing the code, though. It's taking canned code that someone else wrote and slapping a coat of paint over it.

It's a variation of a theme that pre-dates IDEs, and in fact, pre-dates my long and evil career in IT. Sales people come in with some gee-whiz Magic Bullet "Programming Without Programmers" system that's supposed to allow you to lay off anyone with even a vestige of talent and yet produce top-quality systems in minutes.

And it never works, because unlike appliances and automobiles, users don't want a single model or even one with certain options. They want software that does exactly what they want. And no pre-written application or platform has ever been able to handle the astronomically-large number of ways that you can take even the simplest app and customize it on demand. They start out well. The good ones even carry you through 1 or 2 basic updates. But before long...
user wrote:
That's great! But can you....[*]


And the fancier they start out, the more complex the app that they generate, the bigger the disaster when you overreach them.

----
*After all, All You Have To Do Is...
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18277
56
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
¡Ay, Caramba!

Speak of the Devil: http://www.coderanch.com/t/652566/java/java/JPA-Project-Clueless
 
Paul Anilprem
Enthuware Software Support
Ranch Hand
Posts: 3764
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:
Actually, the most dangerous part of the IDE - excepting the monkey - are the "wizards".

Absolutely. Wizards that generate "complete" ready to use code make you pay a big price later. However, I do like wizards that simplify tedious tasks such as generating accessors, managing deployment descriptors, and generating shell applications.

I remember when JavaBeans specification came out, they had some kind of a wizard that would allow you to take beans from here and there (basically drag from various libraries and drop into a bean container or something), hook them up with each other using a GUI, and build a complete application! I forget what it was called but people spent quite a lot of time in an excited state working on it before figuring out that you can't build non-trivial applications by dragging and dropping
 
Paul Anilprem
Enthuware Software Support
Ranch Hand
Posts: 3764
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:¡Ay, Caramba!

Speak of the Devil: http://www.coderanch.com/t/652566/java/java/JPA-Project-Clueless

 
Tapas Chand
Ranch Hand
Posts: 549
8
BSD Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:Sales people come in with some gee-whiz Magic Bullet "Programming Without Programmers" system that's supposed to allow you to lay off anyone with even a vestige of talent and yet produce top-quality systems in minutes

Wow...absolute deja vu for me.
When I was a developer in a bank, my boss's boss (banker turned delivery head) asked us to develope an application which will create Java applications with click of buttons.
Quoting him
Bankers will click buttons and Java code will be written automatically and Java developers will not be needed for so many applications, only few will be there to support this mother application
 
Paul Anilprem
Enthuware Software Support
Ranch Hand
Posts: 3764
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tapas Chand wrote:
Tim Holloway wrote:Sales people come in with some gee-whiz Magic Bullet "Programming Without Programmers" system that's supposed to allow you to lay off anyone with even a vestige of talent and yet produce top-quality systems in minutes

Wow...absolute deja vu for me.
When I was a developer in a bank, my boss's boss (banker turned delivery head) asked us to develope an application which will create Java applications with click of buttons.
Quoting him
Bankers will click buttons and Java code will be written automatically and Java developers will not be needed for so many applications, only few will be there to support this mother application

Well, in this case, other than the language part, he is not too far off. I do see a lot of bankers using excel very much the way he described. I know many traders are very good at excel and they maintain their own spreadsheets with complicated logic. I have seen some such sheets and they are nothing short of full fledged applications. There have been times (usually around Jan/Feb ) when I wished I were an excel developer!
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18277
56
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Which brings up an entirely 'nother whinge. The exec whose attitude is "I can do everything you can do[*] and more, but I'm too important to waste my valuable time on such trivialities, so you do this and I'll do the real work".

I worked for a bank and yes, there were some really extensive spreadsheets. And MS-Access databases.

One of the primary functions of my department was to bail them out when they got too much data in them and had to be migrated to Enterprise-level functionality. Some of these apps were literally shovelling data in and out 1GB at a time to fit the sheet limitations. You needed a full Enterprise-grade DBMS to hold all the data in one set and that meant the IT department unless your budget extends to getting a full-fledged Oracle DB in your little silo.

I have a lot of respect for this kind of stuff, actually. It's generally the accumulation of literally years worth of tweaking data, but it has its limitations. Not only in terms of data capacity, but other critical things as well. A spreadsheet on a laptop isn't (at our shop, anyway) being kept backed up like the critical corporate data asset it is, and wasn't (at the time) kept very secure. Meaning you lose your laptop at the airport and all sorts of liabilities ensue. Plus only one person could be using the data at a time unless you want the nightmare of out-of-sync clones all over the office and beyond.

Yes, Corporate IT is slow and clunky. But a lot of that is because it has to be if proper safeguards are to be ensured and at the same time, that multiple users can do what they need to.

Plus, believe it or not, us "useless" IT people are practiced in the niceties of combining complex sets of data, coding calculations that run efficiency (I practically got a medal for my Black-Scholes algorithm), and ensuring data integrity.

---
[*] After all, AYHTDI...
 
Paul Anilprem
Enthuware Software Support
Ranch Hand
Posts: 3764
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:Which brings up an entirely 'nother whinge. The exec whose attitude is "I can do everything you can do[*] and more, but I'm too important to waste my valuable time on such trivialities, so you do this and I'll do the real work".

Usually the reason for existence of such sheets is quick turn around. They know what they want to do and instead of explaining that to another team/BA and have it developed by someone (which could take weeks), they just do it themselves in excel so that they could get the results right away. Excel does excel in that aspect


One of the primary functions of my department was to bail them out when they got too much data in them and had to be migrated to Enterprise-level functionality.

True. When the trader grows, he gives this sheet to the front office support team, who try to mimic all that in a Java/C# application with all the enterprise related bells and whistles. This may also happen if there is some regulatory requirement to maintain the data and activity.
I have seen several projects starting this way from a spreadsheet and ending up as big enterprise applications.
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Paul Anilprem wrote:

One of the primary functions of my department was to bail them out when they got too much data in them and had to be migrated to Enterprise-level functionality.

True. When the trader grows, he gives this sheet to the front office support team, who try to mimic all that in a Java/C# application with all the enterprise related bells and whistles. This may also happen if there is some regulatory requirement to maintain the data and activity.
I have seen several projects starting this way from a spreadsheet and ending up as big enterprise applications.

I was a big fan of spreadsheets back in the 1990s. Not because I liked or was any good at using them - the Excel wizards are definitely a special breed. But because eventually the company would realise they needed to bring all this data and functionality together so they could manage it properly, share it and stop duplicating data and effort endlessly around the organisation. Which was when they would call on us database application developers to build a database, migrate all the data and implement the key functions they wanted. I earned a lot of money by killing off spreadsheets.

Of course, these days people are starting to insist they have to get rid of their big monolithic enterprise databases and replace them with Cool New distributed technologies, while data analysts are starting to look at things like IPython Notebook as a way to combine a flexible, powerful and user-friendly programming tool with access to all kinds of data sources, from CSV files to Hadoop.
 
Guillermo Ishi
Ranch Hand
Posts: 789
C++ Linux Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tim Holloway wrote:Which brings up an entirely 'nother whinge. The exec whose attitude is "I can do everything you can do[*] and more, but I'm too important to waste my valuable time on such trivialities, so you do this and I'll do the real work".

I once had one of them telling me exactly how to do something but it wasn't the way. Can't remember what it was now. The next time you're around a CEO ask yourself if he could do a good job in the mail room. They are CEOs because it's the only thing they can do. Really.

Tim Holloway wrote:
I have a lot of respect for this kind of stuff, actually. It's generally the accumulation of literally years worth of tweaking data, but it has its limitations.

Pretty insightful. I hate to think of a bank running that way though.
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Paul Anilprem wrote:Wizards that generate "complete" ready to use code make you pay a big price later. However, I do like wizards that simplify tedious tasks such as generating accessors, managing deployment descriptors, and generating shell applications.

The ratio of "tedious tasks" to "code I need to write" is pretty much why I always use an IDE for Java, use one fairly often for Scala, and hardly ever use one for Python. Although a good code editor is still valuable - Notepad definitely doesn't cut it!
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Guillermo Ishi wrote: I hate to think of a bank running that way though.

I worked for a bank years ago, and you really wouldn't believe the crap they rely on for their IT systems. Unless you're an RBS customer, of course, in which case you'll have no trouble believing it!
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic