Categories
Community

Language Communities – An update

The choice of programming language can greatly influence the roles, projects, and general opportunities that a developer has. Languages are a classic subject of debate and represent the foundation of some of the strongest developer communities. Tracking language use is not just for developers however; languages and their communities matter to toolmakers too, as they want to ensure they provide the most useful SDKs.

It can be challenging to accurately assess how widely a programming language is used. The indices available from sources like Tiobe, Redmonk, GitHub’s Octoverse report, and Stack Overflow’s annual developer survey are great, but offer mostly relative comparisons between languages, providing no sense of the absolute size of each community.

The estimates here look at software developers using each programming language; across the globe and across all kinds of programmers. They are based on two pieces of data. First, is SlashData’s  independent estimate of the global number of software developers, which was published for the first time in 2017. SlashData estimates that, as of Q3 2023, there are 38.9 million active software developers in the world. Second, is the Developer Nation large-scale, low-bias surveys, which reach tens of thousands of developers every six months. In these surveys, SlashData has consistently asked developers about their use of programming languages across 13 areas of development. This gives a rich and reliable source of information about who uses each language and in which context.

Over the past six months, SlashData’s methodology has specifically been redesigned for estimating the overall usage of each programming language across all areas of development. This was done so, in order to correct for imbalances introduced by development areas contributing more or less than they should to the overall usage of each language. In this chapter, we have retroactively applied our more robust methodology to our historical data as well. Hence, here you are presented with updated language community estimates from the last two years using improved estimation methods. 

“JavaScript widens its community size lead”

JavaScript continues to take the top spot for programming languages for the sixth year, with roughly 22.5M active developers worldwide. The language’s dominance is unlikely to be challenged in the near future, as its continued growth in recent years has led to a lead of 5M or more developers ahead of the next closest languages, Java and Python. An important factor in its projected continued popularity – JavaScript’s large community is not dependent on any one software sector. More than half of developers across all software sectors in any capacity – either as a professional, hobbyist, or student – report using JavaScript. Even in sectors where it is not a popular language, for example, IoT devices, we still observe that one in five developers use it.

“22.5M Developers worldwide use Javascript as it continues to be the most popular programming language”

Java and Python remain close to one another in second and third place, with 17.5M and 16.8M developers, respectively. Following a gap of roughly 8M, come C++ and C#; each with around 10.3M and 10.2M developers, respectively, to round out the top five languages. On the opposite end of the spectrum, Lua (1.6M) and Ruby (2.3M) have the fewest users among the language communities we trace. In the latter half of this chapter, we examine select user trends and provide analysis of various community dynamics.

“Dart and Rust grew at an average annual rate of more than 30% in 2023”

JavaScript’s dominance appears as though it will continue as its growth over the past year has outpaced its closest competitors, Java and Python. The 10% annual growth in the number of JavaScript users is noteworthy, considering the communities’ already substantial size. It is, however, below the year-over-year growth of the global developer community as a whole – which, between Q3 2022 and Q3 2023, we estimate to be 16%.

As anticipated, we observe the most dynamism in the smaller language communities. Dart and Rust grew at a rate considerably faster than the overall developer community in the last 12 months. Dart was the fastest-growing language community in 2023. It expanded its community by roughly 33% over the past year. Its popularity is partly due to its association with the Flutter framework, which enables developers to target multiple platforms – mobile, desktop, web, and embedded – with their apps from a single codebase. While Dart is still somewhat of a “niche” community, it is currently estimated that it has just under 3M global users.

Rust, on the other hand, has enjoyed slightly more mainstream acclaim compared to Dart and over the past year has grown by just under a million users to around 3.5M. This growth amounts to a 31% increase from 12 months ago. However, with many large software companies using Rust for its safety features and performance, among other reasons, its continued future growth is all but certain. 

Finally, while the annual growth rate of Swift, 21%, is below that of Rust and Dart, the consistency it has shown in attracting new users is one of the factors that make the language community noteworthy. As we approach the 10-year anniversary of the language, its speed and ties to Apple – its creator – suggest that the in-demand language will continue to grow into the future. Swift’s growth, however, is linked to Objective-C’s stagnation as it now serves as the go-to iOS language. 

In 2022 and 2023, Objective-C’s community growth has been below that of the growth of the developer community worldwide. Hence, while Apple continues to support the language, with no updates planned from Apple’s side, we do not anticipate a growth in users in the coming years.  

Objective-C, however, was by no means the only language community that has not experienced growth in 2023. We estimate that Ruby, Lua, and C all have retained communities that are relatively consistent in size over this past year. 

Categories
Community

Language Communities; Who leads the way?

The choice of programming language matters deeply to developers because they want to keep their skills up-to-date and marketable. Languages are a beloved subject of debate and the kernels of some of the strongest developer communities. They matter to toolmakers, too, because they want to make sure they provide the most useful SDKs.

size of programming language communities in 2023

It can be challenging to accurately assess how widely a programming language is used. The indices available from sources like Tiobe, Redmonk, Github’s State of the Octoverse, and Stack Overflow’s annual survey are great but offer mostly relative comparisons between languages, providing no sense for the absolute size of each community. These may also be biased geographically or skewed toward certain fields of software development or open-source developers.  ​

