Plain text editors: notepad, notepad2Useless. Some support for syntax highlighting, extensibility if you’re very lucky, but it’s a blunt saw.
Programmable editors: vim,emacs, Sublime TextBetter editing capabilities, automation (macros), extensibility. For a good number of years, this was the pinnacle.
IDEs: Visual Studio, IntelliJ IDEA, Delphi...A programmable editor on steroids. Built-in access to the compiler. A debugger. Productivity add-ins: Built-in automated refactorings, Resharper.
Are we kidding ourselves about flying? Are we instead just falling with style?
Mark Seemann thinks so. Respected developer from Denmark, author of Dependency Injection in .NET. Tweeted to say he’d “given up” and uninstalled the R# trial. Responses:omg why? How can do without #resharper?You're seriously missing out. Visual Studio is completely useless without ReSharper, imho.but how will you work then? Bare bone vs is soo poor compared to just about any ideWithout #resharper my productivity drops by 50%, I'm amazed that you can manage without itHe wrote this blog post to start a more nuanced debate than can be had on Twitter. This goes further than ReSharper, though: why do we need all the power Visual Studio provides? Wizard- or Designer-generated code is poor code, people rarely look at it, people rarely understand what that code does or how it works.
Resurgence in recent years of programmable editors: vim in particular is enjoying something of a renaissance, and tools like git encourage command-line usage over GUI usage. Clearly, people don’t need all the power of Visual Studio to be productive: a programmable editor and a Terminal window is sufficient.
The answer: legacy code. Large, convoluted and extant code bases are where these productivity tools shine. Making sense of the mess. Mark uses TDD and writes SOLID code. TDD mandates refactoring, but only in tiny incremental steps; SOLID code mandates small, focussed, cohesive classes that are not edited after being written. Is R# worth the money if you’re writing code like this all day every day? (But then, how many of us are?)Legacy code is the antithesis of this. Refactoring is often done in large chunks. Classes are bloated, with many gaffer-taped features and sticking plasters leading inexorably to multiple responsibilities and poor names.
Is this the Decline of the IDE?
Is this the decline of the IDE?
SoCraTes UK 2013