Understanding Open Source Software




 


Do you want to know more about how the internet works? Do you want to learn how to choose the right (open source) software for your business or website, and learn some nerd history along the way? Or how about just reading some dated and obscure cultural references?

Most importantly, do you want to learn more about the software that already helps you and your website make money every day, without you even realizing it?

If you answer “yes” to any of those questions, I’m your guy, and this is definitely the article for you.

My bosses at Website Planet made a terrible mistake – uh, I mean, graciously gave me the opportunity to write at length about open source software, often referred to as OSS. If you surf the web in any fashion, then you use OSS every day, directly and indirectly.

Because it’s everywhere on the internet, OSS and the community around it affect your bottom line, one way or another. The more you know about the software your business uses, the better your chances will be of maximizing its positive impacts and minimizing the negative. That’s what I’m here for.

Full disclosure: I am not a developer, but I’ve been tinkering with OSS for as long as I’ve been a web designer – in other words, about half my life to date. That’s one reason I didn’t play sports or make many friends as a teenager. For the nerds out there, my first Linux distribution was Mandrake, just before they merged with Conectiva to make Mandriva. For the rest of you, I’m sorry you had to read that.

So grab a caffeinated beverage and sit back. I’ll take you through everything you need to know about OSS, including what it is, where it comes from, and the pros and cons that matter most for your business. And I’ll try to keep things less nerdy from here on out. But no promises.

What on Alan Turing’s* Good Green Earth Is “Open Source,” Anyway?

Some of the definitions of OSS that you’ll find on the internet get super technical. They’ll talk about software licenses like the GNU GPL, MIT, Apache, or some variant of the Creative Commons license. Here’s the simplified version of all those: Don’t steal stuff. For this article, you won’t need to know much more legal information than that. Thank God.

Instead of all the technical jargon, let’s focus on the general idea of OSS, and the philosophy behind it:

True open source software is just that: open. The source code that makes up the program or app is freely available to the public. Anyone can access OSS code, copy it, or modify it to make their own version of the software. They can even slap their own name on it and sell it if they want to.

The only catch is that any changes you make to OSS must be sent back “upstream.” In other words, you have to send your modified code back to the developers of the original software so that they can see it. At that point, they might choose to integrate your changes into the original software, and share the updated version with the community. Thus, everyone benefits from everyone else’s innovations.

The whole OSS system is based on these principles:

  • You should own your software, and be able to do whatever you want with it, whether you paid for it or got it from a community-maintained project.
  • You should be able to know exactly what’s in your software, and exactly what it does on every level. Of course, this requires programming knowledge, but the code should be available to you if you have that knowledge.
  • Your software should never, ever spy on you.
  • Developers should, whenever possible, share their code so others can improve upon it.
  • In theory, if everyone can examine the source code, then vulnerabilities will be found more quickly, so it’s harder to slip viruses or spyware into software.
  • Stick it to the man. Don’t trust anyone over 30. (It’s a 1960s reference, look it up.)

“I do like the pragmatic aspects of the movement, which probably are more effective than the Free Software Movement’s more sternly ideological commitment.

I personally reject the notion that we have to pick a binary option of only caring about practicality, or being entirely devoted towards the ideological side of things.”

unsurprising – Reddit user

If the principles above sound idealistic, that’s because they are. The open source movement was founded by big-dreaming activists. In practice, though, every open source project operates a little differently, with the details defined in that software’s license. Some OSS even includes bits of proprietary software (protected secret stuff, basically – details coming next).

* Alan Turing was a mathematician, logician, cryptanalyst, and theoretical biologist. He is considered the father of theoretical computing, and a nerd fashion icon, if you’re into that WWII-era style. Just don’t Google how he died, because that’s depressing as hell.

Alan Turing
Fashion. Icon

Cue the Scary Organ Music. It’s Time to Talk “Proprietary” Software.

Whereas open source software is freely available and technically belongs to everyone, proprietary software is the literal opposite of that. It’s owned by one company or person, and you only get to use it if they give you a license. Typically, you have to pay for that license.

Sometimes, however, you can get that precious license for free, and this is usually what people mean when they say “freeware.” But in this scenario, you only get to use the software for free. It’s not yours, and you’re not allowed to change it in any way.

The original founders of the open source movement believe this is wrong and unethical, even evil. (Hey, I said they were passionate activists.) If you can’t see what the code in your software does, then you don’t necessarily know if it contains spyware (corporate, criminal, or government), some sort of virus, or anything else you might not want. And if the software starts messing with your computer, even by accident due to a bug, you can’t fix it.

