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.|
|Calculator is a simple yet powerful calculator that includes standard, scientific, programmer, and graphing calculator functionality, as well as a set of converters between various units of measurement and currencies.|
|Dynamics 365 is a product line of enterprise resource planning and customer relationship management intelligent business applications.|
|Exchange Server is a mail server and calendaring server. Exchange uses a single building block architecture.|
|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.|
|Planner lets users create Kanban boards using content-rich tasks with features including files, checklists, and labels.|
|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.|
|Snipping Tool is a screenshot utility. It can take still screenshots of an open window, rectangular areas, a free-form area, or the entire screen.|
|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.|
|Teams is a business communication platform. The service integrates with the company’s Office 365 subscription office productivity suite.|
|Terminal is billed as “a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL”. It offers multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and custom themes, styles, and configurations.|
|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.|
|Whiteboard provides a freeform, intelligent canvas where you and your team can create, and collaborate visually via the cloud. Designed for touch, type, and pen, it lets you write or draw as smoothly as you would with ink.|
|Yammer is a social-networking platform for organizations. It’s a closed platform sometimes described as Facebook for businesses.|
I’m a big fan of both Gitolite and Gitea.
You use both regularly?
There really wasn’t a big migration from GitHub to GitLab when Microsoft purchased GitHub.
Microsoft are determined to be a good custodian of GitHub, they paid $7.5 billion in Microsoft stock for it!
From the open source projects I’ve looked at, the vast majority are still on GitHub rather than GitLab. Why is that? Why is GitHub still way more popular? Inertia?
Can you do another article about using codeberg ?
I use codeberg, until now it has been more than enough for my needs, and it’s slowly getting more support.