Microsoft’s stance for decades was that community creation and sharing of communal code (later to be known as free and open source software) represented a direct attack on their business. Their battle with Linux stretches back many years. Back in 2001, former Microsoft CEO Steve Ballmer famously tarnished Linux “a cancer that attaches itself in an intellectual property sense to everything it touches”. Microsoft also initiated its “Get the Facts” marketing campaign from mid-2003, which specifically criticized Linux server usage, total cost of ownership, security, indemnification and reliability. The campaign was widely criticized for spreading misinformation.
However, in recent years, there has been a partial shift by Microsoft to embrace the open source software paradigm. For example, some of their code is open sourced. Examples include Visual Studio Code, .NET Framework, Atom, and PowerShell. They have also made investments in Linux development, server technology and organizations including the Linux Foundation and Open Source Initiative. They have made acquisitions such as Xamarin to help mobile app development, and GitHub a hugely popular code repository for open source developers. And they have partnered with Canonical, the developers of the popular Ubuntu distro. But many developers remain hugely sceptical about Microsoft and their apparent shift to embrace open source.
This series looks at the best free and open source alternatives to products and services offered by Microsoft. We launch the series with GitHub.
is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management (SCM) functionality of Git and offers its basic services without charge. But it is not open source which puts some organisations in a difficult position to migrate where they rely on the non-Git elements of GitHub’s service offerings. Vendor lock-in is a legitimate concern.
There are lots of alternatives to GitHub. We only recommend the best open source alternatives to GitHub in this article.
GitLab, like GitHub, offers version-control distributed git platforms used for storing your code inside git repositories.
GitLab is essentially a comprehensive DevOps platform. It has a mature built-in CI/CD framework, the combined practices of continuous integration and either continuous delivery or continuous deployment. Combine that with code and project management tools, issue reporting, and more, it makes it easy to manage, plan, create, verify, package, secure, release, configure, monitor and defend projects.
Self-host GitLab on your own servers, in a container, or on a cloud provider.
GitLab is published under an open source license.
We’re big fans of self-hosting. And storing your code inside your own locally hosted git repository makes a lot of sense. Make sure your backup strategy is sound!
We are also big fans of Gitolite. It lets you setup git hosting on a central server, with fine-grained access control and many more powerful features. Manage a Git server with Git.
While you’ll need to learn how to use Gitolite, this involves simple editing of text files in a Git repository. And the project’s documentation is excellent.
We also love Gitea as a self-hosted Git service. This is a community managed lightweight code hosting solution written in Go. It aims to offer the simplest way to set up a self-hosted Git service.
Gitea is cross-platform, easy to install, lightweight and published under an open source license (MIT).
If Gitolite or Gitea don’t float your boat, we also recommend Gogs. It shares many similarities with Gitea (Gitea is a fork of Gogs).
All articles in this series:
|Alternatives to Microsoft's Products and Services|
|Bing offers search services, including web, video, image and map search products. It's developed using ASP.NET.|
|Dynamics 365 is a product line of enterprise resource planning and customer relationship management intelligent business applications.|
|GitHub is a distributed version control and source code management functionality service. It includes non-Git elements.|
|Office is a family of client software, server software, and services. Microsoft has promoted Office 365 as the primary means of obtaining Office.|
|OneDrive is a file hosting service and synchronization service. Users can upload Microsoft Office documents to OneDrive.|
|OneNote is a note-taking program for free-form information gathering and collaboration. It gathers users’ notes, drawings, screen clippings, and audio commentaries.|
|Outlook is a personal information manager that's primarily an email client. It includes calendaring, task managing, contact managing, note-taking, journal logging, and web browsing.|
|Project lets you develop schedules, assign resources, track progress, manage budget, and more. It's part of the Microsoft Office enterprise project management product.|
|Publisher is a desktop publishing application with focus on page layout and design. Use text, photos and links to make professional publications personal.|
|Skype is software for VoIP-based videotelephony, videoconferencing and voice calls. The software also provides instant messaging, file transfer, debit-based calls to landline and mobile telephones (over traditional telephone networks), and more.|
|SwiftKey is a virtual keyboard app for Android. SwiftKey learns from previous typed text and outputs predictions based on currently inputted text and what it has learned.|
|To Do is a cloud-based task management application. It allows users to manage their tasks from a smartphone, tablet and computer.|
|Visio is a diagramming and vector graphics application. Database modeling in Visio revolves around a Database Model Diagram (DMD).|
|Visual Studio is an integrated development environment. It is used to develop computer programs, as well as websites, web apps, web services and mobile apps.|
|Yammer is a social-networking platform for organizations. It’s a closed platform sometimes described as Facebook for businesses.|