The most strident leaders of the OSS movement won’t allow any proprietary software onto their machines, not even operating systems like MacOS and Microsoft Windows. In technical terms, an operating system (OS) is the layer of software that servers as a bridge between hardware (your computer’s electronic guts) and apps (Google Chrome, Microsoft Office, etc.).

So if you’re not going to use Windows or MacOS, what are the alternatives for operating systems? There are actually hundreds, but not many people know anything about them. The two big ones are called Unix and GNU Linux (most people just say “Linux”).

A very large number (if not most) of the servers connected to the internet run one of these two operating systems – or one of their derivatives, which include Ubuntu, Debian, and Red Hat. Incidentally, the Android phone OS is based on Linux, while MacOS is based on Unix.

Speaking for myself, I wouldn’t go so far as to call proprietary software unethical or evil. I’m a little torn. On the one hand, if we can have data privacy (something that pretty much all OSS advocates fight for), why can’t there be private programming code?

On the other hand, look at Apple, which seems to be on an endless quest to make it harder for people to repair their own devices. It’s the computer equivalent of John Deere, a farm equipment company that tried to legally restrict farmers from stopping in their fields and fixing their tractors.

Forcing people to pay for more expensive support and repair options certainly hurts small businesses, and that’s one injustice that OSS rightly set out to correct.

Thankfully, more and more states and countries are legally establishing a “right to repair” for their citizens. That’s a positive step, but these days, the main problem comes with the way software is sold. You don’t own it like a tractor or other physical product; it’s just licensed to you. The license might be permanent, but in legal terms, it’s very different from true ownership. You own the right to use the software, but the company or developers own the software itself.

This all puts software into a hazy legal area. It seems to be treated both as a product, like a blender, and as a piece of intellectual property, like a trademarked blender design or a song.

When everything is going right with your software, the difference between proprietary software and open source software is hard to see (beyond the price tag). When business is booming, and you can’t remember the last time your server crashed, who cares? However, when something goes wrong, that’s when the differences between OSS and proprietary software matter a lot. I’ll have a lot more to say about that below. But first, here’s a look at where OSS came from in the first place.

A Brief-ish History of Open Source Philosophy and Software

Once upon a time, some very smart people built a computer. It wasn’t the first computing device, exactly, but it was a big deal. It took up a massive room in some university. Nowadays, we have pocket calculators that are more powerful than that computer. But back then, that beast of a machine was the pinnacle of technology. Scientists dreamed of the day when a computer might take up only as much room as a Volkswagen.

Soon, other universities, corporations, and government agencies started building their own computers, to the point where one organization might have, like… five. In that era, programmers shared their code freely. (And incidentally, those programmers were often women, as programming was seen as secretarial work until we started worshiping developers) After all, there was little to no money to be made by hiding your code from other people. Everyone was just beginning to figure out what this newfangled “computer” thing could do.

This tradition carried on for decades, even as the personal computer started to become a thing. Big companies began to see the value in having a computer for each employee, and a few very brave, ordinary people bought computers for their homes. Then one nerdy kid would hog the machine while other people in the family went outside to play, socialize, and generally just live. But enough about me. Through it all, free-ish software (often called shareware) ruled the day.

The first people who sold their software for money were not well liked in the computer community, but they were persistent. As the need for more and better computers spread, so did the need for more and better software. Nerds figured out that they could make a decent living selling their software, and so they came around to the idea of proprietary programs. Software was treated as intellectual property, and software companies vehemently defended their ownership of it.

Then, around the 1980s, a guy named Richard Stallman got very tired of not being allowed to examine the code behind the software he used. He started the GNU Project, which is basically a whole bunch of people creating open source software. They also created the GNU General Public License, a license agreement that can be used by anyone who wants to make their own open source software.

GNU, incidentally, stands for “GNU’s Not Unix,” which is called a “recursive acronym.” There are a ton of recursive acronyms in the open source world. Welcome to Nerdville.

In 1991, a man named Linus Torvalds released Linux, which was indirectly based on Unix. He and Stallman then basically teamed up to create the technology that powers the world, more or less. According to hostingtribunal.com:

  • In 2018, Linux ran on 100% of the world’s 500 supercomputers.
  • In 2018, the number of Linux games available on Steam reached 4,060.
  • 5% of the global infotainment operating market in 2017 belonged to Linux.
  • 95% of the servers that run the world’s top 1 million domains are powered by Linux.
  • In 2018, Android (based on Linux) dominated the mobile OS market with 75.16%.
  • 85% of all smartphones run on some version or derivative of Linux.

In addition to making software, Stallman and friends have been preaching against the evils of proprietary software for decades. Big corporations that sell proprietary software became the enemy. Microsoft became an outright supervillain. The fact that some of these companies retaliated by running anti-open-source ads, trying to scare customers away from OSS and back to proprietary products… well, it didn’t help the companies’ public images, to say the least.

