Open Source and Free Software Intro

 

What is "Open Source"  

It is software offered by programmers to the rest of us rather that software sold by corporations. Basically, the profit motive is set aside, yet services are share with. Who oversees all of this? Lots of folks and nobody.

OpenSourceOrg provides resources and guidance to programmers who want to create and share software.

Key Terms and Ideas: http://www.opensource.org/docs/osd

First three essentials:

1. Free Redistribution,

2. Source Code availability,

3. Derived Works allowed

Where do I find it?

Open Source projects can be posted/distributed anywhere on the web, so google searches can be handy — try "free graphics software" or "open source graphics", etc. However, a handy place to search is on any site that programmers use to manage their projects.  (remember, these projects are not created in a single office building – some guy in Cupertino is emailing a gal in Boston and a friend in Calgary.  They exchange ideas, help trouble shoot problems, each solves a particular component.  They are an ad hoc team of programmers distributed all over.)  Source code repositories are web sites that help the programmers organize, maintain and distribute their programs while being developed. 

SourceForge.net is one of the largest source code repositories. 
http://sourceforge.net/
[try:  search on “photo edit” ]

LIbre Graphics is an organization of like-minded graphics programmers/developers.  It is not an organizing or control body, so much as a meeting place to share ideas and solutions among graphic programmers.

Is it legal?

Yes. 

Exceptions:  on rare occasions, a team of programmers uses code that someone else deems proprietary or patented. 
In such cases, either a) the program must stop distribution, b) the programmers must pay a license fee for the code used c) the programmers must rewrite their code in a new way, not subject to patent or copyright infringement, d) the programmers must contest their right to use their code in court or e) some settlement must be made with the other party.

Several license agreements have evolved for Open Source software.  In effect, some (friendly) lawyers have helped benevolent programmers to both protect their work and, at the same time, offer their work freely to others.
Listing of alternative licenses
GPL is a popular license.

Can I trust it?

If you select well, yes, you generally can trust the program to do what it says it will do. 
Just as commercial software often has problems – unexpected crashes and features that don’t behave as expected – so will open source projects have occasional flaws.  Programmers have developed fairly standard protocols for describing the stability of their programs.  Version numbers offer a clue as to the status and quality of development, thought there are no absolute rules nor any regulating body that enforces such numbers – other than the programming team itself.

A very early version of a program is usually declared an “alpha version” (e.g. 0.1.3a).  This means that it runs, but the programmer is not yet ready to distribute it.  The programmer is still heavily testing and debugging among other programmers.

Later, the programming team will release “beta versions” (e.g. 0.56b).  These are more stable and complete than alpha versions, but are still not ready to be released to the general “user” – those of us who want to get productive work done.  Beta releases are available for review.  The idea is to get as many people trying the program as possible, while expecting these users to a) understand that the program still has flaws yet to be resolve and b) users are really “testers” and should email descriptions of problems to the programmers so that the programming team can learn from users what can go wrong.  Only many hours of actual use uncovers certain types of programming problems. 

Eventually the programming team will offer a “release version” (1.0) which is considered stable enough for ordinary users to enjoy. 

Bug-fix releases (e.g. 1.0.3, 1.2.5) may follow which provide minor improvements or corrections – usually dealing with problems discovered by the increasing number of users.

Major versions (2.0, 3.0…) indicate that a set of new features have been added to the program and those features are now considered stable.
The large the group of users, the more safe I consider a program.  The longer the program has been under development, the more I trust it.  The more active the ongoing development, the more I trust it.  And, of course, the more I use the application, the more I trust it.

What’s the catch?

Quality varies. 
Computer programs are immensely complicated, constructed, often, of thousands and even millions of lines of code.  Designing and maintaining code is no small task, and it involves constant discovery of problems and work towards resolving those problems.  In practice, not every programming team does this well or on a consistent basis.
Caveat emptor.

Support varies: 
who helps when you have a problem?  Sometimes the developers/programmers will help via email or faq’s or knowledgbases.  Sometimes not.  They usually have real jobs that pay their bills to tend to.  Sometimes other users are the best source.  Widely used programs will have blogs or discussion groups or wikis where problems and solutions are documented.

Its not the same as the professional software:  sometimes that’s ok, but often you want to use, or to train others to use, the real thing.  Just how different the Open Source program is from the commercial competitors varies.

Technical knowledge helps.
Selecting Open Source software on your own involves sorting out factors that you simply don’t use everyday.
How mature is this program?  Does it run on my computer?  Is it  a stand-alone program or a web application?
Is this a demo version? (a feature-limited or time-limited program that aims to get me to buy a commercial program?)
Is this basically a consumer program, or does it have genuine professional-level flexibility?
Suggestion: when installing anything complex or unfamiliar, invite your most tech-savvy friend over for dinner. Let them download the best version and install while you handle the grill. Its a Win-Win, which is what Open Source is all about anyway.

What do I have to watch out for?

Avoid immature projects. 
Look for projects that have been improving for a long time.  In general, the longer a program has been used, the more problems have been weeded out ant the more elegant the program.  Look for programs that have been under development for 5+ years.

Avoid projects with only a few programmers. 
There are exceptions to this advice, but in general, look for projects that have many technically skilled folks working on it.

Avoid projects that are no longer being actively developed. 
If folks are no longer improving or debugging it, there’s probably a reason.  Often the stability of the program was never established.  The features might never have accomplished what other programs already offer.  Also, if no one is developing, then nothing will improve and new operating system upgrades may make the program obsolete.

Avoid programs with few downloads. 
Downloads are a clue to how many users are out there. SourceForge.org lists the number of times that a program/file has been download, as will many of the software repository sites.  The more users, the more satisfaction is likely, the more support when problems occur.

Look for software that has gotten support from Google Summer of Code.
What’s that?  Google corp. aims to do some good things.  And, given their stock price and current profits, they can afford to be generous.  To their credit, they are.  One means of helping the rest of us is to provide grants to university-level programming students to work on programming projects during the summer.  Basically, Google gives summer jobs to programming students.  Open Source programming teams propose projects and provide mentoring and oversight, Google provides the pay, and programming students do the work.
To me, Google sponsorship infers that a) the project has credibility among programming professionals (at Google) and b) the program is actively moving forward.

Can I convert to/from or Open/Save major file formats?
If I’m working with photos, JPG is a must, but being able to open and save Photoshop files is very helpful, if not necessary. (GIMP will save/open Photoshop .psd files only up until Photoshop 6 -- which is now several years old. But Adobe no longer makes info available on their file format to programmers.)
If I’m working with illustrations/drawings, can I open and save Illustrator files – even older versions?
Which CAD formats can I open/save?  (DXF?)

When should I consider an Open Source program?

When it solves a problem you need solved. 
Many little programs are out there for some very specific task.  If you can find that program, try it out.

When it does what you need without spending cash for a commercial application. 
Today’s commercial applications are often feature-bloated.  Most students learn 10-15% of a program, at most.  In practice, most professionals use only a small subset of a program’s capability. 
Thus, fewer features may well not really compromise a program’s ability to do productive work.
In short, when an Open Source program is good enough, use it.

When you have an occasional task that you really need solved, but can’t justify a full commercial program. 

 

                 

Greg Clayton
2D Design
Color Theory

Back

     
Course Schedule
Course Schedule