Which is the best software development programming language? That depends on the situation. Here are some selection criteria, and concrete recommendations.
A first language should be fun and easy to use. Some college programming courses are general introductions, not aimed at producing professional programmers. Programming is also taught to grade school and high school children.
Instructors might want to start off with a language that supports a specific programming paradigm, such as Object-Orientation (OO) or Functional Programming. If not, a simple procedural language should be chosen.
The temptation to choose a complex mainstream language, such as Java, should be avoided. The purpose of an introductory course isn’t to immediately prepare students for a programming job. It’s to teach basic programming concepts and techniques:
- Decision statements.
- Functions and subroutines, encapsulation, modularity, information hiding.
- Variables and arrays.
- Data structures.
- Debugging, printing out intermediate results.
The purpose is also to get students hooked on programming, not scare them off. Once the programming fundamentals are solid, the student will find it easy to move on to more complex languages.
The language should be:
- Free. No compiler license.
- Easy to install. No complex development environment to set up.
- Easy to use. No complex Integrated Development Environment (IDE) to learn.
- Easy to program. A typeless scripting language is ideal. John Ousterhout explains the advantages of scripting languages.
- Easy to debug. This means short edit-compile-run-debug cycles, and good error reporting.
- Easy to deploy. No complex run-time environment to set up.
- Fun to program. This means graphics programming, if possible.
- Easy to show off. A web-deployable program allows students to show their programs to family and friends. Mobile phone compatibility is a bonus.
- Multi-platform. Students should be able to use their home computer: Windows, Linux or Apple Mac.
The above criteria are especially important for a self-taught programmer, learning at home without a teacher.
- Free. All you need is a text editor and a web browser.
- Easy to install. Most PCs will already have a web browser installed.
- Easy to use. There’s no IDE.
- Easy to program. It’s a typeless scripting language.
- Easy to deploy. Students just load a HTML file from their local drive, into their web browser.
- Fun to program. HTML5 has a powerful built-in graphics capability.
- Easy to show off. If hosted on an Internet-accessible web server, students can email the URL of their page, to friends.
Other suitable candidates are PHP and Python.
Best Computer Programming Language for Kids
For young children, a specialized educational language such as Logo is suitable. Logo was developed by Seymour Papert, specifically for children. It was popular in the 1980s but has unfortunately fallen out of favor. It was known for its simple Turtle Graphics graphics programming interface.
Free versions of Logo are available for download. There’s even an online Logo applet with Turtle Graphics, that executes individual Logo statements.
Best Web and Other Programming Language to Learn for Career Purposes
Assuming that your basics are strong, it should be possible to quickly pick up any programming language within a few days, and to become competent within a few weeks. The question is, which language should you spend your time on?
One easy way to choose is to look at what is in demand in the market. Check classified advertisements and job websites. simpleprogrammer.com has a list of The Top 10 Programming Languages To Learn In 2018, which reflects conventional wisdom:
Less sexy, but still potentially lucrative, are legacy languages: languages used on old systems. On the PC, there’s Delphi and PowerBuilder. On the mainframe there’s JCL, CICS, RPG, COBOL, DB2 and many others. The Australian has an article on the demand for legacy software skills.
You should check for the availability of jobs in your area, before investing time in learning any system.
Other Important Software Skills to Learn
There’s more to software development than coding. Knowledge of the following will also be useful:
- Mini languages such as SQL (database) and regular expressions (text processing). These are used inside many languages.
- Web security programming knowledge (cross site scripting, SQL injection, input validation).
- Software testing techniques (regression test, load test, test automation, test documentation).
- Software development life cycle management.
- Software development methodologies (Agile, Scrum).
Niche, domain-specific, platform-specific, industry-specific programming skills might also be marketable:
- Mobile phone applications (iPhone, Android, Windows Phone 7).
- Facebook application programming.
- Cloud computing programming, for example using Google’s App Engine (Python or Java),
- CMS (Content Management System) customization with WordPress or Drupal.
- Sugar CRM (Customer Relationship Management) customization.
- Linux Beowulf Cluster programming.
- Digital Signal Processor programming.
- PLC and industrial controller programming.
- Embedded system controller programming.
The Best Programming Language
The best computer language is the one that gets you hired. Unfortunately there are employers who ask for something like “three years experience in x,” making it difficult for new programmers to break into the market.
As a prospective employee, it’s up to you to convince people that you can do the job. One way is to create your own web or Facebook applications, then include their URL in your job application. You might even be able to make some money from them (Adsense advertising or affiliate marketing), and succeed as an independent freelancer.