Brief Summary of (Some) Programming Languages

When I first decided to approach the developing world last year, I remember being overwhelmed by the plethora of languages, frameworks, and career paths. To this day, I haven’t connected the dots among them. So, in this post, I’ll be briefly going over the characteristics, downsides, and upsides to various programming languages.

Before we go on, let’s clarify what a framework is. It is a broad term that can define many things, but in general provide components or solutions that are usually customized to a specific language and helps speed up development. It can include programs, compilers, code libraries, and APIs

I am only familiar with Dart and JavaScript, so most of the information below is a paraphrased amalgamation of various sources on the internet. They are not written in any particular order.

C

One of the oldest programming languages, C came to life in the 70s and it is a general-purpose computer programming language introduced for programs that make up the operating systems. As such, it supports only primitive, fixed data types. It is the backbone of many other programming languages such as C#, Java and JavaScript.

C is an imperative (procedural) programming language, which uses series of statements that change the program’s state and reach a particular goal. It is also a statically typed language — memory allocation is done at compilation time (dynamic memory allocation) and developers need to declare type.

From what I know about C, it can be , but once you know what you’re doing, you have higher control over the process in which your code runs.

  • Advantages:
    - portable (can run on various platforms)
    - easy to learn
    - plethora of library functions
    - high control over the process in which your code runs
    - fastest compilation (it is machine language)
    - Dynamic Memory Allocation
  • Disadvantages:
    - tedious requiring you to write code for many things that other languages automatically do for you
    - need to have some programming skills
    - lack of Object-Oriented Programing (OOP) concepts, hence no constructor or destructor
    - lack of exception handling

C++

Although it is an extension of C, it is an OOP language and supports generic data types. C++ is also a static language that uses pointers which holds the memory address of a particular object. It is used extensively for high-end programming such as games, desktop applications, operating systems, and embedded systems (smartwatches, medical machines etc).

  • Advantages
    - As an extension of C, the advantage of C apply
    - Big big community and job market
  • Disadvantages:
    - Pointers are difficult to learn
    - No garbage collection
    - less flexible regarding syntax
    - no built-in threads

C# was developed by Microsoft as an object-oriented programming language in 1979.

JavaScript

JavaScript(JS) was originally used to (and still is) develop web browsers (along with HTML and CSS), but now, its usage has extended to server-side deployments (Node.js) and non-web browser applications. JS has been around since 1995, and therefore, one of the most popular languages, and it is an open-source language maintained by non-profit organizations.

It is a dynamic language (explicit declaration of variables is NOT required and memory allocation is done at run-time); it is NOT an Object-Oriented, but it is Object-Based, which does not support proper inheritance and rather, it is prototype based. JavaScript is actually a functional programming language. (And hence, it is viewed as a multiple programming paradigm language).

  • Advantages
    - relatively simple to learn and implement
    - very popular language and hence big job market
    - speed (“interpreted language”)
    - interoperability — works well with other languages (e.g. embed it on webpage, inside script of another language)
    - rich interface for web pages
    - versatility (front-end and back-end)
  • Disadvantages:
    - client-side security — code is viewable to user without extra support
    - browser support — browsers interpret JS differently
    - single inheritance
    - errors are displayed at runtime

Frameworks: Node.js, AnguarJs, ReactJS, Vue.js, Ember.js, Mithril, Polymer, Backbone.js etc.

TypeScript

TypeScript(TS) is JavaScript’s (optionally) statically typed sibling by Microsoft in 2012, which fills in some gaps of JavaScript. It is a compiled language and used only for web(?).

  • Advantages
    - classes and interfaces
    - better OOP procedures
    - errors are displayed while developing
    - well suited for large code bases
  • Disadvantages:
    - cannot be rendered or run in a browser or server — must be transpiled to JS

Java

