The ability to code is an important part of literacy and will enable kids to learn about creative problem solving and how to communicate their ideas. Engineers at Ryze have made Tello programmable with Scratch, an MIT-developed coding system that allows kids and teens to learn the basics of programming. Kids can program their Tello to string multiple flips into a single command or create their own flight patterns using MIT Media Lab’s easy-to-use block-based coding interface called Scratch.
Do you need to use a “real programming language” to create useful applications?
The history of programming begins long ago with the toggling of switches on a console to “program” a system. This primitive method advanced to the use of short text instructions called “assembly language”, which was then followed by programming languages such as Fortran and others.
Yet there remains an attitude that real software is not real unless its written in a traditional programming language (Java, for example). There is a joke, especially among hardware designers, that “real programmers program in solder”!
So what is a “real programming language”? Realistically, any programming language or system that enables you to deliver a software project that meets the customer needs and requirements is a “real programming language”.
Which gets us to the main point – MIT App Inventor is a real programming language – it is just a different way of programming than that used by “traditional” solutions. Do not let others tell you that App Inventor is not real programming! (But it is more fun!)
Most Android apps are written in the Java programming language. Google’s Android software development system converts “source code” (a text file) written in Java, into the code that runs on the Android device.
In many programming language systems, source code is converted into the “machine instructions” of the processor. The processor does not speak “Java” but speaks its own language. A program called a “compiler” converts the original program source code into the “machine language” of the processor.
Many programs for Windows, for example, have been converted into the individual instructions that are processed by an Intel or AMD processor. The “compiler” converts the program source code into a .exe file that contains the machine language instructions of the Intel and AMD processor.
But what if you wanted your program to run on a hardware device that has a Qualcomm or ARM processor?
The pace of change in software development is rapid – popular languages today may already be fading. Pay scales for some niche languages are very high (such as Ruby)- but the market opportunity might not be large or lengthy.
Web applications and mobile applications are the “hot” categories. Within those categories, there are a variety of currently popular software development tools:
The history of App Inventor extends, in part, back to the 1980s, at least, which may sound odd.
App Inventor is a project, today, of the Massachusetts Institute of Technology but is based on the App Inventor project that was originally started by Google. Google’s project, turn, was based on an MIT Master’s thesis by Ricarose Roque.
The graphic building blocks approach to assembling program functionality was itself inspired by Scratch. Scratch is a simple programming system used for teaching programming concepts (especially to those age 8 to 16). Like App Inventor, Scratch has taken on a life of its own and is also hosted at MIT and runs in your Internet browser (plus a download version that runs on your own computer, is available). If you are interested, you can learn and use Scratch at scratch.mit.edu. You can learn about the history and philosophy of Scratch in this Communications of the ACM article. (ACM is a professional society for computer scientists and publishes many journals in the field of computer science.)