This Week in Programming: Get Quantum with Q Sharp
While we’ve entered prime time for year-in-review (we have a few of those to peruse) and predictions-for-the-year-ahead articles, the big news this week might be Microsoft’s preview of its Quantum Development Kit, “which includes the Q# programming language, a quantum computing simulator and other resources for people who want to start writing applications for a quantum computer.” In case you were wondering, that’s “Q sharp” (not “R flat”) for short.
Ars Technica explains that the language is “intended to bring traditional programming concepts—functions, variables, and branches, along with a syntax-highlighted development environment complete with quantum debugger—to quantum computing” and “open up quantum computing to more than just physicists.” According to Microsoft’s blog post, the Quantum Development Kit will be deeply integrated into Visual Studio, with a local quantum simulator “that can simulate around 30 logical qubits of quantum computing power using a typical laptop computer.” While the blog post offers an inspirational video about quantum computers, chock full of theme music and people walking on the moon, the full introduction and step-by-step demo video is much more informative:
This Week in Programming News and Announcements
- As Easy As Atom 1.23: Atom 1.23 has been released, bringing with it “a new feature for packages to register URI handlers, the ability to register hidden commands, as well as editor performance improvements.” In addition, Teletype 0.3.0 brings about some performance and connectivity improvements, while the beta of Atom 1.24 fixes an important bug: “Someone on the wrong side of the tabs vs. spaces debate wrote the initial Toggle Line Comment implementation, as it always inserted spaces. It will now honor your settings.”
- Get Organized with GitHub Enterprise 2.12: GitHub announced the latest version of GitHub Enterprise, which brings “project board enhancements, global webhooks, repository archiving, and more.” New features include automated tasks, keyboard navigation, and notes for project boards, global webhooks for an entire enterprise instance, and automatic HTTPS deployment, among other things. The new version is available for download now.
- IBM’s Curated, Open Source “Code Patterns”: IBM announced the release of more than 120 “code patterns”, which it says “are curated packages of code, one-click GitHub repos, documentation and resources that address some of the most popular areas of development, including AI, Blockchain, Containers and IoT.” The basic idea here being that it’s better to have some code you know you can trust – to avoid reinventing the wheel – and not have to dig through various unknown resources to find it. In addition to code patterns, the company has also announced a Bot Asset Exchange that offers a similar function as its code patterns, providing “ready-to-use, domain-specific conversation logic” for bot developers.
This Week in This or That
- Who’s the Master Multi-Tasker? When it comes to building scalable Web applications, it’s important to pay attention to server-side I/O performance and how the language you choose affects that. The devil is in the details of how your language of choice handles syscalls — whether blocking or non-blocking. A good analogy would be like going to a bar. Blocking syscalls are when you have to wait in line to order from the one bartender. Everyone waits for the person in front of them to be finished, even if that person doesn’t know what they want by the time they get to the front. You’re stuck waiting for them, either way. Non-blocking syscalls are more like a bar where everyone comes up to the front and orders when they are ready and the bartender can help multiple people at once. Moving past my perhaps not perfect analogy, the blog post looks at Node vs. PHP vs. Java vs. Go and performs a series of benchmarks. Which one wins? Take a look for yourself.
Some of the absolute worst code is written by very smart and capable engineers who are using tools they don’t need to reduce complexity that doesn’t exist while trying to solve problems they don’t have.
— Jeremy Green (@jagthedrummer) December 12, 2017
This Week in The Year Past
cron-driven development: try to fix your bad code before your crontab runs the bad code again
— Zach Holman (@holman) December 12, 2017
This Week in Learning
- If You Don’t Know a Stack from a Heap…then this GitHub based Coding Interview University is for you. The course’s author, who landed a job at Amazon in the end, comments that they “didn’t know a stack from a heap, didn’t know Big-O anything, anything about trees, or how to traverse a graph. If I had to code a sorting algorithm, I can tell ya it wouldn’t have been very good. Every data structure I’ve ever used was built into the language, and I didn’t know how they worked under the hood at all.” Designed “for new software engineers or those switching from software/web development to software engineering (where computer science knowledge is required),” the course offers daily lessons on all the stuff you probably never touched as a mere Web developer so you can make the transition to full-stack developer.
- Secure PHP? What’s that? I have to admit, I clicked on the 2018 guide to building secure PHP software expecting a joke. Like, just a website, maybe with one of those 1990s animated “Under Construction Gifs”, and just “Nope.” in 48pt font, bold in the middle of the white page. That’s not really a statement on the actual security of PHP, just my osmosed, biased perception of the language that has run nearly every open source CMS and shopping cart site I’ve worked with since the turn of the century. Step one according to this article? “Discard many of [your] old practices and beliefs about developing secure PHP applications,” including the one where you do not even believe “such a feat is even possible.”
Microsoft is a sponsor of The New Stack.
Feature image: Panel from a Geek & Poke cartoon.