the highly reliable times

At one point, Microsoft was actually ordered to take down one of these ads in the UK. The ads were generally viewed as less than factual, to put it very kindly. Interestingly, it’s very, very hard to find these old attack ads on the internet now. I’ve found articles about them, but the example above is the only actual image I could find.

One reason there’s so little evidence today of this past of hostility is that eventually, Microsoft made nice with the OSS community. Under the leadership of CEO Satya Nadella, the attack ads stopped. Microsoft also stopped just killing off every software company it acquired, now allowing many of them to do their own thing, including Mojang (the studio behind the massively popular Minecraft game), LinkedIn (yeah, it’s still going), and others.

Microsoft even started contributing to large OSS projects, and releasing its own open source software. For example, Visual Studio Code is one of the biggest, most popular code editors (which is like a text editor, but for programming) in the world right now. It runs on Windows, MacOS, and yes… even Linux.

What’s more, Microsoft bought GitHub. Developers will instantly know why that’s a huge deal, but for the rest of us, GitHub is basically a place where people can share code with each other and collaborate. It has been the biggest code-sharing platform since May 2019, and it’s a massive center of open source activity. GitHub has given us operating systems, graphics editing programs, content management systems, and every other kind of software you can imagine.

To be sure, feelings within the OSS community about Microsoft’s apparent change of heart have been mixed. Many are happy that Microsoft is joining the party, or at least relieved that one of the world’s largest corporations is no longer outright hostile toward OSS. But others are far more wary. They worry that Microsoft is just trying to get everyone, including open source developers, hooked on its platforms – at which point the price for those platforms will skyrocket. It has happened before.

“To be honest, I’m generally not positive about corporate involvement in the OSS community anymore, because I think the marginal benefits the community gets from them are not worth the amount of problems they create. Usually when they are involved in an OSS project, it’s either to create some ecosystem that benefits their developers or business model, or it’s to starve the resources of smaller OSS projects so they can hold a monopoly over extracting resources from developers.”

Kyle Drake – Creator of Neocities

I suspect, however, that it will be mostly enterprise-level customers who see higher prices eventually. Microsoft makes all of its money from big companies now. Why do you think you almost never hear about Microsoft cracking down on people who pirate Windows anymore? Because squeezing money out of your average home computer user is a losing proposition. As long as you stay within the Microsoft ecosystem, you’re feeding the beast in some fashion, even if you save a few hundred dollars by getting your software on the black market.

“Meh. Companies are always going to need to make money. They will also always do philanthropic and charity based things to appear better to the community. I appreciate everything the larger corporations are doing to support the community, but it doesn’t feel like anything *different* is really happening than the typical support big corps usually give.

Tangentially related, medium/large sized corporations can best support the community by treating OSS projects the same as closed ones, read: paying the same amount. OSS should be removed from ‘free’ and be more about open knowledge share. I am giving away my valuable resources so that others can benefit, not to make free software for you… I expect the same respect.”

Chris, AKA tankyspanky – Reddit user

One thing’s for sure: Today, open source software is everywhere. It’s on your servers, in your TV, on your phone, running your fridge… really, everywhere. We may never see the once-promised “year of the Linux desktop,” but open source software has already won the world battle in many important ways.

A Short-ish List of Massive Open Source Projects That Run the World, and Maybe Your Life

Just to give you some perspective, here’s a list of high-profile software that is either entirely open source or based on open source code:

Android – operating system for phones and tablets all over the world
Audacity – audio recording and editing software
Blender – 3D graphics software
Drupal –a popular content management system (CMS)
Firefox – a web browser
Google Chrome – based on Chromium
iOS – operating system on all Apple phones and tablets, based on Unix
Joomla – a popular content management system
LibreOffice – and office software suite
MacOS – operating system on all Apple PCs, based on Unix
Magento – a popular ecommerce CMS
MediaWiki – the software that runs Wikipedia
Microsoft Edge – a web browser; the new beta version is based on Chromium
Opera – a web browser, based on Chromium
Playstation 4’s Operating System – based on FreeBSD, which is sort of like Unix
VLC Media Player
Vivaldi – my favorite web browser, based on Chromium
WordPress – the content management system that runs a third of the Internet

Advantages and Disadvantages of OSS & Proprietary Software

So I’ve outlined the philosophical reasons why open source software is a good idea, but philosophy, I am sad to say, does not pay the bills. If it did, every college student in the world would be rich. It’s time to look at OSS from a business perspective.

Let’s say you’ve got a server to run, or a website to publish. You’re presented with a few proprietary software options, and a few open source options. Which should you choose?

