Dennis Ritchie, the creator of the C programming language and co-developer of the Unix operating system passed away on October 8 at the age of 70, leaving a legacy that casts a very long shadow.
MIT App Inventor is a “graphical programming language” in that we assemble programs by clicking and dragging symbols on screen, interactively, rather than writing our programs as text.
This weekend, FIRST Robotics kicks off its 2016 season. Students will design, construct, test and deploy a complex robotic system to meet the 2016 competition challenge (to be unveiled on Saturday).
The robot control system may be programmed in C++, Java, National Instrument’s LabView, RobotBuilder and/or GRIP.
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?
Here is an easy to read report on which programming languages are now “hot” in the market for software developers: Don’t Rely On Salary Data To Pick A Programming Language To Learn – ReadWrite.
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.)