Showing posts with label OpenSource. Show all posts
Showing posts with label OpenSource. Show all posts

Monday, February 1, 2021

The best Linux distributions for beginners in 2021

Looking for the best Linux distributions for beginners in 2021? Check our top 5 picks
Photo by XPS on Unsplash

Once you understand the benefits of Linux and decide it to try it out, the next point in your open-source journey is to choose a Linux distribution that best suits your needs. Since there are so many variables in this equation, we prepared a list of the best Linux distributions for beginners to try in 2021.

How we got to this list

But before, let us explain how we got to this list. Since new Linux users have different needs than say, advanced users and developers, here are we we consider the most important for new users:

  1. Installation - how simple it is to install a distro
  2. Features - Which features are included by default
  3. User Friendliness - how friendly is the distro for new users
  4. Customization - how customizable is the distribution
  5. Software - how extensive and up-to-date its software is
  6. Community - how easy will it be to get help from the community

So let's get to work.

Linux Mint

Linux Mint is one of the most popular distributions among new Linux users. It may be due to its similarity to Windows, it may be due to its solid foundations, Mint is still one of our favorite choices when it comes to newcomers.

Source: LinuxMint.com

Here's how it scores:

Installation Features User Friendliness Customization Software Community Final Score
8.5/10 8/10 9/10 8/10 8/10 8.5/10 8.33

Ubuntu

Ubuntu is the most popular Linux distribution and is based on the venerable Debian operating system. Ubuntu is also pretty popular on the server, cloud and containers and is usually a distribution that works well for everyone. Ubuntu gets a non-LTS version every 6 months and an LTS every two years.

A brand new Ubuntu desktop

Here's how it scores:

Installation Features User Friendliness Customization Software Community Final Score
8/10 8/10 8/10 8/10 8/10 9/10 8.17

Fedora