The estimates presented here look at software developers using each programming language globally and across all kinds of programmers. They are based on two pieces of data. First is SlashData’s  independent estimate of the global number of software developers, which was published for the first time in 2017. According to it, as of Q1 2023, there are 35.6 million active software developers worldwide. Second is the large-scale, low-bias Developer Nation Global survey which reaches tens of thousands of developers every six months. In these surveys, devleopers are  consistently asked about their use of programming languages across 13 areas of development. This gives a rich and reliable source of information about who uses each language and in which context. 

JavaScript remains the most widely used language. 

For the 12th survey in a row, JavaScript continues to take the top spot for programming languages, with 20M active developers worldwide. Notably, JavaScript is still experiencing growth, with a further 2.6M developers joining the community in the last 12 months. JavaScript’s lead is unlikely to be challenged in the near future, as its community has almost 3M more developers than the next closest languages. Moreover, JavaScript’s popularity extends across all software sectors, with at least 20% of developers using it in their projects. 

“Close to eight million developers joined the Java community in the last two years.”

In 2020, Python unseated Java as the second most popular programming language, but in Q1 2023, Java returned to just matching Python, with both languages now counting just over 17M developers. Java is one of the most important general-purpose languages, and although it is over two decades old, it has seen incredible growth over the last two years, gaining close to 8M users. This corresponds to the highest growth in absolute terms across all languages. Java’s growth is not only supported by traditional sectors such as cloud and mobile but also by its rising adoption among AR/VR developers, in part due to Android’s popularity as an AR/VR platform. 

Despite Java catching up, Python keeps adding new developers. However, in the last 12 months, only 1.3M developers joined the Python community, compared to the massive 5.6M developers who joined between Q1 2021 and Q1 2022. A major driver of Python’s growth was the rise of data science and machine learning, where 70% of developers involved were using Python in Q1 2022. However, this has decreased to 60% in Q1 2023, with other languages, such as Rust, Java, and Mathematica, receiving small increases and likely reducing Python’s growth. ​

The group of major, well-established languages is completed with C/C++ (13.3M), C# (11.2M), and PHP (8.8M). PHP has seen the second-slowest growth rate over the last 12 months, growing just 11% and adding 0.9M developers to its community. PHP is a common choice for backend and web developers but has seen decreasing popularity. 

PHP was used by almost 30% of all developers in Q3 2020 but by 25% of all developers in Q1 2023. This decrease in popularity is particularly apparent amongst web developers, for whom it has gone from the second most popular language in Q3 2021 (34%) to the fourth most popular language (25%) in Q1 2023, behind JavaScript, Python, and Java. Despite PHP 8 addressing many of the concerns developers had expressed about PHP, perceptions of it being insecure or outdated may persist.​

C and C++ are core languages in embedded and IoT projects, for both on-device and application-level coding, but also in desktop development, a sector that accounts for almost 45% of all developers. On the other hand, C# has maintained its position as one of the most popular languages for games and desktop applications. Overall, C/C++ added 2.3M net new developers in the last year, while C# added 1.4M over the same period. 

ranking of programming languages

Kotlin’s growth is beginning to slow

In previous editions of this report, Kotlin and Rust were identified as two of the fastest-growing language communities. If Kotlin’s growth continues, it will soon overtake PHP and join the ranks of the most popular languages. Kotlin’s growth has been largely attributed to Google’s decision in 2019 to make it the preferred language for Android development. It is currently used by 19% of mobile developers and is the third most popular language in the space. However, Kotlin may be showing signs of slowing its exceptional growth. Kotlin now has a community of more than 5.3M developers and has added more than 2.5M developers in the last two years. However, in the last year, there has only been an increase of 0.5M developers. Kotlin’s explosive growth may have resulted from a high demand for developers with Kotlin experience to fill a market need that may be approaching a level of market saturation. Despite Google’s preference for Kotlin, the inertia of Java means that it is still the most popular language for mobile development and still experiences immense growth.

“Rust has more than tripled the size of its community in the past two years”

Rust has more than tripled the size of its community over the past two years and currently has 3.7M users, of which 0.6M joined in the last six months alone. Rust has overtaken Objective C in the last six months and is the 11th most popular language in our survey. Rust has seen increased adoption in IoT, games, and desktop development, where it is desired for its potential to build fast and scalable applications. Rust was designed to handle high levels of concurrency and parallelism. Thus it can handle increasing amounts of work or data without sacrificing performance. Furthermore, Rust has built a loyal community of developers who care about memory safety and security.

Swift currently counts 5.1M developers, adding more than 1.6M net new developers over the past year. This growth continues to stem from Apple making Swift the default programming language across the Apple ecosystem, which has the effect of phasing out the use of Objective C. Despite this, Objective C has also shown strong growth, adding 1.0M developers in the last year alone, resulting in a community of 3.4M developers. This is primarily through its use among IoT developers, who are increasingly turning to it for their on-device code, as well as a growing number of AR/VR developers. Nonetheless, Objective C has fallen behind Rust, whose more modern approach may be more appealing to developers.​

Go and Ruby represent two of the smaller language communities that are important in backend development, but Go has seen substantially more growth over the last two years. Go’s developer community has more than doubled in the last two years, adding 2.3M new developers to its population, which stands at 4.7M developers. Similarly, Ruby has added 1.0M users to its community of 3.0M developers, showing impressive growth but trailing further behind Go. 

