Programming languages provide common information structures that enable developers to write programs that fulfill specific computations or algorithms. There are over 1.2 million computer programmers, web designers and software developers in the United States alone. The first computer programming language was dated back to 1883, when Ada Lovelace wrote an algorithm for the Analytical Engine (the early mechanical computer). Some of the most popular languages include Java, C, Objective-C, C++, C#, PHP, (Visual) Basic, Python, Ruby and Perl.
Comparison of Programming Languages
Here is a look at a timeline of when famous languages were invented and what their primary uses are:
FORTRAN, LISP, COBOL (1957-1959)
Considered to be the oldest languages that are still used today, they provide high-level instructions for scientific, mathematical and business computing. Used by NASA and ATM's, the classic movie The Terminator used samples of Cobol source code for the text displayed in the Terminator's view.
Pascal was named after the famous French mathematician/physicist, Blaise Pascal. It's a high-level language for teaching structured programming and data structuring widely used throughout the '80s. The programming language is used by Skype along with a derivative known as Object Pascal, commonly used for Windows application development.
C++, formerly "C With Classes" is an intermediate-level, object-oriented language. It is an extension of C, with enhancements such as classes, virtual functions and templates. C++ is used in a ton of commercial applications, embedded software, server/client apps and video games. Some major supporters include Adobe, Google Chrome, Mozilla Firefox and Microsoft Internet Explorer. C++ is also the first language I learned in school
Objective-C is a general-purpose, high-level language that expanded on C, adding message-passing functionality. The language is primarily used by Apple's OS X and iOS operating systems.
Perl is another high-level language created for report processing on Unix systems. It's known for high power versatility and primarily used in CGI, database applications, system administration, network programming and graphics.
Python is also a high-level language that supports a variety of programming styles and humor (tutorials, sample code often contain Monty Python references). It's also used web applications, software development and information security by Google, Yahoo and Spotify.
Ruby is another language influenced by Perl and designed for productive and enjoyable programming. Primary uses include web application development and Ruby on Rails, seen on Twitter, Hulu and Groupon for example.
Java, of course, is named accordingly because of the amount of coffee consumed by developers when writing code. It's a high-level language with cross-platform functionality, and is currently the world's most popular programming language commonly taught in Universities. Supported by Android OS/apps, its primary uses include network programming, web app development, software development and graphical user interfaces.
PHP is an open-source language for building dynamic web pages and server-side development. Sites that use PHP include Facebook, Wikipedia, Digg, WordPress, Joomla and DashBurst.
The Security of Programming Languages
Each language has unique vulnerabilities which include code quality, information leakage, credential management, race conditions and many more. In the end, producing secure code ultimately depends on a secure development process and not necessarily which language is used. When vulnerabilities are exposed, what a company looks to fix first greatly depends on the severity of the defect and risk to mitigate.
9 Tips for Secure Programming
1. Always check for OWASP Top Ten vulnerabilities
2. Make sure sensitive application data is properly encoded and encrypted
3. Implement access control and permissions to protect resources and limit app/user capabilities
4. Validate all input and output
5. Store all data securely
6. Write code that can handle exceptions (errors) securely
7. Don't write code that has hardcoded credentials or cryptographic keys
8. Use smart passwords and session management practices to verify authenticity of users
9. Have a security plan and recovery mechanism in place