Naturally, it depends on your requirements, along with your existing assets and technologies. I’ll get into those considerations more later. For now, let’s address some of the more basic advantages and disadvantages you’re likely to run into. I’ve already mentioned some of these differences, but here’s how they affect you and your company.

Open Source Software – The Good and the Bad

Advantage: You Can Fix and/or Modify the Software

Well technically, you have permission to fix the software if something goes wrong, and to change it if it doesn’t meet all of your needs. Whether you can do any of that depends on whether you are a programmer, or have a skilled programmer on your staff.

A lot of the biggest contributions to open source software actually come from corporations that need their software to do very specific things. They take an OSS product that does most of what they need, and add bits on to it. Those extra features are then shared with the community, and just like that, you technically have multi-billion-dollar companies making software for free.

Advantage: You Own Your Data

With proprietary software, it can be hard to figure out what the software seller does with your data. Sometimes, that data gets sent off to places you don’t want it to go. Sometimes that happens by accident (see also: everyone who’s ever accidentally uploaded sensitive photos to iCloud). But sometimes, it’s the software company deliberating harvesting your data for profit.

Worse, lots of proprietary programs save your data in their own special file formats. So let’s say you manage your finances with one specific program, but then the company that makes that program goes out of business. You might not be able to open your files with another program. Manually transferring your data takes forever, and sometimes, even that is nearly impossible. Sure, there’s probably a tech pro who can recover your data, but it’ll cost you. A lot.

With OSS, you know exactly where your data is going. Open source programs also usually use file formats that can be opened with other software. So if one program dies off, another can take its place, without you having to manually copy and paste all of your old data to the new system.

Advantage (mostly): It’s Often More Secure

Let’s be clear: There have been cases when someone slipped a bit of spyware into an open source project, and no one noticed until some very bad things happened. But usually, with larger OSS projects, all code is carefully reviewed by large numbers of people.

WordPress, for instance, is constantly updated for security, with the community reporting any vulnerabilities to the main developers. Smaller projects don’t have quite as much community protection, but on the plus side, with small amounts of code, vulnerabilities are easier to spot.

Of course, OSS projects only remain secure as long as the developers and larger community stay on top of every line of code. That’s why the larger projects have strict code-reviewing processes, and are careful about who contributes new code to the software.

Advantage(ish): There are Potentially Massive Ecosystems

No, this is not an environmental public service announcement. It’s about the expandability and flexibility of software. Let’s take WordPress as our example again. It has all kinds of plugins and themes available to change the way your website looks and works. And I mean thousands of themes and plugins, most of which are offered for free.

They’re not all good, mind you. They’re not all updated or compatible with each other, which is the downside of huge software ecosystems. But chances are that if you need to build any kind of website, or add any specific website feature, someone has built a plugin or theme (or both) that can help you out.

In addition to all the free ones, there are paid plugins and themes, which come with support, more advanced features, and communities of their own. People have dedicated their lives and careers to making new things for WordPress. The same is true of many other OSS projects.

Don’t get me wrong, proprietary software (like Adobe Photoshop and Microsoft Windows) can have a large ecosystem, too. However, OSS generally makes it easier for people to jump in and make new stuff. You’ll never have to pay for a “development toolkit” to make a WordPress theme.

Advantage: Dead Software Doesn’t Always Stay Dead

When a company that makes proprietary software goes out of business, there’s a very good chance you’ll never see that software again. With OSS projects, the end is not necessarily the end. If the main developers of a program leave the project, other developers can bring the program back. This has actually happened so often that you can practically count on it, as long as the software in question has a big fan base.

Advantage(ish): OSS is Free… Usually… For Now

This is the big one, for most people. Why pay for something when you can get it for free? Well, there are actually some very good reasons to pay up, and I’ll get to those below. But when you’ve got a limited budget, free stuff is pretty sweet.

It’s important to note that there are companies that sell open source software – as in, the software costs money. And then there are companies that make free versions of their software products available alongside premium versions. Often, the premium software comes with support, but combines open source and proprietary code.

Finally, there are companies that don’t sell the software itself, but do sell enterprise-level support for anyone using the software. In short, don’t expect everything for free. The OSS community has to eat, too.

Disadvantage: OSS Sometimes Doesn’t Have Support… Like, at All

Most giant open source projects have support options everywhere you turn on the web. Some OSS also comes with paid support available. But many smaller, less popular OSS projects are made by people working for free in their spare time. These software products might come with some documentation and a FAQ page, but no way to actually get dedicated support. The developer simply doesn’t have the time.

You might be able to find some fellow users on a forum, or in a chat room, who can help you. While this is lovely, it means that your business could depend on the kindness of strangers. No one desires to be on that streetcar. (Most obscure cultural reference in the article – look it up.)

