Forgot your password?
typodupeerror
Programming

The IDE As a Bad Programming Language Enabler 586

Posted by Soulskill
from the real-coders-use-notepad-and-mt-dew dept.
theodp writes "When it comes to monolithic IDEs, Wille Faler has lost that loving feeling. In IDEs Are a Language Smell, Faler blogs about a Eureka! moment he had after years of using Eclipse for Java development. 'If the language is good enough,' Faler argues, 'an IDE is strictly not needed as long as you have good support for syntax highlighting and parens matching in the case of Clojure, or indentation in the case of Haskell.' So why do Java coders turn to Eclipse? 'Because [of] a combination of shortcomings in the Java compiler and Java's OO nature,' explains Faler, 'we end up with lots and lots of small files for every interface and class in our system. On any less than trivial Java system, development quickly turns into a game of code- and file-system navigation rather than programming and code editing. This nature of Java development requires IDEs to become navigation tools above all.' Yes, only an IDE could love AbstractSingletonProxyFactoryBean!"
This discussion has been archived. No new comments can be posted.

The IDE As a Bad Programming Language Enabler

Comments Filter:
  • Word (Score:5, Insightful)

    by genocism (2577895) on Tuesday October 30, 2012 @05:26AM (#41815459)
    I prefer writing in a word processor why should software development in an IDE be any different. Refactoring, code, memory, and performance analysis... All good things. Ohh and that little thing called debugging.
    • Re:Word (Score:5, Funny)

      by equex (747231) on Tuesday October 30, 2012 @05:29AM (#41815473) Homepage
      i code with a battery, a resistor and hit the cpu pins with it
    • Re:Word (Score:5, Insightful)

      by lattyware (934246) <gareth@lattyware.co.uk> on Tuesday October 30, 2012 @05:40AM (#41815531) Homepage Journal
      The article isn't saying IDEs are a bad thing, just that when an IDE is doing things that should be negated by the language (generate getters/setters anyone?) then it's a sign there is an issue.
      • Re:Word (Score:4, Insightful)

        by mwvdlee (775178) on Tuesday October 30, 2012 @06:26AM (#41815705) Homepage

        So basically his entire argument boils down to "My programming language is better than yours"?

      • Perhaps I'm misunderstanding, but getters/setters isn't a programming language thing, it's a programming pattern thing. I'd expect an IDE to help with that. I can't see how a better language would deal with not having to put in a particular pattern.

        Yes, a major problem with the whole JavaBeans concept is that it requires you code like that. And I'm equally sure Sun could have standardized on an entirely different implementation that would have been less verbose, but they didn't, and that has nothing to d

    • Re:Word (Score:5, Insightful)

      by daem0n1x (748565) on Tuesday October 30, 2012 @06:21AM (#41815689)

      Quite often I get the task of being the mentor of interns or newbies, many of them completely clueless. I also have given basic programming training for college students, usually C/C++ and Java.

      I always tell them to code using a text editor with syntax highlighting and then compile using the command line (in Windows, but preferably Linux).

      That way they can start building up knowledge about how the whole thing works from the ground up. If people start with a nice and cozy IDE they tend to think it's all magic going on. And then, when they need to solve any problem, they have no idea where the files are, their formats, their contents, etc.

      After getting acquainted with the bloody guts of the whole thing, they can start using tools to make it easier and faster. Using a good IDE has nothing wrong about it, if you really know what's going on under the hood. Magical thinking is an enemy of good engineering.

      • Re:Word (Score:5, Insightful)

        by RobinH (124750) on Tuesday October 30, 2012 @06:52AM (#41815813) Homepage
        There was an interview in the latest issue of Make Magazine with one of the creators of the Arduino. He said he's been trying to teach fundamentals of electronics to students (ohm's law, etc.) and they just weren't getting it, and he realized that wasn't how he learned it. He'd just started building stuff with the tools available, and when something didn't work, he was motivated to dig deeper and figure out why. He helped create the Arduino to be an easy way to get a light blinking without really having to know everything about how it worked, and then as you wanted to do more, you had to figure it out. The Arduino seems to be very successful with this strategy. That seems to fly completely in the face of your theory.
        • Re:Word (Score:4, Interesting)

          by daem0n1x (748565) on Tuesday October 30, 2012 @07:12AM (#41815949)

          According to the Wikipedia page: "It is designed to introduce programming to artists and other newcomers unfamiliar with software development".

          I train engineers, not artists.

          • Re:Word (Score:4, Interesting)

            by YttriumOxide (837412) <<yttriumox> <at> <gmail.com>> on Tuesday October 30, 2012 @08:10AM (#41816277) Homepage Journal

            I train engineers, not artists.

            Depending on what you're aiming for, this might be your problem.

            Turning out the necessary "code monkeys" to produce stuff to a spec written by someone better than them; sure... but if you want a software developer that produces something great, you need an artist.

          • According to the Wikipedia page: "It is designed to introduce programming to artists and other newcomers unfamiliar with software development".

            I train engineers, not artists.

            It sounds like you don't deal with embedded systems much. What it does a great job of for engineers is to act as an API that abstracts away all of the stuff specific to the particular AVR chip involved. Things like setting up a timer interrupt without having to know the specific configuration registers inside and out. However, that's all still 100% accessible if you want/need it. The editor itself is most certainly not a full-fledged IDE either.

          • Re:Word (Score:5, Insightful)

            by BasilBrush (643681) on Tuesday October 30, 2012 @09:28AM (#41816971)

            I train engineers, not artists.

            Ahem. There's a reason Knuth named his series of books "The Art of Computer Programming".

            • by Kjella (173770)

              And the ratio of artists to engineers is roughly the same as the ratio of people who've read it to those who have not.

      • Re:Word (Score:4, Interesting)

        by i (8254) on Tuesday October 30, 2012 @08:26AM (#41816375)

        When I started coding I had to punch my programs in punchcards. A pity if You drop them and didn't have numbered them... :)

        Then I advanced to filling in the code in forms to be delivered to the girls in the punching department. As they were young and sweet I often delivered the code forms myself. :)

        After a Year we got these marvellous 3270 terminals where we could code in green on black - and could correct errors without Tipp-Ex (http://en.wikipedia.org/wiki/Tipp-Ex) !! I felt I was on the technical frontier!! :D

  • by thammoud (193905) on Tuesday October 30, 2012 @05:27AM (#41815465)

    /. Must have been hacked with this worthless article from a programmer that is still deciding between emacs and Eclipse.

    Yo Willie, you can write shit code in any language, any IDE when you are a crappy programmer. IDEs help you better debug, code complete and refactor you crappy code.

  • by MadKeithV (102058) on Tuesday October 30, 2012 @05:28AM (#41815467)
    I understand the train of thought, but I feel the conclusion is wrong. The correct conclusion is that OO design following accepted "best" practices (the SOLID principles) makes for difficult-to-navigate code. That doesn't necessarily mean that I think OO design is bad, it just has some pretty major downsides when it comes to navigability if you don't have good support from your development environment.
    I remember reading somewhere about a system that does away with the concept of "files" entirely, and the whole coding process is based around smart navigation - what's on your screen could be pulled from many different locations at once without you having to know where from - shame I can't recall where I read that exactly.
  • by Anonymous Coward on Tuesday October 30, 2012 @05:28AM (#41815469)

    He says that IDE usage is " 'Because of a combination of shortcomings in the Java compiler and Java's OO nature..."

    I use an IDE because it has an visual debugger as I tend to develop aloways in debugging mode (see Hotspot dynamic class update and other JRebel features)...

    But the guy must be a great fan of gdb, coredump, vi and edlin ;-)

    We are not in 1970 anymore IMHO ...

    Rgs,
    TM

    • Re: (Score:3, Informative)

      by darkat (697582)
      In general, if you need a debugger while developing your code then you may not know what you are doing. Maybe you are developing very special stuff, otherwise the intensive use of a debugger means either lack of experience and/or skill..
  • by Kergan (780543) on Tuesday October 30, 2012 @05:32AM (#41815491)

    only an IDE could love AbstractSingletonProxyFactoryBean.

    Uh huh? Naturally, class names such as ASPFB and GDMF and RSAP are evidently more lovable. So much simpler to write...

  • 100% (Score:5, Insightful)

    by lattyware (934246) <gareth@lattyware.co.uk> on Tuesday October 30, 2012 @05:33AM (#41815495) Homepage Journal
    If you have ever written code in Python, you realise how much trivial stuff you have to do in Java which is hell without an IDE. I'm not saying IDEs are useless, they are great and can do awesome stuff for a developer, but Java has a serious problem where it's practically unusable without a massive IDE.
    • I've been churning out Java, c++, c, and unfortunately PHP for more years than I can remember using only vi. With Java specifically, even on huge projects, I've yet to find an IDE that increases my productivity, just the opposite actually. What could be better than a dozen virtual desktops and an unlimited supply of teminals? :-) I like Java myself, never found it hell at all.

      • Re: (Score:3, Insightful)

        by lattyware (934246)
        You enjoy pumping out those getters/setters, writing that boilerplate main class rubbish, etc... then? These things simply are not needed, and can be avoided by giving the programmer the right language features.
        • by pjt33 (739471)

          Pumping out getters and setters can also be avoided by writing object-oriented code. They're a code smell which warns of a lack of encapsulation.

  • I code in C#, (Score:3, Informative)

    by gigaherz (2653757) on Tuesday October 30, 2012 @05:33AM (#41815497)

    ... and Visual Studio 2010 with ReSharper, and it's the most amazing thing ever... at least until the company decides to upgrade to 2012, which is ugly but it has a lot of new and really useful features.

    I'm not going to rant since I know a lot of you would rather forget proprietary software exists, but the rest of the IDEs I have tried to use can't compare, and sometimes even get in your way.

    • Re:I code in C#, (Score:5, Insightful)

      by ItsIllak (95786) on Tuesday October 30, 2012 @10:03AM (#41817303) Homepage

      Totally agree - VS is a great IDE and one that really helps with code navigation, standards compliance and more. Gotta think the GP has no idea how to effectively use all of the features even the worst of modern IDEs bring. I suppose, if Eclipse is the best you've had, notepad++ looks promising but if you've used VS - there's no reason to use anything else.

  • by bhaak1 (219906) * <bhaak@gmx.net> on Tuesday October 30, 2012 @05:35AM (#41815507) Homepage

    Syntax highlighting and parens matching doesn't really help the beginners. Instant feedback for programming errors is great, you immediately learn about the syntax on the go. Then the debugger is also a great tool (even though I think you should first think, then code, then think again and only as a last resort start the debugger).

    These are not Eclipse-unique features, you can get such features with many setups but an easy to install IDE that satisfies your needs and is easily extendable with plugins that integrate seamlessly with your IDE (for example Findbugs).

    It's almost like Emacs done right for Java. Well, as right as an IDE can be done.

    I don't buy the argument that 1 class means 1 file is a problem (btw, this only applies to public classes anyway). If your project is large enough, you still get navigational problems even if you'd crammed 10000 lines into files (please, don't do this).

  • IDE pros & cons (Score:5, Insightful)

    by Anonymous Coward on Tuesday October 30, 2012 @05:45AM (#41815563)

    Pros:

    * Syntax highlighting
    * Brace matching
    * Symbol autocomplete
    * Error highlighting (XCode FTW)
    * Go to Definition/Declaration
    * Debug with all the above features in place

    Cons:

    * Some guy says they have a smell, but actually he doesn't like Java (so don't use Java)

    I could write code without an IDE, but I wouldn't want to maintain someone else's code without one, and I regularly port (alone) MLOC codebases.

    • Re:IDE pros & cons (Score:4, Informative)

      by cozziewozzie (344246) on Tuesday October 30, 2012 @10:29AM (#41817713)

      This whole discussion is fucking bizarre. It turns out that there are many people out there who think that if you are not running a 1435 TB monstrosity of an IDE, your only alternative is ed. Just use an editor from this century, FFS. Emacs, vim, Kate, Notepad+, anything modern and targeted at programmers.

      Personally, I use vim:

      Code completion? Check
      Syntax highlighting? Check
      Brace matching? Check
      Search and replace w/ regexp? Check
      Language-specific auto indentation, retabbing, reindent, etc. Check
      Multiple files open in tabs, with easy switching? Check
      Language-specific auto commenting? Check
      Filesystem navigation? Check
      Code folding? Check
      Scriptable? Check

      I do understand that full-blown IDEs offer some additional functionality: integrated build system, CVS integration, debugger integration, stepping through errors, etc. I don't find these useful personally, but I understand that other people do, and that's OK. Vim and Emacs can also do most of those, but if you are so dependent on all this, then a large IDE is probably something you'll be more comfortable with, and that's OK.

      On the other hand, vim has its own advantages -- it doesn't tie you to itself (you use standard tools like CMake and Mercurial/git), it's lightweight (somebody in here suggested increasing the memory available to the VM to 2 GB so Eclipse runs faster WTF?!?!?!?!?), it's fast, and it is unbeatable at keyboard shortcuts. Yes, many IDEs offer configurable keyboard navigation, but it's an afterthought, none of it is as efficient with keyboard as vim. I don't like using mouse for editing.

      So in the end, it's up to you to decide. Personally, I'm an editor+shell guy, and I honestly don't feel that I'm missing out on anything. Each to his own.

  • Attention seeker (Score:5, Insightful)

    by Anonymous Coward on Tuesday October 30, 2012 @05:47AM (#41815571)

    What we have here is another attention seeker trying to appear enlightened by saying something "counter-intuitive" or "against the grain". It's a bit like those people that go out of their way to let you know that they don't think Dark Side of the Moon was the best Pink Floyd album, because their opinions are so diverse and more informed than all the "sheeple".

    IDEs are a smell? What? No mate, you smell. IDEs drastically improve productivity. Yes, part of that is code navigation - mature libraries and frameworks such as the STL, Java, and .NET are HUGE - not because they are poorly designed (though that may also be true; correlation != causation), but because the sheer number of features makes library and framework searching essential. No human could possibly use these libraries as efficiently without code completion or prompting, except for the parts they use most frequently. IDEs make the libraries and frameworks discoverable.

    That's not even to mention all the OTHER benefits IDEs bring - integrated debugging, refactoring, static analysis, test coverage analysis, code style management, build chain management, source control integration....

    Yeah, yeah, I bet this guy is 1337, uses ONLY notepad / ed, hand writes his make files, and is the most badass coder on the entire planet. The problem is - nobody cares. Everyone else is more concerned with getting the job done efficiently. IDEs are simply essential in the large code bases I work with every day, and that would be true whether I were dealing with a million lines of Java or a million lines of Haskell / Python / Whatever this guy thinks a "good language" is.

  • by coder111 (912060) <{coder} {at} {rrmail.com}> on Tuesday October 30, 2012 @05:53AM (#41815597)
    Well that's bullshit. The biggest problem with development these days is not the language itself, but the 100s of 3rd party mostly-open-source libraries that you have to use. Or else go reinventing the wheel which is worse.

    And IDE helps you see the reference for these libraries much easier, using autocomplete and automated documentation lookup. On top of that, navigating your own code is much much easier. Add debuggers and profilers, granted, somewhat less useful in server-side environment but still useful. Semi-automated refactoring though is great, and eclipse does that quite well.

    I've done my share of development using nothing more than a text editor. But I prefer to use IDE when I can- they make me much more productive. Of course I still make sure code can be built & deployed using plain command line tools- for Java Maven is great.

    --Coder
  • by GoodNewsJimDotCom (2244874) on Tuesday October 30, 2012 @05:54AM (#41815605)
    Eclipse starts to get annoying type lag around 30k lines of code in a single file, as you get bigger and bigger upwards to 100k or more, it can take several seconds between characters you type. Now some people say you shouldn't have a single file with over 100k lines of code, but some of us like using old school procedural with just a sprinkling of OO.
  • by PolygamousRanchKid (1290638) on Tuesday October 30, 2012 @05:54AM (#41815609)

    It's just as good as the artisan who uses it. You can use a hammer to drive in a nail . . . or to smash a vase. It depends on how you use it.

    An IDE won't make a good programmer write bad code. And it won't make a bad programmer write good code. Unfortunately, a lot of manager types assume that if they buy some expensive tools, their programmers will automatically program gold from straw.

  • by Alkonaut (604183) on Tuesday October 30, 2012 @05:58AM (#41815621)
    Most bizarre conclusion I have ever seen. Of course you can have highlighting and other editing tricks (autocomplete, etc.) in a text editor. But once you add things like unit test integration, deployment, and most importantly an interactive debugger where you can step through your code, you have a proper development environment. Running tests can be done at a shell prompt, but debugging not so much. And if your text editor ticks all these boxes, including interactive debugging (I'm sure emacs can for example), then your text editor IS A FREAKING IDE ALREADY. I'd like to make the inverse conclusion of TFA: since we have proper IDE:s we can now allow the code in modern languages to be structured an way we want. A good IDE should never have you worrying about files, just code.
  • What is he on.. (Score:5, Insightful)

    by Rexdude (747457) on Tuesday October 30, 2012 @06:39AM (#41815753)

    TL;DR - Let's all ditch IDEs and go back to Notepad/vi/emacs/edlin.

    Code generation in Eclipse is a breeze, it easily creates framework classes where you can plug in your code. Directly jump to classes, view javadoc when you mouseover any element, jump between occurrences of text within a file, seamlessly integrate with the version control system of your choice - it has everything to properly work with a modern software project that can have hundreds or thousands of classes and files.
    And the same goes for Netbeans or Visual Studio or any other IDE of choice.

    Finally, tell me how many real world projects use Haskell, Clojure or Scala as compared to ones using Java/C/C++/Python/Ruby/PHP/Perl. I don't exactly see dozens of job openings for the former on various job boards. You work with what you've got, unless you're an ivory tower academic who's only concerned with the design of a language as opposed to its real world usage.

    • Re: (Score:3, Informative)

      by Anonymous Coward

      The author of the blog post is actually running a software company that sells solutions in Scala, Closure and Haskell (just check the web page www.recursivity.com).
      Yes, there are very few real world projects in such languages but that's confusing common practices with best practices.

    • by hcs_$reboot (1536101) on Tuesday October 30, 2012 @07:37AM (#41816113)
      Don't underestimate the snobbish aura that immediately emanates from you when you say you're a Haskell programmer.
  • by assertation (1255714) on Tuesday October 30, 2012 @07:23AM (#41816029)

    I'm not an ubergeek, so maybe my view isn't as good as the guy who wrote this article, but aren't all large projects, regardless of language, harder to manage?

    I've worked maintenance on projects done in an old procedural style. I can't believe anyone in 2012 would think that OO is not an improvement and actually makes managing a project harder.

  • Agreed! (Score:5, Interesting)

    by zmooc (33175) <zmooc@z m o o c.net> on Tuesday October 30, 2012 @07:45AM (#41816141) Homepage

    I (professional Java coder since 1998) absolutely agree. Java is hardly human-writable, even if it were only for the import statements. Without the existence of some very good IDEs Java might very well not have been as popular as it is today. But it is.

    Is this a problem? Apparently not in practice. Would I rather have a more dense, less IDE-dependent language? Yes. Are such alternatives available and do they come with an enormous ecosystem of supporting libraries? Nope...

    • Have you tried reading perl code? Or mediocre to bad C/C++? It's impossible to decypher most of the time.

      I consider Java to be the easiest language to READ code in and to understand it. Most of the time it's possible to quickly decypher even crap code written by newbies. I'll live with having to write slightly more verbose code or slightly more boilerplate code just for this reason. Or with having to use an IDE to do that for me.

      --Coder
  • by hibiki_r (649814) on Tuesday October 30, 2012 @07:46AM (#41816155)

    While I am not fond of Java's inability to define functions with a proper syntax, it's not as if the alternatives are noticeably better as far as not needing navigation. In the end, it all comes down to program complexity. A developer still has to know the code he needs to use, and for any program of reasonable complexity, you need to either remember it or use an IDE to easily access it. And given the ungodly number of libraries we use today, this happens even when you are coding in Javascript.

    If anything, the fact that Java is statically typed makes it easier on IDEs to tell you all the details of available classes. IDE support for Scala will still have you remembering signatures that Java wouldn't have to. And we all know the fun of Javascript, where most IDEs will not be able to guess what properties a object has, because the only way to know is to run the app.

    Don't get me wrong, I sure wish for at least Groovy-like function support, unlike, say, the horrible things people do to try to write functionally in Java (welcome Guava abuse!), but the only way some of those languages make you not 'need' and IDE is because IDEs can barely understand the languages. I'd not call that a good thing.

  • Eureka! (Score:4, Interesting)

    by Kookus (653170) on Tuesday October 30, 2012 @08:06AM (#41816251) Journal

    I think the eureka moment should be when you realize that any language can fall into the trap that you describe. There's reasons for the complexity. Whether they are for compilation/parsing performance, or for some type of design pattern to elegantly solve a problem.

    I've got a buddy down the hall who grew up ASP and VB. He uses notepad for development, and complains about not having pointers in Java. Syntax highlighting/completion aside, it takes him forever to write even some of the most basic classes. It's a constant game of finding something to copy and paste. What clicks off in my head is that when you're copying and pasting so much, someone probably already wrote a library for what you were trying to do. Hence additional files, includes, whatever it is... it's more of that whole lots and lots of small files that are mentioned as a downer in the op.

    If you're complaining about OO patterns, that's not language specific. Heck, even SAP has an OO equivalent.OO is a byproduct of merging human conceptualization and computer language. It becomes more "natural", arguably, for a developer to understand. Is that a problem of the language? No. I can write just as much spaghetti code as OO in Java, well, pretty much any language for that matter.

    Now for your humorous AbstractSingletonProxyFactoryBean. If you're writing a webpage with some fancy graphics on the front and not much user interaction, then you'll probably come across this class and think wtf would anyone ever use it?
    If you come from the data processing world with many systems working on the same data, you pretty much don't live without it.

    This is equivalent to growing up in Mexico, never even hearing of the word snow, and then see someone walk by with a pair of snowshoes in hand. Do you point and laugh first, or do you try to understand why they have snowshoes?

    Snowshoes are obviously everything that is wrong with footwear.

  • by DrXym (126579) on Tuesday October 30, 2012 @09:05AM (#41816731)
    Even the best language in the world would benefit from the facilities that an IDE brings - syntax hilighting, code completion, refactoring, integrated source control, incremental builds, error hilighting, integrated bug / task management, wizards, formatting, build / clean / deploy, multiple projects, interactive debugging, etc. etc. etc.

    You'd have to be a masochist to choose a basic syntax hilighting editor over an IDE without an extremely good reason. I realise there are a lot of good reasons but a language so perfect that an IDE is unnecessary is not one of them.

  • by neminem (561346) <{neminem} {at} {gmail.com}> on Tuesday October 30, 2012 @10:44AM (#41817913) Homepage

    I can't imagine living without an IDE. Having the ability to actually debug my code in-place from the same place I'm editing it, increases coding productivity like crazy, and I can't even imagine anyone seriously trying to argue otherwise. I do agree that it's commonly thought that you should put each class in its own file, and that that's just silly, that it's a lot more readable when multiple classes that are tightly related are put in the same file so you can see them all at once and see the tightly-relatedness. I'm not sure that really has anything to do with having an IDE or not, though.

    On the other hand, Eclipse certainly does have a massive smell of its own. He says "if you suffer from tool frustration, it's not necessary your tools that are poor, it may be that your language sucks, or you're not using it correctly", but no, if you're talking about Java, where the only real IDE is Eclipse... it's because your tool sucks.

  • by dbrueck (1872018) on Tuesday October 30, 2012 @10:46AM (#41817941)

    Modern IDEs can be great, but using them does come at a cost, so I think people end up using them in situations where there is a net benefit (and the opposite is true - people don't use them where there is a net cost to using an IDE). Personally, using a full-fledge IDE often leaves me with a feeling of it getting in the way, but I tolerate it because with some languages or platforms the IDE is still a net win.

    This is nothing but an anecdote, but we have several non-trivial projects (100kLOC+ each) in C/C++, C#, ObjC, Java, and Python worked on by about 10 people (so not huge by any means, but not so trivial as to be meaningless) and:

        * Everybody uses an IDE for the ObjC, C#, and Java projects
        * About half use an IDE for the C/C++ projects (rest use vim)
        * Nobody uses an IDE for the Python projects (most use vim)

    What's interesting to me is that as far as I know everyone has /tried/ not using an IDE for Java/ObjC/C#, and everyone has tried using an IDE for Python, and there has never been any sort of mandate to go one way or another, and so the present situation is the result of everyone sort of landing where it feels most natural and where they are the most productive, and that we have the same results regardless of proficiency in a particular language (i.e. the C# experts and C# noobs end up with the same development environment, as do the Python experts and the Python noobs). The same also appears to be true regardless of language affinity - lovers and haters of Java use the same environment, lovers and haters of Python do as well, etc.

    I do wonder if there is some sort of correlation between environment and the language. I know this is pretty subjective, but for me languages like Python feel like they rarely get in your way, and so it's interesting that when people in our company use Python, they gravitate towards development environments that are similarly lightweight. And conversely, for me a language like Java tends to feel like it gets in the way a lot (as in, you have to do lots of things that are satisfying the demands of the language that aren't directly tied to the problem you're trying to solve), and an IDE is indispensable because the IDE helps shoulder some of that burden.

FORTRAN is a good example of a language which is easier to parse using ad hoc techniques. -- D. Gries [What's good about it? Ed.]

Working...