Software
Programming
Programming is the act of writing the source code, or instructions, that makes up software.
There are many programming languages that programmers can use when writing code. The language they choose will depend on a few factors, like the platform where the software will be used (desktop, mobile, web etc), whether speed and performance are a priority, or in many cases, simply the programmer’s preference.
No programming language is the “best”, and languages are often well suited to particular use cases.
Machine code
_Machine code _is the language used to control a computer’s CPU. It’s designed to run as fast as possible for maximum performance and efficiency and is written in a way that is readable by the computer rather than by humans. While it is technically possible to write in machine code, it would be so time-consuming and potentially error-prone that virtually no programmers actually do it – they rely on more abstracted, human-like languages.
High-level programming languages
High-level programming languages like Javascript, Python or Ruby have been designed to be closer to natural human language. This makes it much easier for programmers to write and understand code other programmers have written.
High-level languages usually hide or automate many potentially complex processes, like how the system’s memory should be managed, allowing programmers to focus on their core work (for example, creating a web app) rather than instructing the device how it should work.
Low-level languages
Low-level languages like C are closer to the native language of the computer, which makes them harder to understand than higher-level languages. However, using a low-level language can allow programmers to write more efficient code and have more control over how the computer system works.
While it generally doesn’t matter if a simple web page isn’t highly optimised, when writing the code for something computationally complex, like the graphics engine for a video game, any extra speed or performance you can get from a low-level language becomes very helpful.
Compiler
The computer understands one language (like machine code), but we’re programming in higher-level languages, so how does that work? This is where compiling comes in. A compiler is a special computer program that takes source code from one language and automatically translates it into another.
Popular programming languages
As I mentioned earlier, the choice of programming language will often come down to what you are trying to create.
If you’re building web apps, you’ll almost certainly be using Javascript, as it’s understood by all of the major web browsers and used in most modern websites and web apps.
If you’re working with large amounts of data, you might use Python as it has very good mathematical libraries (code written to perform a specific task and then shared for others to reuse in their code).
If you’re creating iOS apps, you might use Apple’s Swift language, and if you’re building Android apps, you could use Java or Kotlin.
Frameworks
I like to build web apps using Ruby on Rails. Ruby is a high-level programming language quite similar to Python, and “Ruby _on Rails” _is the name for a _framework _that has been created that uses Ruby as the programming language.
Frameworks help speed development by providing software developers with tools and common components they need to create a web app. For example, Ruby on Rails has a built-in web server that I can use rather than trying to create a new web server myself. This lets me focus on building the parts of an app that are helpful for users.
Most popular programming languages will have frameworks that can be used to help speed up development. Some popular examples are ASP.NET Core, React.js, Vue.js and Django.