Update: here are related thoughts on the subject: http://blog.oleganza.com/post/18156593863/why-apple-products...
Update: here are related thoughts on the subject: http://blog.oleganza.com/post/18156593863/why-apple-products...
Herein lies the problem. The term "better" is most definitely subjective.
Not to pic on Xcode, but this is a prime example of focusing too much on making a consumer appliance rather than a professional tool. Like I said: I don't want iTunes, I want a kick-ass IDE.
I'm in the middle of a project that has, quite literally, thousands of assets to manage (images, audio, video). The thousands of files end-up piled-up without any semblance of organization in the project directory. I mean, who woke up one day and though "This is a good idea!" when you have a perfectly good file system to take advantage of? Updating assets is an absolute nightmare.
Yes, yes, there are crafty work-arounds. Each with its own pros-and-cons. The point is that the IDE itself was designed to totally ignore the underlying file system. Let's put it this way: If I wrote code like that at the many jobs I've had over the years I would have gotten fired in a microsecond. Yet, for some reason, this is "feature" is now considered good design?
Back to coding.
Anyway, I emphasize this again: it's not a question if the actual result is better or worse, it's a complex question because there are thousands of people to evaluate it. The question is why not to experiment more where you have more liberty to do so. It's hard to experiment with a toolbar in Excel because millions of non-computer-geek users are used to certain operations and want to preserve their productivity. But it's not hard to throw away toolbar in an IDE because nobody will pay you less because of it. (Especially if you are actually trying to do your best.)
Metro after Windows is that kind of experiment (but way more risky and rewarding, of course). But Visual Studio is not inspiring at all after all these years.
PS. For that matter, Xcode 4 is not radical enough too. We are still typing a lot of boring cruft (even with ever-smarter autocompletion). But it's a huge difference with Xcode 3 and other IDEs out there.
Excel is another of my favorite "Why did they do that?" examples. In my opinion, MS absolutely ruined Excel somewhere in the transition from Office 2003 to 2007. If you were a power user with Excel'03 you felt like a total idiot with Excel'07. And, this wasn't a matter of a few buttons here and there. The thing was almost utterly unusable compared to what you could do with the '03 version. Furthermore, they complicated the usage of VBA modules. If you had a library of VBA work that you used regularly you, all of a sudden, found yourself scratching your head trying to figure out how to do some pretty basic stuff.
I use Excel extensively for automated code generation. Simple examples are the generation of repetitive lookup table code in various languages. Or code to pre-stuff database tables. Or maintaining a complex LUT-driven state machine. I have custom Excel tools that have taken months to develop that do increase productivity in a measurable way. For example, one tool uses Excel to auto-magically write the code (LUT, callbacks, etc.) for a menu system on an embedded device with an LCD display. Before the tool it'd take hours, if not a couple of days, to maintain. After the custom VBA tool it was a matter of minutes.
Anyhow, upon switching to '07 (mostly a forced switch because I needed to migrate to a 64 bit OS for Finite Element Analysis work) I went from light speed to crawling. That, to me, is not an improvement. I am OK with learning new things, you have to be open to it if you want to remain in this game, but sometimes you can't help but scratch your head and try to figure out what the hell they were thinking.
Thankfully that was easily solved with a VM running XP and Excel'03.
I'm not going to argue if this is a good thing or a bad thing to do, but even you have to agree that this is an extremely rare thing to do, and something that would be more or less impossible for Microsoft to anticipate you doing.
The greater point, perhaps, is that making things prettier at the expense of raw functionality isn't always the best idea.
For the record, on first inspection I like the outer appearance of VS 2011. I like the pictographic icons and clean uncluttered appearance. I hope that this effort did not come at the expense of function elsewhere. We'll upgrade when it comes out of beta and see.
If you're using Excel for automated code generation, YOU'RE DOING IT WRONG
Surely there are better tools out there for the task.
This has a number of advantages:
- you don't need to change your code every time the data changes.
- you can version the data and the code seperately within your source control management system.
- you don't need to write any VBA. (always a winner, that one)
- current developers will be able to understand and change the code without being forced to use the macro you developed, or have it explained to them.
- future developers will be able to understand where all the code came from, and be able to effectively understand and change it.
- you will be less affected by changes to future versions of Excel.
On the other hand what would be possible (and I've done this a few times before) is write a program or script (I like writing it in Python) that takes the .xls/.csv/.txt/.json file (which is pure data, can be edited in many programs etc) and generates the C/C++/whatever code from that. Basically the best of both worlds.
So I'm perplex about the need of a VM to run Excel 03 and won't debate about the use of it to generate code as anyone have different habits for his workflow.
I can only conclude that you have absolutely no concrete experience of the state of other tools and languages. Eclipse, IntelliJ and Visual Studio with Resharper are lightyears ahead of XCode 4 when it comes to assisted programming.
Here's the clue: all of these tools expose the code DOM to tool writers. Even if Intellij didn't have over 100 different ways to refactor code, I could write my own. Fuck, I wrote a Resharper plugin that loaded javascript file to manipulate the dom and pass it to StringTemplate [1] The javascript file then decides based on what is at the cursor which templates to display when the user hits Alt-Enter. Think for a minute about what has to happen under the hood for that to happen. Then think what else is possible. Then realize that its not there in XCode 4.
This is more due to a language/API design flaw, actually. When a program (a preprocessor, a part of the IDE) generates more code starting from the code you actually wrote, it's because, for some reason, whatever you expressed in your code could not express enough to build the whole application.