﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Winston Fassett commented on The ideal IDE</title><description>I like .NET more than Java, but switching from Eclipse to Visual Studio hurt so bad.  Oh it hurt.
  
  
Background threads.  Please.  I am *amazed* at how much of my time VS wastes while it is locked up performing some task.  Start with background compiling, and background indexing of project files for lightning fast searches and refactoring.
  
Quick File Open - a la "Open Resource" in Eclipse.  Having to click to open my project files instead of hitting ctrl-shift-r and typing a partial name -- that was sooo painful
  
Better refactoring
  
Pluggable Scripting / Macros - including Boo, PowerShell
  
Perspectives
  
Modular, so I can disable features that I don't need.
  
More open plugin licensing model.  Is there still no support for Boo because of the lame licensing rules?
  
  
Maybe someone has already written support for these:
  
NAnt integration
  
Built-in Reflector support.  Eclipse had a sweet java decompiler plugin where I could browse into ANY class and set breakpoints on it.
  
  
Also nice:
  
Identifying tasks and TODOs using 
  
On the fly conversion from one CLR language to another.  If SharpDevelop can do it, so can VS.
  
Customizable editors, including external editors, for certain file types.  
  
Ability to open explorer to a project folder
  
Quick fixes - anyone know what I'm talking about?  Eclipse QuickFixes are great productivity enhancers.  For example, if the compiler figures out you are missing a cast in Eclipse, you can just hit Ctrl+1 which will show a list of possible fixes, then select "Cast", and it will generate the code for what it thinks you need to cast to, highlighting it so that you can easily manually override it.  Oh man, editing code in Eclipse was such bliss.
  
  
  
</description><link>http://ayende.com/2911/the-ideal-ide#comment17</link><guid>http://ayende.com/2911/the-ideal-ide#comment17</guid><pubDate>Wed, 31 Oct 2007 21:11:22 GMT</pubDate></item><item><title>Jay R. Wren commented on The ideal IDE</title><description>ditto to Andris.
  
  
Filenames should share their name with the class definition/implementation which they hold. When refactoring, class names may change often. Renaming files becomes a common refactoring which should be reflected by the SCM. 
</description><link>http://ayende.com/2911/the-ideal-ide#comment16</link><guid>http://ayende.com/2911/the-ideal-ide#comment16</guid><pubDate>Mon, 29 Oct 2007 14:37:17 GMT</pubDate></item><item><title>Ayende Rahien commented on The ideal IDE</title><description>Eamon,
  
I disagree, and I run my code with both warning as errors as with output XML.
  
This means that I get a compiler error if I have a public/ protected type or member without documentation.
  
  
There is a lot of value in ensuring the correctness of code, and I would like the compiler to help me, and breaking the build is a good way to do this.
  
I took upon myself to ensure that Castle Active Record compiled without warning. It has over 400(!) warnings, but since making the change, it has not been an issue at all.
</description><link>http://ayende.com/2911/the-ideal-ide#comment15</link><guid>http://ayende.com/2911/the-ideal-ide#comment15</guid><pubDate>Mon, 29 Oct 2007 14:36:39 GMT</pubDate></item><item><title>Ayende Rahien commented on The ideal IDE</title><description>@Andris,
  
