The Choice: Python or JavaScript
Tags: javascript, webdev, python, programming
Published: 2022-08-06 12:25:04

#### Hi techies 👋,

> At the end of reading this article, you should have a personal choice of a programming language between the two giants Python and Javascript or others.

For the sake of newbies/ new techies, a simple definition or explanation will be made concerning the two languages **Python** and **Javascript**.

## Definition of Python and Javascript 

### Python
Python is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

It was built by Guido van Rossum and first appeared on 20 February 1991.

Do you want to know more? Kindly visit the Python official website https://www.python.org/. 

### Javascript 
JavaScript often abbreviated JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS, mostly used for the client side for webpage behaviour, often incorporating third-party libraries.

It was created by Brendan Eich and first appeared on December 4, 1995.

Do you want to know more? Kindly surf the Internet for more detailed information.

## Does a Perfect Programming Language Exist?

You might have come across some posts on different platforms on comparison between programming languages, difficulty in choosing a programming language and many more.

Firstly, no programming language is perfect and that's why versions are still released for improvement. 

A programming language could also be perfect based on personal choices.

The choices of people differ based on the goal one is willing to achieve, inevitable attached experience, situation or environment and many more.

> Let's dig this a little for more clarity and understanding.

## Features of Python and Javascript 

Each language has its strength, uniqueness or features, some are stated below.

### Python 

#### - Easy to code 

Python is a high-level programming language. Python is very easy to learn the language as compared to other languages like C, C#, Javascript, Java, etc. 

#### - Free and Open Source

Python language is freely available at the official website and you can download it from the given download link below click on the Download Python keyword. Download Python Since it is open-source, this means that source code is also available to the public. So you can download it, use it as well as share it. 

#### - Object-Oriented Language

One of the key features of python is Object-Oriented programming. Python supports object-oriented language and concepts of classes, object encapsulation, etc. 

#### - GUI Programming Support

Graphical User interfaces can be made using a module such as PyQt5, PyQt4, wxPython, or Tk in python. PyQt5 is the most popular option for creating graphical apps with Python.

#### - High-Level Language

Python is a high-level language. When we write programs in python, we do not need to remember the system architecture, nor do we need to manage the memory.

#### - Extensible feature 

Python is an Extensible language. We can write some Python code into C or C++ language and also we can compile that code in C/C++ language.

#### - Python is Portable language

Python language is also a portable language. For example, if we have python code for windows and if we want to run this code on other platforms such as Linux, Unix, and Mac then we do not need to change it, we can run this code on any platform.

#### - Interpreted Language

Python is an Interpreted Language because Python code is executed line by line at a time. like other languages C, C++, Java, etc. there is no need to compile python code this makes it easier to debug our code. The source code of python is converted into an immediate form called bytecode.

#### - Large Standard Library

Python has a large standard library that provides a rich set of modules and functions so you do not have to write your own code for every single thing. There are many libraries present in python such as regular expressions, unit-testing, web browsers, etc.

#### - Dynamically Typed Language

Python is a dynamically-typed language. That means the type (for example- int, double, long, etc.) for a variable is decided at run time not in advance because of this feature we don’t need to specify the type of variable.


### Javascript 

##### - Scripting Language

JavaScript is a lightweight scripting language made for client-side execution on the browser. Since it is not designed as a general-purpose language and is specially engineered for web applications.

#### - Interpreter Based

JavaScript is an interpreted language instead of a compiled one. In that sense, it is closer to languages like Ruby and Python. The browser interprets JavaScript’s source code, line by line and runs it. In contrast, a compiled language needs to be compiled into a byte-code code executable. Java and C++ are examples of compiled languages.

#### - Event Handling

An event is an action or an occurrence in a system that communicates about said occurrence so that you can respond to it somehow. 

JavaScript enables you to handle events and even generate custom events.

#### - Light Weight

JavaScript isn’t a compiled language, so it doesn’t get converted to byte-code beforehand. However, it does follow a paradigm called Just-In-Time (JIT) Compilation. Meaning it gets converted to bytecode just as it’s about to run. This enables JS to be lightweight. Even less powerful devices are capable of running JavaScript.

#### - Case Sensitive

JavaScript is highly case-sensitive. All keywords, variables, function names and other identifiers can and must only follow a consistent capitalisation of letters. E.g.:

```
var hitCounter = 5
var hitcounter = 5
```

Here variables `hitCounter` and `hitcounter` are both different variables because of the difference in the case. Also, all keywords such as “var” are case-sensitive.

#### - Control Statements

JavaScript is equipped with control statements like if-else-if, switch-case, and loops like for, while, and do-while loops. These control statements make it a powerful programming language, enabling its user to write complex logic.

#### - Objects as first-class citizens

All non-primitive data types in JavaScript are actually objects, i.e. data types like Arrays, Functions, Symbols etc. inherit all the properties of the Object prototype.

The term first-class citizen means “being able to do what everyone else can do”. In JavaScript Objects prototype is the base prototype of all. They can be passed as reference, returned in a function, and assigned to variables for manipulation. This concept is also extended to functions as Object is also the prototype of functions.

#### - Functions as First-class citizens(supports functional programming)

What do we mean by functions as first-class objects/citizens? Functions that return a function are called Higher Order Functions, which JavaScript supports. Functions as first-class citizens simply mean functions enjoy similar behaviour from the JavaScript interpreter as that of objects or any other variable. This means we can pass them into arguments (pass by reference), return them by another function, and assign them to a variable as a value.

#### - Dynamic Typing

JavaScript is a dynamically typed language. It means that the JS interpreter does not require an explicit declaration of the variables before they are used. E.g.:

```
var dynamicType = “a string”
dynamicType = 5
```

Here we can see the same variable `dynamicType` can contain either a string or an integer with the same variable declaration. That is, the variable type does not need to be declared during creation or assignment.

> There are also more factors to be considered in choosing.

#### - Tech Field

There are lots of tech fields and each field has a more suitable language for operation, Examples:

- Data Science: Python 
- Full Stack Development: JavaScript 


#### - Job Opportunity 

Based on research and observation, JavaScript tends to be more popular and it creates more job openings for JavaScript developers.

> **Thanks for reading through this article and I hope you found it useful, you can connect with me on;**

- [Twitter](https://twitter.com/chryzcode)
- [GitHub](https://github.com/chryzcode)
- [Linkedin](https://www.linkedin.com/in/olanrewaju-alaba/)

**Bye.**