Development

This Week in Programming: GitHub Goes to the Command Line

19 Sep 2020 6:00am, by

Are y’all ready to party like it’s 1999? Cuz if so, get ready, because we have a brand new command-line interface (CLI) ready for you from GitHub, and maybe, if you’re lucky, you can figure out a way to stylize it with some ANSI colors. So get your mechanical keyboards ready, because we don’t need a mouse where we’re going!

Snark aside, folks are atwitter this week over the availability of GitHub CLI 1.0, following up on the beta from earlier this year, partly because now you don’t need to leave the terminal, and partly because of the automation it enables. The GitHub CLI is available for Windows, macOS, and Linux and allows you to run your entire GitHub workflow straight from the terminal, from issue to release, and a common criticism out there of the new CLI is that it might further confuse young, impressionable coders about the difference between git and GitHub.

The GitHub CLI, of course, goes beyond the base git functionality, and also lets users to call the GitHub API, allowing them to script “nearly any action.” Some of the new features released since the beta include the ability to create and view repositories, configure GitHub CLI to use SSH and your preferred editor, close, reopen, and add labels, assignees, and more to issues and pull requests, and view the diff, review, and merge pull requests.

Now, many have wondered “What about hub?” and, thankfully, there’s a quick little write-up looking at the differences between the two and the reason for making an entirely new CLI. Put simply, the GitHub team didn’t want to be tied down by the architectural decisions of a decade ago and “wanted to be more opinionated and focused on GitHub workflows, and doing this with hub had the risk of alienating many hub users who love the existing tool and expected it to work in the way they were used to.” Hub will remain a separate project, not directly managed by GitHub itself, that “will continue to exist as long as it’s maintained and keeps receiving contributions.”

So, if this whole push toward putting everything in the browser is simply revolting to you, you’re in luck. GitHub CLI is here to help you stay in terminal, just like it’s 1999.

Speaking of 1999 (though this one is more 1989), if you want to see how a developer thinks about beating the speed record for Mario 3, check this out:

This Week in Programming

  • VS Code C++ Extension Goes 1.0: While the Visual Studio C++ extension isn’t brand new, Microsoft has said that it has now reached version 1.0. The 1.0 brings with it a few new features such as support for Linux on ARM and ARM64, as well as an easier Intellisense configuration, customizable code formatting, and a C++ Extension Pack, which includes things like remote development, GitHub integration, and first-class CMake. In terms of configuration, the team has created a video tutorial to help you out, and code formatting now has a built-in EditorConfig support for the new settings. Beyond new features, they also say that they have addressed nine performance-related GitHub issues, so go get your new C++ extension.
  • Kotlin 1.4 Release Goes Online: The team over at JetBrains has said they will be putting on a Kotlin 1.4 online event on October 12 to 15, which will include your standard slate of Q&A sessions, panels, chats, and even a virtual Kotlin booth and a quiz to enter a raffle for prizes. The full schedule and speaker roster are up, where you can register for the free event, and even if you miss out, all the videos will be available on YouTube after the event. Of course, for those of you who virtually attend, you can take the participatory route and ask questions of presenters by using the hashtag #kotlin14ask, entering them into a form, or using the live chat. As for the virtual booth, that’s where you get to sign up for a time to chat directly with the Kotlin team.

  • Java 15 Brings Fine Tuning: The most recent version of Java has arrived, and Application Developer Times brings us the story of Java 15 going GA as the language turns 25, writing that “the latest Java Development Kit (JDK) delivers new functionality, preview features now finalized, incubating features in preview, the continued modernization of the existing code, and a host of bug fixes and the deprecation of outdated functionality.” More specifically, an Oracle blog post says that Java 15 brings “fourteen main enhancements/changes, including one incubator module, three preview features, two deprecated features, and two removals.” The release follows the six-month release cadence started with Java 10 in 2018. ADT quotes one person as saying that “most of the things in JDK 15 are either fine-tuning of features introduced in earlier releases (as what are called preview features)” or otherwise features that have been deprecated or removed.
  • And Then There’s The Open Source ML Library for Java Apps: Alongside its release of Java 15, Oracle also  open sourced an ML library for Java apps this past week. Tribuo has been released under an Apache 2.0 license on Github and it addresses what Oracle sees as a “crucial gap between the expectations of an enterprise system, and the features provided by most ML libraries,” which have to do with the data for training a model and the language difference often found between the ML libraries and then the enterprise systems themselves. In other words, no longer do you need to reconcile that your ML is operating using dynamically-typed languages like Python or R, while your system is in a statically-typed language like Java. Interestingly enough, and perhaps this is old hat for those of you familiar with Oracle, if you want to contribute to this particular open source project, you need to sign the Oracle contributor agreement — and by sign, they mean physically print it out and sign it, as no electronic signatures are accepted.

  • OneFuzz Aims For Bugs At Scale: A bit more news from big companies releasing open source projects, Microsoft open sourced the Project OneFuzz framework, an extensible fuzz testing framework for Azure that’s available on GitHub as an open-source tool. Microsoft has already begun using the tool in the Windows CI/CD pipeline and says that “experimental support for these features is growing in Microsoft’s Visual Studio.” The project is open source under an MIT license.
  • Shopify Looks at Deconstructing a Monolith: Last up this week, Shopify, which consists of a core monolith of over 2.8 million lines of Ruby code and 500,000 commits, wrote up a blog post this week looking at the state of its monolith and examining its efforts at how to make its monolith more modular. If this sounds familiar, this one might be worth the read. The company is two and a half years into the effort and they have some experiences they’d like to share.

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