“Lua has added almost 1M developers to its community in the past year”

In the past six months, Lua has overtaken Dart to become the 14th most popular programming language. Lua has shown massive growth over the past year, going from 1.4M developers in Q1 2022 to 2.3M in Q3 2023. Lua is an alternative scripting solution for low-level languages, such as C and C++, and has seen more developers in IoT, games, and AR/VR picking it up. This could mark the beginning of Lua’s momentum and see it become increasingly popular, especially as the IoT and AR/VR spaces continue to grow. Dart has seen steady but slow growth over the past two years, predominantly due to the Flutter framework in mobile development filling a useful niche. However, with 13% of mobile developers currently working in Dart, a decrease from 15% in Q1 2022 may see Dart’s growth remain low, and its place within mobile development remain a minority language.

Categories
Community

8 Java Programming Tricks; Unlocking developer-led growth and How to Build a Fast and Lightweight API

Welcome to yet another resource-packed newsletter by Developer Nation. In this one find Java tricks you should know about, build lightweight APIs with NodeJS and learn the difference between Agile-VS-Scrum, the terms often used interchangeably in modern Software Product Lifecycle.

Community Huddle

We invite you to Subscribe to our Youtube channel where you can find videos, podcasts, webinars and updates which will help you master new skills, notify you of our upcoming surveys and take your career to new heights. We hope to see you there supporting our new initiatives. 

Resources

💡 8 Java Programming Tricks Every Java Developer Should Know

In this article, we’ll explore eight Java programming tricks every Java developer should know, including how java developers for hire can help you implement them in your projects.

🪪 Why Custodial Wallets Remain Popular Among Some Crypto Users

For storing, transmitting, and receiving digital assets, cryptocurrency wallets are crucial tools. Custodial and non-custodial wallets are the two major varieties that are available

Training

🛠️ How to Build a Fast and Lightweight API with Node.js and SQLite

In this article, we’ll show you how to create a Node.js API that uses an SQLite database to store product information.

🧪React Native run-android: How to Test Various Device Types

One of the key benefits of React Native is its ability to test apps on various device types, including emulators, simulators, and physical devices.

Hacks, Tips and Tricks

🤗 Welcome to Rails Cheat Sheet
Agile 🆚 Scrum
Subscribe below to the Developer Nation Newsletter for more interesting blogs, job postings, upcoming events, free tickets, giveaways and more. 
Categories
Community Tips

8 Java Programming Tricks Every Java Developer Should Know

Java is one of the most popular programming languages in the programming world, used by millions of developers to build complex software systems and applications. As a Java developer, it’s essential to stay up-to-date with the latest trends and techniques to remain competitive and produce high-quality code. In this article, we’ll explore eight Java programming tricks every Java developer should know, including how java developers for hire can help you implement them in your projects.

  • Use Lambda Expressions

Lambda expressions are a powerful feature introduced in Java 8 that allow you to write functional-style code with less boilerplate. With lambda expressions, you can define a method as a parameter to another method, reducing the amount of code you need to write. For example, instead of writing:

List<String> names = new ArrayList<>();
for (Person person : people) {
    names.add(person.getName());
}

You can use a lambda expression like this:

List<String> names = people.stream()
.map(Person::getName)
.collect(Collectors.toList());

This code is more concise and easier to read, making your code more maintainable.

  • Use Optional Instead of Nulls

Nulls can cause many problems in Java code, including NullPointerExceptions, which can be difficult to debug. Instead of using nulls, use the Optional class, which allows you to represent an object that may or may not be present. Optional provides a safer and more elegant way to handle nulls in your code.

  • Use Streams for Collection Operations
    Streams provide a concise and powerful way to perform operations on collections in Java. With streams, you can perform operations like filtering, mapping, and reducing without the need for complex loops or temporary collections. Streams can significantly simplify your code and make it easier to read and maintain.
  • Use String.format for String Concatenation
    String concatenation can be a performance bottleneck in Java code, especially when concatenating large strings. Instead of using the + operator, use the String.format method to concatenate strings. String.format creates a formatted string that you can customize with placeholders and arguments, making your code more readable and efficient. 
public class StrFormat  
{  
    /* Driver Code */  
    public static void main(String args[])  
    {  
        String s1 = new String("Hello");    //String 1  
        String s2 = new String(" World");    //String 2  
        String s = String.format("%s%s",s1,s2);   //String 3 to store the result  
            System.out.println(s.toString());  //Displays result  
    }  
} 
  • Use Immutable Objects

Immutable objects are objects whose state cannot be changed after creation. Immutable objects are thread-safe and can simplify your code by eliminating the need for locks or synchronization. Use immutable objects whenever possible to improve the performance and reliability of your code.

String name = "baeldung";
String newName = name.replace("dung", "----");
assertEquals("baeldung", name);
assertEquals("bael----", newName);
  • Use Interface Default Methods

Default methods were introduced in Java 8 and allow you to add methods to an interface without breaking existing implementations. Default methods provide a powerful way to extend existing interfaces and create more flexible and maintainable code.