In short, if going through some trial and error while learning to use your software isn’t your thing, some OSS might not be for you.

Proprietary Software – The Good and the Bad

Advantage: The Developers Might Have a Massive Budget for Security

It is certainly not true that more expensive software is always more secure. Many people have made that assumption, and have regretted it dearly. However, the best proprietary software vendors do have a dedicated security team that stays on top of things, constantly sending out updates and watching for threats from all sides.

For example, while there are plenty of things to dislike about Windows 10 (such as how much of your data is sent to Microsoft), there is a fair amount to like on the security side of things. Windows was long known as the most vulnerable operating system. Today, as long as you keep it updated and don’t go to super-sketchy websites, you’ll be pretty well protected with just Windows Defender, the built-in antivirus software.

Advantage(ish): You Can Find (Some) Security Through Obscurity

If you can find good proprietary software from a relatively unknown vendor, you’ve hit the jackpot. Most security breaches aren’t caused by a single, dedicated hacker finding all of your system’s weak points. They’re more often caused by a team of hackers, who use scripts and a network of bots to attack thousands of computers at once.

For this type of cyber attack to do much damage, the hackers have to target the most popular software. This is actually how MacOS stayed relatively virus free for as long as it did. When relatively few people were using Macs, it just wasn’t worth the trouble for hackers to write viruses for the Mac operating system.

As Apple’s popularity has increased, so has the amount of malware successfully targeting Macs. So now we know that Apple’s best defense in the past wasn’t better security, but greater obscurity.

Advantage: Paid Proprietary Software Usually Has Support

Note that “usually” does not mean always, so you should definitely check on the support options for a program before you buy it. But most proprietary software does have readily available support. If your business depends on your software working, that matters a lot.

Advantage: Proprietary Software Vendors Might Sign NDAs to Protect Your Secrets

If you’re currently doing things that your competitors can’t, you probably don’t want to advertise which software is making those things possible. When you negotiate a contract with a proprietary software vendor, you can ask for a non-disclosure agreement (NDA) to be included with your license. There’s no guarantee that the vendor will agree, but many of them will.

In theory, you could do the same with an OSS vendor, but by its nature, the OSS community does not love secrets. Remember also that if you make any changes to the software, you are obligated to send those changes back upstream. Your software secret won’t remain secret for long.

Disadvantage: If There’s A Problem, You Can’t Fix it Yourself

As I’ve said, the biggest drawback of proprietary software becomes clear when there’s a problem with the program. Even if you know what the problem is, and precisely how to fix it, you’re not allowed to go into the code. That’s hugely frustrating, especially if the support team is unresponsive, or doesn’t understand the problem as well as you do.

Disadvantage: There Can Be Weird Licensing Issues

Ideally, all proprietary software licenses would just say, “Here you go. You paid money, so you can use the software.” But there are many software licenses that make you agree to questionable things. Most often, these questionable things include allowing the vendor to collect your personal data and sell it to third parties.

There are also license agreements that give the software company the power to revoke your license for any number of reasons. These can include violating the developer’s personal sense of ethics, or using the software for things that are illegal in some specific country (even if they’re not illegal in yours).

In one especially weird case, a security firm called F-secure asked London residents to sign over their first-born children in exchange for free wi-fi. Okay, this one was actually pretty funny.
The company inserted the clause just to see if anyone actually read the agreement. I can respect that, and to be clear, no children have been collected.

Then there are the problems that arise when one component of the software is covered by one license, and the rest falls under another license. I’m not even going to try to get into that whole mess. It’s legal nightmare for everyone. And to be fair, this scenario has also come up with OSS projects. So I guess with all software, we really should be reading those license agreements. But we just won’t. You know it and I know it, so let’s not kid ourselves.

How OSS Changed the Whole Internet

Okay, if you skipped the earlier parts of this article, well… don’t skip this one. This is where you get to learn why the internet and OSS are inseparable.

Yet More History: OSS Made the Internet Work for Us All

According to my slightly scientific research, at least a third of all technological innovation is driven by military organizations looking for new and better ways to kill people. Another third is driven by adult content. The remaining third is the result of a bunch of nerds saying dangerous things like, “What would happen if…?”

If you guessed it was that last situation that gave us the internet, congratulations! You’re exactly… wrong. The internet we know was originally based on a project called “ARPANET,” which was run by the U.S. Department of Defense. So it was all big-time military, at least at first.

Enter the nerd. A guy named Sir Tim Berners-Lee asked, “Well, now that our computers can talk to each other, what if we could share scientific documents via a system of hypertext, making it easier to spread knowledge?” And thus, the Hypertext Markup Language (HTML) was born, and the rest is history. (Quotation fictionalized.)

