Andrew Powell

Into The Mind of A Solutions Architect

Andrew Powell

Does It Come Down To The IDE?

December 16, 2008 · 21 Comments

In listening to people complain about different languages (MXML, AS3, Java, ColdFusion, C#, etc), most everything someone lists as what they love/hate about the language is a function of the IDE.  The IDE, in turn, is usually built around the functionality of the language.  I guess what I want to know from you is, would you be less down on a language / technology if the IDE was better to work with?  In Java, if you don't like Eclipse, you can go to IntelliJ, and vice versa.  The .NET languages tie you into Visual Studio, for the most part.  Flex, until recently, was limited to FlexBuilder.  Anyway, your thoughts on the issue would be appreciated.

Does the IDE influence how much you love / hate a language?

Tags: ColdFusion · Flex · Java · Ruby on Rails · Silverlight · Universal Mind · XML

21 responses so far ↓

  • 1 Steve Withington // Dec 16, 2008 at 12:49 PM

    I think you're on to something here. However, I think it's more than just the IDE. Sure, if the IDE can help you accomplish your tasks/goals more effeciently than say ... notepad, for example ... then absolutely, the IDE goes a long way toward &quot;language love.&quot;<br /><br />That being said, I'm not so sure that any IDE has prevented me from &quot;loving&quot; or &quot;hating&quot; any particular programming language per se.<br /><br />I think more so, it's the language itself ... the syntax, what it can do, how easily it is to accomplish your goals/tasks with the language, and how well it's adopted/supported, etc.<br /><br />Interesting thoughts.
  • 2 Andrew Powell // Dec 16, 2008 at 12:55 PM

    @Steve -<br />From the language perspective, I'm a big proponent of the theory that once you've learned one structured language, then you can easily pickup another. However, that being said, I also tend to tell people that Flex is difficult to learn, and even harder to master.
  • 3 Steve Withington // Dec 16, 2008 at 1:03 PM

    @Andy,<br /><br />I agree with your theory ... however when I first started programming, I used primarily ASP ... and then I discovered ColdFusion. When I could perform a task in CF with 1 line of code vs. the 10+ of ASP, I was hooked. I've also picked up several others along the way too, but CF is still my fav.
  • 4 Justin Reidy // Dec 16, 2008 at 1:05 PM

    I'd go a step further and actually argue that IDEs can alter the way one even approaches code. For instance, one of the key ways that I learn a language or framework is utilizing the ctrl+click function in Eclipse to view the source of a particular method or object. When I first started using Ruby in TextMate, I had real difficulty learning the language, b/c I couldn't look up the source of a particular item as easily. I've even found this style of viewing code to alter the way I code in Actionscript (in Eclipse), forgoing some of the more dynamic features of the language in order to gain static checking from the IDE.
  • 5 Steven // Dec 16, 2008 at 1:26 PM

    Unless a language is tied exclusively to an IDE, I think it's silly to like/dislike a language because of its IDE. However, that being said, I'm much happier developing in PHP after switching to Zend from Dreamweaver :)
  • 6 Craig Kaminsky // Dec 16, 2008 at 1:48 PM

    For me, I think a good IDE, one that makes it a bit easier for me to get my work done, can enhance my feelings toward a language but, ultimately, it's the syntax and similarly-related features of a language that typically hooks me (or not). <br /><br />I can say that, for me, I was not a big Ruby/Rails fan until RadRails. Not asserting that it's the greatest IDE for Ruby/Rails but it greatly sped up my development and, as I learned how to leverage the IDE, I became fonder of Ruby. <br /><br />Still, with no &quot;official&quot; IDE for CF and having coded CF since 2001 in HomeSite, Dreamweaver, and since 2005 CFEclipse, it's the syntax, simplicity, and RAD features of CF that make me love it...maybe Bolt will put it over the top!
  • 7 Nathan Strutz // Dec 16, 2008 at 1:57 PM

    Justin has it spot on - it's not necessarily the IDE that makes the language, but for approaching a new language, it can be all the difference.<br /><br />Years ago I tried to get into Java. I mean like 1998. I failed miserably, and I would say that is largely due to there being literally NO IDE at the time. No code hinting, no compile button, nothing that would start me out with &quot;public static void main string args&quot;, nothing. Fast forward to 2003 when Eclipse was out, I picked it up again and it was instantly understandable.<br /><br />I think the lack of AS IDE around 2001 is largely why I could never really grasp the language.<br /><br />ColdFusion and C# were quite the other way around. When I picked up CF in 1998, I was using HomeSite, everything was available with a click, tag hinting worked, it was a breeze. Same with C# - my first project was in Visual Studo circa 2003 or so, I leaned on my learnings from other platforms and quickly pumped out some good code.<br /><br />Maybe it's mental, I admit, when I don't know with obvious certainty what tool to use to compile my code and get off the ground, I don't want to even start out.<br /><br />No thank you to going back to compiling classes from the command line. No thank you to code guessing as opposed to code hinting. No thank you to programming like it's 1999.
  • 8 Harry B. Garland // Dec 16, 2008 at 6:17 PM

    The IDE that came with Java in 2001 is the reason I dropped Java after evaluating it for 2 days. I never picked it up again.<br /><br />For me, my peeve was that when I clicked on something as simple as a main drop-down menu, it took 500 milliseconds before the drop-down menu appeared. I made the decision that I would refuse to accept lag in something that I have a long history of expecting to see happen instantly.<br /><br />Where Java is today is a TOTAL improvement because there are choices and even competition for the IDE. As of the MAX 2008 announcement regarding Visual Studio, we learned that there will be choices in the Flex IDE. This is how all languages should be.<br /><br />So in conclusion: Languages and IDEs are 2 separate concerns, and I appreciate them not being locked together.
  • 9 Scott Barnes // Dec 16, 2008 at 7:26 PM

    We've found IDE's can make or break a language in many respects. You have to factor in a lot of things around a language, in that writing code via Notepad on C#, Java etc will test your love for the syntax of a language (try it).<br /><br />Now, compare Notepad to say Visual Studio, and suddenly a language becomes more than just syntax, it's about colloboration, debugging, extensions into other network statcks and so on.<br /><br />If you don't nail an IDE right, it can actually be &quot;poison in the well&quot; in terms of adoption.<br /><br />When i switched keyboards many years ago from CF/Java to ASP.NET i kept slapping my forehead wondering why oh why did i not take Visual Studio seriously.. as i felt i could do more in less time.<br /><br />hence i'm now at Microsoft.<br /><br />p.s<br />Still have much love for ol CF / JAVA ;) but shhhh! :)<br /><br />-<br />Scott Barnes<br />Rich Platforms Product Manager<br />Microsoft.
  • 10 Jason Presley // Dec 16, 2008 at 8:42 PM

    Nope. ColdFusion never really had an IDE since CF Studio but I love CF. ASP.NET has had an IDE (which was not to bad) but I don't like the language because it is clunky and hard to code. I like CF because it is easy, productive and in my opinion the best backend language available.
  • 11 Ryan McIlmoyl // Dec 16, 2008 at 8:53 PM

    Homesite went a long way toward helping me first learn CF, but I've since switched to VIM and haven't looked back. In fact, not being able to use the VI commands on other IDEs has hurt my productivity in other languages (although there is a Visual Studio plugin that is top notch).
  • 12 Tony Hillerson // Dec 16, 2008 at 10:32 PM

    My favorite language - one which I wish all other languages that I use were more like, has no specific IDE, and that's Ruby. People like TextMate, vim, or even more heavyweight options like RadRails for specificly Rails projects, but none of these IDEs are that full featured - at least as fully featured as Eclipse is for Java. For the real good stuff we have irb, the interactive ruby environment, and some IDEs wrap functionality there or call out to framework generators (for Rails projects).<br /><br />That said, I think you're on to something. To amend your argument to make it run, I think we could say that you can't just plunk down a language, you have to have some tools to go along with it. Either the language provides them or IDEs do it, but if they aren't there, developers aren't happy and they don't use the language unless they have to.
  • 13 Joeflash // Dec 16, 2008 at 11:57 PM

    Back in 1999, Dreamweaver was what got me back into web HTML and JavaScript development after an extended as a graphic designer. In 2005, I was using FlashDevelop and SEPY for AS2 coding, but I resisted getting into ActionScript 3.0 because the Flash AS editor sucked wind (and still does). Until I was properly exposed to Flex 2, with its far superior Eclipse IDE, and I've never looked back. In fact, Flex Builder is what made me give up the 'deseloper' designation and consider myself purely a coder. Java kinda put me off when I looked at it way back in 1998. Now that I'm familiar with Eclipse, I'm learning Java again, and it's fun. So the IDE has been instrumental in my picking up &quot;new&quot; languages.<br /><br />But the IDE is not the only additional factor. The 'runtime' for the language is important. One reason I refuse to code HTML/JS apps and have never looked twice at Java until recently is because browser compatibilities and standards are still in the stone age, and Java applets are dead. So the runtime matters a great deal. (I might change my mind about that if all major browsers decide to adopt the same JavaScript JIT like SquirrelFish, for example, but that's way OT)<br /><br />Community also matters. I'm a big fanboy of how the Flash Platform community has evolved over the years, and I personally measure all other communities by that standard. The community is what makes me feel like I've got a lifeline, makes me feel good about the ethics of the business community, and makes me feel good about giving something back where I can. Other languages also have very admirable developer communities, which has been a factor in encouraging me to branch out into other languages lately.<br /><br />IMO, there are three things that affect the adoption of a language, apart form the language itself:<br />1) the runtime for that language (browser, server, plugin, etc.)<br />2) the developer community for that language<br />3) the IDE for developing in that language<br /><br />I think the language itself generates interest, but it's the runtime, the IDE(s) and the community combined that drives the adoption of the language, and ultimately the technology itself. So for me, the IDE is just one part of a trilogy.
  • 14 Nathan Strutz // Dec 17, 2008 at 1:24 AM

    Joe just hit on 2 interesting notes. Let me phrase and emphasize them in relative terms:<br /><br />(1) Does it come town to the runtime and tooling (not the IDE)?<br /><br />For CF, the runtime is just HTML, files renamed to .cfm and a server program running somewhere. Specialty tooling includes everything you get with the CF admin, including scheduled tasks, page debugging output, database connections and so on. This is the welcome mat.<br /><br />ActionScript's tooling in the Flash IDE is terrible. A bad debugger and a bad code editor. Luckily there is the Flex SDK for real programmers. I'm not in that world, so I can't comment any more.<br /><br />Java's JDK is a bunch of separated classes and java files, not real simple to just dive into. It has some well written intro documentation stuff, but you have to hunt for it. For tooling, you've got a bunch of command-line executables, (javac, jar, etc), which basically sucks and is confusing, but in comparison, it's better than C and C++ had, and they were just trying to be better than those (but now, 10 years later, no improvement).<br /><br />.NET's SDK is maybe a little better (if you're on windows). The doc apps are pretty good and easy to browse, and it's an obvious in-road to getting started. For tooling, .NET integrates into windows - a few clicks will install IIS and you can do ASP. Otherwise, you get a command-line compiler and a few other semi-cryptic tools that you discover when you need them and end up googling for the solution they provide. One big plus for me is that csc, the C# compiler, makes an exe out of a cs file. It's so obvious but simple - csc your file and run the exe, much easier than java making a class, then invoking java to run that class - you can't just double-click it.<br /><br /><br />(2) Does it come down to the developer community?<br /><br />The CF community can be spotted at the 5 or so well known conferences, on blogs and, chiefly, on the HouseOfFusion cf-talk list. This list alone is probably the foundation and chief instigator of the platform's success. Also there's the structured ACE program and semi-structured user groups.<br /><br />The .NET community, for a long time, confused me. No central area, and the only relatively central areas are just content generated by MS. Of course they're battling the problem of having far too many developers to keep the small community feel of CF. It seems like there is a lot more blogging and twittering, but it's still hard to pick out who are the top people, except those employed by the man, and then maybe INETA speakers and those that carl franklin &amp; scott hanselman interview. Of course they have a lot more structure with the MS MVC program and more structured user groups.<br /><br />I wonder how one finds out where the community really is for a given language. It should be cataloged and documented on wikipedia or something.
  • 15 jyoseph // Dec 17, 2008 at 2:43 AM

    Without getting language-specific. The answer to your question sort of depends on how much you know about the language in the first place. <br /><br />If you're checking out a language for the first time and the IDE you're using is horrible, you may get a bad impression of the language based on the IDE. BUT, if you know the language going in, and you're a seasoned coder, you can say &quot;awh this IDE is crap&quot; and it wouldn't change your opinion of the language itself.
  • 16 James E. Ervin // Dec 24, 2008 at 5:10 PM

    It is all about the whole developer experience. I mean unless you are married to vi and a terminal (btw the 70's called they want the green screen and the lime green polyester pants back), development occurs in the context of an IDE. I mean does the fact that Java is statically typed really do anything for you, until you get into an IDE and then can code browse with a few keystrokes? Another example, the pain of boilerplate code in Java can be alleviated by being able to auto-generate delegate, equals, and getter/setter methods. <br /><br />Still there is some limitation to what tooling in an IDE can get you. For instance, take some Eclipse EMF code and try to get a neophyte to understand it and then compare it to something like Grails with its domain objects. Notice how in the Grails case it can do basically alot of the same things that EMF does with alot less grief. Why? Because EMF outputs Java code, whereas Grails uses a more terse language, Groovy.<br /><br />I have been working on Groovy Eclipse for a few years now and have come to this conclusion. A language is as useful as the features the language itself has and the tooling that can be built upon it. For the average developer, I would take it one step further, your language is as appealing as your language features and the IDE tooling that has already been built for it.
  • 17 Hasan Otuome // Dec 29, 2008 at 9:27 AM

    Some excellent points thus far. For me, I see the IDE only as an agent of productivity. It's ease/difficulty of use doesn't sway me one way or the other in terms of my liking or using a language. Maybe my stance is shaped from having to switch around a lot from IDEs to CLI. <br /><br />With that in mind, when I do use an IDE I don't want it to be a hindrance; otherwise she gets kicked to the curb. Case in point, the Flash IDE for ActionScript - not nearly as fluid to me as Eclipse, Flex Builder or FDT. Zend Studio for PHP is another standout in my book compared to say Dreamweaver or PHPEclipse. Also, NetBeans for Java feels more fluid to me than say IntelliJ IDEA. <br /><br />So, my IDE preferences only influence which tools I choose to climb the proverbial &quot;mountain&quot; with...my love for my languages is unwavering ;)<br /><br />P E A C E<br /><br />Hasan Otuome | Senior Software Architect/IT Director<br />Almer/Blank | Interactive Design &amp; Development
  • 18 3 boyutlu oyunlar // Jan 13, 2009 at 2:55 PM

    ? have followed your writing for a long time.really you have given very successful information.<br />In spite of my english trouale,I am trying to read and understand your writing.<br />And ? am following frequently.I hope that you will be with us together with much more scharings.<br />I hope that your success will go on.
  • 19 Joshua Mostafa // Jan 13, 2009 at 9:26 PM

    In response to: 'I mean does the fact that Java is statically typed really do anything for you, until you get into an IDE and then can code browse with a few keystrokes?'<br /><br />Maybe that's just hyperbole, but I can't let it pass. Of course Java's static typing is advantageous, especially for more complex systems. Groovy (for instance) pretty much *encourages* NPE proliferation. I would much rather get compile errors (whether it's in an IDE or at compile time) than runtime errors at unpredictable times. I see the advantage to being able to hack something quickly together in Groovy, but the flipside is that it tends to sacrifice stability.
  • 20 likestaticallytypedlanguages // Jan 14, 2009 at 3:52 PM

    I agree with Joshua. I don't see how anyone could build a serious business application processing millions of transactions a day using a dynamically typed language - unless you hired superman to do your qa.
  • 21 c# // Jan 14, 2009 at 3:56 PM

    Also, visual studio 2008 is by far the best IDE of all time. Eclipse is horrible. It's a shame J# went away with vs2008. I used to love writing my java in visual studio. Now I usually write it first in c#, move it into eclipse and then port it and re-debug it. that's a pain. So yes, the IDE does matter.

Leave a Comment