A long time ago, asynchronous programming was an exotic practice. Not many people were doing it, and their code was punctuated with things like assembly language and processor interrupts. Less anciently, preemptive multitasking OS’s made asynchronous programming more accessible, albeit often still with arcane and unnatural boilerplate, not to mention hazards of sharing mutable data.
Today asynchronous programming is mainstream — more than that, it’s a firm expectation of polished software for desktop, mobile, and web. The tools for asynchronous programming have gotten better, even as far as adding syntactic sugar, which
async/await certainly is.
An article published in Wired controversially predicts “The End of Code.” That’s an effective way to get the attention of people who code for a living. Let’s explore what this means for professional coders like myself and my A&L colleagues; for our clients who hire us to write code; and for society as a whole.
Is coding as a human activity going away?
No, coding isn’t going away in the foreseeable future. The article emphasizes that its headline prediction is still an unknown possibility, a plausible bit of science fiction. Coders remain in high demand today, and the successes of artificial intelligence, while impressive, are still growing within relatively narrow and confined domains. Today’s CS students can breathe a sigh of relief because the robots haven’t jumped the fences just yet. (more…)
What’s the best type of refactoring you could ever perform on source code? Silly question, right? The best answer I’ve seen is to delete some of it. (more…)
How would you design your own ideal scripting language? Would you go with a functional language in the LISP family, or with a more procedural style? Would you offer object oriented organization? Would large parts of your ideal language be recognizable as C or another common language, or would you "go for broke" with a domain specific language that (probably) only you will be able to read?
One of the fun things about computer science is that people will answer this question in very different ways, and they can all be right. Almost everything (including your dog) is probably Turing complete. And since the ultimate goal is accomplishing whatever operations the script is performing, whatever helps you express that well is the right answer, for you.
When implementing my cross platform graphical app engine, a set of characteristics began to crystalize for my ideal scripting language: (more…)
(This is a continuing series sharing design and implementation notes for a cross platform 2D game or graphical app engine I wrote in C# using Xamarin and Monogame.)
It was hard to choose next between covering the animation system, physics engine, or custom scripting language, as each is essential in its own way, and they’re also tightly integrated. But let’s start with animation. (more…)