Before we get to that whole part where artificial intelligence leads to machines coming alive, deciding humankind is an inferior virus that needs to be wiped from the face of the earth, and launches an unstoppable attack, well, it’s worth keeping in mind that AI might just help us out a little bit too. “Us” being developers, at least.
This week, a story in Wired highlights how Ubisoft, a French gaming company, is using an AI assistant called “Commit Assistant” to help developers catch bugs before they ever make it into production.
This is the sort of AI I really expect to see a lot of, long before we ever make it to that whole apocalyptic doomsday thing. Remember that guy who automated his job? Like that, but more complicated. Developers building tools to help themselves do what they do, but easier and better. That’s what technology is all about, isn’t it? And if you’re going to build something, why not make it something that makes your own life easier?
According to Wired, they fed the AI ten years of code, “allowing it to learn where mistakes have historically been made, reference any corrections that were applied, and predict when a coder may be about to write a similar bug.” The main downside to the whole thing, so far, is that it apparently takes a whole lot of data and computing power to reach the point where it can identify six out of ten bugs, according to another report on the topic. But hey, computing power and data storage is getting cheaper by the day, right? Either way, instead of fearing that AI is here to take your coding job, perhaps just be happy that — until that whole life eradication thing — it’s more likely here to help more than hurt… again, at least in terms of coding. Privacy, basic human dignity — all that stuff — well, that might be a whole other story.
This Week in Programming
- Google Debuts Android P Developer Preview: Of course, with a dominant share of the smartphone OS market, Google’s debut of Android P is the leading news this week for many developers out there. There are quite a few new features in the release, so we’ll just outline a few. First, Android P will use WiFi RTT to provide accurate indoor positioning with the RTT API, giving you the ability to determine a user’s indoor position with an accuracy of 1 to 2 meters. Next, Android P comes with a multi-camera API to access streams simultaneously from two or more physical cameras, ImageDecoder for bitmaps and drawables, several media APIs, neural networks API 1.1, improvements to autofill, and new mobile payments APIs. Beyond all of this, Android P also furthers the company’s commitment to Kotlin, with compiler optimizations and continued work with Kotlin-creator JetBrains to optimize Kotlin’s generated code. There’s simply too much to go through here, so make sure to head over to Google’s blog post to get the full details — or just watch the video and move on with your day.
- Android Things Developer Preview: Before we get carried away and move on from Google news, the latest preview of Google’s IOT platform for developers, Android Things Developer Preview 7 (DP7), was released this week as well and brings with it a slew of new features. DP7 is based on Android 8.1 and supports video and audio processing, as well as onboard machine learning with TensorFlow. In addition, it now supports increased camera resolution and MIDI and allows various new controls and analytics to support different hardware and software models, including separate update channels. DP7 also smooths out some inconsistent naming in the API and provides new Bluetooth APIs.
- Here Comes Java 10: Not to be confused with EE4J or “Jakarta,” Java 10 is still under the parentage of Oracle and SDTimes has an inside look into Java 10, as the latest version will be released this month “with a focus on cloud and serverless computing.” Now on a twice-yearly release schedule, the March release will include performance improvements (what release doesn’t?), and features to make it better suited for serverless and cloud deployments, such as its new ability to share common class metadata across different Java processes. SDTimes also notes that Java 10 will continue its march toward feeling “like a traditional functional language,” while at the same time maintaining “Java’s commitment to static type safety and improving the developer experience by reducing the ceremony associated with writing Java code.”
- GitHub Open Sources “Licensed” Tool: Dealing with code compliance and keeping things running in an open source project can be a major pain and GitHub has a solution for that — its Licensed tool, which it just made available as an open source project itself this week. The tool “helps GitHub engineers make efficient use of OSS by surfacing potential problems with a dependency’s license early in our development cycle, ensuring we maintain dependency license documentation throughout our development cycle.” And now it can help you do the same. As the company notes in its blog post, managing dependencies can be as easy as using a package manager that provides an easily parseable file of dependencies or as difficult as getting dirty with a command line tool. With Licensed, the tool does the dirty work by finding, caching and checking license metadata for dependencies across multiple language types and multiple projects in a single repository. For more details, give the Licensed documentation a look-see.
- Visual Studio Updates: For you Visual Studio users out there, there are some new versions available — Visual Studio 2017 version 15.6 and Visual Studio for Mac version 7.4. The biggest thing to look for with this release is a performance improvement, with .NET Core users experiencing “an average of 20 percent faster load times, with a more noticeable improvement for solutions with 30+ projects.” Debugger’s Threads also got a speed boost and now process in the background, and if your extensions are bogging things down, this version will help by adding notifications for extensions that may be causing UI delays. Go ahead and download Visual Studio 2017 version 15.6 or Visual Studio for Mac to get the latest.
- GDPR for Developers: There are a lot of articles out there about the upcoming implementation of the General Data Protection Regulation (GDPR), but the majority of them are geared toward upper management types, telling them to hire people to handle the transition. And those people might be you. So, my ears perked up a little bit when I saw this practical guide for developers on how to handle GDPR requirements. The guide looks at aspects of GDPR that actually affect a developer and explains how they can address them — point by point. For example, there are several rights of the user that are relevant for developers, such as”the right to erasure (the right to be forgotten/deleted from the system), right to restriction of processing (you still keep the data, but mark it as ‘restricted’ and don’t touch it without further consent by the user), the right to data portability (the ability to export one’s data in a machine-readable format), the right to rectification (the ability to get personal data fixed), the right to be informed (getting human-readable information, rather than long terms and conditions), the right of access (the user should be able to see all the data you have about them).” This guide goes through each one and explains how you, as the developer responsible for making them happen, can do so.
Google is a sponsor of The New Stack.