Programming for Luddites

There was much handwringing last week when Somasegar announced what we already knew: VB.NET 2005 will not have refactoring. This resulted in a few emotional outbursts:

We don't need toys like [the] MY [namespace], we need working tool like Refactoring!!

How can Microsoft refuse us those magical software writing robots they've promised?! We demand the "code my application" button! But seriously:

  1. I generally question the value of any "automatic" refactoring tool. Refactoring is a complex activity that implies a deep level of understanding of the code. How is this captured in a menu item that turns a variable into a property? Or a menu item that extracts a block of code into a new method? Furthermore, I'd question the competency of any developer who required a tool to perform these bread and butter coding tasks efficiently.
  2. Refactoring is a pure IDE task, and thus relatively easy to implement as an add-on. That's why you can buy a half-dozen different refactoring tools for VS.NET 2003, but nobody sells an Edit and Continue add on. Go figure.
  3. Do you really think Microsoft can produce a refactoring tool superior to the third party alternatives? Refactoring is just a bullet point on a box for MS. Third parties bet their entire companies on refactoring add-ins. Who do you think is going to have the better product?

The IDE is important, unquestionably, but implying that the lack of refactoring support in your IDE somehow keeps you from being a professional developer is just plain stupid. You want to be a professional developer? Stop worrying about the tools and write some damn code:

I haven't had an opportunity to use Eclipse's luxuriant refactoring tools and quick fix doodads. I'm sure they make developers more productive, how could they not? But they won't help me decide how to refactor, or what the right semantics are for an abstraction, or predict in which ways the system will have to change in the next release. They won't help me find the simple path among the complex, or choose just the right words to describe my thoughts, or understand the user's problem better. They may help me be a more productive coder, but they won't help me write better software.

Ultimately, tools don't make you a better developer. Experience does.

Read more

Stay Gold, America

We are at an unprecedented point in American history, and I'm concerned we may lose sight of the American Dream.

By Jeff Atwood · · Comments

The Great Filter Comes For Us All

With a 13 billion year head start on evolution, why haven't any other forms of life in the universe contacted us by now? (Arrival is a fantastic movie. Watch it, but don't stop there - read the Story of Your Life novella it was based on

By Jeff Atwood · · Comments

I Fight For The Users

If you haven't been able to keep up with my blistering pace of one blog post per year, I don't blame you. There's a lot going on right now. It's a busy time. But let's pause and take a moment

By Jeff Atwood · · Comments

The 2030 Self-Driving Car Bet

It's my honor to announce that John Carmack and I have initiated a friendly bet of $10,000* to the 501(c)(3) charity of the winner’s choice: By January 1st, 2030, completely autonomous self-driving cars meeting SAE J3016 level 5 will be commercially available for passenger

By Jeff Atwood · · Comments