Open vs Closed Software

18 05 2008

In recent years, I have seen a lot of people (including myself) begin to switch from proprietary/closed products & services to the more ‘open’ alternatives. Now more then ever there is a strong push for companies across the globe to move toward open standards. Unsurprisingly however, many of the big corporations are reluctant do so.

Since this issue keeps popping up, I figured I should give a shot at outlining the pros and cons of both Open & Closed source software. Hopefully this will help developers make an informed decision on what’s best for them, and users can decide which type of software they would rather support the development of.

Open Source
Expedited Development (large diverse group of programmers available to contribute to the program at almost any given time, usually at no cost other than a mention in the credits)
Freedom & Creativity (Programmers are able to focus on contributing their own ideas to their own area(s) of expertise rather than following a predefined design set out by an employer. Also speeds up development)
Minimal Development Costs (a community of programmers contribute their own section of code, usually free of charge)
Ongoing Updates & Improvements (new features and improvements are constantly being added on by developers, helping to ensure a bug free stable software platform that is also feature-full)
Many users prefer open source software over closed software (as it is usually free without DRM restrictions, and is also open for additions or customizations to the program to fit the user’s needs

Loss of commercial value, hard to make profit from (a part from donations)
Can lead to loss of quality standards (e.g. a contributor to the program could add something very useful, but may leave out basic components like a user friendly GUI. In other words, contributors/programmers are faced with less expectations/requirements than they would be in a company environment)
Loss of control (companies who release their software under Open Source licenses give almost full control of the software development to the community of users & developers, making it difficult to keep development under control and making sure it fits the company’s image and doesn’t hurt its reputation)
Software may end up being a series of pieces rather than a whole puzzle

Closed Source
Control (Gives developer(s) complete control over the software development. Developer(s) can still take in suggestions from users, but aren’t compelled to add certain features if they are viewed as unnecessary or unwanted, also gives more control over quality standards and overall design)
Profit (Better chance of earning profit through sales & making the software a business success)
Gives developer(s) more control over how the software is distributed
Complete Puzzle (Program is whole, complete & uniform rather than a composition of several different pieces of code)

Significant Development Costs (Time = Money! Programmers and program designers have to be hired rather than having a community full of programmers volunteer for the project)
Longer Development Times (As I said earlier, Time = Money. With less programmers on the project and more standards, restrictions, and guidelines set by the company, development can take much longer)
Users must work with what the program has rather than making the program work with what they have (Users are forced to work around the limitations of the software instead of having the option to extend or manipulate the software’s code to make improvements, customizations, or other custom changes)

Bottom line: If you are a developer and you want to make money off your software, Open Source is probably not the way to go unless you want to live off donations. On the other hand if money isn’t your ultimate goal but you want your program to be a great success, Open Source could be the key to promoting the project and gaining public interest.

If you’re a user, Open Source on many levels is a better alternative to the costly commercial software out there. For example, instead of paying $900 for Photoshop, consider The GIMP as a free alternative with almost as many features with a unique creative user interface for accomplishing tasks. However it is sometimes advantageous to have the commercial (closed) product for compatibility, stability, and/or tech support reasons.


Medical Triage Ethics

10 05 2008

Being a physician must be a tough profession, especially if you’re working in the ER. I wouldn’t know, but I can’t imagine there is anything worse than talking to someone one minute, and then watching their dead corpse shrivel up a moment later. And then to have that happen on a daily or even hourly basis is probably not something the majority of us could ever deal with.

Unfortunately, it comes with the job. It’s just something doctors have to find their own way of dealing with. But what is also unfortunate is that it’s not always death that is the most disturbing or traumatic part of being in the medical profession, it’s often the decisions that need to be made which can and do lead to death(s).

Medical Triage
A term that originated on the battlefield, triage is the evaluation of patient conditions for urgency and seriousness, and establishment of a priority list for multiple patients.

Every hospital is faced with triage everyday. It’s the process of deciding the order in which to treat patients. Most of the time this task is relatively straight forward; if someone is bleeding to death, it’s obvious they should be given treatment ahead of someone with a broken thumb or injured muscle.

But what happens in a crisis? What if all of a sudden twenty patients of varying ages flood the ER needing immediate medical treatment in order to survive, how do you decide who to save?

At this point you could say it’s logical to treat the children first because they have only just begun life, and are essentially the future of our society. On the other hand you could say children are much weaker, and it would be more effective to tend to someone who may respond better to treatment. But what happens if you let a child survive but not their parents? By doing that, you would be destroying a family and potentially ruining a child’s life. And by saving the parents you are denying treatment to others (possibly other children) who would have otherwise survived. And by not treating the parents nor the children, you could be wiping the family’s future existence off the face of the earth, just like that.

That’s tough.

To make matters worse, lets say you have come across two patients of a similar age and you can only save one of them. Then what? Do you save the one on the left because he’s closer, or the one on the right because he wears a Rolex? How on earth do you decide… Flip a coin? Roll a die?

If you decide not to treat either, and instead move on to one of the many other equally ill patients; is that fair? Is it fair to deny a patient’s treatment simply because it was too hard to decide which one to save? What if you knew one of them? Sure, that would make the decision easier in the short term… but what about the long term guilt of indirectly causing the death of a mother or father because you decided to save Mr. Drunk from the party you went to last weekend.

My point is: what do you think is the best way of rationing out treatment to patients needing immediate medical care if normal determining factors (such as age, vital signs or previous medical history) can’t be used to fairly give priority to one patient over another?

I’m sure some would prefer if the doctor made the decision based on instinct, others may rather trust their fate with a computer’s random output.. but one of the more interesting concepts I’ve heard is the idea of having a computer make the choice based on the patient’s calculated success or achievements (based on factors such as occupation, annual income or credit rating).

Bottom line: I know, you are probably sick with an overdose of rhetorical questions by now, but this is one topic I am really curious to see what people have to say. Please leave a comment below, and tell us what you think is the appropriate method of triage when two similarly aged patients with equal chances of survival need treatment.