Do not get confused with Java and JavaScript has the two are distinct languages. Unlike the independent JavaScript, Java is owned by Oracle. It is an object-oriented language that is used for many industries, including web and mobile applications, and big data. These are some companies that use Java for their server-side code: Google, Amazon, Twitter, and YouTube.

  • Advantages
    - portable language (WORA — Write Once, Run Anywhere)
    - can access and manipulate computer functions (e.g. file system, graphics, sound)
    - extensive online community
    - automatic garbage collection
    - no pointers
  • Disadvantages:
    - memory-consuming, slow
    - verbose and complex code

Frameworks: Spring, Struts, Hibernate

Python

Python is a general-purpose, interpreted and high-level dynamic language. It is popularly used for machine learning, artificial intelligence-related programming, 2D imaging, 3D animation, and games; it runs on web and desktop.

  • Advantages
    - easy for beginners to learn (good readability)
    - supports multiple programming paradigm
    - extensive community and library; great official documentation and tutorials
  • Disadvantages:
    - not as easy to use with other programming languages
    - low execution speed
    - not suited for memory-intensive programs and mobile applications
    - errors only shown at run-time

Go(lang)

Developed by Google, Go, also known as Golang, seems to be gaining popularity these days due to its simplicity, much like Dart. Many companies already seem to be using Go, such as Google (obviously), YoutTube, Facebook, BBC, Apple, Docker, Dropbox etc. It is a strongly, statically typed language that allows for object-oriented design, mainly used for desktop (although it is cross-platform).

  • Advantages
    - easy to learn; minimalist language
    - garbage collect
    - extensive community and library; great official documentation and tutorials
    - compiled directly to machine code — fast!
  • Disadvantages:
    - is it possibly too simple?
    - not completely OOP — no type hierarchy
    - no generics
    - young language — not a lot of library support

Kotlin

A relatively recent language as well, Kotlin a general-purpose programming language developed by JetBrains, mainly to combat disadvantages of Java. It is used mainly to develop Android apps, web and desktop applications, and server-side application development. It is a genera

  • Advantages
    - interoperability with Java (but not compatible with Java)
    - large ecosystem of IDEs and SDK tools
    - less buggy-easier to maintain code and compile-time error handling
  • Disadvantages:
    - slower compilation speed
    - less support

PHP

Similar to JavaScript, PHP is an open-source language created in 1990. It is currently mainly used for web development, and can be used to write server-side scripts, command-line scripts and to develop desktop applications. It’s syntax is analogous to C

  • Advantages
    - flexible with database connectivity; has built-in database connection modules
    - easy to develop
    - open-source
    - platform-independent
    - easily integrated with different programming languages and tools
  • Disadvantages:
    - open-source-not secure
    - not suitable for large applications
    - lacks debugging tools

Swift

Another recently developed language, Swift was developed by Apple in 2014 for Linux and Mac applications. It is used mainly used to develop iOS apps.

  • Advantages
    - easy to learn
    - clean syntax; less code
    - open source
    - comparatively fast development process
  • Disadvantages:
    - young language — not as much support
    - poor interoperability with third-party tools
    - lack of support for earlier iOS version

Ruby

Ruby is a statically typed, dynamic language. It has various uses, such as web development, static site generation, command-line tools, automation, DevOps and data processing.

  • Advantages
    - multi-paradigm programming — object-oriented, functional, imperative
    - portable language
    - plethora of libraries and plugins
    - good testing infrastructure
    - better code readability; minimizes code lines
  • Disadvantages:
    - not as widely used as some other languages
    - slow performance
    - strict guidelines and design paradigms

Frameworks: Ruby on Rails

Dart

Dart was developed by Google in 2011 to develop fast apps on multiple platforms, such as Android, iOS, web, Mac and Linux. It is an Object-Oriented language that supports inheritance, interfaces, and optional typing features.

  • Advantages
    - easy to learn
    - good official documentation
    - high performance and speed
    - easy to practice code with DartPad
    - uses AoT (Ahead-of-Time) and JiT (Just-in-Time) compilation simultaneously, which no other language does
  • Disadvantages:
    - fairly new language — less support, less job market demand, and still in development
    - no native support

Frameworks: Flutter

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store