As envisioned by Berners-Lee, the internet was founded on one idea: that the free exchange of knowledge and information would allow us to build a better and more peaceful world. You may, at this point, be realizing that many computer nerds are idealists at heart. And also that things don’t always go as planned (*cough* Twitter *cough*). Oh well.

The whole idea of this public internet was basically open source, even if the early developers didn’t use “official” open source software licenses. To this day, you can right-click on any web page, click on View Source, and see the code that tells you how the page was made. But in the least shocking development in the history of ever, as the internet became more popular, people began looking for ways to make money off it.

No big deal, right? Who doesn’t like money? Well, things actually got complicated quickly. One important battlefront was all about the way people actually accessed the internet. For a while, Netscape was the biggest browser around, until Microsoft made its own – Internet Explorer (IE). But as if secretly wanting a reputation for evil, Microsoft went further, bundling IE by default with all copies of Windows, instantly making Internet Explorer (IE) the world’s dominant browser.

Netscape tried to compete, but couldn’t, and so sought help in the legal realm. Microsoft was hauled into court by the US government, on the grounds that bundling IE with Windows constituted an illegal monopoly of the browser market. Microsoft lost the first judgement, appealed, then accepted a settlement deal to avoid further litigation. And nothing really changed.

For a while, it looked like Microsoft was pretty much going to own the internet, along with everything else. Well, a fair share of the web was also claimed by Macromedia, maker of the Flash and Shockwave plugins. These tools allowed people to easily animate parts of their web designs and create online browser games. That was huge in the 1990s. Look it up.

A growing proprietary darkness spread over the internet, until the Mozilla Foundation came along. The foundation arose, more or less, from the ashes of old Netscape projects. Its developers set to work creating a new, open source browser: Firefox. Firefox competed fiercely with IE, mostly by being better in almost every conceivable way.

Internet Explorer 6 didn’t have tabs for browsing, which today seems like trying to access the internet via a stone tablet. IE was also slow, unsecure, and exceptionally prone to annoying pop-ups. And frankly, Microsoft didn’t do anything about these issues, letting IE languish. Meanwhile, Firefox gained a sizable market share by continually adding features, allowing web designers to show off their skills with fancier, more functional websites.

In the meantime, while Macromedia/Adobe Flash had been the standard for animation on the web, newer versions of HTML and JavaScript (which are both open source codes) started to take over.

But the real kicker came when Google got into the mix by launching Chromium, another open source browser project. Based on this project, Google eventually came up with a browser you might just have heard about: Chrome. And once Chrome hit the market, anyone who used Google to search for anything saw a little message like, “Don’t you want to try our browser? All the cool kids are doing it.” (Quotation fictionalized.)

Chromium took over the browsing world. There are now dozens of browsers based on this OSS, including big names like Opera. Microsoft tried to keep up by finally updating IE, but it wasn’t enough. Even Microsoft’s newer browser (Edge) is now based on Chromium. There are some upsides and downsides to all of this, but the historical trend is clear:

Software companies can’t kill open source. At least, they haven’t managed to do it yet. It’s too integral to the very existence of the internet.

The Current State of OSS and the Internet

It’s a bit of a war zone out there on the web these days. Some people keep trying to censor the internet, and the open source community (along with many others) keeps trying to fight them. Others make money off the internet in morally dubious ways, and the OSS community fights them, too.

Until recently, the US had laws enforcing a concept called Net Neutrality, which basically meant that internet service providers (ISPs) had to treat all data equally. For instance, a cable internet provider wasn’t allowed to slow down traffic from Netflix in order to make its own cable package or streaming service look better.

Sadly, those laws are gone now.

It was a long fight, though, and OSS people were at the forefront of the struggle. And it’s a battle worth fighting, wherever it might come up next. I can tell you from experience that not having Net Neutrality (Mexico never had it, as far as I know) isn’t great.

When not trying to fight back against “the man,” the OSS community can usually be found online making software, and then arguing about the best text editors. A lot of the collaborative development takes place on sites like GitHub, which allow for sharing code and version control (don’t ask – that’s another, even longer article). Communication and coordination takes place on those platforms, in forums, and in Slack chat rooms (or IRC chat rooms, for the old schoolers). Open source is all about choice, so there’s no shortage of tools for collaborating on OSS.

While some of the larger projects are well-organized machines, many open source programs are made in a very informal fashion. If someone pops up and says they want to help, they become part of the project immediately. People get the roles they want just by showing up first (and getting along with the project’s original creator). Community management responsibilities fall to the people who stay on the forum or in the chat room the longest. I myself recently volunteered to contribute to two software projects, by proofreading their English documentation.

The OSS community members who keep making and remaking the internet as we know it are from all over the world, and from all walks of life. Some are paid by big companies to make free software, and others do it for fun in their spare time.