import java.time.*; 
public interface TimeClient {
    void setTime(int hour, int minute, int second);
    void setDate(int day, int month, int year);
    void setDateAndTime(int day, int month, int year,
                               int hour, int minute, int second);
    LocalDateTime getLocalDateTime();
}
  • Use Reflection Sparingly

Reflection is a powerful but dangerous feature in Java that allows you to inspect and modify the behaviour of a program at runtime. Reflection can be slow and error-prone, and should only be used when necessary. If possible, use other features of Java, such as interfaces, to achieve your goals.

import java.lang.reflect.*;

 
   public class DumpMethods {
      public static void main(String args[])
      {
         try {
            Class c = Class.forName(args[0]);
            Method m[] = c.getDeclaredMethods();
            for (int i = 0; i < m.length; i++)
            System.out.println(m[i].toString());
         }
         catch (Throwable e) {
            System.err.println(e);
         }
      }
   }
  • Use Enumerations Instead of Constants

Enumerations are a more powerful and flexible way to represent constants in Java. Enumerations allow you to group related constants and define their behaviour, making your code more expressive and maintainable. Use enumerations whenever possible to avoid the problems associated with traditional constants.

public class Main {
  enum Level {
    LOW,
    MEDIUM,
    HIGH
  }

  public static void main(String[] args) {
    Level myVar = Level.MEDIUM; 
    System.out.println(myVar);
  }
}
  • Use Try-With-Resources for Resource Management
    Try-With-Resources is a feature introduced in Java 7 that allows you to automatically close resources such as files, sockets, and database connections after they are no longer needed. Try-With-Resources can simplify your code and ensure that resources are always properly closed, reducing the risk of resource leaks and other problems.
  • Use Javadoc to Document Your Code
    Javadoc is a powerful tool for documenting your Java code. With Javadoc, you can create professional-looking documentation for your code that can be easily shared with other developers. Javadoc can also help you understand your own code better and identify potential problems and bugs.
  • Use Dependency Injection for Loose Coupling
    Dependency Injection is a design pattern that promotes loose coupling between components of a system. With Dependency Injection, you can inject dependencies into a class instead of creating them inside the class, reducing the complexity and dependencies of your code. Dependency Injection can also make your code more flexible and easier to test, making it a valuable technique for Java developers to learn.

Use Unit Testing for Quality Assurance

Unit Testing is a crucial technique for ensuring the quality and correctness of your Java code. With Unit Testing, you can test individual units of code in isolation, identifying and fixing problems before they become larger issues. Unit Testing can also improve the maintainability of your code by ensuring that changes and updates don’t introduce unexpected side effects or bugs. As a Java developer, it’s essential to understand and practise Unit Testing to produce high-quality, reliable code.

Conclusion

Java developers for hire can help you implement these programming tricks in your projects. The tricks we mentioned can improve the quality and efficiency of your code, and help you stay up-to-date with the latest trends and techniques in Java programming. But if you need to do it asap, Java developers for hire can help you implement these programming tricks in your projects.

Categories
Community

A Saga of Programming Languages: 2022 Update

The choice of programming language matters deeply to developers because they want to keep their skills up-to-date and marketable. Programming Languages are a beloved subject of debate and the kernels of some of the strongest developer communities. They matter to toolmakers too, because they want to make sure they provide the most useful SDKs.

It can be hard to assess how widely used a programming language is. The indices available from players like Tiobe, Redmonk, Stack Overflow’s yearly survey, or GitHub’s State of the Octoverse are great, but offer mostly relative comparisons between languages, providing no sense of the absolute size of each community. They may also be biased geographically or skewed towards certain fields of software development or open-source developers. 

The estimates we present here look at active software developers using each programming language; across the globe and all kinds of programmers. They are based on two pieces of data. First is our independent estimate of the global number of software developers, which we published for the first time in 2017. We estimate that, as of Q3 2022, there are 33.6 million active software developers worldwide. 

Second is our large-scale, low-bias surveys which reach tens of thousands of developers every six months. In these surveys, we have consistently asked developers about their use of programming languages across 13 areas of development, giving us rich and reliable information about who uses each language and in which context.

size of of programming language communities in Q3 2022

JavaScript continues to be the largest language community

JavaScript remains the most popular programming language for the 11th survey in a row, with over 19.5M developers worldwide using it. Notably, the JavaScript community has been growing in size consistently for the past several years. Between Q3 2020 and Q3 2022, Javascript experienced a 59% increase as 7.3M developers joined the community – one of the highest growths in absolute terms across programming languages. Not only do new developers see it as an attractive entry-level language, but existing ones are also adding it to their skillset. JavaScript’s popularity extends across all sectors, with at least a quarter of developers in every sector using it.

Developers joined the JavaScript community in the last two years

In 2020, Python overtook Java as the second most widely used language and now counts nearly 17M developers in its community. Python has continued to show strong growth, having added about 8M net new developers over the last two years. The rise of data science and machine learning (ML) is a clear factor in Python’s growing popularity. To put this into perspective, about 63% of ML developers and data scientists report using Python. In comparison, less than 15% use R, the other language often associated with data science.

Java is one of the most important general-purpose languages and the cornerstone of the Android app ecosystem. Although it has been around for over two decades, it continues to experience strong growth. In the last two years, Java has almost doubled the size of its community, from 8.3M to 16.5M. For perspective, the global developer population grew about half as fast over the same period. Within the last year alone, Java has added 6.3M developers, the largest absolute growth of any language community. Our data suggest that Java’s growth is supported not only by the usual suspects, i.e. backend and mobile development but also by its rising adoption in AR/VR projects, likely due to Android’s popularity as an AV/VR platform. 

