Machine Learning / Programming Languages

This Week in Programming: Embracing That Thing Everyone Else Is Talking About

10 Feb 2018 6:00am, by

A good portion of my weekly musing lately has been a bit “back in the day” and, while it’s fun to reminisce about bulletin board systems and programming in BASIC, there are far more things about “the old days” that I don’t miss one single bit. That’s the other end of the spectrum — technology marches on and with it, hopefully, our jobs get a little bit easier.

That’s right, the robots won’t be taking over our coding positions any time soon, despite countless PR efforts to convince you otherwise.

But things are getting easier. As the problem grows, so too do the tools to solve it, it seems. Not long ago, I briefly mused about the bright future of not dealing with servers, and developer and blogger Scott Hanselman really tackles the topic in detail this week as he asks “Why should I care about Kubernetes, Docker, and Container Orchestration?

It’s like an alternate form of reminiscing, where instead of glorifying the past, you point out again and again how much, in reality, it sucked. Remember all the hassle of running your app on a different machine? Remember the difficulties of making sure all the dependencies were not only installed, but of the same exact version? Remember when you figured out the database was way too big and that your Windows machine wouldn’t run the new software you need without updating? And so on?

Wait, that was just last week? As Hanselman points out, it doesn’t have to be. “Simply stated, we are at the beginning of a new phase of DevOps,” he writes. “One that is programmatic, elastic and declarative. It’s consistent and clear and modular.” For the full and compelling argument — in way more relatable and less jargon-y detail — give it a read. Also, to relive all the gory details of your horrible last week. Then maybe you can avoid last week, next week.

This Week in Programming

  • Google Intros Android KTX for Kotlin: If you had any question about Google’s devotion to Kotlin as a first-class language for Android development, well…why? This week the company is introducing Android KTX, “a set of extensions designed to make writing Kotlin code for Android more concise, idiomatic, and pleasant.” The current launch is merely a preview available in a GitHub repo, and the team is seeking feedback and contributions. Eventually, Android KTX will be released as part of the Android Support Library.
  • TypeScript 2.7 Drops: TypeScript, the language that “brings optional static types to JavaScript,” announced TypeScript 2.7 this week. The latest version includes stricter class property checks and fixed length tuples and a host of other features you can read in the announcement. Additionally, Microsoft is offering a list of breaking changes that existing users should double check. What’s up next for TypeScript, then? Apparently conditional types are on the roadmap.
  • Visual Studio Code Gets Python (And Then Some): The latest version of Visual Studio Code has also been released, with features including Explorer multi-selection, improved Settings search, errors and warnings in Explorer and Git submodule support. In addition, the Python extension for Visual Studio Code is now available, which “closed a total of 72 issues focusing on linting improvements, support for virtual environments, and other general improvements.” Highlights include Terminal’s use of Conda and virtual environments and its automatic activations of the currently selected virtual or conda environment. The Python VS Code extension is available now and issues can be submitted on the Microsoft/vscode-python GitHub page.
  • For GitHub, Only The Strong Survive: Starting on Feb. 8, 2018, GitHub has begun to disable weak cryptographic standards, as they had first announced last year. Those standards include TLSv1/TLSv1.1, diffie-hellman-group1-sha1, and diffie-hellman-group14-sha1 for all SSH connections to github.com. Heads up. More details are available on the GitHub Engineering Blog.
  • Prove Yourself with Pluralsight and Stack Overflow: Maybe this sounds familiar – I have a friend who started out coding with a company. When that job wrapped up, however, they had nothing concrete to show for it; all their code snippets were considered proprietary. Surely, there are ways around this, but perhaps the latest partnership between Pluralsight and Stack Overflow would help with that. Stack Overflow’s “Developer Story” feature gives developers a way to show off what they know and built and now Pluralsight’s Skill IQ “allows developers to measure their skill level in about five minutes in dozens of technologies.” I know I saw some headline just last week proselytizing the common idea that employers are looking for skills over formal education, and this is perhaps one step on that path, at least.

This Week in Thoughts, Trends and Tutorials

  • Open Source Trends for 2018: Where are things headed in 2018? One way to answer this question is to look at some stats for open source repositories on GitHub, which the company just did with its open source project trends for 2018 blog post. Some areas of quick growth include cross-platform development and deep learning, but take a look at the graphic for a more detailed breakdown.
  • TensorFlow Tutorials with Traffic Signs: Speaking of deep learning and all that, we saw a tutorial this week that looks at traffic sign recognition with TensorFlow, which is just the first part in a series. Rather than delving into too much theory and math, the post looks at the practical aspects of building a neural network. Included are the source code, image library and relevant materials, though a basic knowledge of Python and machine learning are necessary. By the end, you have a fully functional, simple neural network. Even if you don’t have those skills, it’s an interesting read, as it gives a bit of insight on what’s needed to create a neural network capable of processing images on a fundamental level.
  • On Python’s Weak Performance: Python may be a darling of the data processing world, but this author argues that Python’s weak performance matters. A quick summary of the argument, as they commented on HackerNews, is that “The main motivation is to minimize total time, which is TimeToWriteCode + TimeToRunCode. Python has the lowest TimeToWriteCode, but very high TimeToRunCode.  TimeToWriteCode is fixed as it is a human factor (after the initial learning curve, I am not getting that much smarter). However, as datasets grow and single-core performance does not get better TimeToRunCode keeps increasing, so that it is more and more worth it to spend more time writing code to decrease TimeToRunCode. C++ would give me the lowest TimeToRunCode, but at too high a cost in TimeToWriteCode (not so much the language, as the lack of decent libraries and package management). Haskell is (for me) a good tradeoff.”
  • A Love Re-Found for VS Code: Finally, one developer admits their love for Visual Studio Code, calling it their “favorite text editor” and a reason for leaving Visual Studio behind. “For the longest time, I had always held that Visual Studio was the number one tool that I would recommend for development for the vast majority of use-cases,” they write. “Lately, I’ve found myself asking whether I could be solving the same problems with VS Code. That’s been ringing pretty true as of late. Since I was on the fence for a while, I thought I’d take some time to just list out some of the reasons why I’m growing more and more fond of VS Code as my daily driver.” What do you think? What’s your daily driver?

Feature image via Pixabay.

 


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.