Open Source Server Tech Is Everywhere

When talking about web servers, some people (particularly those with corporate budgets to back them up) might talk about Microsoft’s server technology, called IIS (Internet Information Services). But they’re just as likely to start throwing out names like Apache, Nginx, Linux (in general), some variation of BSD, and more. Those are all open source projects

Amazon Web Services, currently the world’s largest provider of “cloud servers,” offers several kinds of Linux servers. Almost every other cloud service provider follows suit, including – yep – Microsoft Azure. So almost every webpage you load comes from a Linux or Unix-based server, or at least calls in data from one.

Simply put, OSS server technology is the most trusted, and almost always has been.

Open Source CMS Software Runs Almost All Websites

One day, someone got really tired of writing three hundred pages for their company website in raw HTML, so they found a way to make page creation easier. And thus came the first content management system (CMS) – software for managing huge amounts of content in a way that doesn’t drive you completely mad. Back in the days of “portal” websites, this was a massive breakthrough.

And now, almost every CMS in existence is open source.

There’s WordPress running about a third of all websites. But all the other big names are open source, too. You may have heard of Joomla, Drupal, TextPattern, and Movable Type, to name only a few.

Why have these options taken off, instead of proprietary software? Mostly because they’re free, to be honest. Paid CMS options have been around since the beginning, but people are always looking for the cheapest ways to build their websites.

As to the amazing success of WordPress, it was not the first open source blogging option, but it was the easiest to install and use for a long time. WordPress developers actually bragged of a “five-minute installation” process, although to do it that quickly, you definitely needed to know something about setting up websites and managing databases.

Hundreds, if not thousands, of other CMS platforms have basically copied the WordPress installation process. It’s very rare today to actually pay for a CMS, unless you’re getting one custom made. Or unless you go with a service like Wix, which technically is a CMS, but one designed specifically to simplify website creation for those without a lot of content.

Almost All Front End Code Is Open Source (Sort of)

When I say “front end code,” I’m talking about HTML, CSS, and JavaScript (JS). These are the languages that make up the visual portion of most websites (though JavaScript isn’t always included).

Here’s a crash course for the uninitiated: HTML defines what you’re looking at, like, “Here’s a paragraph of text. Now here’s an image.” Your browser then displays the text and the image. CSS defines how it all looks, like, “The paragraph text is medium-sized, and the image is to the left of the text.” The browser takes this input, and displays the text and image side by side.

JavaScript is, in most cases, optional. It’s often used for animating things on web pages, and it can also be used to call in data from multiple sources. This is how many “web apps” are built.

You can usually pull back the curtain and see all of this. With a simple right click, you can see how most websites and web apps are made, at least if you know how to read the code. To be specific, you can see the HTML, CSS, and JS, which will tell you a lot about how the visual design is coded. Just be aware that unless there is an actual open source license, this code is generally treated as intellectual property. You’re not supposed to just rip off someone else’s design and code without their permission.

But the reality is that there are only so many ways to code a web page. It is therefore generally accepted that people will look at a website’s front end code, learn from it, and use the same techniques in their own web projects. It’s how most of us web designers learned to do a lot of what we do.

So even though a website’s source code might not be licensed as OSS, in practice, it’s about as open as you can get. Because that’s how the internet was designed.

How to Choose the Right OSS for You

At this point, you’ve read more than enough, and you might be thinking, “Well, that’s all great! Now what software do I need? Is it WordPress? He said WordPress a lot.”

Sure, WordPress… maybe. At long last, it’s time for me to give you some practical advice. If this is the only thing you wanted to find in this whole article, then… I am so sorry.

Define Your Needs and Goals

When choosing any software at all, you need to ask yourself, “What do we need the software to do, specifically? And do get very specific. Software that can “run a server” or “manage a website” is common enough. Software that can manage thousands of real estate listings, show them on your website, and make it easy to assign the listings to individual real estate agents is far less common.

No matter what problem you’re looking to solve, you need to divide it up into specific tasks. Then look for software that can perform all, or at least most, of those tasks. Also, it’s nice if the software performs those tasks in a way that doesn’t drive your staff crazy.

Decide on Your Budget

Okay, free is much better than expensive, but free OSS can come with some costs that might be hidden at first. These costs are usually lower than the ones you’ll encounter with proprietary software, but they do exist. For one, if you want professional support, that will generally cost you. Even if you decide to have your in-house IT team maintain the software for you or develop any missing features you need, that costs money, too.

Examine Your Existing Assets

Around the same time as you’re working out your budget, it might be a good idea to look at what you already have. Do you have an IT team? What skills do they have? What programming languages do they know?

