Slashdot Mirror


Virtues of Monoculture, Or Why Microsoft Wins

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."

16 of 703 comments (clear)

  1. Re:FAQ item by Wonko+the+Sane · · Score: 4, Informative

    The only definite point I got from that article was "sometimes too much choice is bad". I don't think you can really seriously argue with that statement, but on the other hand it'd not all that helpful either.

  2. Spooky by Rorian · · Score: 2, Informative

    I was thinking about all of this just yesterday - At work I develop code almost entirely in Visual Studio (98, 2k3 and 2k5) with a little netbeans on the side when I have to deal with Java. I installed Ubuntu 7.04 on the weekend (haven't used Linux in a while, thought I'd have another play). Now I have KDevelop, Eclipse, GCC+Vi, GDB, DDD, KDB, and about 15 other tools that all provide portions of what MS VS wraps up in one neat package, and none of them do it with half the quality. Eclipse is not bad, but 1. It's written in Java, and fairly slow, 2. Debugger integration was average at best and 3. The GUI is overly verbose, borders are too big etc. There are other issues but I guess most of them dissapear with prolonged usage (I'm still not 100% happy with Visual Studio, and I've used that for years).

    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).

    --
    Will program for karma.
  3. Re:Thanks, we know by Llywelyn · · Score: 2, Informative

    Imagine what kind of killer product you would have if you paired Ruby with a good IDE and a good graphical debugger. Or Python.

    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.

    --
    Integrate Keynote and LaTeX
  4. Re:FAQ item by tftp · · Score: 2, Informative

    There are plenty of places that subscribe to CMM and in some markets (government/military, medical/life-related, aerospace, etc.) you can't even get a proposal out if you are not CMM/CMMI all the way through. I work for one of those markets.

  5. Re:Things to learn from Windows and OSX. by EsbenMoseHansen · · Score: 2, Informative

    is because there is no standard GUI layer.

    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.

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  6. Re:Things to learn from Windows and OSX. by salimma · · Score: 2, Informative

    What is needed is a single, de-facto GUI widget kit that is ubiquitous across all distributions of Linux.

    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.
    --
    Michel
    Fedora Project Contribut
  7. I love Linux...but as a software engineer... by zurtle · · Score: 3, Informative

    I also love Kubuntu and use it on all my machines at home... However I develop for Windows at work. Developing application in Windows can be as easy as VB. As far as I have seen there is nothing on this (OSS) side of the fence that comes close to it for ease of use, with (reasonably) good debugging. From there it's a skip and a jump into C# and beyond.

    As a (bad) example of how far UIs have to go, I use Visual Studio 2005 at work and I use Matlab for my postgrad work. 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.

    --
    Couldn't stand the weather
  8. Re:FAQ item by JohnFluxx · · Score: 4, Informative

    > Does the open source community do anything to change it's fractured ways since the last time this was mentioned?

    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 .desktop standard for menu items, actions etc. Both use the freedesktop.org icon naming system, and mimetype system, and so on.

  9. Re:Apache vs IIS by Mista2 · · Score: 2, Informative

    Horses for courses. One day I was off sick but there was a work project on that required the setup of a webserver to host a php based application. The project had a tight deadline, so I worked from my sick bed 8) Get laptop and connect to internet: working over crappy DSL line, 2Mb top speed 8( run ssh to get to a suse server I had installed earlier in the week for the project, (the server was also running some other services so could not be restarted during the working day) Use Yast to install apache and php requiremements from up-to-date suse internet repository. Use vi to edit the apache config to create virtual server. Use rsync to copy the php application to the server (for windows users, rsync is a little like FTP, but over an ssh connection, and can easily replicate a full folder structure). Test, debug, then secure access to only http, https and ssh. Approx 4 hrs for the whole job. To do the same thing in Windows - Take Previously installed Windows 2K3 server, enable remote desktop access, oh hang on, that wasn't done initially so will have to call someone at the office to do it for me, Oh, and have to install whole citrix gateway infrastructure to support secure encrypted remote access. Add software - IIS, hang on, no network repository for i386 directory, get someone at the office to stick in a CD, then restart. Add php services to IIS - umm, haven't done that before so I don't know how hard it is to do. Run Windows Update to patch - reboot (current installs I have done from Win2K3-R2 CD usually require at least 2 restarts to get fully up-to-date) No easy way to copy the full application to the server (as no way I am opening up MS FTP to the internet without a proxy 8)) so tar or zip it up, mail to the client, get someone to copy tar file to the server, then login and extract it. I think the point is here that the job would have been nearly impossible for me to do that day had the host been a Windows host with IIS. It would have requried the server to be restarted to patch and install software, and none of the secure remote access is available out of the box. Apart from a kernel patch late last year, the web server has never been restarted. Apache has been restarted a few times, but it hands over connections to the new httpd as it shuts down so users don't really see an outage if it's done right. Oh, yeah, I also have a dev server with the same apache config. When I make a change I test it in dev, then copy over the conf file before restarting. Anyone know how to copy IIS settings from one server to another? Please let me know.

  10. Re:Things to learn from Windows and OSX. by vdboor · · Score: 4, Informative

    because there is no standard GUI layer. Windows provides all that.

    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 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.

    his license and that license (really meaning, these liabilities and those liabilities.)

    You have two good options for Linux:

    • GTK+. Free for use in commercial projects (LGPL). It's the base of GNOME.
    • Qt. IMHO a enterprise class toolkit (see customer list). Requires a license for commercial work, but I don't see how that's different from a license for Visual Studio. And you'll get commercial support in return too. Qt is the base of KDE.
    --
    The best way to accelerate a windows server is by 9.81 m/s2 ;-)
  11. Re:Things to learn from Windows and OSX. by Phisbut · · Score: 2, Informative

    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.

    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.

    --
    After 3 days without programming, life becomes meaningless
    - The Tao of Programming
  12. Re:Things to learn from Windows and OSX. by lordtoran · · Score: 2, Informative

    Who was suggesting freak stuff like a manual compile? Availability of source code allows the distributor to customize the software and provide a package that plays nice with his particular Linux distribution. This is the usual way software for "Linux" is released. Publish the source and leave the detail work to the community.

    --
    Want to hear the voice of GOD? cat /boot/vmlinuz > /dev/dsp
  13. Re:Things to learn from Windows and OSX. by Chris+Shannon · · Score: 3, Informative

    .. but I just really believe that "too" much choice sucks.

    Very true. This is a very informative Google TechTalk called The Paradox of Choice - Why More Is Less [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.
    --
    "Follow me" the wise man said, but he walked behind.
  14. Re:I don't get it --why not pick an arbitrary GUI? by Chandon+Seldon · · Score: 2, 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.

    --
    -- The act of censorship is always worse than whatever is being censored. Always.
  15. Re:I don't get it --why not pick an arbitrary GUI? by ratboy666 · · Score: 2, Informative

    And this comes up again...

    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.

    --
    Just another "Cubible(sic) Joe" 2 17 3061
  16. Re:Furiously Spending as we speak by AJWM · · Score: 2, Informative

    Unlike Microsoft, which has never engaged in massive layoffs

    Sure. When you've hired thousands of "permatemps", you don't lay them off, you just expire their contracts.

    --
    -- Alastair