Software Development in 2018: Trends, Tools & Technologies

TL;DR

Afa
6 min readAug 9, 2018

Here’s a list of software tools & technologies that are popular among software developers around the world in 2018.

Full Stack Web-Development

  • Javascript, Node.js & React.
  • MongoDB, MySQL, Redis & AWS.
  • Also worth knowing: Typescript, Docker, Kubernetes, PostgreSQL & Elasticsearch.

In the Python programming language community, Django is the popular choice for implementing web-services.

Mobile Apps

  • For creating Android apps, Kotlin & Java are the officially supported programming languages.

Machine Learning & AI

  • Python, Tensorflow & PyTorch

Java Platform

  • For creating software applications for the Java platform, Java programming language and the Spring framework are quite popular. Java is evolving quite rapidly with Java 10 being released recently.

Windows Ecosystem

  • For creating software applications for the windows ecosystem, the C# programming language and the .Net framework are the popular choices.

Programming Languages

  • Rust, Go & Kotlin are the new kids on the block.

Text Editor

  • Visual Studio Code by Microsoft is the most popular code editor among the developers.

Software Development is a creative, dynamic & community driven field. Tools and technologies using which the developers build software changes quite rapidly. In such a scenario, it’s beneficial to know what tools & technologies other developers, around the world, are using to create better software, faster.

Before we move on, let me cite the reference for this blog post, which is the stack overflow developer survey, in which about a 100 thousand software developers, across the globe, took part in.

The majority of the roles assumed by software developers are Front-end, Back-end, Full-stack and Mobile developers, with almost 60% of the developers identifying themselves as Back-end developers. It’s interesting to know that almost 50% of them contribute to open-source projects. It’s surprising to know that almost 50% of the developers use Windows as their primary development operating system (OS), followed by macOS (25%) and the rest using Linux. Visual Studio Code has become the most popular code-editor among the software developers.

Popular Tech

Programming Languages

Javascript (JS) leads the pack of the most popular programming languages among software developers. Started initially as a tool to make dynamic web-pages, it rapidly became a general purpose programming language with the introduction of Node.js framework. Using Javascript, we can build web front-ends, back-ends and cross platform software applications for macOs, Windows and Linux.

Java takes the second spot. Introduced in the mid 90s, with it’s ability to write-once, deploy on any platform that can run the Java Virtual Machine (JVM) and object-oriented design, it quickly became popular among software developers during that time. Using Java, we can build web back-ends, Android apps and cross platform software applications for macOS, Windows and Linux.

Python takes the third sport. Python is general purpose programming language which aims to provide a simple language syntax, using which software developers can write readable and maintainable software. During the decade of year 2000, many popular web-services were implemented using Python (Google, Youtube, Reddit, Quora etc). Now, with the rise of Machine Learning & Data Science, it’s popularity is soaring again. Using Python, we can create web back-ends and cross platform software applications for macOS, Windows and Linux.

Frameworks

The top 3 spots in the most popular frameworks category are taken by the Javascript frameworks.

Node.js takes the top spot. Prior to Node.js, Javascript was mainly confined to run inside web-browsers. With the introduction of Node.js, software developers could write Javascript programs that can run without a web-browser and can access computer’s resources. Coupled with the ability of front-end developers being able to write back-end code & vice-versa, async support out of the box and 3rd party libraries for doing just about anything (npm), Node.js revolutionized the way how web-services are developed. Using Node.js, software developers can create web back-ends and cross platform software applications for macOS, Windows and Linux.

Angular & React take the second & third place respectively. Using Angular & React, software developers can create modern web front-ends. Recently, React has been gaining a lot of popularity and it’s expected to displace Angular to become the dominant front-end framework.

Fourth place is taken by .Net Core, a software framework using which we can build web back-ends. It’s worth checking the .Net framework’s home page. Using the .Net framework, we can build cross-platform web back-ends, cross-platform mobile apps, games & IoT apps for the Windows platforms.

The next position held by Spring, a Java framework using which we can create software for platforms that can run the JVM.

The sixth place is taken by Django, a Python framework using which we can create web back-ends.

Databases

MySQL, SQL Server & PostreSQL take the first 3 places in the most popular databases category. They are all relational database management systems (DBMS).

MySQL is an open-source DBMS, which is now owned by Oracle. SQL Server is DBMS from Microsoft. PostgreSQL is also an open-source DBMS which is used for data warehousing purposes.

The next place is taken by MongoDB, a popular NoSQL database, followed by SQLite, a light-weight, extremely fast & simple database.

It is followed by Redis, an in-memory database, which is mainly used for caching purposes.

Platforms

In this context, a platform is an operating system or an environment in which a software application is run.

The most popular platform is Linux, followed by Windows desktop/server.
Android takes the third place, which indicates that it is the dominant mobile platform among the mobile app developers. Amazon Web Services (AWS) takes the fourth place.

Most Loved, Dreaded & Wanted

In this section, we’ll discover what the developers love, hate and want in each category. This gives a good indication of what technologies might become popular in the future. For the purposes of this discussion, the items that fall under the loved & dreaded categories are the items which the developers have used and expressed their opinions. The item in which they have shown and interest are those which they haven’t tried or used and they want to learn or use them.

Programming Languages

Loved Rust, Kotlin & Python.
Dreaded VB6, Cobol & Coffeescript.
Wanted Python, Javascript & Go.

Rust is programming language which aims to be a programming language for creating system software (such as operating systems, game engines etc.). It’s primary focus is memory safety and high performance.

Kotlin is an application programming language which requires the JVM to run. A software written using Kotlin can be run on any machine that can run the JVM. The goal of Kotlin is to become a better programming language than Java. Kotlin is the second officially supported programming language for creating Android apps.

Go is a programming language developed by Google, with the aim to create new a programming language, which has the good features of C++ (high performance and scalability) and overcomes the negative aspects of it.

Frameworks

Loved — Tensorflow, React & Pytorch.
Dreaded — Cordova, Xamarin & Hadoop.
Wanted — React, Node.js & Tensorflow.

Tensorflow is machine learning framework by Google, using which we can build machine learning applications. Pytorch is a deep learning framework. Both Tensorflow & Pytorch are Python frameworks.

Databases

Loved — Redis, PostgreSQL & Elasticsearch.
Dreaded — IBM DB2, Oracle & memcached.
Wanted — MongoDB, Elasticsearch & PostgreSQL.

Elasticsearch is text search engine. For example, using Elasticsearch, we can build text auto-complete/search-as-you-type functionality. Along with Logstash and Kibana, it’s popularly used for log processing.

Platforms

Loved — Linux, Serverless & AWS.
Dreaded — Sharepoint, Drupal & Salesforce.
Wanted — Android, Raspberry PI & AWS.

Serverless a paradigm supported by major cloud providers, is way of developing web services consisting of managed services provided by the cloud providers. In this way, the developers/companies need not maintain their own servers for software development and operation purposes.

Well, that was a lot of information! What type of software do you develop? What skills do you posses? What skills are you planning to acquire? Let the discussion begin!

--

--