For a reason that is largely irrelevant, I installed Delphi 7 once again in such a long time. I have to say, I was completely blown away - in a way I haven't been for rather a while. This is not how I remember things at all. The installation took around 30 seconds. Launching it took 2 seconds, and it was immediately usable. I can press Run the second after it started, and less than a second later the blank program is already visible and running. Hurray for computers getting so much faster!But the reason I've been blown away like this is because usually I use Visual Studio 2010, that doesn't feel snappy like this at all. Granted, Delphi 7 is a much smaller system than Visual Studio 2010, but it does have the appearance of having all the really necessary things there: a control palette, a form designer, a code editor with code completion. I realise that the language might be simpler, and the code completion might be a lot less powerful, and the IDE might not be nearly as extensible and feature-rich, but still: I do not understand how (i.e. through what mechanism) does having a lot of extra features (that I might not have even triggered yet) cause a system like Visual Studio to always feel sluggish in comparison.I would like to ask people experienced in working with systems the scale of Visual Studio: what is it that makes them slow? Is it the layers upon layers of abstractions required to keep the codebase within the human comprehension capabilities? Is it the sheer amount of code that needs to be run through? Is it the modern tendency towards programmer-time-saving approaches at the (mindbogglingly huge) expense in the clock cycles / memory usage department?
What makes a large and complex software product slow?
architecture;performance
Architectural AstronauticsVisual Studio 2010 is built upon Windows Presentation Foundation.  Take a look at the Button class for WPF.  It is the 9th child of a base class.  It has around 5 pages of properties, methods, and events.  Behind the scenes it has another five pages of style definitions that describe its beautifully rounded corners and the subtle animation transitions when a mouse cursor moves over it.  This is all for something that fundamentally displays some text or a picture and produces a click event when it detects a mouse button going down.Stop a program like Visual Studio at any random point.  Look at the stack trace.  Chances are very good that you're 20 levels deep into the calling stack and that five DLLs were loaded to get there.Now, compare these two things with Delphi.  I bet you find that a Delphi Button has just 20 properties, methods, and events.  I bet the Delphi IDE only has a stack trace 5-7 levels deep.  Because when computers were slower, you just couldn't take the overhead of Visual Studio 2010 without the IDE taking 40 minutes to start :-)Is one better than the other?  Well, I can generally tell a Delphi program when it loads because it looks flat, the colors are muted (8 bit perhaps?), and there's no subtle shading or animation.  I just feels 'cheap' these days.  Cheap, but fast.Are we better off?  That's a question for the philosophers, not the coders.