7 ms·
Interesting thing about VS and Xcode is that they do not really try to compete with somebody or fight for attention. Both Windows and Mac/iOS developers would u
by oleganza 15y ago
Interesting thing about VS and Xcode is that they do not really try to compete with somebody or fight for attention. Both Windows and Mac/iOS developers would use less useful tools if they still let them make products for the popular platforms. JetBrains, Borland and others are fighting for attention and developers' love. They must try really-really hard to make people choose an alternative to the official tools.
So both MS and Apple teams may focus on what is "right" and avoid feature bloat in UI, avoid quick and dirty solutions etc. Yes, they must include some features quickly and efficiently to allow support for some new APIs in the new products. But the overall design and fit and finish is free to define however they want. They can spend time making it right and redoing it how they please. They have resources and expertise for that and they don't need be in a stressing "competition" mood.
I'm really disappointed by what Microsoft did with Visual Studio. They have great technology - great language, great compiler support and integration with editors. But the way it is all presented and organized is all boring mess of panels and tons of icons. They even understand all the icons are heavy for eyes, but instead of rethinking the design, they simply ask "40 existing and 36 new VS users" how do they like monochrome versions.
Apple's Xcode 3 was also a messy window/panel cluttered tool like many others. Many still considered it lighter than any other complex IDE, but it was fairly cluttered on its own. Next version, Xcode 4 was not designed by "asking developers". Developers want a pink pony and all the features in one click. Xcode 4 was designed. They made priorities and straightened UI so much it is now Plain Straight. One window, three panes, 7 buttons on toolbar. Just by learning a single screenshot with both sidebars opened, you already know how to navigate 80% of the time. It is crucial. You don't have to read huge manual to learn more and more useful things. They all are discoverable over time. Most important things are more visible, others are discovered over time.
Apple and Microsoft are rarely in position to throw old stuff out and replace it with brand new in their actual products that make money. Windows, Mac, iOS all have its legacy which must be dealt with. But UI for developer tools are different and Microsoft has no excuse not to make it interesting. Unless, of course, they don't want to maintain their own engineering culture.
- oleganza 15y agoExample of throwing away old cruft: Xcode 4 did not (and I guess still does not) support Interface Builder plugins. Meaning, you have to add third-party UI components in code rather than with mouse in a visual editor. But integrating IB into the rest of workflow was decided to be more important. Now, I'm not arguing it was right decision. My point is that both Apple and MS can afford making such decisions without effect on profits. If JetBrains throws away a feature, their sales drop. How much less Macs, Xboxes or Windows copies would have been sold if some convenience features were removed from or drastically changed in a developer tool?
- algoshift 15y agoIt isn't clear if you meant to imply that Apple has made better decisions with Xcode. If that is what you are saying, I firmly disagree. This isn't meant to imply that MS is better. Having said that, I don't mind complexity in UI for professional tools. I've been programming for longer than a lot of people on this list have been alive (an assumption on my part). You learn the tool you have to use and move on. No big deal. I have problems with dumb-ass decisions that make your job harder. Like compilers that don't accept /a/path/that has/spaces/in the string/. Or the absolutely dumb-founding way Xcode does not let you organize your files in a real file structure, you know, with directories and stuff, in the file system. Or how hard Xcode makes it to create use and maintain code libraries. I don't need my IDE to look and act like an iTunes clone. Thank you very much. Pretty doesn't matter to me. Easy and incredibly flexible and functional does. I mean, take the way they've absolutely ruined documentation access in Xcode 4 when compared to Xcode 3. True to iTunes style, the Organizer is overloaded with all kinds of crap it probably shouldn't do. Anyhow, no tool is perfect, but there are salient examples of the less-than-perfect even in 2012.
- oleganza 15y agoI have clarified my point in another comment already. It's not about who's better. It's about who's trying to experiment and rethink things. In developer tools team of the top-10 tech company you have a great combo: best hard-core engineers on the planet + little need to maintain cruft and worry about competition. Why not experiment and try to be better at what you do? Xcode 4 is this radical attempt to improve old problems (of course introducing new ones). And VS does not try to eliminate old obvious problems and almost stays where it is in terms of UI. Update: here are related thoughts on the subject: http://blog.oleganza.com/post/18156593863/why-apple-products-are-well-designed-and-buggy http://blog.oleganza.com/post/18156593863/why-apple-products...
- algoshift 15y ago> Why not experiment and try to be better at what you do? 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.
- maximilianburke 15y agoXCode 4 may have been designed but it wasn't designed well. It has no mixed source/disassembly views. Hovering over the debug icons say that pressing control and clicking "step into" will step a single instruction. But this isn't a sticky setting, so if I press control and click "step into" twice, the first time will step an instruction and the second will perform a source line step. It also crashes. A lot. When doing iOS development I find myself switching between GDB and LLDB regularly, as LLDB gives some great context information but it crashes and takes out all of Xcode on a fairly regular basis. Xcode is terrible. It's really quite sad that a company that prides itself as much as Apple does on its user experience is able to let something so unusable out its doors. Xcode 3 may have been messy but it was many times more usable because it was many times more stable than Xcode 4. I don't really care how pretty my tool interfaces are but rather how well they work.
- cageface 15y agoTry Jetbrains AppCode. It's the best $99 any serious Mac or iOS developer can spend.
- watmough 15y agoThe stability will get there eventually. Xcode 3 got a lot better over the years.
- mattgreenrocks 15y agoBut it isn't encouraging that they'd push the release out with what seems to be blatant crashes. It sort of feels like the developers are left out to dry and they have to soldier on. Personally, I rely on git to make sure I don't screw up my project/code to the point where the IDE crashes repeatably. And that's unacceptable. It's called integrity. And although XCode has it from a design sense, it doesn't appear to have it in the engineering department.
- cageface 15y agoMany changes in Xcode 4 seem to have been made entirely for cosmetic reasons. The default error list pane on the left hand side, for instance, cuts off 80% of the error message text. Jetbrains' AppCode UI may not look as much like an iTunes clone but it seems to have been designed with developer productivity as top priority.
- MartinCron 15y agoI personally think that Microsoft should stick with things that only Microsoft can do, and leave the more cutting-edge innovations to others. Example: the test automation tools into Visual Studio were terrible. Maybe they still are, I don't know, I've stopped using them. nUnit is just better. Their automated refactoring stuff may be OK, but the stuff from JetBrains is much, much better. Don't get me started on Team Frustration Server. If they want to simplify and clean up their UI by starting with lower contrast icons to make the IDE background and the code foreground, that's totally a step in the right direction.
- jerhewet 15y ago> the test automation tools into Visual Studio were terrible It went from "just plain bad" in VS2008 to "horribly awful" in VS2010. So awful that someone at MS named the process that manages the unit testing "QTAgent", so that when your machine slowed to a crawl and you opened the Task Manager to see what was wrong you'd see "QT" and conclude it was a background update issue with Apple QuickTime.
- rbanffy 15y ago> I personally think that Microsoft should stick with things that only Microsoft can do I'm very curious to see that list...
- MartinCron 15y agoMicrosoft (either explicitly or de-facto) owns the Common Language Runtime, the C# language, Entity Framework, ASP.NET, IIS, Windows OS, Windows Phone OS, XBOX, XBOX live, etc. An example that I think of is LINQ (not linq-to-sql, mind you, but the language-integrated query stuff). So many things were required to make LINQ viable in the language and the tools, etc. that it doesn't seem realistic to expect an external dev team to throw something like that together. That stands in contrast to things like test automation, which nUnit had already been doing very well for years before Visual Studio tried to get into it.
- rbanffy 15y ago
- buff-a 15y agoMost programmers fall into one of two categories: console editor (e.g. vim) or IDE. The IDE camp includes Visual Studio, Eclipse, IntelliJ, SlickEdit, NetBeans, MonoDevelop, etc. These IDEs have an almost identical design language. I am at home in any of them and picking up new ones is pretty straightforward. XCode 4 on the other hand has a completely different design language, and one that is limited in what it can do, but verbose in achieving it. Limited, for example, because while I have a 17" MBP and a 23" monitor, I can't have the Project Navigator open at the same time as the Error Navigator. I can't view code and disassembly. I can't have code side-by-side in a split view. Verbose, for example, because when editing a Scheme, it opens a custom, modal dialog, and if I press "Manage Schemes..." it rolls up and then rolls down another custom, modal dialog. If I then hit "+" it opens another modal dialog on top of my modal dialog. I thought we got rid of this kind of shit with VB6. I've built a complicated IDE or two, and every time there was a custom, modal dialog, it was because we were rushed for time. Good non-modal design requires thought and effort. Flexible UI requires thought and effort. A simple, powerful design language requires thought and effort. I would put money on XCode 4 not so much being "designed" as "rushed". Or perhaps "designed with lofty goals" - and one of those being "not like any other IDE, so that programmers learning on XCode will be completely thrown by any other tool".
- rayhano 15y agoIt seems smart to just clean up rather than alienate their users with radical and risky changes. People just want to code... Not learn a new interface to code...