This Week in Programming: ML Climbs the Stack with TensorFlow.js
As time goes on, it seems we have to locally “install” less and less — as someone in a podcast I listened to this week loosely described it, everything just keeps moving up the stack. The modern day developer is like a surfer riding a huge wave, or a skier managing to float atop the avalanche. Well, that is to say, they can be that — or they can be tumbling in the surf or buried in the snow, where in this strained metaphor the water or snow is the act of dealing with the ever time-consuming and stressful acts of installing packages and managing dependencies and handling all the nitty-gritty details that are increasingly handled by other services.
If anyone says their stack is simple, they probably are not counting the inherited complexity. Inherited complexity is always the biggest elephant in the room.
— Jaana Dogan ヤナ ドガン (@rakyll) February 5, 2019
This week, we again point you, dear reader, to a post over on Adrian Coyler’s always-interesting “morning paper” blog, where he looks at a paper on “TensorFlow.js: Machine Learning for the Web and Beyond.”
And this, I feel, is the best part of that ever-rising stack — you, the developer, don’t need to necessarily know how it works underneath if you don’t want to. Somebody else can handle all of those details, and you can float on top, merrily training machine learning algorithms in your browser. So, read on if you’d like… or not.
While we’re on the topic, here’s a brief video from last week’s O’Reilly Software Architecture Conference with IBM’s Tamar Eilam on “the future of cloud-native programming,” where she talks about the developer’s place in the ever-growing stack.
This Week in Programming
- Concerning Golang: Hat tip to a writer here at The New Stack whose stories I can’t get enough of, David Cassel, as he brings us an interview with Go product lead Steve Francia about everything that’s coming to Golang in 2019: modules, generics, better error-handling, you name it. That is, you name it as long as “it” doesn’t cause a breaking change from Go 1.0, released more than five years ago. A key quote that stands out for me: “So modules are — it’s not a new concept. (Laughs) It’s one that’s existed in a lot of other languages. But we’re taking a new and somewhat innovative approach to it.” Go’s non-breaking evolution has been a point of interest for many, and this deeper dive is worth the read for those invested. On a separate but related note, apparently you Golang developers are doing quite well for yourselves these days, according to a report that places Golang developers among the highest paid.
- Go-ing Against the Grain: Remember how, just two weeks ago now, we talked all about the developer who said that Go taught him that PHP was a waste of time and that he rued the day he ever chose the language? Well, today we have the complete opposite tale, from Danny van Kooten, a “a 20-something web developer” in the Netherlands who writes that “after 2 years on Go, our shop applications are powered by PHP again” because, for one, “PHP improved a lot during the last 3 years” by adding “scalar argument type declarations, return type declarations, multi-catch exceptions, impressive performance improvements and many more general improvements.” Beyond PHP’s recent improvements, van Kooten also cites the language’s suitability for the monolithic style they employ: “Honestly, Go is great. Its simplicity is refreshing and its performance unmatched. I would still pick it if we need a small API or something that requires high throughput. Our shops however are more monolithic with a lot of server-side rendering. While that’s certainly doable in Go (as the last 2 years proved), it’s more maintainable for us to do it in PHP right now.”
Ch-ch-ch-changes! I'm retiring from the Rust Core Team (with hopes for fresh faces), but sticking around to hack on the compiler instead. https://t.co/7COZGjRTUG
— Aaron Turon (@aaron_turon) February 8, 2019
- IDEs Have Gone “Kubernetes-Native”: Back to that idea of climbing the stack, the world of integrated development environments (IDEs) has moved one step further into the ether, as we’ve now come to describe some, at least, as “Kubernetes-native.” That’s right, not only is Red Hat’s newly released CodeReady Workspaces IDE Web-based, but it’s all on Kubernetes — developers each run their own personal little environment in a Kubernetes pod and it’s externally linkable. The quote of the story, for me: “With CodeReady workspaces, the moment you start coding, you’re inside a container inside a pod inside Kubernetes. You kind of don’t have a choice but to be inside Kubernetes.”
- MIT’s How to be a Hacker: This six day class on “Hacker Tools” is available for free online, with videos of all the lectures, and co-taught by three graduate students at the Massachusetts Institute of Technology — Anish Athalye, Jon Gjengset, and Jose Javier Gonzalez Ortiz. And it goes over everything from virtual machines and containers to the shell and scripting to dotfiles and more. It even comes with its own subreddit, and links to previous discussions all over the Web. It’s like your friend who knows more than you finally agreed to just sit down and lay it all out for you — and you didn’t even need to buy them a six pack or pizza or anything…
OH: “you can build anything in C” is true, like “you can count to any number”
— Jessica Joy Kerr (@jessitron) February 4, 2019
- Open Sourcing GitHub Actions: Everyone was pretty excited last year when GitHub announced its Actions feature, which allows GitHub users to automate workflows, essentially bringing DevOps functionality to the popular open source repository. Now, the company has announced that it will release the parser and the specification for the Actions workflow language as open source, so that external tools can be created by the greater community to “check, format, compose, and visualize workflow files,” among other functionality.
- Survey Says! And finally, for those of you into surveys, we have several to point you toward. First, JetBrains has released the results of its 2018 Python survey, which shows Python becoming increasingly used for DevOps functionality, among other findings. Next, if Clojure happens to be your bag, well, the State of Clojure 2019 Results have just been released, finding that the language “is valued for its idiomatic support for functional programming, immutable data, interactive REPL, and ease of development.” And then there’s the Devskiller Global Technical Hiring and Skills Report 2019 that offers up some pretty, interactive graphics on details like who scores the highest on developer tests and the like.
Client-side validation pic.twitter.com/QiCWeEjLLg
— Ben Halpern (@bendhalpern) February 3, 2019
Feature image: IFX 2018.