Coding is all the rage. Many are arguing it is an essential skill for the modern economy. They believe it should be an essential part of the school curriculum. Fundamentally, what is being asked in coding is a very difficult exercise requiring skill development that has applicability well beyond coding. These skills are familar to those who do economic modelling. Basically what you have to do is express, in a logical, coherent matter an idea and bring it to its conclusion. For economic theorists, this requires playing around with equations but ultimately the tough work is having to crunch through it and see where you end up. For coding, the task is very similar. What you need to do is run a simulation in your head of the way the code is going to play out and then, afterwards, see that actually works. This is quite a difficult process in terms of learning and response. In fact, recently, an idea has emerged that coding should be more responsive and allow for more iteration without the hard task of having to run the code first in your head.
Bret Victor is a former Apple engineer who has been leading the charge in this. If you have an hour to spare, his talks are very interesting.
But if you don’t have that time, the basic idea is that you want to be able to code and see the results of that coding right away. Consequently, you can fix errors quickly and focus on the design of the thing you are trying to produce. Think of it as WYSWYG for coding.
Yesterday, Apple introduced a new programming language called Swift. There are many parts to it. For one, it promises to make the task for coding Apple apps (both iOS and OSX) far simpler. The simplicity is borrowed from languages like Ruby and Python. However, Apple didn’t want to just integrate them into their platform because those languages do not perform as well as Objective-C (which is Apple’s current language of choice). So what Apple did was recombine the best features of other languages and built it side-by-side with Objective-C. In other words, coders have a choice to use the new language or continue with the old. Basically, it is a backwards compatible platform upgrade. Not surprisingly, programmers were very enthusiastic.
What was interesting, however, is that Apple chosen to take Bret Victor’s idea that coding should be responsive and build tools to make that so. Within its core programming software, Apple has introduced an interactive playground for Swift that allows coders to see the results of their choices immediately. This allows them to find problems more easily but also to experiment more freely. Apple is betting that this will lead to apps that are better designed.
Of course, as with everything Apple does, this innovation comes alongside the critique that the new programming language appears to be an Apple-exclusive. Will developers want to spend time learning it when it cannot transfer between platforms? Indeed, there is a sense in which it may make inter-platform programming harder per se — of course, it isn’t harder per se, it is just that Apple made their side easier and, therefore, reduces the incentive to port as the relative costs of doing so have risen. But that is Apple’s problem as well. It has to convince programmers to make a specific investment in it otherwise this programming language will fail. This is one of those issues that we can safely leave to one side and see how it plays out.
More broadly, this speaks to a counter movement to the push for coding in the educational curriculum. If Swift represents the future, it also represents a future where much of the hard tasks in coding are taken away — including the task that could translate to economic modelling. This may cause us to have pause about putting these things in the curriculum but it should also alert us to the notion that maybe economic modelling could be conducted using modern tools in a more responsive way to yield better models.