The group of major, well-established programming languages is completed with C/C++ (12.3M), C# (10.6M), and PHP (8.9M). PHP has seen the slowest growth rate of all languages over the last year, growing just 22%, adding 1.6M net new developers. PHP is a common choice for cloud and web developers but has seen decreasing popularity, particularly amongst web developers where it has gone from the second most popular language in Q3 2021 behind JavaScript, to the fourth most popular in Q3 2022, with Python and Java becoming more popular choices.

C and C++ are core languages in embedded and IoT projects, for both on-device and application-level coding, but also in mobile and desktop development, which are sectors that attract 17.7M and 15.6M developers respectively. C#, on the other hand, has maintained its popularity among multiple different areas of software development, particularly among desktop and game developers. C/C++ added 4.3M net new developers in the last year and C# added 2.8M over the same period.

Rust and Kotlin continue their rise in popularity

We have previously identified Rust and Kotlin as two of the fastest-growing language communities and this continues to be the case. Rust has more than tripled in size in the past two years, from just 0.8M developers in Q3 2020 to 2.8M in Q3 2022. Rust has added 0.7M developers in the last six months alone and is close to overtaking Objective C to become the 11th largest language community. Rust has formed a strong community of developers who care about performance, memory safety, and security. As a result, it has seen increased adoption in IoT software projects, but also in desktop and game development, where Rust is desired for its ability to build fast and scalable projects.

Kotlin has also seen a large growth in the last two years, more than doubling in size from 2.3M in Q3 2020 to 6.1M in Q3 2022. As such, it went from the ninth to the seventh largest language community during this time, overtaking Swift and those using visual development tools. This growth can largely be attributed to Google’s decision in 2019 to make Kotlin its preferred language for Android development it is currently used by a fifth of mobile developers and is the second most popular language for mobile development. Despite Google’s preference for Kotlin, the inertia of Java means that, after three years, it is still the most popular language for mobile development.

Swift currently counts 4.2M developers and is the default language for development across all Apple platforms. This has led to a phase-out of Objective C (3M) from the Apple app ecosystem. However, Objective C has maintained its place among IoT developers and increasing adoption for on-device code, and AR/VR developers, leading to a similar increase in the number of Swift and Objective C developers in the last two years; 1.8M and 1.6M respectively.

The more niche languages – Go, Ruby, Dart, and Lua – are still much smaller, with less than 4M active developers each. Go and Ruby are important languages in backend development, but Go is the third fastest-growing language community and has added more than twice as many developers as Ruby in the last two years; 2.3M and 1.0M new developers, respectively. This is likely due to the fast development cycle it offers even though it is a compiled language.

Dart has seen steady growth in the last two years, predominantly due to the increasing adoption of the Flutter framework in mobile development, with 13% of mobile developers currently using Google’s language. Finally, Lua is among the fastest-growing language communities, mainly drawing in IoT, game, and AR/VR developers looking for a scripting alternative to low-level programming languages such as C and C++.

Categories
Tips

Tips for Choosing a Programming Language for your IT Career & Projects

Choosing a programming language can be complicated as many aspects need consideration. You might wish it was as easy as choosing between various flavors of ice cream or pizza. Ask any developer or technical manager to understand what drives popular choices in the tech world. In this article, you can learn what drives a choice of programming languages and the data-driven decisions developers should take to safeguard their careers while ensuring success in the projects they deliver.

Technology changes rapidly in today’s digital race, and the chosen language must get future potential to remain in use with strong developer communities, or else organizations can face maintenance and integration issues. Even young developers are keen to know which languages have excellent career potential, so they invest their time wisely.

Young developers may make the mistake of choosing a programming language because it’s trendy and cool. As a young developer, you can avoid these mistakes by referring to various tech forums and authentic sources like Slashdata’s – 22nd edition of The State of the Developer Nation (Q1 2022) that offer insights into popular programming languages and their growth trends.

Choosing a programming language

The choice of a programming language gets intertwined between your career aspirations and work experience. You learn a programming language and need to work on projects to gain relevant industry experience. So as a developer, you need to have a holistic approach to choosing a suitable language.

Choosing a programming language depends on various factors, and you should know all the components to get a better view and then make a choice. A good selection of programming languages will lead to spending less time on scaling, maintenance, and other aspects like security in projects.

Here are some typical questions you must ask when choosing a programming language for a project.

  • Does the programming language have proper community ecosystem support? Is it going to work over the long term? Is vendor support available?
  • What is the type of environment for the project – web solution, mobile, cross-platform, etc.?
  • Are there any infrastructure considerations like new hardware or particular deployment needs?
  • What do the clients prefer?
  • Are there any specific requirements for the programming language’s libraries, tools, or features?
  • Are experienced developers available for the programming language?
  • Are there any performance considerations, and can the language accommodate this performance?
  • Is there a security consideration or requirement for any third-party tool?

It would help if you remembered that irrespective of the chosen programming language, you can write good or bad code with any language. Besides the typical questions above, it’s advisable to consider a few critical factors in-depth before choosing a programming language. In programming, adherence to widely accepted design principles and philosophies is essential.