Fedora is a cutting-edge Linux distribution, base for the enterprise distributions such as CentOS Stream, Rocky Linux, Cloud Linux and RHEL and incubator of new technologies in Linux and Open-Source. Fedora is a very solid distribution that works well for everyone (including Linux's creator himself). Together with Ubuntu, Fedora can increase your employability due to its roots in enterprise software. Fedora also counts with a very friendly community (albeit smaller than Ubuntu) ships more up-to-date software than all of the other distributions in this list and gets a new release every 6 months.

Source: GetFedora.org

Here's how it scores:

Installation Features User Friendliness Customization Software Community Final Score
8/10 8/10 8/10 8/10 8.5/10 8.5/10 8.17

Pop!_OS

Pop!_OS is the newest distribution on this list (and the weirdest name). Based on Ubuntu and shipped by default on System76 hardware, PopOS is seeing a spike in its user based due to its polishedness, segmentation and default customizations.

       
Source: System76

Here's how it scores:

Installation Features User Friendliness Customization Software Community Final Score
8/10 8/10 8.5/10 8/10 8/10 7/10 7.92

Elementary OS

Elementary OS is a beautiful and powerful Linux distribution that focus on speed, privacy and is a replacement for Windows and macOS. As Mint and Pop!_OS, Elementary is also based on Ubuntu and is a popular choice among macOS users due to its similarities with that system.

Source: elementary.io/

Here's how it scores:

Installation Features User Friendliness Customization Software Community Final Score
8/10 7/10 9/10 7/10 8/10 7/10 7.66

Final Thoughts

As you can see, it's a very tight race. On a quick glance, you may question how these distributions differ from each other. And it's a valid question. There's indeed a lot of equivalence between these systems as they are based on the same open-source software.

However, under the hood, there are lots of moving parts which, for new users shouldn't be relevant for now. Choosing a Linux distribution is a continuous process. Most of us, tried, 3, 5 or even 10 different distributions until we settled on something we like. Take your time!

Conclusion

In the end, choosing your distro will come down to preference. So take your time, read about each distribution, test them in virtual machines before installing on your system. And remember, Linux is about choice. You will always be able to reinstall and test as many times as you want. Most people, never settle down on the first one. Good luck!

See Also

Monday, January 18, 2021

Free Software and Open-Source: what are the differences?

Contrarily to what you think, free software and open-source are not the same thing
Photo by JESHOOTS.COM on Unsplash

On recent posts, we have been discussing free and open-source software and related licenses. Contrarily to what you may think, free software and open-source are not the same thing. Today we will discuss what are the differences between both.

Free Software

In order to understand the differences between both terms, it's important to recap the definition of both. So let's start with this statement from Richard Stallman, the creator of the GNU project and the Free Software Foundation:

When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”

But which are the four essential freedoms? According to the GNU Project, they are:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
In summary, free software is not about price, but about your freedom.

Open-source software

It's important to understand the origin of the expression "open-source" so we can distinguish it from "free software". The “open source” label was created on February 3rd, 1998, to distinguish it from the more philosophically-focused label "free software." With the label, the Open Source Initative (OSI) was also created to explain and protect the "open source" label. The adoption of the term was swift, with early support from figures in the community, like Linus Torvalds, and by many key individuals, including the founders of, Perl, Python, Apache, and representatives from other organizations.

According to OSI's distribution terms, open-source software must comply with the following ten criterias:

  • Free redistribution
  • Access to the source code
  • Derived Works
  • Integrity of The Author's Source Code
  • No Discrimination Against Persons or Groups
  • No Discrimination Against Fields of Endeavor
  • Distribution of License
  • License Must Not Be Specific to a Product
  • License Must Not Restrict Other Software
  • License Must Be Technology-Neutral

Differences

Despite similarities, there are differences between free and open source software. Here's a quick summary:
  • Free software: more flexible licensing model, more geared towards users and their communities, more about your freedom to run the apps you need, distribute the software as you wish and your freedom to distribute copies of it and help the community around you.
  • Open source: free redistribution but with a more restrictive licensing model, more restrictive licenses, can carry "nonfree" conditions, users cannot modify the program they run.
For more information about the differences, read this article.

Implications

So let's finalize with concrete, objective remarks: what are the implications of using "open-source" or "free software" for consumers and for organizations?

Implications for Consumers

But what are the implications to consumers for each license. In theory, open source licenses are a little more strict than free software licenses on the freedom aspect (not on the price). That said, if you don't expect to modify that open source program you just installed, it should be fine.

Implications for Developers and Organizations

If for consumers are not directly affected by the subtle differences between the diverse types of licenses, the maintainers should definitely take the differences  carefully into account. As discussed in our post about open-source licenses, when releasing free/open software, it’s essential that companies understand the differences between the multiple existing licenses — including proprietary ones — and choose the one that best fits the objective of the project.

Another important aspect is how much control they want to have on their project. The free software movement places all the cards on the user while the open source initiative is usually more geared towards commercial organizations.

Critics

Let's finish by discussing the critics both movements got with time. They are:

  • Free Software: too political, too philosophical, not much financially/commercially inclined.
  • Open Source: too commercial (primarily following the goals of businesses), does not reach the general population, or when it reaches is used for their exploitation (not our own words) by collecting information and even manipulating the user. 
To some extent, the above critics make sense, especially when we consider two critical problems of free/open source projects: funding and developer burnout. Neither of the options addresses those problems.

Conclusion

On this post we reviewed how "free software" differs from "open-source". There's way more differences between the terms "free software" and "open source" than most people imagine but it would be safe to say that most "free software" could be categorized as "open source", but not the contrary. Despite the contrasts, free/open source is the most effective way to build products/services today. As a consumer, understanding the differences between the multiple licenses available would definitely help you in your free/open source journey.

For more information on the topic, please consider reading the references below.

References

See Also

Monday, January 4, 2021

What is Free Software?

Would you be able to correctly define free software? Is free software really always free? Do you know which are the four essential freedoms of the free software movement?
Photo by Fuu J on Unsplash

On a previous post we discussed what is open-source. Today we will understand what is "free software" as per definition from the original founders and understand the difference between free and open-source software.

History of the Free Software Movement

To understand free software, it's important to understand the history of the free software movement.

The GNU Project has been campaigning for the free software movement and for users' freedom since 1983. The launch of the free GNU operating system  in 1984 as an alternative to non-free/proprietary operating systems was the first step. During the next decade, the GNU project only developed the essential components of the operating system and the GNU General Public License (GNU GPL), a license to release those components designed specifically to protect freedom for all users of a program.

Free Software Definition

So let's jump straight to the topic and define "free software". According to the Richard Stallman, the creator of the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation:

When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”

With that said, here is what you should observe:

  • "free" in the "free software" expression isn't equal to zero dollars but to freedom of speech
  • free software is much more than price. It's about principles.

So let's learn more about the essential freedoms.

The four essential freedoms

According to the GNU Project, a program is free software if the program's users have the four essential freedoms:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Free Software x Open-Source software

With all the definitions satisfied, the only question that remains is: is free software equal to open-source? Long story short, no! But it's a long and complex topic which we'll cover in a future post.

Conclusion

On this post we learned about "free software", its origin and the contributions it had from the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation. The free software movement plays an extremely important role in today's broader consumer/enterprise landscape and its extremely important for growing Linux and open-source software.

For more information on the topic, please consider reading the references below.

Further References

See Also

Tuesday, December 15, 2020

Open-Source Licenses: All you need to know

Understanding free/open-source licenses is not an easy task. Learn what they are, how they are created and which one is best for your project.
Photo by Annie Spratt on Unsplash

One important aspect of open-source software is its license. It's common for free/open-source software to be governed by a license and you will at some point hear about them. An open-source license allows the source code to be used, modified and/or shared under defined terms and conditions. Understanding the licences is critical to any open-source project.

Today there are 100+ open-source licenses and 90+ free-software licenses so it's really easy to get lost. Since when using Linux you may be exposed to licenses, we prepared this summary to help you understand why they exist, how they're created and why we need them.

For a quick guide about the most common open-source licenses, please read: Choose a License.

What's an open-source License?

An open-source license is a license for software (but can also be applied to other products as we'll see below) that allows review, use, modification and sharing under certain conditions. Open-source licenses usually allow companies to modify and use the source code under their needs.

Are open-source licenses always free?

No. Most open-source licenses allow software to be available for free, however there are also non-free licenses. Note that non-free licenses may conform to open-source, but NOT to free-software, a common misconception since most people think open-source and free-software the same, which they are not.

Who oversees the licenses?

There are two bodies that oversee licenses: The Open Source Initiative which governs open-source licenses (free/non-free) and the Free Software Foundation which maintains a list of free software licenses.

Types of Licenses

As we saw, open-source licenses apply to much more than just software. The GNU Project's License Page website contains an extensive list of licenses in different categories:

How are licenses created?

If you find that none of the 100+ open-source licenses and the 90+ free-software licenses suits your needs, you can create your own license. For free software licenses, check the GNU License page for more information.

For your license to be recognized as an open-source license, you'd have to submit your license to the Open Source Initiative so it can be reviewed by the OSI Board. The review is a transparent and relatively quick process (usually done under 60 days) and is necessary to ensure that licenses and software labeled as "open source" conform to existing community norms and expectations. The review also:

How licenses are classified

In short, in free, non-free, proprietary or open-source licenses. Free software licenses are governed by the GNU project which classifies them:

  • Whether it qualifies as a free software license.
  • Whether it is a copyleft license.
  • Whether it is compatible with the GNU GPL. Unless otherwise specified, compatible licenses are compatible with both GPLv2 and GPLv3.
  • Whether it causes any particular practical problems
Open-source licenses are governed by the Open Source Initiative and have to comply with the Open Source Definition which imposes restrictions on:
  • Free redistribution
  • Source code
  • Derived works
  • Integrity of the author's source code
  • No discrimination against persons or groups
  • No discrimination against fields of endeavor
  • Distribution of license
  • License must not be specific to a product
  • License must not restrict other software
  • License must be technology-neutral

Most Popular Licenses

As previously mentioned, there are 100+ licenses so let's quickly review the most popular open-source/free-software licenses in use today are:

  • GNU General Public License (GPL) v3: the recommended license by the Free Software Foundation and by the GNU Project
  • Mozilla Public License 2.0: a weak copyleft license conditioned on making available source code of licensed files and modifications of those files under the same license.
  • Apache License 2.0: a permissive license whose main conditions require preservation of copyright and license notices.
  • MIT License: a short and simple permissive license with conditions only requiring preservation of copyright and license notices.
  • No license: According to the GNU project, cannot be considered free-software (see below).

For a throughout review of the licenses, consider reviewing in details the licenses on the GNU Licenses and OSI Licenses & Standards pages.

What about no License?

According to the GNU project, software without license cannot be considered free-software:

if source code does not carry a license to give users the four essential freedoms, then unless it has been explicitly and validly placed in the public domain, it is not free software.

Some developers think that code with no license is automatically in the public domain. That is not true under today's copyright law; rather, all copyrightable works are copyrighted by default. This includes programs. Absent a license to grant users freedom, they don't have any. In some countries, users that download code with no license may infringe copyright merely by compiling it or running it.
Content accessed on Sep 28, 2020  

Which license is best for my project?

In order to choose which software license is right for your next project, it's important to understand first if you want to target free or open-source software. For free software licenses consider studying the Free Software Foundation’s License List. For open-source licenses , check the Open Source Initiative’s Licenses & Standards for more information.

When in doubt, consider using one of the licenses suggested above or check the Choose a License website for more information.

Conclusion

Understanding free/open-source licenses is not an easy task but it's critical to any open-source project. Since there are 100+ open-source licenses and 90+ free-software licenses we hope this summary helps you understand this complex topic a little more.

Further References

See Also

Monday, November 9, 2020

Why Linux is perfect for Education

Linux could be a cheaper, safer and more adequate choice for your school, University or research lab. Learn how.
Photo by Kimberly Farmer on Unsplash

Linux runs the cloud, the Internet and supercomputers. Turns out that due to its free price, open nature, interoperability with open standards, enterprise features and robust security, Linux could be a great fit for your school, University or research lab.

Linux is free

One of the most important reasons to use Linux in education is its price: zero. Yes, Linux is free. As public debt grows, it won't be long until public institutions have to adapt to this new reality of budget reduction. Being free allows Linux to be a serious alternative in education as it's a solid, cost-effective and reliable alternative.

Enterprise-Grade security

Since the how critical Linux is for the functioning of the internet today, there are lots of eyes on its security model. There are multiple reasons why Linux is way more secure than Macs and Windows, including its: open-source nature, open-collaboration model, built-in enterprise grade software, security-aware architecture, frequent updates, native disk-encryption and encrypted data at rest.

TIP: Want to know more about these features? Read why use Linux

Open-source code

Due to its open nature, researches and hackers frequently inspect and crack the code. When issues are found, they're reported and fixed by community. This constant review and curation of software guarantees that your organization will be getting software as secure as it can be.

Less viruses, less ransomware, less threats

Despite still being subject to viruses and ransomware, the previously mentioned features combined with a significant smaller percentage of threats of make Linux much safer than Windows and Macs (but not immune). And Linux also has anti-viruses if the system administrators need too. 

Knowing that most students are not as tech-savvy, keeping your organization free from virtual threats will be less stressful with Linux as most ransomware target Windows and Macs.

Linux will feel familiar

Linux will feel familiar for Windows and Mac users. Most distributions will either use GNOME and KDE, the most popular desktop environments which contain applications for everything you'd expect: file managers, contacts, calendars, email, communication tools, etc. For example, GNOME, the standard for most distributions looks like this:
While KDE looks like this:

Huge selection of applications

Linux also supports your favorite browsers such as Google Chrome, Brave and Firefox and runs most cloud services without issues. On the educational side, Linux comes with fantastic tools such as the Scratch tool created by MIT:

Linux is reliable

Remember this? You'll probably not miss that. Using Linux will be a way more stable experience. It's yet another reason why evelopers prefer using Linux. Your system will rarely crash and the tools you'll use will make your computer way more stable than Windows or Mac equivalents.

Good for old hardware

Linux is also excellent for old hardware as it can be configured with lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions so you'll just need a simple install to get these systems optimized for lower-end hardware.

Reliable updates

We've seen a lot of mistakes recently made by either Microsoft and Apple with their Windows and Mac operating systems. Updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. You can choose between a long term support (LTS) system which provides up to 10 years of support or go with a more dynamic model that updates once or twice a week, every 6 months for a new releases.

Frequent/Automatic updates

Linux distributions are frequently updated meaning that students will be getting the latest security, software and kernel fixes automatically. These are usually the holes crackers explore to target organizations. Getting updates quickly is also important to mitigate zero-days.

Custom repositories 

With Linux, organization can easily setup their own custom repositories allowing/limiting which software can be installed on their Linux workstations. 

Linux is customizable

If just setting up a custom repository isn't enough, organizations can benefit from Linux's fantastic array of customization options allowing them to customize everything including:
  • Desktop Managers: most common are GNOME, KDE, XFCE, LXQT and LXDE.
  • Login Managers: how to login in your system.
  • Desktop themes: themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized.

Free Office Tools

Linux also offers many alternatives to Microsoft's Office proprietary suite on Linux including LibreOffice, OpenOffice, WPS and Calligra Suite. You'll probably not miss Word and Excel.
Source: linuxuprising.com

Native disk-encryption

Most distributions offer native disk encryption during the installation. Native disk-encryption is essential today as students frequently transport their devices out of the company's secured space. If lost or stolen, the only way to access the data would be by entering the encryption password.

Conclusion

On this post we discussed why Linux is perfect for Education. Due to its free price, open nature, interoperability with open standards and enterprise features, Linux could be a great fit for your school, University or research lab. We hope you learned something today and are excited to bring Linux to the attention of your organization.

See Also

Monday, October 5, 2020

Why Linux is perfect for web developers

Linux runs the cloud, the Internet and super-computers. Learn why web developers love Linux too!
Photo by Ilya Pavlov on Unsplash

Following up on our previous discussion on why use Linux, and learned why Linux is ideal for development. Today, let's focus on why Linux is a fantastic system for web developers.

If you recall our previous post, we started alluding to this StackOverflow pool, where Linux was cited as the most loved technology by developers at 83%. There are multiple reasons for that. Let's learn about them next.

Linux is free

Obviously, one of the main reasons to run Linux is because Linux is free. As poverty (unfortunately) grows around the world, it's important to minimize costs for users and companies. Since prices for Windows lincenses are really high and utilizing MacOS, almost impeditive for most of us, being free allows Linux to reach a much wider audience including independent developers, small organizations taught and used in schools, universities and research labs at a really low cost.

Robust package management

While it's true that MacOS users can use brew to enhance their terminal experience, and even Microsoft is building Windows a package manager (despite 20years late 😌) they are nothing more than a poor adaptation of Linux's built-in package mangers. It's on Linux where the real experience shines since the package manager integrates into the update system which integrates into the shell. 

Quicker access to modern tools

You'll get quicker access to the latest releases of your favorite programming language on Linux too. Linux users frequently get earlier access to Golang, Rust, NodeJS - just to name some - without resorting to building them from scratch.

Streamlined workflow

Beyond getting access to the latest tools, developing on Linux will be a much more pleasant experience to to the nature of the system: an awesome and powerful shell (Bash on most cases) accessible via a powerful window manager (GNOME or KDE) being backed by a super solid system with an extensible list of packages available to install at your fingertips.

Awesome command line tooling

Developers love the command line. Using the command line is key to automate your tasks and to opmitze tasks, resulting in huge productivity gains. Today, even tasks that are commonly UI-based such as browsing the web, managing files and even watching YouTube. Web developers can gain signifiant productivity if they embrace this workflow which's the recommended way to building new web apps quickly with ReactJS, VueJS, Angular. Popular tools and frameworks such as WordPress and even proprietary tools such as SendGrid or HubSpot have their own CLIs.

Plus, tools such as tmux or i3, allow you to multitask without sacrificing your productivity.

On the left man git, on the right: vim on top and htop on bottom

Streamlined cloud and container integration

As Red Hat usually says, containers are Linux. Creating your web app today requires probably a lot of dependencies, some of which (a database server, for example) may not be trivial to install - or may use a lot of your resources. Containers are today the way to streamline that process as you can build complex applications with tools such as DockerDocker Compose and Minikube.

Dotfiles

Once you get comfortable with the shell, you'll probably want to customize it to your needs. Developers realize that they really make them productive. Since it's common days to work on multiple machines, an elegant solution to that problem is to host your dotfiles in a private or public repository like GitHub so you can quickly restore your favorite settings in any of your development machines.

Integrated Git

Git is an essential requirement today. On Linux git is an integral part of the workflow (of course, it was invented by Linux Torvalds, Linux creator to facilitate the complex integration workflow of the Linux kernel). Using git in Linux makes everything simpler as it integrates into your command line and shell.

A powerful shell

Bash (and siblings such as ZSH and Fish) is a really powerful tool in Linux. Developers who know it can leverage it to enhance their workflows. For example, you could map the following three commands:
  • git add .
  • git commit -m <your-message>
  • git push
As one operation, the following gcp command:
gcp(){
        msg="More updates"
        if [ -n "$1" ]
        then
                msg=$1
        fi
        git add . && git commit -m "$msg" && git push;
}
So that using it, would be:
gcp "Some commit message"

Oh, and simply typing gcp would do all the above using "More updates" as the git commit message. Use but don't abuse 😊.

Linux is reliable

Writing software requires a a reliable system. As you probably know, Windows (and even Macs) are not as reliable as their companies tell advertise. Your Linux system will rarely crash. You'll also realize that Linux tools will be more stable than their Windows or Mac equivalents.
Remember this?

Excellent Documentation

Developers have to frequently access the documentation. Linux comes the man tool allowing you access to the documentation you need available regardless of your exposure to to the internet. Just run man <cmd> to view documentation for the software you need:

Good for old hardware

Linux is also excellent for old hardware. For example, you can run lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions optimized for lower-end hardware.

Updated Software

Another reason why developers love Linux is because (1) they're exposed to the cutting edge software and (2) they'll get frequent updates/upgrades. Regarding the latter, updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. The system will be updated multiple times a week and a new version can be available every 6 months depending on the distribution with long-term releases available every 2 years.

Outstanding software availability

Not only installing software on Linux is simple  Every Linux distribution provides a tool to manage software with lots (literally, thousands) of apps. Visual Studio Code, Slack? You'll find on Linux. You'll also find enterprise software like Zoom and Microsoft Teams if you need to talk to your clients.
Source: Slack Downloads

Networking tools

Web development is all about networking. Linux comes with powerful networking tools, some of which you probably heard of. Samba, nmap, whois, nslookup, ping, curl, ssh, among others are natively available. There's just so much here and once you learn these tools you probably wouldn't be able to work without them.

Cloud-native tools

Linux comes with lots of tools to use in cloud development. The most commons are Docker (and its sibbling podman) and Kubernetes but it also has easily installable access to tooling for Azure, AWS, GCP and devops/automation tooling such as Ansible, Helm, Vagrant and more.

Support from a huge community

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, developers frequently share their thoughts with similarly minded folks around the web. This helps them share knowledge, news, learn new things and obviously, help others.

Linux is highly customizeable

Another reason web developers can benefit from using Linux is due to its extensive customization. With the right instructions they can customize their system as they wish resulting in a quicker setup or, in case containers aren't sufficient, modelling their systems as per the customer's requirements.

 Some of the things you can tweak in Linux are:

  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized. 

Enterprise-Grade Security

Linux comes with built-in enterprise security tooling. Beyond that, curated repositories Linux users are used to having repositories curated by the community and available for them. That means less viruses, no adware, unsafe or untrusted software running on your machine.

Conclusion

On this post we understood a little more why developers use and love Linux. You too could benefit from using it today! We hope you learned something new today and are excited to try out Linux and use it as your main system as we do!

See Also

Monday, September 28, 2020

Why Developers love Linux

Linux runs the cloud, the Internet and super-computers. Learn why developers use and love Linux too.
Photo by Arget on Unsplash

Following up on our previous discussion on why use Linux, today we will discuss why Linux is the favorite operating system of developers, the folks who build the software you use. To get started, let's back up our assumption using StackOverflow's own insights, where it shows Linux is the most loved technology by developers:

Linux is free

Obviously, one of the main reasons to run Linux is because Linux is free. As poverty (unfortunately) grows around the world, it's important to minimize costs for users and companies. Since prices for Windows licenses are really high and utilizing MacOS, almost impeditive for half of the world, being free allows Linux to reach a wider audience including independent developers, small organizations, schools, universities and research labs.

Linux is (way) more secure

Linux is also (way) more secure than Macs and Windows. That's mainly due to its:
  • open-source code: due to its open nature, researches and hackers frequently inspect and crack the code. When issues are found, they're reported and fixed by community.
  • open collaboration model: open-source code also fosters open collaborations. Developers from all over the world will frequently push fixes to the software you use making it better and more secure.
  • enterprise-grade software: tools like SELinux that are run on mission critical environments run on your machine too.
  • different permission model: Linux users run on a low permission level making it very improbable that even if you're hit by a virus, you would infect the machine.
  • frequent updates: your system will always be updated getting the latest security, software and kernel fixes. These are usually the holes crackers explore to target you.
  • smaller exposure to viruses: yes, Linux has viruses but on an infinite smaller proportion than Windows users get. Linux also has anti-viruses if you need too.
  • curated repositories: the easiest way to install software on your Linux is by using its own repositories. These repositories are curated and are less prone to have viruses.

Awesome Command Line

Developers love the command line. Using the command line is key to automate your tasks and to opmitze tasks, resulting in huge productivity gains. Today, even tasks that are commonly UI-based such as browsing the web, managing files and even watching YouTube can be accomplished from the terminal. Plus, tools such as tmux or i3, allow you to multitask without sacrificing your productivity.
On the left man git, on the right: vim on top and htop on bottom

Linux is reliable

Writing software requires a a reliable system. As you probably know, Windows (and even Macs) are not as reliable as their companies tell advertise. Your Linux system will rarely crash. You'll also realize that Linux tools will be more stable than their Windows or Mac equivalents.
Add caption

Excellent Documentation

Developers have to frequently access the documentation. Linux comes the man tool allowing you access to the documentation you need available regardless of your exposure to to the internet. Just run man <cmd> to view documentation for the software you need:

Good for old hardware

Linux is also excellent for old hardware. For example, you can run lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions optimized for lower-end hardware.

Updated Software

Another reason why developers love Linux is because (1) they're exposed to the cutting edge software and (2) they'll get frequent updates/upgrades. Regarding the latter, updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. The system will be updated multiple times a week and a new version can be available every 6 months depending on the distribution with long-term releases available every 2 years.

Streamlined cloud and container integration

As Red Hat usually says, containers are Linux. Creating your application today requires probably a lot of dependencies, some of which (a database server, for example) may not be trivial to install - or may use a lot of your resources. Containers are today the way to streamline that process as you can build complex applications with tools such as Docker, Docker Compose and Minikube.

Dotfiles

Once you get comfortable with the shell, you'll probably want to customize it to your needs. Developers realize that they really make them productive. Since it's common days to work on multiple machines, an elegant solution is to hosting your dotfiles in a private or public repository like GitHub so you can quickly restore your favorite settings in any of your development machines.

Integrated Git

Git is an essential requirement today. On Linux git is an integral part of the workflow (of course, it was invented by Linux Torvalds, Linux creator to facilitate the complex integration workflow of the Linux kernel). Using git in Linux makes everything simpler as it integrates into your command line and shell.

A powerful shell

Bash (and siblings such as ZSH and Fish) is a really powerful tool in Linux. Developers who know it can leverage it to enhance their workflows. For example, you could map the following three commands:

  • git add .
  • git commit -m <your-message>
  • git push
As one operation, the gcp command listed below:
gcp(){
        msg="More updates"
        if [ -n "$1" ]
        then
                msg=$1
        fi
        git add . && git commit -m "$msg" && git push;
}
So that using it, would be:
gcp "Some commit message"

Oh, and simply typing gcp would do all the above using "More updates" as the git commit message. Use but don't abuse 😊.

Outstanding software availability

Not only installing software on Linux is simple but Linux distributions come with thousands of applications to choose from. Need communication software? Linux has Slack, Skype, Zoom and even Microsoft Teams. Need a modern development environment? Try Visual Studio Code.
Source: Slack Downloads

Powerful build tooling

Its really simple to install the build tools you'll need in Linux. GCC, Make, glibc, Gdb, git and many other tools needed on their development workflows are available either out of the box or from their systems' package manager.

Powerful networking tooling

Linux is perfect for networking. And it offers lots, lots, and lots of tools in the space. Some of them you probably heard of are Samba, nmap, whois, nslookup, ping, curl, ssh, among others. There's just so much here and once you learn these tools you probably wouldn't be able to work without them.

Cloud-native tools

Linux comes with lots of tools to use in cloud development. The most commons are Docker (and its sibling podman) and Kubernetes but it also makes it very simple to install tooling for Azure, AWS, GCP and devops/automation tooling such as Ansible, Helm, Vagrant and others.

Support from a huge community

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, developers frequently share their thoughts with similarly minded folks around the web. This helps them share knowledge, news, learn new things and obviously, help others.Curated repositories Linux users are used to having repositories curated by the community and available for them. That means no viruses, adware, unsafe or untrusted software.

Linux is highly customizable

Another reason developers use Linux is due to its extensive customization. Here are some of the things that can be customized on Linux:

  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized.

Powerful hardware integrations

Into IoT, Rasperry Pi, Arduino? Due to the open nature of these platforms and to the vast documentation available, developers have access to an outstanding amount of technical information on how everything works. And Linux is the best system to do so.

Conclusion

On this post we understood a little more why developers use and love Linux. You too could benefit from using it today! We hope you learned something new today and are excited to try out Linux and use it as your main system as we do!

See Also

Featured Article

Installing Fedora on a Virtual Machine

Fedora remains on of the best Linux distributions for both experience and new users. Learn on this tutorial how to install and test it ...

Popular this Week