Do you already have servers, either on site or in the cloud? (ALWAYS remember, by the way, that “the cloud” is just someone else’s computer.) Are your servers compatible with the software you want to run? If the software is a local desktop app, are your existing computers compatible with it? (I know, that seems like a no-brainer… but people often forget to check.)

The Tradeoff Between Complexity and User-friendliness

In an ideal world, even highly complex software would be super easy to use. In the real world… we all wish. Take a careful look at how many things you need the software to do, and keep in mind that software gets a little bit harder to use with every feature added. This is a problem with many so-called “silver bullet” applications, which promise to solve all of your problems at once.

Remember also that every added feature means more time training people in how to use the software, and one more thing that can break down at exactly the wrong time. Every extra feature is more space taken up on your servers or desktop computers. Look for software that does exactly what you need, and nothing more. You might even choose an OSS project that does most of what you need, and have an in-house programmer add the missing features

For example, if you need a blog, and only a blog, grab a stripped-down blog CMS. If you need graphics software that can edit a whole bunch of photos quickly, download Darktable (an Adobe Lightroom alternative), not the GIMP. Okay, I’ll explain that one. GIMP stands for GNU Image Manipulation Program. It’s a Photoshop alternative, and the source of countless bad jokes.

My point is, don’t be too quick to pick a general tool. Find out if there’s a specialized program that will do the job better, and more easily.

Assess the Ecosystem of the Software

Bigger and better-known software comes with a third-party ecosystem. The Windows ecosystem, for example, includes every program that can run on Windows, while Photoshop’s includes all of the plugins, brushes, and other resources for the program. There are similar ecosystems for most big OSS projects.

This all means that even if a program doesn’t do something you need by default, there may well be a plugin that does the job. And if there isn’t a plugin, maybe you can find a tutorial that teaches you how to make the program do what you need it to do. Or maybe someone else “forked” (made their own version of) the original project, creating a version with the extra features you need.

With plugins, you can even turn WordPress into a social networking site. I wouldn’t recommend doing that, but you could. They’re that powerful. Heck, someone actually forked the GIMP project just to give it a different name. Such large, community-driven projects almost always have easy ways to extend or alter them, and savvy users take full advantage of that opportunity.

So before you reject a potential OSS solution because it doesn’t have everything you need, check to see if anyone else has already solved your problem.

The Future of OSS

Surprising disclaimer: I am not precisely qualified to predict the future. Still, a few things are clear.

First: OSS isn’t going anywhere. Windows owns the desktop market for now, but that’s about it. Even software giants have had to face the reality that it’s hard to compete with a free option.

Second: Corporations now take an “If you can’t beat ‘em, you have to join ’em” attitude toward OSS. While many in the open source community are understandably wary of companies that used to openly hate OSS now getting involved with it, this trend isn’t going to stop. Their reasons may be selfish rather than idealistic, but these software giants pour money into the OSS community, paying for a lot of development.

Third: OSS development, partially as a result of corporate involvement, has gone mainstream. Many big-name software developers contribute to open source projects, or release their own, as a way to show off. Aspiring coders who ultimately want to work in the proprietary realm add their own contributions to OSS projects in order to have something to show in their portfolios.

“[I see] A general move into mostly web based techs and less native apps. Big companies like internet based stuff because you get live user data at scale. Having that data split between multiple platforms is hard to maintain. Frameworks and languages will always continue to grow and evolve, come and go, just like religions do.”

Chris AKA tankyspanky, Reddit user.

Okay, time to dream big – will all software be free and open source in the future? Okay, time to crush those dreams – not any time soon. There is far too much money to be made selling software. And in some industries like video editing, OSS has a long way to go before it catches up with the best proprietary software. Nevertheless, in the future, it will be rare to find programmers who haven’t worked on open source projects at some point in their careers.

“My strong belief and hope is that we see a radical simplification of the front-end side of web sites in the future. People are pretty unhappy with heavy websites, because they’re slow and behave weirdly. It shouldn’t take 50 megabytes of data to load 20 kilobytes of text, and shouldn’t be popping up notifications, inappropriately accessing for location information, autoplaying videos, and just generally creating a hostile experience for web users.

These heavy front-end frameworks like React are a major part of this problem, and I wouldn’t be surprised if we started scaling back to simpler front-end frameworks in the future, and maybe even go back to server side rendering for a lot of things.”

Kyle Drake

Those idealistic programmers of the 1980s started a movement that’s going to last a long, long time. You’re already using software spawned from that movement, so it’s time to give it a closer look. And yes, I mean an even closer look than I gave you in this article. Dig into the code and have fun!

Comments

Popular posts from this blog

Documentation is Very vital before you develop any system or app

Everything you need to know when developing an on demand service app

Steps followed when creating a new software