October 8, 2019

A deep dive into programming language

By
Mo Yafii
,
Developer

Upon diving into the world of computer programming, one of the first of many challenges you will face will be deciding where to start.

With something like programming, it’s best to start at the beginning.

Firstly, what is a programming language? A (computer) programming language can simply be explained as a set of instructions that direct a computer to perform a task. Modern programming languages are either compiled or interpreted into a simple form called machine code that a computer can understand, and then executed. In other words, if a person (computer) only understands Swahili (machine code), then instructions in Italian (C++) must first be translated by an interpreter (compiler) before the person (computer) can understand and process them.

With so many programming languages to choose from, the choice comes down to more than what sounds or looks cool. Python, for example is touted as a great language for beginners and is very popular, and not just for its name.

The reality is that it depends on many factors such as your goals, the learning curve, and the community size and popularity of the language.

Your dream might be to become a rockstar game developer, a web development wizard, or an AI engineer capable of building a real-life terminator. Whatever your ambitions or time you have available there’ll be some programming languages better suited to your purpose than others.

Having said all that, let’s take a look at some of the most commonly used programming languages and briefly talk about what they are used for.

C is a general-purpose programming language that was developed for writing operating systems such as Unix. Instead of having to write code for every simple instruction that a computer performs, like assembly language does, higher level programming languages like C have been developed that map and combine these low-level instructions into simple lines of code. The C language has been so popular that many languages since have adopted a C-style syntax, such as C++, Java, C# and even JavaScript. With direct access to memory and hardware, C is a good place to look if you’re interested in writing embedded systems, although it would require a lot of time and effort. Otherwise, C is also a great language to introduce you to programming, as it uses a simple style that you will encounter in many other languages that have inherited the same style.

C++ is considered a superset of C, providing all of the features of C, plus more, hence its name. Most notably C++ provides object-oriented features, which allow the creation of more structured programs. Most applications or systems requiring high performance and optimisation of resources have an argument to be written in C++. Think operating systems, video game engines, 3D animations, image processing, database access and web browsers. C++ is a truly general-purpose programming language, although it has a steep learning curve compared to most other popular languages.

JavaScript is a lightweight programming language, brought to the mainstream for its use alongside HTML for the creation of dynamic and interactive web pages. It is a relatively simple language to learn, although not so simple to master. More recently, it has been adopted for the development of fully-fledged web applications, mobile applications, web servers and even desktop applications, thanks to JavaScript libraries such as React, React Native, Node and Electron. It’s no surprise its constantly ranked amongst the most widely used and popular programming languages out there.

Python is another general-purpose programming language with many applications, ranging from web server development, game development, scientific computing, machine learning algorithms, artificial intelligence, data science and GUI development. Like JavaScript, Python ranks amongst the most popular and widely used languages due to its ease of use and wide array of applications.

Other languages worth a mention include Java, most notably used for enterprise software and Android mobile development, Swift and Objective C for iOS development, and Rust and Go emerging as challengers to C++ for low-level system programming. The list goes on.

But it’s not only new programmers that struggle for choice, but organisations face the same headache when deciding which programming language and related technologies to use in building their product. For organisations, there's even more to consider, like budget, security, timescale and potentially upskilling their staff. Here at Upgrade Pack, we've built mobile and web applications backed by web services and cloud functions.

We’ve used JavaScript and its derived technologies to build everything. React Native is a JavaScript library that combines Native Android and iOS development with React.js, a JavaScript library for building user interfaces. So, with almost entirely the same code, we can build our App for both iOS and Android. With Node.js, a JavaScript runtime environment, we were able to build our web servers and integrate with cloud services to provide all of our backend functionality. JavaScript everywhere!

As you can see, developers are spoilt for choice when it comes to selecting languages and other technologies to use for their next project. For some, it’s a headache, but it can also be a source of excitement if you enjoy learning, which you most likely do if you’re a keen developer; you have no choice.

Here are a few tips for budding learners that will save you a lot of time:

Tech
Product