Digest / Technology / Top Stories /

This Week in Programming: Kotlin Eats Your Lunch

11 Nov 2017 6:00am, by

Holding a conference is one way to dominate the news cycle and this week it’s Kotlin’s turn. Of course, it helps to be popular among your users, and Kotlin, a statically typed JVM language that can be compiled to JavaScript, is just that. Dubbed “a hit with Android devs,” Application Development Trends writes that Kotlin has quickly become “the new darling programming language for the mobile OS” that was even “embraced by Google’s core Android developers for their own programming.” Heck, one bold prediction a few weeks back even dared to assert that Kotlin would overtake Java on Android in the next year.

As is the norm with conferences of this sort, a number of announcements came out of KotlinConf last week (which are succinctly recapped on its blog) and that’s where we’ll start this week.

Also, we have a new TensorFlow version announcement to talk about, a fresh GitHub feature, a peek at the next version of Visual Studio, a few blockchain tidbits, a list of more than 600 free online courses from universities around the world, and our usual smattering of thought pieces and miscellany.

This Week in Kotlin’s Quick Ascent

  • According to an update from Google, Kotlin’s star is quickly rising, as “more than 17 percent of the projects in Android Studio 3.0 are now using Kotlin.” The language was granted the first-class status for Android development (alongside Java and C++) just six months ago at Google I/O, and last week, given full support in Google’s “flagship” IDE, Android Studio 3.0. Of course, Google isn’t going to leave Java and C++ behind, remarking that “while the Kotlin adoption growth is fantastic, our commitment to the Java and C++ programming languages remains unchanged.”
  • The big announcement out of KotlinConf, of course, is that Kotlin 1.2 Beta2 is out. According to SD Times, the new release candidate “will include experimental support for multiplatform projects, language improvements, support for array literals in annotations, and compiler enhancements.”
  • For anyone familiar with trying to run a Java-based application locally, you know the routine – you first need to install the Java Runtime Environment. For the average user, this can be daunting, if not a deal breaker. While this isn’t a problem for an OS like Android, it’s a scenario Windows/OSX/etc users have run into time and again, and this week’s winner is iOS in this regard. Kotlin announced “support for iOS development with Kotlin/Native.” Kotlin/Native “compiles Kotlin directly to machine code and produces executables that can run without a virtual machine.”
  • Alongside iOS support, Kotlin also announced a preview of Kotlin/Native IDE support on CLion 2017.3. The new IDE support offers sample code and projects, code debugging, code insight, and tests written using the kotlin.test framework.
  • And finally, some Kotlin news not directly out of the conference, Kotlin/Java web framework Javalin announced version 1.0 a mere six months after its initial release. According to the announcement, it’s “really more library than framework” and offers interoperability between Java and Kotlin, so that “you shouldn’t need to learn a new way of doing things” when you port a project from Java to Kotlin. Javalin isn’t the only game in town when it comes to Kotlin frameworks, and Infoworld offers a timely survey of JVM development tools, including the Eclipse Foundation’s Vert.x JVM framework, Pivotal’s Spring Framework, and Ktor, which is developed by Kotlin creator JetBrains.

This Week in Non-Kotlin Programming News

  • “The latest update to one of the most popular open source machine learning projects boasts big changes, new features, and even a couple of bug fixes,” writes Jaxenter of Google’s newly announced TensorFlow r1.4. One of the big changes in the release is the graduation of Keras from a contribution package to core package, which Google calls “a hugely popular machine learning framework, consisting of high-level APIs to minimize the time between your ideas and working implementations.”
  • GitHub now offers the ability to search repositories by license using a query such as “license:mit” to “help you find projects you’d like to contribute to, as well as useful projects that fit your licensing requirements.”
  • Infoworld offers a sneak peek at what’s next for Visual Studio code editor, including “better performance, reduced memory consumption, and more support for JavaScript and TypeScript.” Check out the post for the full list.
  • Surprise, surprise, a study from Veracode based on “scans of thousands of applications and billions of lines of code” finds that Java developers aren’t applying security patches. According to the report, “three in every four applications had at least one vulnerability on initial scan, and 12 percent of applications had a high or very high severity vulnerability on initial scan.”
  • Announced on the 7th birthday of the remoteStorage.js Git repository, remoteStorage.js 1.0.0 has been released. remoteStorage is an open protocol for per-user storage on the web that helps provide offline access to data, prevent data lock-in, and sync data across devices. The new version offers revamped layout, support for Dropbox and Google Drive, and more.
  • The Web abounds recently with tutorials and guides on building your own blockchain, and sites like Reddit, Hacker News, and Lobsters were a-buzz with a few examples. First, Simplicity (.pdf warning) is a new language for blockchains — more specifically, a “typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and block-chain applications.” Interesting analysis and conversation abound on both /r/bitcoin and Hacker News.
  • Also a topic of discussion, a blog post on how to build your own blockchain in Python by a researcher at UC Berkeley, with accompanying Jupyter/iPython notebook from Github.
  • Finally, part three of another series on how to build your own blockchain with accompanying GitHub repository.

This Week in Further Thoughts

  • First, Chad Arimura, a VP of Software Development at Oracle explores the difference between Functions and Containers (not a question I’d ever thought to ask). He notes that “the newer generation of frameworks including Fn (our project) are ‘container native’, meaning the Docker container is a first class citizen and any image can be used as the Function itself.” This, he says, “is the crux of the confusion — if the function is the container, and container is a function, are they actually different?”
  • Eric Raymond, a programmer with 35 years writing C, writes a “long goodbye to C” after having reached a “startling realization” — despite writing code in C every week, he can no longer remember the last time he started a new project in C. He writes that, despite movement in other programming realms, “only now are the first languages that directly challenge C for its traditional turf looking viable” and that “it is now possible to glimpse a future in which all that code is written in specific C replacements” such as Go, or Rust, or Cx.
  • Remember a couple weeks back, when we found out that every single device connected to the Internet via WiFi was suddenly compromised? It was called the Krack Attack and the author has released “scripts to test if clients or access points (APs) are affected by the KRACK attack against WPA2.”
  • And last but not least, a list of 600 free online courses as published by Quartz, including numerous classes in computer science, mathematics, programming and more.

Feature image via Pexels.


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

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.