Is Open Source too Complex?
Jason Pillai writes to tell us ZDNet is reporting that at last month's Microsoft Worldwide Parter Conference in Boston Ryan Gavin, director of platform strategy, claimed that one of the big downsides to open source is complexity. From the article: "Gavin noted that the flexibility of open-source software in meeting specific business needs also means systems integrators and ISVs have to grapple with complexity costs. 'It's challenging for partners to build competencies to support Linux, because you never quite know what you're going to be supporting,' he added. 'Customers who run Linux could be operating in Red Hat, [Novell's] Suse, or even customized Debian environments,' he explained. 'You don't get that repeatable [development] process to build your business over time.'" More than once I have had complaints that my setup is more difficult than necessary. Is open source really that much harder, or just different than what most are used to?
Because, lets face it - what Gavin is saying here is that proprietary software vendors find it hard to develop for linux. *shrugs* Maybe, that is not the same as saying that developing for Open Source is complex.
MS - time to face it, almost noone apart from you is making alot of money selling proprietary sofware (alone). The real cash is in services, services, services.
There are shills on slashdot. Apparently, I'm one of them.
Solution: standardize. Where I work, IT supports either XP/Novell or Debian. If you divert, you're on your own.
8 of 13 people found this answer helpful. Did you?
Quite right. Microsoft has a huge advantage in terms of consistency and lack of complexity, provided of course that you just want to run Office on the desktop. Oh yes, which version of Office?
Pining for the fjords
Sorry, but I read this as "Choice is confusing - stick with what you are comfortable with. Hey look, that's us!"
This sort of gibberish is what you would expect from the most popular product in the market who are being challenged for the first time in a while.
To add insult to injury, when the stuff is in trouble, I cannot go to the source code and find out what's up or fix that stupid error message that says "Cannot open file" but nothing about WHICH freakin' file.
In sum: I find open source much, much easier to support. When there's a problem, I can talk to other people that have had the same problem *and have had the resources to fix it*, unlike e.g. Microsoft support. (Microsoft support have actually called me to find out how to fix a problem in a Microsoft product - a problem that should have been trivial for them to debug if they had code access.)
Eivind.
Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
Supporting -Linux- from a cold-start is a pain, not OpenSource.
With Solaris and FreeBSD (as examples) you know what you're in for when you get there. With linux you never quite know for sure. Sure, you can gear yourself up with most of the more common setups (Debian, RH, etc) but beyond that things fracture into thousands of variants. From starting scripts to configuration files, it's a mess.
Simple, have standards that people/distributions can *choose* to follow.
Projects such as Linux Standard
Base (and others, list / talk about them if you know of them) allows
distributions to have a common point and common environment.
I think GNU/Linux will learn from the fragmentation of Unix. Part of the
reason why Unix didn't develop a standard was that each closed version was
competing against eachother for customers. With Linux there is no to-the-death
competition since the work is shared and co-operative.
Ryan Gavin's statement about Free/Open Source Software being to complex is a complete no-brainer and doesn't even remotely reflect reality.
The truth is, complexity in computers and computer software is a tricky thing to tackle. As computer systems become more complex, complexity itself becomes a problem as integrating all the different components of high-complexity software into a working system as a whole is getting more difficult.
The perfect example is ms's own windows vista. That piece of software is so complex ms just can't get it to work properly. Delays are the logical consequence. Otoh, Free Software profits from having the source code available, not necessarily reducing complexity but making it easier to get along with it.
Summary: Complexity is a problem for software, but it doesn't matter if that software is free or non-free. Ryan Gavins statement is just what you would expect it to be, a stupid piece of FUD that might sound somewhat sophisticated to a non-guru but every proper software engineer would be rofl about.
I'm finding most software I'm running today is far more complex than it needs to be. With open source you can look at the source code and maybe understand why its too complex but most of the time its just a developer taking a short cut.
We all have examples of complex software gone bad. I'm guessing the 1st open source example of this is sendmail 5. Its complexity was required for what it used to do and that ended up leaving lots of holes in lots of systems over the decades. For a while people learned from that mistake. IDA Sendmail cleaned up the config. Bind's config files were redesigned. CERNS web server was excessively complex and the developers of NCSA http learned lots of lessons from that. The Apache team learned from there mistakes. Today Apache 2 is much simpler in most cases that CERN's server was even though it does far more.
The major issue with complexity today is the confusion between an Operating System and an Operating Environment. Linux is an OS but Ubuntu is an OE. OS X has Mach as an OS but several OEs including FreeBSD.
I like the KISS (Keep it Simple Stupid) for daemons and opening systems. That means every step of starting the system should be clear and easy to understand. That means being able to read the config files (no binaries or unreadable XML please). It means that programs should use a limited set of shared libraries (Solaris init needs a buggy XML? why?) The OE can be as complex as needed but the OS should be simple and clean. If you forget that, your system is going to be owned by some script kiddie.
You can run Debian with a few different kernels and, apart from differing levels of hardware support, there is no difference from a system administrators perspective. Code written for one POSIX-compliant will usually work on another if the same shared libraries are the same.
Saying you support 'Linux' is silly. It's like saying you support 'UNIX.' Saying you support RHEL makes sense. RHEL[2] is a complete operating system with a set of defined library versions, a documented filesystem layout, a minimum specified set of supported system calls, etc.
[1] Modulo a few hundred vendor-specific patches.
[2] Substitute your distro of choice here.
I am TheRaven on Soylent News
This is the same argument MS used for Java for years. It isn't true for Java either but it amazing how many people ended up believing it even here on slashdot. The fact is most large systems are pretty complex. The art of writing software is giving the person who uses it the impression that it is very, very simple. Take Goggle for instance. The search engine does some truly staggering stuff to return results to you when you type them in that box. You don't generally think about this because it works.
Now think about how often when using an MS product you suddenly realise that it is doing some really clever stuff because it doesn't actually work. An example:
Excel used to have a limit on the number of characters in a cell. That limit was 255.
The limit was lifted, in, I think Excel 95.
However if you have a worksheet that contains text greater than 255 characters you can't copy the sheet to a new book. If you use the copy paste commands from the window bits of formatting get lost. If you use the "copy sheet" function Excel will truncate any bit of text longer than 255 characters. If you use the same function but perform a move instead of a copy it works just fine. Now that is complex.
Is open source difficult? Yes, if you are just an average user. No, if you are a system administrator-type of user and that you manage information system for a living.
If you are just an end-user, someone who uses computer to do something else (creative work, accounting, marketing, sales, whatever) and you don't know anything about computer, then yes, I guess Open Source is still too difficult for you... unless you have a sysadmin close at hand to (a) install your machine and (b) make sure it's updated regularly. Then, Open Source can be -- should be -- just as easy (if not easier) than Microsoft products. Open Source GUIs, such as XFCE, KDE or Gnome, once installed and configured properly, are just as easy and friendly as Windows. Of course, the ultimate in user-friendliness is Mac OS X, but that's another story.
Please note that the term "user" -- as used above -- is not negative at all in my mind: I can perfectly understand that your job has nothing to do with computers, and that you don't have the time, or the inclination, to learn more about computers. And no, I don't think there is such as thing as a "Power User". Either you know enough to manage your own machines, or you don't. People who know just enough to be dangerous, but not enough to clean up the mess they have made, are users in my mind. Dangerous ones, but users nonetheless.
On the other hand, when it comes to system administrators, Open Source wins hands down. Things like Apache, vsftpd, NFS, CUPS, perl/python/shell scripting and, especially, OpenSSH make my life (and the lives of countless other people) so much easier than their Microsoft counterparts. Plus, they are a lot cheaper than all the Microsoft products, they are more reliable, easier to manage, upgrade, patch and install. Seriously, consider the following examples to upgrade a machine or an application:
Sure, to get to the stage that you actually can type these commands under OpenSSH and know what they do, you need to put in a lot of work. But the result is worth it. And, if you are a sysadmin worth his/her salary, you'll probably have a passion to learn that kind of things. Once learned, these commands result in less downtime, less cost, more customer satisfaction and a more efficient company. All in all, Windows, with its lack of security, Registry Database, its rather ugly GUI and its general flakiness is not good enough or "simple" enough when it comes to systems that must run 24/7 and support dozens, or even hundreds of users.
Linux, on the other hand, may not ready just yet for the desktop. But it will one day. Which is probably why there is an un-ending stream of FUD coming out of Redmond these days...
The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
Open source is ready and IS used in business today. Many are even 100% open source because thay made that decision when they were small enough to not have the mess of an IT infrastructure that makes it near impossible to change over.
Where I am now we are 100% Open source except for vendor specific tools that are given to us by the vendor. The IT team here works hard to make them work under Wine so that we are 100% functional. New Sales people get over no windows and no Office2006 within 4 days and are as productive in open office and ubuntu as they were in windows.
Upper management and unskilled IT that cant handle standing outside their box are the #1 reason that open source is ignored and they buy yet another "solution" from a vendor.
REality - closed source vendors DO NOT give better support than Open source. Been there done that hearing the "that will be fixed in the next major release in 2 years" so many time I want to strangle them on the other end. MSFT tech support is 100% worthless from the OS level to the enterprise level apps (sql2003 enterprise)
I get better support from the people that write the Open source stuff. IF you PAY THEM the developers will bend over backwards for you.
The article is 100% fud.
Do not look at laser with remaining good eye.
I'm all for freedom, but I find it silly that different distros keep configuration files in different locations, use different init scripts, use different install methods, have varying level of compliance with the LSB, are focused on either Gnome or KDE predominately, etc.
It does make it more difficult for a large company to develop for a Linux crowd in general.
Only if they want to develop proprietary software for Linux.
If they provide the source, then whoever maintains the distro is the only one who has to worry about issues that you are fretting over.
That's the whole purpose of distros.
I'm all for freedom
I would argue that you are not. Otherwise, you wouldn't be rolling out this old canard...
A house divided against itself cannot stand.
if this is what you learned from Software Engineering 101, you should go demand your money back for your entire education. you've learned all the wrong lessons.
/etc (how many files contain some combination of hostname, ether addr, IP addr, and so on?). and that's just low-level stuff. move up the stack towards the user and it gets more and more true. Apple's Safari is such a great experience for most people who use it because it's much simpler than most of the alternatives, say IE 7. the land-line telephone world retains many of its customers because mobile phones are more complex to use. software doesn't have to be complex, and folks like you who assume it does produce most of the complex code, because you've given up. and once you give up on trying, sure, it all looks like it has to be complex. it's a nice self-reinforcing fatalist outlook.
yes, most software is complex, but it doesn't have to be. the complexity generally comes from a few areas, like legacy support and poorly thought out design compromises. compare, for example, the Plan 9 kernel, which is ~180k lines of code for about a half dozen architectures, to linux, which is... well, an order of magnitude more than that, at least, even stripping out the vast driver support. it's also better structured and more readable. then compare other components: plan 9's ndb with Unix's whole host of files in
sure, sometimes complexity is unavoidable. but we should strive to make that the exception rather than the rule. and it can be, if we put the effort into it.
i speak for myself and those who like what i say.
1) User -- For the average user, due to great advances in user-friendliness, learning how to use Linux is just about as difficult as learning how to use Windows. The names of the programs are different, however they all do similar things.
/lib, /usr/lib, or /usr/local/lib, whether a particular distro changes library version numbers and doesn't contain a recent enough library, whether or not the distro has an autoupdate tool that can be used to update a single library without breaking anything else, etc. So, large-scale software manufacturers choose to restrict what distros they provide support for, due to the fact that they do not want to be responsible for supporting some random distro that they have not heard of or done any testing on.
2) Admin -- This is harder in Linux. In windows, there are only a few differences between configuration locations between Win2K, XP, Win2K3, etc., and of course the registry is a common feature among all versions of Windows. In Linux, differing software package formats (rpm, deb, tgz, emerge, ports, etc.), differing configuration file locations and formats, differing startup scripts, differing authentication systems, and various other minor differences make managing one distro almost a completely different experience than managing another distro. Some distros have decided to use similar tools, however there is still enough variety to make things way more interesting than necessary.
3) Developer -- It is fairly difficult to release binary packages of your software when you don't know whether or not a particular library will be present on the target system. A package compiled for RedHat Enterprise may or may not work on a Fedora system, and will almost be guaranteed to not work on a Debian/Ubuntu system without a lot of library mangling. You can't just say "let the end-user compile the software on their system", because certain large-scale software products (i.e., ones that are very expensive and include commercial support) are not released with source code (for obvious reasons). Also, even if they did support multiple distros, they would have to deal with annoying miscellaneous issues such as whether a particular library file is present in
--guru
You answered your own question:
Who cares if it's 'easy' to write another simple parser to handle a different config file... the point is it's not universal, and therefore is a pain to manage.
I'm not arguing in favor of the windows registry, but I really don't config files in a hodge-podge of different formats helps anyone.
LegendMUD
I'm always stunned by the group of people that don't recognize the value of proprietary software packaging as a benefit to business. Some of the proprietary stuff sucks, but clearly, some of it doesn't. One of the maxims of business is, has, and will always be that the customer is always right. Why can't OSS defenders see this? If a business complains or fears that OSS will be too complex, then, whether it's too complex or not, IT IS TOO COMPLEX. It's either an image problem or a usability problem, either way it's a real, live problem.
One of the things I hate about the OSS community is the I-know-better attitude they take. You don't know better, because you don't know the business of the customer as well as they do, and you probably don't know what they're expecting from a given package as well as they do either. This stuff requires a lot of work. I'm a big proponent of OSS, and I think that someday it's going to take over the world and be the primary way that software is written, but I'm always frustrated when topics like this come up and I'm reminded of how much work there is left to do. From users to developers, it's sooooo hard to contribute to OSS popularity (either as user or developer) that many of the best advocates on both sides are left behind.
As far as Macs go, for the first time in a long time I used OS X a couple of weeks ago. I was trying to help a friend use their all-in-one printer to scan in an image. My conclusion: OS X sucks...it's horrible and clumsy to use. Every time I say that, Mac defenders always tell me the same thing: it's not that it's bad or good, it's what you're used to, and you're not used to the UI.
Well, ok, let's look at that argument. Why does it take me a click and a drag and another click-drag to size a window where I want it? Every other window manager I've ever used (and I've used probably more than a dozen) if any one corner of a window is where you want it, you drag the opposite corner to where you want it and you're done. Not so...Mac decided that something so simple should cause a new user to hunt around for a few minutes trying to figure out why the window doesn't respond in the expected way. Ah ha! It's only the lower right corner that can be moved. But then that means if you want to drag the upper left, you have to resize the window using the lower right...but then you hit the bottom right corner of the screen and it's still not big enough. So the actions are ordered as well...*first* you have to drag the upper left where you want it, and the drag the lower right back where it was.
Let's talk about iLife...so back to scanning my picture. I put it in the scanner of the all-in-one and hit the scan button, it pops up a menu asking me what I'm scanning (do I want OCR, bitmap, etc?). Great, so I hit image and it scans it. On the desktop, an app automatically pops up a gallery of images and another small window with a thumbnail of the image. There's a note under the thumbnail telling me to drag and drop it into the gallery application. Oh great! Ok, this is really easy--maybe Macs are better.
So I create a new folder in the gallery app and drag the image to it. Upon releasing, however, the image doesn't show up in the gallery in that folder. Huh. So I try it again, as the thumbnail is still there giving me no indication that it actually went anywhere in the gallery app. After much frustration, I figure out that there's a magic default folder (I forget the name even now) where that application has decided all new images go before you can sort them into other folders. As I dragged it to multiple locations multiple times, I created several copies of the image in that default location. Once I discover this and enter the default location, I notice that the user who I'm helping finds this as tedious as I do--because you are forced to organize and copy in two separate steps, he hasn't gotten around to organizing a few hundred photos which just sit in the default location, never having been sorted (and not like to be).
After hunting through that
but have you considered the following argument: shut up.