Virtues of Monoculture, Or Why Microsoft Wins 703
blackbearnh writes to ask, "Why does Microsoft win the development environment war so often, when we all know it's a lifetime lock-in to Windows? Perhaps it's because the open source community offers too much choice." From the post: "Microsoft offers the certainty of no choices. Choice isn't always good, and the open source community sometimes offers far too many ways to skin the same cat, choices that are born more out of pride, ego, or stubbornness than a genuine need for two different paths. I won't point fingers, everyone knows examples... The reality is that there are good, practical reasons that drive people into the arms of the Redmond tool set, and we need to accept that as a fact and learn from it, rather than shake our fists and curse the darkness."
Re:FAQ item (Score:5, Informative)
Spooky (Score:2, Informative)
My point is, Microsoft has made it MUCH easier for developers than Linux, at least for in-house software development. I must admit that there are some benefits to Open Source development tools for distributed development, but not all that many - Svn/Cvs are equally as usable under Windows (if not easier, with tortoisesvn/cvs), Cygwin covers a lot of gaps for GNU-Win32 development, etc.
I don't know if it's the amount of choice or what, and I must admit I haven't used KDevelop in a long time, it may be really awesome by now, but I really don't look forward to the day when M$ explodes and I am forced onto Linux/Mac OS X (I hear the Mac OS X IDE of choice is pretty nasty).
Re:Thanks, we know (Score:3, Informative)
Eclipse w/ PyDev is fairly killer and not difficult to set up. Objective-C w/ XCode and Interface Builder is also very nice to work with.
Re:FAQ item (Score:2, Informative)
Re:Things to learn from Windows and OSX. (Score:3, Informative)
I don't know whether to laugh or cry. You can use any GUI layer you'd like, and it will work everywhere. Want to use QT? No problem. GTK? No problem. Athena? No problem. It all works. In fact, on any given day, I use applications that uses different toolkits (e.g, firefox, SWT, konqueror) and it never bothered me. Yeah, the open file dialog problem still exists, but there is hope in that. And someday, the look will be unified too, have patience. Neither of those are really important, though.
So if that was your reason for not porting, you didn't port for the wrong reasons.
Re:Things to learn from Windows and OSX. (Score:2, Informative)
Hmm. As far as I know, most Linux distribution comes with GTK+ and Qt installed by default, regardless of whether they use GNOME or KDE as their default desktops. And freedesktop.org is working at standardizing more parts of the desktop..
As far as licensing goes, with GTK+/GNOME you can develop proprietary applications; with Qt, if you want to do so you have to buy a commercial license, and with KDE.. you cannot. Simple as that.
I love Linux...but as a software engineer... (Score:3, Informative)
As a (bad) example of how far UIs have to go, I use Visual Studio 2005 at work [taitworld.com] and I use Matlab for my postgrad work [canterbury.ac.nz]. Both professional, closed-source products. The Matlab debugging facilities pale in comparison to Visual Studio's power. Makes life so much easier. I find Matlab a bit archaic, but KOctave seems even worse. I guess Matlab only has to do better than Octave on Linux systems.
Of course my argument is omitting things like Eclipse... but I have only used it a few times and found it too slow (slower than VS.Net!!) and user unfriendly.
Re:FAQ item (Score:5, Informative)
Take a look at freedesktop.org.
* Sharing of sound system - both Gnome and KDE 4 will work with gstreamer
* Joining of messaging system. It was dcop (kde) and corba (Gnome). Now both will use DBus
* Common themes that make kde and gnome apps look the same.
Plus lots of 'small' points. Both follow the
Re:Apache vs IIS (Score:2, Informative)
Re:Things to learn from Windows and OSX. (Score:5, Informative)
No, it does not. Well only sort-of.. The "standard GUI layer" of Windows is limited to the plain widgets we all know from Windows 95. The ones Notepad and WordPad still use. Ugly menu's and big bevel toolbar buttons. If you look closer you'll see Notepad, Windows Explorer, Visual Studio, Office all use different menu's and toolbar handles. They're all custom widgets, not standard.
Most advanced widgets for Windows are part of a commercial widget toolkit [wikipedia.org] you've chosen. This can be MFC, ComCtl, VLC (Borland), Windows Forms (.Net), WPF (.Net3), Qt, and I'm missing others (e.g. remember those big sized OK-buttons a big green check icon inside).
All those different frameworks do have something in common. Windows provides central settings for fonts and color schemes. This makes them all look the same. That's something Linux should really improve.
You have two good options for Linux:
Re:Things to learn from Windows and OSX. (Score:3, Informative)
You got misinformed there. You can develop proprietary applications with KDE. KDE is LGPL'd, and the LGPL allows proprietary applications. The caveat though is that KDE links to Qt, and Qt is either GPL or commercial. So in order to develop a proprietary application with KDE, you need a commercial license for Qt, but it is possible.
Re:Things to learn from Windows and OSX. (Score:2, Informative)
Re:Things to learn from Windows and OSX. (Score:3, Informative)
Very true. This is a very informative Google TechTalk called The Paradox of Choice - Why More Is Less [google.com] [warning 1 hour] that describes this issue. It's not intuitive, but is logical. It is very hard for people to make a choice, so hard, that often people will avoid making a decision when doing nothing is actually more costly than making a bad choice. This talk is back up by results of some interesting experiments.
Re:I don't get it --why not pick an arbitrary GUI? (Score:3, Informative)
Google doesn't seem to have had a problem with Google Earth. Nero burning rom works fine. None of the various proprietary games for Linux has any problem. Adobe Acrobat Reader works. Realplayer works great.
Sure - the developer who builds the package has to have a basic understanding of the platform. They may even end up having to spend some time researching the problem. But - if you're willing to go to the effort to port to a new platform a couple hours of study shouldn't bother you.
Realplayer is a perfect example of building and packaging a proprietary application for Linux. They built using Gtk for maximum compatibility, and they initially released in .rpm and .tar.gz. They then allowed free redistribution, so all the major distributions repackaged the program and distributed the packages in their non-free repositories at no cost to Real Networks.
Re:I don't get it --why not pick an arbitrary GUI? (Score:3, Informative)
It is perfectly possible for an application author to produce an application and link it statically.
It is also possible to link with -z origin -rpath '$ORIGIN/../lib' (or similar) allowing the bundling of the EXACT shared objects (dlls for you windows folk) locally into a single directory tree.
If this is done, the application can be put into any directory, and will run from there with no further configuration needed. If glibc is included, it will also run on a WIDE range of kernels.
Of course it isn't in the "packaging system" -- but that can also be done (especially to run pre and post scripts).
As to the GUI? Either include the widget set, or use GNOME. What's the problem?
And (ps.) this is what's generally done on Windows. DirectX is included by every application that needs it.
"Build from source" isn't required to cross x86 Linux boundaries -- it exists to cross processor families (Sparc, PowerPC, MIPS, ARM, etc.), and Operating Systems (Solaris, AIX, HP/UX, etc.).
Even there, tools exist (eg. QEMU) that allow running binaries on other archs.
Re:Furiously Spending as we speak (Score:3, Informative)
Sure. When you've hired thousands of "permatemps", you don't lay them off, you just expire their contracts.