Go, Rust, GitHub Lead 2021 Stories – The New Stack

Well, well, well, here we are after running nose swabs out of our nose for the final days of 2021, zoom fatigue turned into something more like zoom existential fear and hopefully a method or two around to prevent the eternal doom that we perfected in 2020. We made big plans, changed big plans, thought about how burned out we all really were, and then we were later told that we had returned to pre-pandemic productivity levels.

It’s been a year hasn’t it?

Each week I sit down and select what I think is the most interesting, important, and rewarding news, as well as the topics that seem to be on everyone’s lips in the world of software development (and related fields) and compile it into the column “This week in programming” this week. Even if the topics can vary greatly from week to week, some of the stories stay with us and are visited again and again.

All in all, there were a few, in my humble opinion, standout stories from the past year, and I’m here to present them to you in no particular order – a brief and certainly not all-inclusive summary, if you will, of some of the great stories from last year in programming.

A decade (or so) later, Go is getting generic drugs

As we wrote in the very first few weeks of 2021, it is finally time for Gophers to be happy, “because the question of whether the Go programming language will adopt generics or not has finally been resolved after many years of debate was answered this week with the adoption of a suggestion made last month. ”In fact, the issue of generics has preoccupied the Golang community for so long that the first topic we covered in this column was and the same Arguments Adding generic drugs has been done long before and since then.

In most new proposal Made earlier this year, Golang Team member Ian Lance Taylor noted that since the language was first published in 2009, generic drugs have in fact been “one of the most requested language attributes”. To say that generics are a constant topic of discussion and discussion would be an understatement, and even Taylor alluded to the feature’s turbulent history in his final proposal, in which he wrote that “One of the first (flawed) attempts to add Go generics goes back to 2010. “

However, this latest proposal addressed the concerns enough to accepted, and December 2021 Release of Go 1.18 Beta 1 was the first to provide access to the long-awaited feature.

However, as we discovered back in October, the Go team decided to put on the brakes a little with generics and do not bring the feature directly into the core library. Instead it is proposal through Rob Pike, one of the original designers of Go, should make the changes in the golang / x / exp repository for the time being, where they can be “tested in production, but changed, adapted and grown for a cycle or two so that the whole community can try them out”. after a comment From Taylor: “The only publicly available package that uses type parameters in 1.18 will be the constraint package.”

Nonetheless, generics are actually finally available and there are plenty of people out there kick the tires and check when you might want to use the new feature beautiful.

Of course, that’s not the only thing that happened in the Go area this year – the project was quick too accepted the proposal to add fuzzing to Go’s standard librarywhich was then published in beta in the Go development industry, dev.fuzz, in Go 1.17 – but generics were definitely the defining achievement for Go in 2021.

Rust is here to save everything

2021 was a big year for Rust, we’d say.

The last few years had made headlines about how difficult the language is to learn and the lack of tools, but 2021 was more about the numerous advances and developments in the popular open source system language.

In 2021, Rust will become more and more synonymous with storage security and is equally regarded as a smart replacement for C and C ++ as well as for new applications that deal with security. To quote just one recent interview about the Rust choice, “If you want security at this level today, Rust is the language you should be using. That’s it. […] If you’re starting over what we’ve done, start with Rust. “

But the evidence, they say, lies in the pudding, and that can be seen in some great Rust introductions that really demonstrate the maturity of the language in the programming language landscape. For example, in 2021, Rust made some serious strides on Windows and Linux.

We wrote back in April that Microsoft was getting Rusty, and we found out that the company Newly offered course to get started in Rust next to the first preview of Rust for Windows, which enables developers to “use any Windows API (past, present, and future) directly and seamlessly through the window box. ”Microsoft previously touted Rust as the industry’s“ best chance ”in secure systems programming and discussed its intention to slowly move from C / C ++ to Rust to develop its infrastructure software, and this year they started exactly that.

As for Linux, the idea that the Linux kernel would get in-tree support arose in mid-2020, but by April 2021 it seemed increasingly likely that Rust would move into the Linux kernel development branch, and in December it was declared that Rust The support is “good enough”. While the support “is still to be regarded as experimental”, Rust for Linux Project supervisor Miguel Ojeda wrote that “the support is good enough that kernel developers can start working on the Rust abstractions for subsystems and write drivers and other modules.”

And if you need more evidence that Rust is good for something like this, look no further than Amazon web services‘with Bottlerocket, a Linux distribution for containers mostly written in Rust.

GitHub uses all of this training data (your code)

There is probably not a single company we mention more frequently in our weekly column, This Week In Programming, than GitHub, and this year was no exception.

However, one particular story of GitHub really stood out: the GitHub Copilot controversy, perceived copyright infringement, and open source licensing considerations.

When GitHub launched Copilot for the first time in June, they revealed that it was created using the OpenAI Codex and “trained on billions of lines of public code” which many believed contained code under the virus GPL license. The GPL license requires all derivative works to be licensed, and accusations immediately surfaced that GitHub Copilot was the last one to commit copyright infringement.

Unlike Intellisense, Copilot doesn’t just end a single line of code, it suggests entire blocks of code, and it didn’t take long for the tool to spit out entire chunks of easily identifiable code. It’s not that GitHub didn’t think of it, and GitHub CEO Nat Friedman argued that the code most frequently proposed by Copilot was converted and fell under free use since outlined in a paper by OpenAI. Not only that, but also a blog post pointed this out, GitHubs Terms of Use likely covered the use of the code they hosted in training the model. Another post has argued that the easiest way out of this puzzle is to make copilot easy Offer attribution when literal code is spat out.

At the other end of the spectrum, some claimed that Electronic Frontier Foundation (EFF) and Free Software Foundation (FSF) Filing class actions, and the FSF has one Request papers, said copilot “by the looks of it is unacceptable and unjust”. So far, however, no papers have been published, no lawsuits known to us have been filed, and no real legal test has been carried out for the “KI pair programmer” from GitHub.

On the contrary, at least that’s what one report says GitHub has seen a surge in Copilot users, and the tool has expanded its reach to IntelliJ and PyCharm versions of JetBrains 2021.2 and higher and Neovim 0.6 pre-release with Node.js, as well as including support for multiline code completions for Java, C, C ++ and C #. And for those of you who have a bad taste in your mouth about the whole thing but are still intrigued, there is always the numerous open source alternatives to GitHub Copilot that you could make a fuss.

All in all, GitHub Copilot is just one (somewhat controversial) example of the various features GitHub has brought out in the time since it acquired Microsoft – and through 2021 – that seem to cement Microsoft ownership of many developer lifecycles.

Comments are closed.