Some critical considerations driving the choice of a language include the following:

1. Type of application

The type of application varies from complicated embedded firmware to web and mobile. Common programming languages like Java, Python, JavaScript and C# can build different types of applications on various platforms. There are also situations where specific languages work better. With the rise in mobile apps, for example, you would choose Java for building a native Android app or a C and C++ combination for an embedded firmware project.

2. Complexity of applications

Identifying the application’s size and complexity helps determine the choice of programming language. The smaller and simple applications like marketing websites or webforms can use content management systems (CMS) like WordPress that may need minimal programing. On the other hand, complex applications like e-commerce websites or enterprise applications or emerging technology applications like IoT devices or AI-based applications may require Java or C#. As a technical manager, you can be an expert in gauging complexity with various experiences.

3. Organization culture

The choice of Open source technologies vs. proprietary software tends to rest with the organization’s culture and a direction often set by management. All programming languages have a trade-off, and some companies may choose one that is scalable, while others may pick one that has a shorter learning curve and is easy for the developers. Whatever the culture, the priority should be on choosing a language that optimally addresses the project needs. You can easily understand an organization’s choice once you start working on their technology stack.

4. Time to market:

Businesses rely on getting their product to the market early for competitive gains. Choosing new programming technologies and languages is better for a project with longer timelines. You can complete your project faster by leveraging the developers’ existing skills. For example, if you already have an AWS-based cloud environment and relevant team expertise, it will be quicker to work on it than move to another technology environment.

5. Maintainability

Technology stacks have their library ecosystems and vendor support. Choose a programming language with regular update releases that will stay current for some time. Maintaining the codebase is essential, and maintenance costs depend on the availability of developers. For example, as per today’s trends hiring Java, C#, Python, or PHP developers is easy and cost-effective. Organizations can make a data-driven decision by looking at the size of programming language communities from various industry reports from Slashdata.

6. Scalability, performance, and security:

The performance of the application depends on your choice of programming languages. It becomes essential when the development environment has limitations on scaling. Some popular tech stacks with great scalability include Ruby on Rails (RoR), .NET, Java Spring, LAMP, and MEAN.

It would be best if you protected applications from cyber threats. Following the security guidelines are crucial before choosing any programming language for your application. For example, a financial application needs PCI compliance, while healthcare-related applications need HIPAA compliance. Your choice of programming languages must be able to deliver application compliance.

Insights – Slashdata – 22nd edition of The State of the Developer Nation (Q1 2022)

You know the factors that drive the choice of programming languages. Let us look at findings from the Slashdata – 22nd edition of The State of the Developer Nation (Q1 2022). It offers exciting statistics that can help you as a developer know if your skills are up to date or need an upgrade.

JavaScript remains the most prominent language community, with close to 17.5M developers worldwide using it.

Python has remained the second most widely adopted language behind JavaScript, with the gap between the two largest communities gradually closing. Python now counts 15.7M users after adding 3.3M net new developers in the past six months alone.

The rise of data science and machine learning (ML) is an apparent factor in Python’s growing popularity. About 70% of ML developers and data scientists report using Python versus only 17% using R.

Java is one of the most critical general-purpose languages and the cornerstone of the Android app ecosystem. Although it has been around for over two decades, it is experiencing strong and steady growth. Nearly 5M developers have joined the Java community since 2021. 

Data shows that Java’s growth gets fueled by the usual suspects, i.e., backend and mobile development, and its rising adoption in AR/VR projects.

Wrapping up

We hope you have more clarity and data-driven insights in choosing programming languages for your career and projects. We encourage you to regularly read the whole SlashData – 22nd edition of The State of the Developer Nation (Q1 2022) report and stay updated on trending technologies.

Categories
Community Languages

Size of Programming Language Communities in Q3 2021

Following our latest Developer Nation Survey, results are in and our State of the Developer Nation report 21st edition is now available! More than 19,000 developers from around the world participated and shed light on how they learn, the tools they use, how they are involved in emerging technologies, but also what would make them switch employers, among other topics.

As always, programming languages are a beloved subject of debate and one of the first topics we cover. The choice of language matters deeply to developers because they want to keep their skills up to date and marketable. It matters to toolmakers too, because they want to make sure they provide the most useful SDKs.

It can be hard to assess how widely used a programming language is. The indices available from players like Tiobe, Redmonk, Stack Overflow’s yearly survey, or GitHub’s Octoverse are great, but offer mostly relative comparisons between languages, providing no sense of the absolute size of each community. They may also be biased geographically or skewed towards certain fields of software development or open source developers.

The estimates we present here look at active software developers using each programming language; across the globe and across all kinds of programmers. They are based on two pieces of data:

  • First, our independent estimate of the global number of software developers, which we published for the first time in 2017. 

We estimate that, as of Q3 2021, there are 26.8 million active software developers in the world

  • Second, our large-scale, low-bias surveys which reach tens of thousands of developers every six months. In the surveys, we have consistently asked developers about their use of programming languages across ten areas of development, giving us rich and reliable information about who uses each language and in which context.

JavaScript’s popularity has skyrocketed

