Software Development in 2018: Trends, Tools & Technologies
Here’s a list of software tools & technologies that are popular among software developers around the world in 2018.
Full Stack Web-Development
- 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.
- For creating Android apps, Kotlin & Java are the officially supported programming languages.
Machine Learning & AI
- Python, Tensorflow & PyTorch
- 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.
- For creating software applications for the windows ecosystem, the C# programming language and the .Net framework are the popular choices.
- Rust, Go & Kotlin are the new kids on the block.
- 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.
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.
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.
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.
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.
Loved — Rust, Kotlin & Python.
Dreaded — VB6, Cobol & Coffeescript.
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.
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.
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.
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!