permaculture playing cards
The moose likes Meaningless Drivel and the fly likes why are IDE frowned upon? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA Java SE 8 Programmer I Study Guide this week in the OCAJP 8 forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "why are IDE frowned upon?" Watch "why are IDE frowned upon?" New topic
Author

why are IDE frowned upon?

william chaple
Ranch Hand

Joined: Mar 08, 2013
Posts: 134
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
Sheriff

Joined: Sep 28, 2004
Posts: 20174
    
  47

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


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Steve Luke
Bartender

Joined: Jan 28, 2003
Posts: 4181
    
  21

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.

Steve
Ali Gordon
Ranch Hand

Joined: Apr 30, 2014
Posts: 182

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.


My name was Borat Sagdiyev. But the forum does not allow such names.
Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42958
    
  73
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

Joined: Jan 10, 2002
Posts: 63355
    
  70

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.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
J. Kevin Robbins
Bartender

Joined: Dec 16, 2010
Posts: 1440
    
  14

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.


"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson
Tapas Chand
Ranch Hand

Joined: Dec 29, 2009
Posts: 340
    
    2

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

Joined: Aug 16, 2005
Posts: 15002
    
  27

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.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17166
    
  27

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.


An IDE is no substitute for an Intelligent Developer.
Tapas Chand
Ranch Hand

Joined: Dec 29, 2009
Posts: 340
    
    2

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

Joined: Dec 29, 2009
Posts: 340
    
    2

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

Joined: Oct 13, 2005
Posts: 44616
    
  34
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

Joined: Sep 23, 2000
Posts: 3558
    
    9
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

Enthuware - Best Mock Exams and Questions for Oracle Java Certifications
Quality Guaranteed - Pass or Full Refund!
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17166
    
  27

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

Joined: Jun 25, 2001
Posts: 17166
    
  27

¡Ay, Caramba!

Speak of the Devil: http://www.coderanch.com/t/652566/java/java/JPA-Project-Clueless
Paul Anilprem
Enthuware Software Support
Ranch Hand

Joined: Sep 23, 2000
Posts: 3558
    
    9
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

Joined: Sep 23, 2000
Posts: 3558
    
    9
Tim Holloway wrote:¡Ay, Caramba!

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

Tapas Chand
Ranch Hand

Joined: Dec 29, 2009
Posts: 340
    
    2

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

Joined: Sep 23, 2000
Posts: 3558
    
    9
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

Joined: Jun 25, 2001
Posts: 17166
    
  27

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

Joined: Sep 23, 2000
Posts: 3558
    
    9
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

Joined: Mar 01, 2009
Posts: 2239
    
  23

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.


No more Blub for me, thank you, Vicar.
Guillermo Ishi
Ranch Hand

Joined: Jul 28, 2014
Posts: 676
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

Joined: Mar 01, 2009
Posts: 2239
    
  23

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

Joined: Mar 01, 2009
Posts: 2239
    
  23

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!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: why are IDE frowned upon?
 
It's not a secret anymore!