JavaScript is the most popular programming language community by a wide margin. Nearly 16.5M developers are using it globally. Notably, the JavaScript community has been growing in size consistently for the past several years. 4M developers joined the community in the last year – by far the highest growth in absolute terms across all languages – and upwards of 2.5M developers joined in the past six months alone. Even in software sectors where JavaScript is not among developers’ top choices, like data science or embedded development, about a fourth of developers use it in their projects.

Back in 2020 we suggested that learning Python would probably be a good idea. It still is. Since it surpassed Java in popularity at the beginning of 2020, Python has remained the second most widely adopted language behind JavaScript. Python now counts 11.3M users after adding 2.3M net new developers in the past 12 months. The rise of data science and machine learning (ML) is a clear factor in Python’s popularity. 

More than 70% of ML developers and data scientists report using Python

Java is the cornerstone of the Android app ecosystem as well as one of the most important general-purpose languages. Although it has been around for more than two decades now, its traction among developers keeps steadily growing. Since mid-2018, nearly 2.5M developers have joined the Java community, which now counts 9.6M developers.

Rust is rising fast

The group of major, well-established languages is completed with C/C++ (7.5M), PHP (7.3M), and C# (7.1M). Of these, PHP has grown the fastest in the past six months, with an influx of 1M net new developers between Q1 and Q3 2021. C and C++ are core languages in embedded and IoT projects for both on-device and application-level coding, whereas PHP is still the second most commonly used language in web applications after JavaScript. On the other hand, C# is traditionally popular within the desktop developer community, but it’s also the most broadly used language among AR/VR and game developers, largely due to the widespread adoption of the Unity game engine in these areas.

Rust has formed a very strong community of developers who care about performance, memory safety, and security. As a result, it grew faster than any other language in the last 24 months. Rust has nearly tripled in size from just 0.4M developers in Q3 2019 to 1.1M in Q3 2021. 

Rust is mostly used in embedded software projects but also in AR/VR development, most commonly for implementing the low-level core logic of AR/VR applications.

In previous editions of the State of the Developer Nation report, Kotlin has consistently been identified as a rising star among programming languages. Kotlin’s audience has doubled in size over the last three years – from 1.5M developers in Q2 2018 to nearly 3M in Q3 2021. This trend is largely attributed to Google’s decision to make Kotlin its preferred language for Android development. Kotlin is currently the third most popular language in mobile development, behind JavaScript and Java.

The more niche languages – Go, Ruby, Dart, and Lua – are still much smaller, with up to 2M active software developers each. Go and Ruby are important languages in backend development, but Go has grown slightly faster in the past year, both in absolute and percentage terms. Dart has also seen a significant uptick in its adoption in the last year. This has been fuelled predominantly by the increasing adoption of the Flutter framework in mobile development. Finally, Lua was the second fastest growing language community in the past two years, behind Rust, mainly attracting AR/VR and IoT developers looking for a scripting alternative to low-level languages such as C and C++.

You can read more about programming languages communities in the State of the Developer Nation report 21st edition.

Categories
Analysis

Infographic: Programming languages adoption trends 2021

In our last infographic, JavaScript was the most popular programming language. What has changed in terms of the sizes in the last six months? You can find the answers in this infographic with key findings from our Developer Economics 20th edition survey, which ran between November 2020 and February 2021 and reached 19,000 developers worldwide.

Javascript is the queen of programming languages

JavaScript is the most popular programming language by some distance, with nearly 14M developers using it globally. More importantly, the JavaScript community has been growing in size consistently for the past three years. Between Q4 2017 and Q1 2021, more than 4.5M developers joined the community – the highest growth in absolute terms across all languages. Even in software sectors where JavaScript is not among developers’ top choices, like data science or embedded development, about a fourth of developers use it in their projects.

Python is conquering the world

Since it surpassed Java in popularity at the beginning of 2020, Python has remained the second most widely adopted language behind JavaScript. Python now counts just over 10M users, after adding 1.6M net new developers in the past year alone. That’s a 20% growth rate, the highest across all the large programming language communities of more than 6M users. The rise of data science and machine learning (ML) is a clear factor in Python’s popularity. Close to 70% of ML developers and data scientists report using Python. For perspective, only 17% use R, the other language often associated with data science.

Kotlin’s rise continues

The fastest growing language community in percentage terms is Kotlin. In fact, it’s one of the two communities – the other being Rust – that has grown more than two-fold over the last three years, from 1.1M developers in Q4 2017 to 2.6M in Q1 2021. This is also very

evident from Kotlin’s ranking, where it moved from 11th to eight place during that period – a trend that’s largely attributed to Google’s decision to make Kotlin its preferred language for Android development. Even so, Kotlin still has a long way to go to catch up with the leading language in mobile development, Java; there are currently twice as many mobile developers building applications in Java than in Kotlin.

Swift was recently outranked by Kotlin, after attracting slightly fewer net new developers in the second half of 2020 (100K vs 300K). Even so, Swift is currently the default language for development across all Apple platforms, which has led to a stagnation in the adoption of Objective C. This gradual phase-out of Objective C from the Apple app ecosystem is also matched by a significant drop in its rank, from ninth to 12th place. 