Good point, and one of the reasons that I really like VisualSVN
</description><link>http://ayende.com/2911/the-ideal-ide#comment14</link><guid>http://ayende.com/2911/the-ideal-ide#comment14</guid><pubDate>Mon, 29 Oct 2007 14:32:46 GMT</pubDate></item><item><title>Eamon Nerbonne commented on The ideal IDE</title><description>"Treat Warnings as Errors as not negotiable (always enabled)"
  
  
This doesn't sound like a good idea.  In addition to the Reflection problems Mats outlined, it's going to wreak havoc with code-generation, since all of the sudden an external party's code follows a looser spec than your IDE (i.e. compiler) implements.  This isn't going to be fixable without nasty hacks either.  Further, it means that using foreign code in general is going to be more tedious; whether it works or not - mere correctness is no longer sufficient, you need to avoid all warnings too.
  
  
Frankly, I think the "Treat warnings as Errors" option should never have even been an option.  One real, negative consequence of having it as an option is that people actually turn it on, and that means that useful C# features to support maintainability of old code (the enforced usage of "override" as opposed to "new" for overridden methods) become useless overhead.  If you change a base class and someone has created a new method using that name, then he'll get a warning - which is going to break his code now.  If his project is large, that might be a serious amount of work you're forcing him to do before he can even make a compile.
  
  
Worse yet, as years go by, not only does old code grow stale more quickly (by exacerbating the "override" problem"), but by treating warnings as errors, suddenly adding real, useful warnings to the compiler has become a breaking change!  There's a number of FxCop features which I would greatly appreciate right in the compiler, but that's never going to happen because people use "treat warnings as errors".
  
  
The IDE should (at worst) have a non-negotiable nag-screen if you actually try to run/debug/test code with warnings, but it should still compile, and eventually work without any code changes.  Heck, it's even OK if the UI shows the warning as if it were an error, but behind the screens, the compile must complete.
  
  
The rest of the ideas sound pretty good though!
</description><link>http://ayende.com/2911/the-ideal-ide#comment13</link><guid>http://ayende.com/2911/the-ideal-ide#comment13</guid><pubDate>Mon, 29 Oct 2007 08:35:25 GMT</pubDate></item><item><title>Andris Kurmis commented on The ideal IDE</title><description>"Source control integration - nice, but not really a must have, I use tortoise for that."
  
  
How are you planning to deal with renames that preserve change history then? Esp. when using R#?
</description><link>http://ayende.com/2911/the-ideal-ide#comment11</link><guid>http://ayende.com/2911/the-ideal-ide#comment11</guid><pubDate>Mon, 29 Oct 2007 08:27:48 GMT</pubDate></item><item><title>Andris Kurmis commented on The ideal IDE</title><description>"Source control integration - nice, but not really a must have, I use tortoise for that."
  
  
How are you planning to deal with renames that preserve change history then? Esp. when using R#?
</description><link>http://ayende.com/2911/the-ideal-ide#comment12</link><guid>http://ayende.com/2911/the-ideal-ide#comment12</guid><pubDate>Mon, 29 Oct 2007 08:27:48 GMT</pubDate></item><item><title>Mats Helander commented on The ideal IDE</title><description>"Treat Warnings as Errors as not negotiable (always enabled)."
  
  
But that excludes certain types of reflection based approaches. 
  
  
An example is using objects with private fields, only getter property methods and no assignment to the fields in the constructors or any other methods.
  
  
The compiler will note that the field is never assigned to and give you a warning - but NOT an error since it correctly realizes it can't rule out that the field will be written to by reflection. I would be horribly annoyed if I had to add dummy assignements all over the read-only objects and properties in my Domain Model just to make it compile when I know it will only be filled with values via reflection by the mapper.
  
  
/Mats
</description><link>http://ayende.com/2911/the-ideal-ide#comment10</link><guid>http://ayende.com/2911/the-ideal-ide#comment10</guid><pubDate>Sun, 28 Oct 2007 23:29:36 GMT</pubDate></item><item><title>OJ commented on The ideal IDE</title><description>I'm in the same boat as LukeB. ViEmu has made VS something that it never really was before... a real editor for the keyboard programmer.
  
  
Built-in support for known editor confgs suchs emacs and VIM into this fantasy editor would be awesome.
</description><link>http://ayende.com/2911/the-ideal-ide#comment9</link><guid>http://ayende.com/2911/the-ideal-ide#comment9</guid><pubDate>Sat, 27 Oct 2007 22:28:33 GMT</pubDate></item><item><title>discontented commented on The ideal IDE</title><description>I'm not familiar with the original mailing list and, perhaps, your blog isn't the right place to whine about VS, but --
  
  
1. I want every feature to be switchable on and off.  You said VS is slow.  I can't imagine it would be compiling my code while I type.
  
  
2. I would love to see XML comments gathered at the bottom of the file.  Again this should be switchable.  I, for one, hate viewing somebody else's code with XML comments decorating every silly member of a class.
  
  
</description><link>http://ayende.com/2911/the-ideal-ide#comment8</link><guid>http://ayende.com/2911/the-ideal-ide#comment8</guid><pubDate>Sat, 27 Oct 2007 12:35:15 GMT</pubDate></item><item><title>Dave Newman commented on The ideal IDE</title><description>I'd love this, VS has been killing me lately.  I basically can't compile inside it any more, im doing all my builds with nant, and testing inside the old nunit gui : )
  
  
I guess we should all get of our asses and start working on 
[SharpDevelop](http://www.icsharpcode.net/OpenSource/SD/)  
  
Unless JetBrains is listening???
</description><link>http://ayende.com/2911/the-ideal-ide#comment7</link><guid>http://ayende.com/2911/the-ideal-ide#comment7</guid><pubDate>Sat, 27 Oct 2007 09:30:29 GMT</pubDate></item><item><title>Ayende Rahien commented on The ideal IDE</title><description>Haacked, can you check out the thread in the mailing list. This is about code, not HTML.
  
  
The warnings/errors from the HTML editors are more than useless
</description><link>http://ayende.com/2911/the-ideal-ide#comment6</link><guid>http://ayende.com/2911/the-ideal-ide#comment6</guid><pubDate>Sat, 27 Oct 2007 09:24:05 GMT</pubDate></item><item><title>Haacked commented on The ideal IDE</title><description>... and a pony! ;)
  
  
You didn't mention HTML editing. As for the treat warnings as errors being non-negotiable. What about in the case of HTML warnings or ASPX designer warnings?
  
  
Phil
</description><link>http://ayende.com/2911/the-ideal-ide#comment5</link><guid>http://ayende.com/2911/the-ideal-ide#comment5</guid><pubDate>Sat, 27 Oct 2007 09:16:54 GMT</pubDate></item><item><title>Roberto Messora commented on The ideal IDE</title><description>.. . and then we suddenly wake up in the middle of the night...
  
  
;-)
</description><link>http://ayende.com/2911/the-ideal-ide#comment4</link><guid>http://ayende.com/2911/the-ideal-ide#comment4</guid><pubDate>Sat, 27 Oct 2007 09:00:28 GMT</pubDate></item><item><title>LukeB commented on The ideal IDE</title><description>/i want it to be geared towards the keyboard developer/
  
  
I use ViEmu for just that reason. Awesome editing power.
</description><link>http://ayende.com/2911/the-ideal-ide#comment3</link><guid>http://ayende.com/2911/the-ideal-ide#comment3</guid><pubDate>Sat, 27 Oct 2007 04:35:28 GMT</pubDate></item><item><title>Tri commented on The ideal IDE</title><description>How about a project based on Visual Studio 8 Shell?
</description><link>http://ayende.com/2911/the-ideal-ide#comment2</link><guid>http://ayende.com/2911/the-ideal-ide#comment2</guid><pubDate>Sat, 27 Oct 2007 04:14:18 GMT</pubDate></item><item><title>Eber Irigoyen commented on The ideal IDE</title><description>perhaps a good project to show what the "ALT.NET" is all about
</description><link>http://ayende.com/2911/the-ideal-ide#comment1</link><guid>http://ayende.com/2911/the-ideal-ide#comment1</guid><pubDate>Sat, 27 Oct 2007 04:01:18 GMT</pubDate></item></channel></rss>