Pretty please: Named arguments

Bekenn leaveme at alone.com
Wed Mar 23 23:36:50 PDT 2011


On 3/23/2011 9:12 AM, Bruno Medeiros wrote:
>
> Now that is an argument. Although I still don't agree: it really
> shouldn't take that long to setup an IDE (if Netbeans and/or its PHP
> plugin are crappy, don't use that to blame all IDEs :P ). But in any
> case this is kinda besides the point, because setting up an IDE is a
> one-time affair (reviewing code is many-times).

There is far more cost involved in using an IDE than the setup time.  A 
typical IDE will:

- Consume a relatively large chunk of space.  Visual Studio on my system 
takes up 1.9 GB, with one of the platform SDKs taking up an additional 
565 MB.  XCode on my other system eats up a whopping 9.7 GB (!) with the 
iOS SDK (the download for XCode 4 with iOS SDK 4.3 is 4.2 GB for the 
.dmg file).  Eclipse puts them both to shame at 268 MB for Eclipse 
Classic, with the JDK adding 179 MB on top of that.  (I only use Eclipse 
for Android development, so I haven't installed anything beyond the base 
classic package.)  For D development, I use Notepad++, which is just an 
editor -- 11.8 MB (plus 105 MB for dmd and associated tools).

- Hijack file extensions.  I have several versions of Visual Studio 
installed that all cooperate very nicely with each other, but if I were 
to install Eclipse for C/C++ development, I'd have to remember to tell 
it not to take over handling for .c/.cpp files.  This isn't such a big 
deal if the IDE only handles one or two languages, but if it's a 
multi-language IDE, then there may be a list of twenty or more file 
types to scroll through, assuming that the installer is even nice enough 
to let you choose.

- Have its own shortcuts, features, and quirks.  In Visual Studio, I can 
hit tab to confirm intellisense suggestions.  If I do the same thing in 
Eclipse, then I end up shifting focus over to the documentation popup 
window, which is just maddeningly stupid.  XCode doesn't give me a list; 
it just inserts its suggestion inline, and then I have to either hit 
escape or keep typing if I want something else entirely.  (XCode's 
suggestions also seem to be highly non-deterministic in nature; I think 
their algorithm would make for a great prng.)  Build in Visual Studio is 
F7.  In Eclipse, it's ctrl-b, which at least matches XCode's cmd-b. 
This can be mitigated in most cases by changing key bindings, but now 
you're looking at either a short list of commands that can be changed 
(which might not include the command you're looking for), or a very, 
*very* long list with hundreds of commands that you have to wade 
through.  What's more, you have to figure out what name the IDE gives to 
the feature you're looking for, and it may not always be clear.  Eclipse 
provides a search bar to make it easier; good thing, too, because typing 
"content assist" into that bar gives me back *21 different entries*!

- Have its own unique, non-portable project format.  Some IDEs can work 
with makefiles, but even most of those don't actually use a makefile as 
its preferred project format.  This means that if you're looking at 
different projects from n different people/groups, you may need 
O(log(n)) different IDEs just to be able to open up their project.  On 
the flip side, if you're the author of a project and you want people to 
be able to use their favorite IDE, then you have to provide several 
different sets of project configuration files.  At least with makefiles, 
other people can build your project from the command-line without 
installing your favorite IDE.  (Same goes for Visual Studio project 
files, actually; you can build those from the command line with MSBuild 
without having to install Visual Studio.)

Lastly, at this point, D just doesn't have much in the line of support 
from major IDEs.  There are neat projects like Descent and VisualD, but 
that's hardly the breadth or scope of support that you'd get with an 
established, highly-visible language.  IDEs are simply not part of the 
language specification, and the language shouldn't be designed under the 
assumption that everyone's going to use an IDE, especially if you're 
thinking about a particular feature which many IDEs might not even have.

Don't get me wrong -- I love IDEs.  They can be very helpful, especially 
when it comes to dependency tracking and assisted editing.  Right now, I 
use Notepad++ for D because I don't feel that the existing alternatives 
really offer that much useful functionality beyond what that editor 
provides.  I'm working on some MSBuild tasks to make the process easier 
(yes, I develop primarily in Windows), and the IDE story will get 
better, but these things take a lot of time to fully materialize.


More information about the Digitalmars-d mailing list