The more niche languages – Go, Ruby, Rust, and Lua – are still much smaller, with up to 2.1M active software developers each. Go and Ruby are important languages in backend development, but Go has grown slightly faster in the past year, both in absolute and percentage terms. Rust has formed a very strong community of developers who care about performance, memory safety, and security. As a result, it grew faster than any other language in the last 12 months, more than doubling in size. Finally, Lua was also among the fastest growing language communities in the last year, mainly attracting AR/VR and IoT developers looking for a scripting alternative to low-level languages such as C and C++.

Sign up to our community to have your say in our next developer survey.

Infographic: Programming languages adoption trends 2021
Categories
Languages

Infographic: Top programming language communities

Which programming languages the developer nation uses the most? Our data reveal which programming language communities are rising faster than others, which are dropping down the rankings, and which are the new additions to the club! Take a look at our infographic containing key findings from our Developer Economics Q4 2019 survey. 

First of all, let’s all hail for our two years in a row queen, ? JavaScript. The JavaScript community counts more than 12 million users worldwide with an increase of 33% over the last two years.

Among the top programming languages, Python and Kotlin have climbed up faster than any other. With a slow and steady rise Python finally managed to edge out Java, counting 8.4 million users and ranking as the second most used language. When it comes to Machine Learning, Python is the first choice of the developer community, chosen from more than 70% of developers involved in ML. Meanwhile, Kotlin has shown significant growth, it nearly doubled in size in the past two years, finding its way into mobile and AR/VR programming.

After almost 10 years of its launch date and a head to head race with Ruby, Go (or Golang) managed to enter the club of the top 10 most used languages, counting 1.4 million users. Another up and coming language making its way mostly through the AR/VR field is Rust exceeding half of million users.

Let’s not forget that developers are dropping languages all the time. The practice of programming is not static. Even though Swift and Objective-C have been used significantly by the Apple community it seems that the developers are slowly abandoning them. On a similar trend, Ruby and Lua seem to have the biggest decrease (30% & 40%).

Check out our infographic which highlights the top trending programming language communities:

programming language communities

The estimates we present here look at active software developers using each programming language, across the globe and across all kinds of programmers.

Looking for a more thorough report on programming language communities? Check out our free State of the Developer Nation Q4 2019 report examining also different topics such as Contribution to Open-Source Software, DevOps Participants and Adoption, Machine Learning, Augmented & Virtual reality and Emerging technologies.

Also, here you can view the latest global average data trends on major development areas.

Categories
Languages

The Queen of Programming Languages with 11M+ Users

The choice of programming language matters deeply to developers because they want to keep their skills up to date and marketable. Programming Languages are a beloved subject of debate and the kernels of some of the strongest developer communities. They matter to toolmakers too, as they want to make sure they provide the most useful SDKs.

Here is an update on Programming Language Communities, from our State of the Developer Nation Report 17th Edition.

It can be hard to assess how widely used a programming language is. The indices available from players like Tiobe, Redmonk, Stack Overflow’s yearly survey, or Github’s Octoverse are great, but mostly offer only relative comparisons between languages, providing no sense of the absolute size of each community. They may also be biased geographically, or skewed towards certain fields of software development, or open source developers.

The estimates we present here look at active software developers using each programming language, across the globe and across all kinds of programmers.

They are based on two pieces of data:

First, our independent estimate of the global number of software developers, which we published for the first time in 2017. We estimate that in mid 2019 there are 18 million active software developers in the world.

Second, our large-scale, low-bias surveys which reach tens of thousands of developers every six months. In the surveys, we consistently ask developers about their use of programming languages across ten areas of development, giving us rich and reliable information about who uses each language and in which context.

JAVASCRIPT REMAINS QUEEN OF PROGRAMMING LANGUAGES

11M+ developers use Javascript

The most popular programming language by a wide margin is Javascript, including derivatives like TypeScript and CoffeeScript. The Javascript community counts over 11 million active developers. Even in software sectors where Javascript is least popular like machine learning or on-device code in IoT, over a fifth of developers use it for their projects. 

Programming language communities Q2 2019
Programming language communities Q2 2019

The rise of machine learning is a clear factor in the success of Python:

8 in 10 machine learning developers use Python in their work (compared to just 25% using R, the other language often associated with data science). Java, of course, is a cornerstone of the mobile app ecosystem (Android) as well as a great general-purpose language.

Language use is not static: developers drop and adopt new languages all the time

It would appear that it is not meaningful to speak of “Java developers” or “Python developers” in any fundamental sense, other than that they use those languages at a certain point in time. While we see a net decline in the use of most languages by our repeat respondents, some languages reverse that trend and show significant growth. The first of these is Kotlin, which we are confident to say is the rising star in the programming language firmament.

Kotlin’s rank among programming languages moved from 11th to 8th place in just a year, and one in ten developers now use the language.

Rank of programming language communities 2017-2019
Rank of programming language communities 2017-2019

Tracking the ever-changing landscape of the software development ecosystem is why we run our Developer Economics surveys twice a year and there is one live right now. To track changes on programming languages, tools and platforms we need you to share with us your coding experiences!  We would be very interested to know what programming languages, hardware, frameworks and platforms you use, and the types of projects you’re working on.

Has the new Oculus Quest piqued your interest and restarted the heart of VR development? Or is AR and mixed reality where it really is? Help us tell the technology leaders what you think, and by doing so become part of the change you want to see in the tools you use.