Containers / Development / Technology

This Week in Programming: GitHub Codespaces’ Portable Dev Environment

9 May 2020 6:00am, by

While I sit here writing this week’s column, I’m doing something rare for me — using an actual desktop computer, monitor, keyboard, mouse, speakers, the whole nine. It’s been a decade now since I abandoned the desktop as a daily user, and about half that time has been using my trusty Chromebook, but that, of course, is as a writer, and not a developer.

Not that it’s impossible to use a Chromebook for development purposes, but it has tended to be a bit of a convoluted task, with lots of ifs, ands, and buts. This week, however, we see the fruits of a technological marriage in the arrival of GitHub Codespaces, alongside the newly rebranded Visual Studio Codespaces. And in case you’re lost in the details and think you’re seeing double, you are and aren’t — this marriage is that of Microsoft and GitHub, and the dividend is in the arrival of what tech journalist Owen Williams says means your computer doesn’t matter anymore.

Okay, backing up — Microsoft makes the ever-popular Visual Studio Code, which it had recently offered as the browser-based Visual Studio Online, and in their blog post announcing the rebranding, they write that “developers are finding Visual Studio Online to be much more than just an ‘editor in the browser’. They are saying that ‘the capabilities of this cloud-hosted dev environment make it the space where I want to write all my code’.” So now, Visual Studio Codespaces is just that space, with lowered prices and added features, such as a “Basic” instance type with two virtual cores, four GB RAM, and 64 GB of SSD storage. But why stop there? Why not slap that baby on top of GitHub?

Well, they did, and Williams calls this “the ultimate manifestation of the benefits of containers, moved into the cloud, rendering the hardware you own entirely irrelevant.” Microsoft really has bought itself a development stack, huh? Host your code on GitHub, pull Javascript packages from npm, and run it all on Azure, all while coding in Codespaces.

Williams explains that, instead of needing to set up your environment on every device, GitHub automatically grabs all your dependencies, SSH keys, personal dotfiles and configures your remote environment “as if you were in front of your existing computer,” the results of which he sees as groundbreaking.

“It’s difficult to understate how exciting this is from the perspective of being able to get work done as you move between devices — it means I don’t need to switch away from my iPad to my Surface Book to get a quick bugfix done, nor do I need to fire up an environment. I can just jump into an editor, fix the bug, run terminal commands, verify it works, and push the code, without messing around,” Williams writes.

The real part of the revolution here is that, for those of you who still rely on that desktop workstation or that heavy workhorse of a laptop, the Chromebook (and even iPad) now offers a replica development environment that directly plugs into your existing configuration and stack, and makes remote development a breeze. Pretty neat, if you ask me.

This Week in Programming

  • VS Code Adds GitHub Issues Integration: It’s practically folklore by now that context switching is the bane of the developer’s productivity, so it seems that every new IDE (or code editor) feature offers some sort of integration to prevent this feared cause of inattention. The latest such feature comes this week with the addition of GitHub Issues in Visual Studio Code, which arrives as the  GitHub Pull Requests and Issues extension (formerly named GitHub Pull Requests), compatible with Visual Studio Code 1.45. “Issues and pull requests often go hand in hand,” the VS Code team writes as an explanation for combining the two into one extension, noting that they used an extension rather than baking it in because not everyone uses GitHub. If you really want to dive into the extension, let the GitHub team show, rather than tell.

  • Introspecting Developer Habits During COVID-19: We offer up one final tidbit from GitHub this week, as the company took a look at developer productivity, work cadence, and collaboration in the early days of COVID-19, given its somewhat unique and ubiquitous position in the developer world. In its special Octoverse report, it explores how the shift to remote work has affected developers, with a focus on three themes: productivity and activity, work cadence, and collaboration. While the findings say that, when comparing the first three months of 2020 to the same time period in 2019, developer activity remained largely consistent, at the same time, the cadence of work has changed, with developer’s working longer and posing some implications for burnout. On the upside, the company finds that people are collaborating more, especially on open source projects, many of which may actually work to address pandemic-related issues. Click through for the expected graphs and details.
  • Android 11 Beta Reschedules Amid COVID-19: Google has written up some new Android 11 beta plans for you Android developers, noting that “when we started planning Android 11, we didn’t expect the kinds of changes that would find their way to all of us, across nearly every region in the world.” In response, the company has created a new timeline, releasing the fourth Developer Preview this week moving Beta 1 to June 3. And in lieu of Google I/O, the company is launching the #Android11: the Beta Launch Show to showcase “what’s new in Android from the people who build Android” starting at 11 a.m. ET on June 3.

  • WWDC Goes Virtual: Speaking of mobile development and canceled developer conferences, the Apple developer conference WWDC has announced that it will be “the first global, all-online WWDC” coming up on June 22. To keep up, the company suggests downloading the Apple Developer app, and for “student developers”, there’s just over a week left to submit a Swift playground to the Swift Student Challenge to win some WWDC20 swag — because what’s a conference without the swag, after all?
  • C and PHP: Finally this week, we have a couple of stories around some storied programming languages of yore that still hold their place in the modern stack. First up, JAXEnter remarks that C passed Java to become the number one programming language in its look at the monthly TIOBE Index, which tracks the popularity of programming languages according to search engine results. The TIOBE Index puts C at the top of the rankings and supposes that the reason may be that “one of the reasons might be the Coronavirus” and that “embedded software languages such as C and C++ are gaining popularity because these are used in software for medical devices.” As for PHP, an article hit the top of Hacker News this week that argues that PHP is showing its maturity in release 7.4. With the 25th anniversary of PHP this year, the author writes that “the hope is that with age comes wisdom and maturity” and that modern PHP “has evolved to address the criticisms of the past, and what lies ahead in its future.” Read on for a look at the evolution of OOP in PHP, proper dependency management and third-party extensions, and increased security in the language so many love to hate — for what they point out may be no good reason at all.

Feature Image by Robert Armstrong from Pixabay.

A newsletter digest of the week’s most important stories & analyses.