GitHub is everywhere. But the dev world’s most popular place to store and share projects is about more than Git’s distributed version control, source code management, and social networking among a community of fellow developers. All this is already pretty fantastic, and anyone writing code in 2017 is grateful — but, believe it or not, the Gitiverse extends beyond the command line.
Not all users take advantage of them, but GitHub also offers bespoke satellite technologies: a desktop GUI, the Atom text editor and Electron development platform. In an effort to expand and improve the GitHub experience for everyone, GitHub just launched two brand new beta releases iterating on these services. The Git and Github Integration for Atom aim to bring the Git workflow inside the text editor, while the entirely redesigned GitHub Desktop Beta — built on Electron — is a brand new Git client optimized for GitHub workflow.
The new desktop app might seem somewhat beside the point to many GitHub denizens, given that of GitHub’s current 20 million-plus users — or about 4 percent — log into the current desktop utility each month. Phil Haack, GitHub Director of Engineering for Client Apps, hopes to convince the command line crowd that the new GUI is not just for n00bs.
Let’s get that it’s-a-n00b-thing out of the way first. Haack does acknowledge that the GH desktop generally attracts “a lot of newer users, especially those who coming from Windows, who tend to prefer GUIs,” while the majority of GH users head straight for the terminal. (Case in point: an informal poll among colleagues on the New Stack Slack channel turned up exactly zero desktop GH users). But even long-time techies occasionally face situations where the command line is not the best route for updating a repository — such as text-heavy tasks like documentation changes.
“There are certain operations that the desktop just handles better,” Haack said. Not just text-heavy content, but event fundamental organization and management of files. By example, Haack explained, “Say you’re in the flow of a huge bunch of work, and you realize eventually you don’t want to do this massive commit of all these individual lines and lines of files. With the desktop, you can actually click around and select groups of lines, in partial commits, to group as logical sections for the final commit.”
Desktop makes it easy to hop from the CLI to GUI whenever visualization expedites whatever happens to be Job One of the moment — and Haack believes more developers are beginning to see this advantage. “I’ve talked with very senior level engineers who are like, ‘I don’t really want to know about the Git data structure, I just want to get my work done,’” he said.
But why the complete reboot of the original desktop client? According to Haack, it comes down to being true to GitHub’s own open source philosophy, plus maybe a little bit of cleanup. Previously, the GH desktop came in two versions, Mac and Windows, built on two completely separate, non-open source, code bases. The company’s engineers had been “on a mission to re-base the code to be essentially the same app for different platforms, with the intent to eventually take everything to open source, but that was taking a really long time,” Haack explained. So, about a year ago the team decided simply to start over with a clean build on the Electrode platform.
The result: GitHub Desktop Beta, which runs seamlessly and natively on Windows, Mac and — coming soon — Linux. “This isn’t some thin shell where the web app simply gets hosted on the desktop, but a full-feature, completely built-out client,” said Haack.
It also happens to be the only open source Git GUI available for your forking pleasure at GitHub (Because, you know, GitHub and open source).
“The new desktop is a big deal, because people have been asking us to make it open source for quite awhile,” Haack said. Users had wanted to see how GitHub solved certain challenges — for example, a borderless window feature in the Windows version. “That had a very modern looking design, and people wanted to see how we achieved that. Open source would have let them explore on their own, but our code wasn’t allowing that.”
Making Git Atomic
The changes in GitHub’s Atom editor are not so dramatic, but possibly of much more use in the busy developer’s day-to-day workflow.
“The Atom team has been working to bring the power of GitHub as close to your cursor as possible,” Haack said. Instead of jumping back and forth between your project and the command line, this latest release of Atom (version 1.18 beta) brings common git operations right into the editor. Primary Git features live in the beta include staging changes and making commits, creating and switching branches, and even resolving merge conflicts right inside Atom (Git is the open source version control system that GitHub is based on).
Future releases will further expand the Git menu inside Atom — and the GitHub team is eager to hear from developers about what they most want to see next. “This is also open source, so we want to get community feedback,” Haack said. “What do you all want to see to in terms of GH integrations — and what do you want to HELP with?”
Developers spend most of our workday inside our editors, pausing for periodic version control snapshots and to get feedback on our code from project co-conspirators. Any tools or technologies that optimize this process are enthusiastically welcomed and quickly embraced. GitHub, of all entities, knows this the best.
And so credit is very much due to Phil Haack and his team for a fundamental, though not widely recognized, shift in perspective. Rather than workflow dictated from the top down by GitHub’s architecture, the emphasis now is on helping users to customize their GH experience in order to work the way that best suits both their professional and project needs as well as their personal preferences.
“Allowing users to write software and collaborate efficiently, with minimal friction and maximal ease, is the whole point of GitHub — but it used to be, ‘You need to learn this Git command line and adhere to the way WE work,’” explained Haack. “Now we are more about, ‘Let us help you work the way YOU work.’”
The new desktop and Atom integrations, said Haack, are exactly that: “Helping people work most effectively, right where they are.”
Feature ‘universe’ image is by Greg Rakozy from Unsplash.