Wednesday, August 02, 2006

Can your programming language do this?

Joel Spolsky is trying to explain why functional programming matters to mainstream programmers. I think he's wasting his breath though -- its hard to explain to a certified Struts engineer why copy and paste coding is bad. He makes a funny comment about Java's anonymous inner classes being used as poor man's closures:
If your programming language requires you to use functors, you're not getting all the benefits of a modern programming environment. See if you can get some of your money back.

The irony is that we have a company (IntelliJ or whatever they're called these days) whose entire business model is based around selling nothing more than a 400$ text editor which has some auto-expand templates for common Java boilerplate, like iterating over an array.


Dmitry Jemerov said...

Sorry, but it seems like your knowledge of the feature set of IntelliJ IDEA is outdated by about five years. :)

Anonymous said...

As an IntelliJ IDEA user, I've got to agree 100% with Dmitry.
Java has many imperfections. But IDEA does a fantastic job of making working with that imperfect language far more productive and pleasurable.
In fact, the whole point of IDEA is that your code is no longer mere text, but instead IDEA "understands" it, allowing it to tell you about errors, let you fix them with a single click, refactor, search, navigate, etc.

Anonymous said...

Guilty of anti-Java hyperbole again Slava. I wish you could make intelligent points without having to engage in such silliness.

IDEA edits more than just Java. It also edits XML, (X)HTML, CSS, XML Schema, JavaScript, and a number of other languages. And I wouldn't exactly describe what it does as expanding boilerplate templates, that's a late feature. IDEA started as a plugin for other IDEs to manipulate Java ASTs in a type-safe manner. It has now extended this functionality onto other languages as well, allowing even HTML, CSS, and JavaScript to be refactored.

Moreover, it includes 500+ code metric and analysis inspections which look for suspect constructs or areas of improvement. Even in a language like Factor, these are useful, just like your stack inference checker, they are tools to assist developers in finding problems.

IDEA is more of a code database expert system now than a text editor. Perhaps you've thinking too much about JEdit's limitations. :)