Programming Languages

Programming Languages



Apr 2017 Apr 2016 Change Programming Language Ratings Change
1 1   Java 15.568% -5.28%
2 2 C 6.966% -6.94%
3 3 C++ 4.554% -1.36%
4 4 C# 3.579% -0.22%
5 5   Python 3.457% +0.13%
6 6   PHP 3.376% +0.38%
7 10 change Visual Basic .NET 3.251% +0.98%
8 7 change JavaScript 2.851% +0.28%

Languages becoming more popular:

R :  open source programming language and software environment for statistical computing and graphics

Swift :  general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. Replacing objective-C

GO:  (often referred to as golang) is a free and open source programming language created at Google. It is a compiled, statically typed language, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added. Java, C++ replacement.

Hack is a programming language for the HipHop Virtual Machine (HHVM), created by Facebook as a dialect of PHP.

Functional programming: Scala, Clojure (java),

RedMonk Top Ten languages

1 JavaScript
2 Java
4 Python
5 C#
5 C++
5 Ruby
9 C
10 Objective-C



StackOverflow Most Popular Technologies


  • Javascript
  • PHP
  • Angular
  • Java
  • Node.js
  • Python
  • React
  • MongoDB
  • Cloud (AWS, GAE, Azure, etc.)


  • Notepad++
  • Sublime Text
  • Eclipse

Java vs Python

Speed :

Java wins due to JVM optimisations / JIT compilation.

Java supports concurrency. The Global Interpreter Lock (GIL) in the dominant implementation of Python, CPython, stands in the way of such scaling.

Neither suited for high performance

Agility :

Java wins with JUnit and its association with test-driven development (TDD). Its strong typing leads to more consistent refactoring support in IDEs.

Python has a more dynamic type system and has test features in its standard library.



The Java Tutorials – Interfaces

The Java Tutorials – Interfaces

Onwards into the Interfaces and Inheritance tutorial, starting with Interfaces. This is a short one, starting with an overview and moving onto the more interesting topic of how to evolve or update interfaces.

Continue reading “The Java Tutorials – Interfaces”

The Java Tutorials – Annotations

The Java Tutorials – Annotations

The Learning the Java Language trail moves onto Annotations. Annotations are a form of metadata that can provide data about the program and there is more to them than you might think…

Continue reading “The Java Tutorials – Annotations”

The Java Tutorials – Enums

The Java Tutorials – Enums

Just as you were thinking you were finally at the end of the Classes And Objects tutorial, along comes Enums!

  • Use enum types to represent a fixed set of constants.
  • The enum declaration defines a class which implicitly extends java.lang.Enum
  • The class includes a static values method that returns an array of all values.

Continue reading “The Java Tutorials – Enums”

The Java Tutorials – Method References

The Java Tutorials – Method References

Method References are part of Lambda Expressions in The Java Tutorials but that’s a pretty big topic so I’m splitting it out here. It’s also a little hard to follow the examples if you are not familiar with Generics.

When a lambda expression does nothing but call an existing method, it’s often clearer to refer to the existing method by name. We can do this with a Method Reference.

Continue reading “The Java Tutorials – Method References”

The Java Tutorials – Lambda Expressions

The Java Tutorials – Lambda Expressions

The next section deals with Lambda Expressions with are new to Java 8 and fairly mind-bending. A Lambda Expression is a more succinct version of an Anonymous Class.

Continue reading “The Java Tutorials – Lambda Expressions”

The Java Tutorials – Nested Classes

The Java Tutorials – Nested Classes

A large chunk of the Classes and Objects tutorial deals with Nested ClassesInner Classes, Local Classes,Anonymous Classes, Lambda Expressions, and Method References. All these provide ways to:

  • logically group classes that are only used in one place
  • increase use of encapsulation as the outer class can have private members that the inner class can access
  • create more readable and maintainable code

The end of the tutorial has some suggestions about which approach to use. I’m starting with this before diving into the detail:

Continue reading “The Java Tutorials – Nested Classes”