The most popular programming languages

There are many surveys of programming language popularity. Many of the popular surveys have problems with the survey methodology such that they likely produce erroneous estimates of programming language popularity. For example, one survey looks at how many times each programming language is looked up on Internet search systems.

The chart, below, comes from GitHub and bases popularity on the number of “pull requests” that are made to the GitHub software repository. Using this method, JavaScript is the most popular programming language, followed by Python, Java, Ruby and PHP.

Python has become a standard for use by non-computer science students. Whether your college studies be in mechanical engineering or geology, there is a good chance you will learn Python for data analysis projects.

Java is now an old programming language, but still used especially for Android programming. It’s popularity for desktop applications is starting to diminish.

Ruby become popular about ten years ago. Ruby is based on a concept of “frameworks” that provide pre-made program skeletons which you adapt to make your own application. Ruby is very popular for quickly creating web-based applications.

PHP pre-dates Ruby – PHP is a script language that runs on the server side of a web application. PHP is very easy to learn and couples easily with MySQL databases, making the combination a great solution for web-based, database-backed applications.

Finally we get to the “C” derived languages including C, C++ and Microsoft’s cousin C# (a very powerful language with great development tools.). C dates back to about 1970 or so.

C++ was developed in the 1980s and added object oriented programming to C and has since expanded in many ways. C and C++ are commonly “compiled” into machine instructions for each CPU and are used for high performance applications, including operating systems, video games and media applications.

C# has features resembling Java and C++ – but in a more modern design. In some ways, C# is where some wish C++ had gone 🙂

Capture

New drone quadcopter programmable using Scratch #AppInventor #STEM #Drones #CES2018

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.

Source: Ryze and DJI team to create Tello $99 drone – sUAS News – The Business of Drones

The Scratch programming system came before App Inventor and inspired the “blocks” programming model used in App Inventor.

Graphical programming and robotics-the tools get better and easier

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.

Continue reading

Do you need to use a “real programming language” to create useful applications?

Do you need to use a “real programming language” to create useful applications?

No!

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.

In the past couple of decades, “real software” was often written in C/C++, Java or C#. Today, “real software” is written in PHP, Ruby on Rails, JavaScript, Python, VBA and other new programming languages and support libraries.

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!)

Google expected to introduce new Java compiler

The upcoming Jack & Jill compilers in Android | Saikoa.

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?

Continue reading

What are the hot programming languages for today

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:

Continue reading