top of page

What is the BEST Programming Language? (The Answer Will SHOCK You!!!)





Introduction:


Last week (14/09/2020-20/09/2020) was #nationalcodingweek so it feels only right to talk about coding, programming languages, and everything else that encompasses that!!


Before we get into that, lets distinguish between 'coding' and 'programming' because these are two terms which are often used interchangeably however there are differences:


Also comment down below what your favourite/most used programming language is !!!


Coding - Translating ideas from a human language to a machine based one.


Programming - Creating complex programs (apps,websites...) that the machine can execute.


For the purpose of this post we will be focusing on programming. So things such as Python, Java, C, Kotlin, variables, loops ... will be very much applicable.


Lots of people make assumptions, leading to daft statements like the following:

  1. 'Java is the worst language because you have to write so much!'

  2. 'Python's bad because you literally get errors for white-space'

  3. 'HTML isn't a programming language, therefore it's useless' (first part is true)

  4. '{insert language} is the best for everything!!! No other language is needed'


Factors:

A more logical way to break things down would be to consider these factors:

Purpose (Use Cases)

Level (High vs Low)

Paradigm

Syntax

Speed (Compiled/Interpreted)


So lets get into them:


Purpose - Every programming language has a different purpose, aiming to meet different needs. Some are more generalised than others however this comes with +'s and -'s.


Level - There are high level languages like Python and Java, as well as lower levels such as C. Further down at the lowest level, there's Assembly Language and Machine Code. This links into the speed at which they operate and we'll get into it later.


Paradigm - This refers to the style of the programming language. Examples include procedural, declarative, OOP, functional, declarative and many more ...




Syntax - This refers to white-space, semi-colons, the number of lines required. Potentially combining with paradigms, this can also reference scalability too! Syntax is often what encourages/puts people off.


Speed - This is pretty self explanatory, it's significant because wait time is important. Big O nation can be referenced here, time complexity!!!






Languages:

What do you spot below?! (Something surprising)?



So for the purpose of this blog-post, we're going to refer to 5 different programming languages, when we talk about each of these factors. They all have a range of +'s and -'s so it will be interesting to find out which one is 'the best'. See below:

  • Python

  • Java

  • C

  • Kotlin

  • Machine Code

So lets get into each of the languages:


Language by Language Analysis:

Python:



It's a general purpose language, well known for building desktop apps, web apps, and also for data analysis/visualisation. It is possible to make Android apps (BeeWare) and games (PyGame) using Python however there are better options out there (e.g. Unity and Android Studio).


print("Hello World")


Python is a high level language. It's interpreted which means it's slower than other languages. It's a multi-paradigm language which again, increases its use case over other languages. The syntax is more human readable than Java/C/Machine Code which makes it more suitable for beginners.



Java:



Again, it's a general purpose language, used for building all kinds of apps from web apps, financial apps, scientific apps and more!! With that being said, Android Studio has depreciated use of Java, in favour of Kotlin.


class HelloWorld{
public static void main(String args[]){
    System.out.println("Hello World")
}


Java is a high level language, often ridiculed for the number of lines of code that are required. It's main paradigm is OOP which is very useful for scalability of applications. Despite this, the demand for Java is falling slightly with Python and JavaScript trending more. It's compiled to JVM byte code before being executed (it can then be either compiled/interpreted).


C: C is an older language with many use cases. It's used within Windows, UNIX and Linux (OS Development) as well as apps, games and also for performing calculations.


#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}


It's at a slightly lower level than Python and Java although it's still considered a high level language. It's closer to the compiler than Python or Java. Even though it's not as useful for 'hot topics' such as Cyber Security, Data Science, Machine Learning; it's still useful, at a lower, architectural layer.


Kotlin:



Kotlin is a newer language (released in 2016), aiming to be simpler than Java and make Android App Development easier!!!


It's a high level language and there are more and more developers switching from Java to Kotlin, as it grows. Famous users include 'Coding in Flow' and 'Philipp Lackner' (2 very good Android Influencers). It uses the OOP paradigm (proving to be quite popular!) and is compiled to JVM bytecode before then having the option of compiling/interpreting.


fun main(){
    println("Hello World");
}


Machine Code:

This is the oldest language, made up of 0's and 1's. It's the fastest language out there and it's the result of compiled code. It directly controls the CPU.


Machine Code is the lowest level language, so much so that developers prefer to use higher level languages such as the ones discussed above, for ease of use.


My Decision


After going through all 5 languages, it's clear that they all have positives and negatives. Referring back to the title of this post, I would say that there is NOT ONE PROGRAMMING LANGUAGE which can be considered 'the best' HOWEVER for me personally, I can select one language.


Before I do that, I need to stress that the answer to this question really does depend on what you want to do, and whether or not that language has the capabilities to fulfil that. For example, Python has the ability to create games through PyGame however Unity seems to be a lot better for game development. If you want to find out more, be sure to look into the smaller details such as variable scope, memory use ... in order to truly find the best language for you.


Now for me personally, I think that Python is the best language for me. This is because I am currently doing a lot of work with Data Science, Machine Learning and Jupyter notebooks. Python allows me to carry out heavy analysis of data as well as producing brilliantly looking visual plots, very easily. On top of that I can easily switch between paradigms. Another topic I'm looking at is web scraping/web automation and Python is very good for fulfilling that!!!


One thing to bear in mind is that you shouldn't limit yourself to one language. I referred earlier to Philipp Lackner and he recently put out an amazing post about how big apps use multiple languages ( make sure to check him out because he has some great Android content and I've heard that he will soon move into other areas, including Machine Learning).


Another thing to consider is that it's more important to understand the logic of programming than the specific syntax!!


Conclusion and Summary

  • All languages have benefits and tradeoffs.

  • Don't limit yourself to one language.

  • Focus on logic rather than syntax so that you can understand multiple languages.


Final things


As always, thank you for making it this far, please leave comments, they help me so much.

Be sure to like and share also, lets try and get 100 views within a week, like we have done previously.


Follow CompAndCode on all platforms!


Thank You Nibble Byte!!!


159 views2 comments

2 Comments


Charlie Daniels
Sep 22, 2020

Thanks for acknowledging that all languages have their benefits! My favourite is actually C#, as I like using unity and have built a few mini games for myself in that - love the posts by the way keep them coming!

Like

Jamie
Sep 21, 2020

I fully agree with you here! Python has always been my favourite (probably because it’s mainly the one I’ve been made to use, but still!) and I think it has so much potential too - it’s grown so much in popularity over the last few years and I can’t see that stopping. Hadn’t actually heard of Kotlin before so that was interesting to find out about. A lot of my friends like C#, which I also think is great, but it’s Python for me!

Like
bottom of page