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.
I think Java would have been a better example - as the VM is more mature & ported to more platform (last time I checked anyway).
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.
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.
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
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.
Having managed both Windows and Linux systems in an environment with 500-1000 machines, I can say that the workload ends up being about the same. If someone were to tell me that managing Linux is "too complex", I would respond by saying that you just haven't yet learned Linux, but perhaps have learned a specific distribution. In essence, Windows is a single distribution and learning only one is easy enough. However, once you understand the fundamental concepts of Linux (or any unix-like OS), adapting to a new distribution is relatively easy. There is a learning curve with Linux, but there is with Windows too. Just ask anyone who has switched from a Mac to Windows. If you're not willing to learn, then you're just lazy.
Ouch! The truth hurts!
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!
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)
..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
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.
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.
SCO OpenServer.
Scary, old, unsupported (difficult to find anyone willing to work with it), and extremely easy to break, even by end users.
Then again, this is probably the result of bad karma for still running a serial-line network in 2006.
To draw another analogy, Token Ring is also scary, and very easy to break. On the flipside, Mac OS X is much "simpler" to an end-user than Windows is(and to a certain extent, to the developer as well) -- it is also much more difficult to break. I've never seen an OS X installation trashed in such a way that it couldn't be fixed by creating a new user profile. Granted, this is due to OSX's UNIX underpinnings, but the fact remains that it's pretty undeniable that it's a simpler system to use for the user.
-- If you try to fail and succeed, which have you done? - Uli's moose
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
If administrators have to resort to the reading the source when something fails, there is a problem.
I've often found this to be sort of a plus in a roundabout way. It seems that OS applications more commonly spit out specific errors about what is wrong into the logs. This often doesn't mean anything to you, but a search often finds someone who did have the same problem and poked through the code to figure it out. When you're an administrator of a criticle system you need it fixed. If MS just gives you "an error occured" message then when push comes to shove, you may very well wish you could just look at the code.
Although I'm pretty far removed from C/C++ now days, I've done search on error messages and come up with the actual code where the program generates it. Some times it's easy enough to tell what conditions are causing the problems without being a programming 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
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
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