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
Yes, you are right about Java. It's more mature, and a better example of a portable VM... but it is not open-source.
...Although you can target open source platforms - that is you can install Java software on a Linux server or PC.
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.
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.
Software is complex. Incredibly complex. Horrendously complex. All software. No exceptions. It's a fact of life.
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.
I'm no expert in X11 protocol but AFAIK the protocol needs "confirmation" for every single "command" - which makes it extremely sensitive for network latency. Otherwise is great that you can run applications from different platforms and display them on your computer screen no matter what you got - Windows, Linux, Solaris... Also the idea of extensions which makes it not-so-difficult to add new things like transparency, shadows etc. is quite good (again - I'm no expert in this)
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
Open source communities, including users, foster somewhat different attitudes and habits about software complexity. In a way, I expect an OSS package to show me its complexity up front. I want to know more about what my software is doing, how to configure it, etc. I don't "buy" OSS based on how shiny it is or whether or not the salesperson was attractive. And I try not to buy out of sheer ignorance either. So complexity - or someone's idea of it - is a definite plus. Much better than half-assed "simple".
;)
For a Microsoft product, I fully expect that its going to balance stupid with too-simple. Thus its usefulness to me is significantly diminished. But I know people who are exactly the opposite, and look at a Microsoft product as keeping them from having to know things about their computer. Me, I'm more worried that I don't know enough
At some level of computing, it's going to be complex.
I personally think that the "certification boom" really insulated many people from the reality that computing systems are, in general, complex. Many IT/IS people became so pigeon-holed that they came to believe that their little corner of the IT/IS world was all there was. Now, it seems that diversity of knowledge is again becoming the desired hiring trait over uber-specialization.
Besides, flexibility typically comes at the cost of complexity.
My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
..Microsoft says exaggerated nasty things about their competition in order to sway people their way.
In other news, there will be weather today.
Slashdot Burying Stories About Slashdot Media Owned
How about some examples? MSSQL is perhaps one of the easiest RDBMS to install/use of them all (yes, I've used Oracle, MSSQL, MySQL, and PostgreSQL) even if it doesn't scale as high. Put in the install CD and hit the various Next/OK buttons and you are done with a system that, by default, is pretty good. MS documentation is typically leaps/bounds ahead of what's available my man pages. MySQL actually has decent documentation for many things, but for others it falls on its face.
If administrators have to resort to the reading the source when something fails, there is a problem. This is at least as bad as having to put in a support call. Digging through the source of a project that you aren't familiar with (potentially written in a language that you aren't familiar with) is a big timesink. Figuring out and debugging why the failure happened in source that you aren't familiar can also be a huge effort. While it does give the specious feeling of accomplishment because you actually 'fixed it' yourself through your own effort when, in fact, you spent a whole week dorking around with something when you should have been able to ask someone or looked up the problem and have moved on to other projects after 15 minutes.
I'm not saying Microsoft is always the best but your examples frankly suck at trying to prove your point. You pick perhaps one of the easiest to install/use RDBMS and say it's hard and then you say that digging through foreign code in potentially strange computer languages to find some bug is the best thing since sliced bread.
The one point I *will* give you is that with OSS, you *can* do those things, but I'd only consider doing them in extreme situations or if I'm tasked by my boss to do so. With most software, OSS or not, if I'm not specifically tasked to get it working, if it doesn't work after 15 minutes, it's deleted and I find something else that'll do what I'm looking for. Life is too short to spend days trying to get someone else's piece of software going that coredumps or has some other wierd behaviour, especially given the amount of software out there these days.
hmm which Vista version do I want...
Yup, they really don't offer any choice, do they? And they aren't confusing their customers at all, right?
80 CC D8 AF AE D3 AB 54 B7 2E CE 67 C7
Open Source gives you freedom to innovate. Closed Source gives you lower maintenance cost. (But not many people have contractual maintenance either for Windows or Linux. They plan to piggy-back on the efforts of others, or give it their best shot themselves)
Eventually the closed source does not conform with the requirements, and you throw it away and start again.
With increasing supplies of Internet bandwidth, we find that Windows catches worms and viruses, Office documents drop keyloggers, old Office documents are no longer accessible, and people assemble POSIX-compliant OSes (Linux) and ISO-compliant office suites (OpenOffice.org) becuase they want them for their own purposes. The past is dead, long live the future.
Microsoft just need to lose interest in Windows and Office, and pick up interest in XBox, and the cycle completes.
The comparison is not Windows vs. Linux. It is Windows vs. Redhat Linux vs. Solaris vs. Novell Linux vs. Debian Linux vs. AIX ...
...
"Windows" is not comparable to "Linux" !!! One does not run "Linux" (generally), one runs "Redhat Linux", or "SuSE Linux", or "Debian Linux".
Therefore, it is necessary to compare the complexity of Windows with the complexity of a single Linux distro. If your Microsoft-friendly organization would be willing to consolidate on Windows, then your analogous Linux-friendly organization would be willing to consolidate on a single Linux distro, avoiding the multi-distro complexity.
If your organization is heterogeneous, and that is your "complexity" concern, then Windows is actually your problem! If you run or write software for multiple Linux distros, AIX, Solaris, HP-UX, and Windows, which one is the odd-ball? Admin'ing *nix systems is all similar, while Windows is *much* different. Porting from one *nix to another is easy, compared to porting *nix to Windows or Windows to nix.
I will grant that MS Windows provides a tighter integration for MS SQL, Exchange, and AD, than (for example) Novel or Redhat Linux provides for the database, groupware, and authN/authZ software included in their repositories. That is the cost of flexibility, which is oft balanced by the savings of flexibility. But this article attempts to pin the cost on the variation of distros, which is not correct.
The comparison is not Windows vs. Linux. It is Windows vs. Redhat Linux vs. Solaris vs. Novell Linux vs. Debian Linux vs. AIX
10b||~10b -- aah, what a question!
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.
And, yes, I'm aware that it's more like "Plug and Pray" with MS's security problems.
To the unsophisticated user; simply sticking in a disc, installing an OS or program is the de facto norm with Windows and proprietary software. They're not used to having to recompile their kernel just to install a piece of software, or being told there is no "manual" per se and NO phone number to call for support if they have a problem.
-Eric
SJW: Someone who has run out of real oppression, and has to fake it.
Until you need to deal with anything in an encoding other than ASCII. Or want to reference one file from another. Eventually the home-grown parser becomes more and more complex, evolving into an under-specified, buggy clone of Common Lisp. :)
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
How is it simpler? It all depends on what a user is familiar with. I find it simpler to type cd /home/user/docs/dir/stuff than to double click a bunch of folders to open some file. But then again I use those commands everyday.
Is Open Source too Complex?
Is this from the company that already admits it can't document its own products because they're too complicated? (see EU case)
Assorted stuff I do sometimes: Lemuria.org
Stop FUD please .If you cant figure out 2k3 after managing 2k you have no fucking right to be called "15 year windows IT veteran" .Heck you have no place whatsoever in IT .
If you read TFA, you see that Gavin's talking about developing open-source software applications as a business, not using said software. It's too complicated to sell software targeting Linux et. al. because there are so many version. I read his thesis statement as:
Since open source software is not a monoculture, it'll be difficult for an ISV to crush all competition and establish decades-long monopoly rents
This is a "drawback" that I, needless to say, can live with.
In short, the first post on this article pretty much could've been the last.
My turnips listen for the soft cry of your love
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.