Categories
Tips

Five backend books you should read in 2021.

Powering up your backend knowledge? Our friends at Packt have shared five backend books you should read in 2021.

Node Cookbook, Fourth Edition

Discover solutions, techniques, and best practices for server-side web development with Node.js 14

What reviews say:

“Want to learn Node.js, brush up on your skills, or discover the latest features of Node 14 and beyond? This book is for you! Written by a senior developer and Red Hatter, With a thorough presentation of everything Node, Bethany Griggs delivers from cover to cover in this latest Node Cookbook edition.

Node.js Web Development, Fifth Edition

Server-side web development made easy with Node 14 using practical examples

What reviews say:

“This book is great. I had some knowledge about full-stack JavaScript, but this book has already taught me a lot. I wouldn’t say that this book is for a complete beginner to software development (coding), but it’s definitely good if you need to deepen your understanding of JavaScript, or if you’re interested in getting started with JavaScript from another backend language like Python, C#, Ruby, etc.”

ASP.NET Core 5 and React

Full-stack web development using .NET 5, React 17, and TypeScript 4

What reviews say:

“The book had a very methodical approach to building single-page applications through React. I am familiar with React and .NET separately and partly why I could pick up the concepts in the book faster but I believe otherwise too, things are laid out very clearly. Recommend it for beginners.”

Full-Stack React, TypeScript, and Node

Build cloud-ready web applications using React 17 with Hooks and GraphQL

What reviews say:

“Nook has a philosophy of “learning by doing” “

Building Vue.js Applications with GraphQL

Develop a complete full-stack chat app from scratch using Vue.js, Quasar Framework, and AWS Amplify

What reviews say:

“This book is a fantastic deep dive into building an end-to-end application on AWS. I really like the fact that he dove deep into many topic areas, showing how to tie everything together to build something that is a real-world use case. The information in this book can also be used in many other areas so the knowledge is very transferable to other scenarios and use cases.”

What titles do you recommend? Share your thoughts in the comments.  Looking for more inspiration? Here are more book recommendations.

Categories
Analysis Community

Coding the Future: How Developers Embrace and Adopt Emerging Technologies

As the popularity of a technology ebbs and flows, so does its impact, and when it comes to software development practices, few recent technologies have exerted as profound an influence as DevOps. This technology has become truly mainstream, seeing widespread adoption across software sectors, industries, and roles. We are delighted to say that, for these reasons, DevOps has matured out of our emerging technology tracker and instead has been replaced with several new and exciting technologies that have the potential to reshape the world. Here, we’ll use developers’ engagement with and adoption of these technologies to help us understand just how this might come to pass.

We have tracked developers’ engagement with and adoption of different technologies over six surveys, spanning three years, endingQ1 2021. To measure engagement and adoption, we asked developers if they are working on, learning about, interested in, or not interested in different emerging technologies, whilst adding to the list as new innovations appear. We classified each technology according to whether its engagement rate is above or below the median-high/low engagement-and whether its adoption rate is above or below the median-high/low adoption. 

Robotics, mini apps and computer vision are taking the lead as emerging technologies developers are most engaged with

After graduating DevOps from our emerging technology tracker, robotics, mini apps – apps embedded within another app – and computer vision head the table for those emerging technologies with which developers are most engaged. Around half of developers say they are working on, learning about, or interested in each of these technologies, and, whilst mini apps are most widely adopted by professional developers, hobbyists and students are most interested in robotics. However, of the developers engaged with mini apps, nearly a quarter are currently working on the technology. For computer vision, this drops to 15%, and for robotics, just 10%. Despite engaging developers in similar ways, it’s clear that the practical applications of mini apps are widely recognised by developers-in fact adoption increased by four percentage points in the last twelve months, one of the largest increases we saw.

Nearly 30% of actively engaged developers are learning about cryptocurrencies

Almost three in ten engaged developers are learning about cryptocurrencies, the most of any technology – though other blockchain applications are close behind on 26%. The academic interest in these technologies has yet to translate directly into adoption-only 14% and 12% of engaged developers are actively working on projects using these technologies. More than 40% of them are professionally involved in web apps / Software as aService (SaaS), and a third are involved in mobile development as professionals. This said, adoption did increase for both cryptocurrencies (+5 percentage points), and other blockchain applications (+4 percentage points) in the last twelve months-developers are continuing to find practical applications for these technologies. With giants such as Maersk incorporating blockchain technology into their logistics management systems in the last few years, more widespread adoption is inevitable.

Quantum computing and self-driving cars still lag in adoption

Quantum computing and self-driving cars continue to languish near the bottom in terms of adoption, but continue to spark some developers’ imaginations – more than two in five developers are engaged with these technologies. However, of these developers, fewer than one in ten are actually working on each of these technologies, and whilst engagement with these technologies dropped over the last twelve months, adoption increased for both – though more for quantum computing (4 percentage points) than self-driving cars (2 percentage points). There is a similar story with brain / body computer interfaces, which is a new technology that we added in the most recent survey-many developers are engaged, but, unsurprisingly, given its bleeding-edge status, very few are actively working on the technology.

We also recently added hearables, DNA computing / storage, and haptic feedback to our list of emerging technologies. Engagement is low with these technologies; on a level with fog/edge computing-between a quarter and a third of developers are engaged. We see that around one in ten engaged developers are actively working on these very nascent technologies, and two in ten are learning about them. Though the engaged audience for these technologies is small, there is a core of developers contributing to their continued progress.

Each of the emerging technologies we have covered encounters different barriers on its path to widespread adoption. For many, the barriers are technological-the advances needed to bring quantum or DNA computing to the mainstream are many years away, but there are also social, cultural, and even legislative barriers which will impede progress. Though important, developers are only part of the puzzle.

Categories
Tips

Developer prizes: Look who’s won in our 20th-anniversary survey prize draw and Referral Program.

We’re super excited to announce the winners of our 20th Developer Economics prize draw. Thanks to over 19,000 of you who took the time to contribute to the developer ecosystem!

If you’re new to our prize draws, developers who take our surveys earn 100 points for every new survey completed, plus 10 points for providing their feedback about the survey. You can see the list of benefits and rewards here.

General Prize Draw

The State of AR/VR Survey Prize Draw

Exclusive Community Prize Draw for members with 801+ points

exclusive community prize draw 801+ points

Exclusive Community Prize Draw for members with 801+ points – Prizes: Vouchers, branded stickers, water bottles, surprise swag, and socks

Exclusive Community Prize Draw for members with 501+ points Prizes: Vouchers, surprise swag, branded stickers and socks

Exclusive Community Prize Draw for members with 301+ points Prizes: Branded surprise swag, stickers and socks

Extra Prize Draws

Early Bird Prize Draws

Christmas Advent Draws

Last Minute Extra Prize Draw

We’ve reached out to winners directly via email. If you recognise your email address but believe you haven’t been contacted yet, you can contact us here.

The lists above only include prize-draw winners and not runner-ups. If the prize draw winners do not claim their prizes within 10 workings of us contacting them, then runner-ups will be invited to claim them instead. 

Special thanks to our prize sponsors SitePoint, DeveloperWeek, Basecode, Sketchfab, HTB Academy and @Coding for donating prizes to the survey! Are you a company interested in giving away a prize to developers in our next survey? Get in touch!

If you’re not a winner, don’t despair, our next survey, our 21st will be live later this year. We’re already on the hunt for some amazing prizes, and open to your suggestions. What prizes would you like to win? Drop us an email or send us a Tweet.

To ensure that you are notified when our next survey is live, sign up. Don’t forget to make sure the survey notification option is ticked.

Referral Program Winners

Over 2,600 developers joined our Referral Program and 270 were especially competitive in promoting our survey to their communities. Thanks to everyone who took on the challenge! If you want to test your influencer abilities in our next survey, make sure you join our Referral Program. Without further do, here are the top 50 winners:

Want to take part in our next surveys referral program? You can sign up here.

Categories
Tips

Five frontend books you should read in 2021

What skills are you planning to learn as a frontend developer this year? Our friends at Packt have shared five frontend books you should read in 2021. 

React and React Native

A complete hands-on guide to modern web and mobile development with React.js

What reviews say:

“I have books in my library older than most of the people I work with, maybe 200+ at this point and I would put this among the top 10 for content. Great book if you’re looking to get into React and/or React Native and the follow-along code samples actually work – big kudos!”

Svelte 3 Up and Running

A fast-paced introductory guide to building high-performance web applications with SvelteJS.

What reviews say:

“This is not just a book about Svelte. Sure, you do build an app using Svelte 3, and while building it the author gradually (and with clear examples and explanations) introduces the concepts and syntax of the Svelte framework.

However, what I enjoyed the most about this book was how it was a practical guide for building static web apps. You’ll start with some overview of why static web apps (or JAMstack apps) are powerful, and then you get on to building. From setting up VS Code, all the way to production… and even with automated testing and DevOps!”

Learning Angular, Third Edition

A no-nonsense beginner’s guide to building web applications with Angular 10 and TypeScript.

What reviews say:

“This book is typically useful for any front-end or full-stack software engineer who is completely new to the web development or has some JavaScript web development experiences but wishes to jump into the Angular world playing with the typescript.”

Modern Web Testing with TestCafe

Get to grips with end-to-end web testing with TestCafe and JavaScript.

What reviews say:

“This is a very good book for

– Beginners who are looking for step by step clear instructions to use TestCafe right from setting up the environment all the way to writing expert level e2e automated tests

Current TestCafe users to learn TestCafe internals and best practices.

The other aspect I like about this book is, it also provides compares between Selenium and TestCafe. This is very helpful for current Selenium users trying to switch to TestCafe and best use the benefits TestCafe provides.”

Vue.js 3 Cookbook

Discover actionable solutions for building modern web apps with the latest Vue features and TypeScript.

What reviews say:

“This book is a good introduction to Vue.js 3.0 and the main features which vue.js contains. The book contains a lot of examples, which gives you a good overview of the different possibilities that you have when working with vue.

For example, it discusses about vue files, plugins, vuex store, mixins, decorators, props, slots, vuelidate, and vue router, among others.”

Have you read any of these books already? Do you have other titles that you’d recommend? Share your thoughts in the comments.  Looking for more inspiration? Here are more book recommendations.

Be a guest writer on our blog
Have you got brilliant tips and resources that developers love to read? Then we want you on our blog! Find out more.

Categories
Analysis

Why do developers adopt or reject cloud technologies?

In the nearly fifteen years since Amazon AWS cracked open the cloud market by releasing S3 – and changed the world by doing so – there has been huge growth in the variety of cloud solutions available for developers to use. We examine the different reasons that developers give for adopting or rejecting cloud technologies. The findings shared in this post are based on the Developer Economics survey 19th edition which ran during June-August 2020 and reached more than 17,000 developers in 159 countries.

Of the new cloud technologies which have appeared over the last fifteen years, containers have arguably had the greatest impact. With 60% of developers using this technology, the benefits are clearly widely recognised. However, with just under 30% of developers using container orchestration tools and management platforms, there is still room for this technology to develop.

In second position, with 45% of cloud developers using this technology, Database-as-a-Service (DBaaS) is also very widely used, and data storage and retrieval will continue to be an important issue, albeit in a much more sophisticated form than S3 originally offered. Cloud Platform-as-a-Service (PaaS) sits in a distant third place. A third of backend developers are using PaaS, putting this technology slightly ahead of the other ones we ask about – between 21-27% of developers use them.

Why do developers adopt or reject cloud technologies - containers is the cloud technology that is most widely used by backend developers.

Abstraction and simplification are two of the main drivers for the mass adoption of cloud technologies, but we can’t overlook the role that flexibility plays. Spinning up instances to cope with variable demand, creating temporary testing environments, and adding storage as required is immensely powerful. But one often-overlooked aspect of this flexibility is that developers and organisations have the flexibility to choose. They are not restricted to the expensive, bare metal they bought ten years ago, and they are less constrained by monolithic purchasing processes, because, to put it simply, these decisions matter less. In a world where infrastructure can be provisioned and destroyed at will, and where data and server configurations can be transferred easily between homogeneous systems, cloud providers have to find other areas of differentiation in order to compete. Vendor lock-in is much less of an issue for users than it once was, and the rise of the developer as a decision-maker has put even more power into their hands. Note the adoption and rejection reasons for DBaaS and orchestration platforms come from our previous survey, fielded in Q1 2020.

“Pricing and support/documentation are most important to developers”

For every cloud technology, with the exception of orchestration tools, pricing and support/documentation are the two most important factors that developers consider when adopting that technology. For the most part, these two factors switch between first and second place, however, pricing drops to fifth place for developers considering adopting an orchestration tool, whereas support/documentation remains at the top by a large margin. Around three in ten of these developers selected ease and speed of development (32%), integration with other systems (31%), community (30%), and pricing (29%) as reasons for adoption, with pricing being around 15 percentage points lower for orchestration tools than for other technologies. On the other hand, community and scalability are generally more important for developers selecting an orchestration tool.

Much of this distinction is driven by the dominance of Kubernetes. With 57% of backend developers who are using an orchestration tool choosing Kubernetes, it is the single most popular orchestration tool, and importantly, it’s free and open source. It stands to reason, therefore, that pricing is simply not an issue for developers using Kubernetes, instead they value the community support that helps them master such a complex tool.

Indeed, as well as pricing being much less important for these developers, the learning curve is also less important. It seems that these developers understand that they are dealing with high levels of complexity and abstraction and accept that there is a lot to learn in this space. But for those developers that want the abstraction and simplicity offered by a commercial container management system, many paid options exist, and pricing is still an important factor in this space.

Why do developers adopt or reject cloud technologies - Ranking of reasons for adoption

Taking developers’ reasons for rejection into account let us view the decision-making process from the other side. Immediately, we see that pricing is the dominant factor when rejecting every technology. Taking a closer look at the data shows the true extent of this – for DBaaS and Infrastructure-as-a-Service (IaaS), developers were more than twice as likely to select pricing as a rejection reason than the second- and third-placed reasons of support/documentation, and the learning curve, respectively. Amongst the remaining technologies, the smallest difference was 8 percentage points, for developers rejecting orchestration tools.

Further down the list, there is a lot of variability between the different technologies. For example, the learning curve was the second most popular rejection reason for developers choosing IaaS, with a quarter of them doing so. This suggests that the learning curve for IaaS is quite steep and that this is a barrier for many developers. This is not the case for DBaaS however, where only 15% of developers stated this as a reason for rejection.

“Suitability, feature set and performance are hygiene factors”

Suitability and feature set has middling importance for developers choosing to adopt a technology, but for many technologies, it is a more important reason for rejection. This shows that suitability and feature set is a hygiene factor – there are relatively few cases where this is of paramount importance, but many where a technology does not meet the needs and is therefore rejected.

Finally, performance sits very low in the hierarchy for developers adopting and rejecting cloud solutions. This indicates that, for the vast majority of uses cases, the range of performance options provided by vendors is sufficient. This suggests that many cloud computing products are, to some extent, homogenous, and that developers are more concerned with the ‘soft’ features, such as support/documentation, community, or learning curve. These features make for a fulfilling development experience, and in the age of the developer as a decision-maker, experience is everything.

Why do developers adopt or reject cloud technologies - ranking of reasons for rejection.

What are your reasons for adopting or rejecting cloud technologies? You can let us know your reasons here!

Categories
Tips

Eight must-read books for developers in 2021

What are the top books on your reading list this season? Whether you’re learning a new skill or adding depth to your existing knowledge in a particular development area, it’s always a good idea to get a few more recommendations to your list. We’ve teamed up with Packt to help you discover eight must-read books that you need to add to your collection in 2021.

All Packt eBooks and Videos are for $5! A key part of Packt’s mission is to unlock new opportunities for developers and help put software to work in new ways. They want this year’s $5 campaign to help developers unlock new opportunities.

Cloud and Admin

Azure DevOps Explained

Implement real-world DevOps and cloud deployment scenarios using Azure Repos, Azure Pipelines, and other Azure DevOps tools.

What reviews say:

“The book is very carefully walking the reader through everything you need to know to become an Azure DevOps expert. I use DevOps all the time to build and manage Business Central AL development and found the book very useful.”

Kubernetes and Docker – An Enterprise Guide

Apply Kubernetes beyond the basics of Kubernetes clusters by implementing IAM using OIDC and Active Directory, Layer 4 load balancing using MetalLB, advanced service integration, security, auditing, and CI/CD.

What reviews say:

“This book covers most of the topics when an enterprise would like to adopt Kubernetes. What’s more, you hardly can find coverage on these topics in the market!”

Coding and tools

Learning C# by Developing Games with Unity 2020

Get to grips with coding in C# and build simple 3D games with Unity from the ground up with this updated fifth edition of the bestselling guide.

What reviews say:

“If you’re serious about learning to build games in Unity your progress will be advanced rapidly if you first have a solid foundation of understanding of C#. This book explains the necessary information to start understanding and using C# to develop games in Unity. After reading this you’ll have enough context to begin tearing down other people’s code and repurposing it to build your own functionalities for your game.”

iOS 14 Programming for Beginners

Learn iOS app development and work with the latest Apple development tools. Explore the latest features of Xcode 12 and the Swift 5.3 programming language in this updated fifth edition.

What reviews say:

“The author does a good job to capture an effective, quick, and breezy reading/learning/code-along experience. The explanations are concise and easy to follow, although I would imagine a complete newbie to programming entirely might ask a lot of questions in the earlier chapters.”

Data

Learn Amazon SageMaker

Quickly build and deploy machine learning models without managing infrastructure, and improve productivity using Amazon SageMaker’s capabilities such as Amazon SageMaker Studio, Autopilot, Experiments, Debugger, and Model Monitor.

What reviews say:

“This is a comprehensive book for a data scientist looking to use the AWS ecosystem for machine learning with a focus on Sagemaker. I like the way it is organized which is practical and matches a typical life-cycle of a project.”

Data Engineering with Python 

Build, monitor, and manage real-time data pipelines to create data engineering infrastructure efficiently using open-source Apache projects.

What reviews say:

“Data Engineering With Python provides a solid overview of pipelining and database connections for those tasked with processing both batch and stream data flows. Not only for the data miners, this book will be useful as well in a CI/CD environment using Kafka and Spark. It’s very readable and contains lots of practical, illustrative examples.”

Programming

40 Algorithms Every Programmer Should Know: Hone your problem

Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental algorithms, such as sorting and searching, to modern algorithms used in machine learning and cryptography.

What reviews say:

“Who the book is aimed at: if you self-identify as a data scientist, serious algorithms specialist, or even the quant type, then you won’t be disappointed! If you’re just starting in the field, the author has done the hard work of selecting some of the commonly used techniques & algorithms in the field today.”

Learn Quantum Computing with Python and IBM Quantum Experience

A step-by-step guide to learning the implementation and associated methodologies in quantum computing with the help of the IBM Quantum Experience, Qiskit, and Python that will have you up and running and productive in no time.

What reviews say:

“I really like this book. It takes a step-by-step approach to introduce the reader to the IBM Q Experience, to the basics underlying quantum computing, and to the reality of the noise involved in the current machines. This introduction is technical and shows the user how to use the IBM system either directly through the GUI on their website or by running Python code on one’s own machine.”

Have you read any of these already? Leave your impressions in the comments and don’t forget to share the list with other developers in your circle!


Be a guest writer on our blog
Have you got brilliant tips and resources that developers love to read? Then we want you on our blog! Find out more.

Categories
Analysis

What do developers value in open source?

Open-source software (OSS) is used by 92% of developers, so what exactly do they value in it? We find that developers value OSS’s ability to supersede any single contributor and live on almost eternally. We highlight some uncertainty around OSS’s future by showing trends from geographic regions and sectors. The findings shared in this post are based on the Developer Economics survey 19th edition which ran during June-August 2020 and reached more than 17,000 developers in 159 countries.

What exactly do developers value in open-source?

Open-source software (OSS) is ubiquitous in the global developer community. As our data shows, OSS is used by 92% of developers. A question that comes to mind is: what exactly do developers value in OSS? In the chart below, we show which statements developers value about OSS, broken down by professional and nonprofessional developers, and enterprise and non-enterprise developers. The overarching theme for what developers value from OSS is its ability to be eternal. “To collaborate with the community, building software that outlasts even its originator” encapsulates the two statements with the greatest agreement.

The overall cost and wanting to avoid vendor lock-in/lock-out are important aspects that professional and enterprise developers in particular value in OSS, while non-enterprise developers value forking product derivatives and debugging more than the other groups. Non-professional developers do not value the overall costs element, perhaps because they have not experienced the costs involved in closed source software, whereas many professional developers have. Another aspect that non-professional developers value significantly less is avoiding vendor lock-in. This also suggests that these developers have not experienced the limitations of closed source software yet.

Appreciation of the overall costs of OSS is also highly linked with years of developer experience: only 24% of developers with less than one year of experience agree that low cost is an asset of OSS. In contrast, the percentage of developers who agree that low cost is an asset of OSS rises to 34% of developers who have between three and five years, and 43% of developers with six or more years of experience. Typically, as developers gain experience, they begin to work in different sectors, often crossing over between sectors. At this point, the flexibility that OSS offers may become crucial. 

Finally, we also see a greater proportion of non-professional developers not using OSS compared to others. This is also reflected indirectly in each of the other statements; we see that non-professional developers agree with every statement less than professional developers. This suggests that, to be truly appreciative of the benefits of OSS, you may have had to engage with it seriously, in the way professional developers do.

Where OSS is written is changing

At present, the culture of OSS is particularly strong with Western European and Israeli developers, where not a single statement is valued below the average. On the contrary, developers in North America—who, up until now, have driven the OSS movement—value contributing and interacting with the community less than average. This could suggest a cooling off of North American OSS development and a maturing of this ecosystem. 

On average, East Asian developers seem to be disengaged from the OSS movement more than developers from other regions. Only 88% of developers in this region use OSS compared to 92% globally. In general, developers in this region also value less aspects of OSS. In particular, their extremely low appreciation of the continuous support for the technology compared to others, highlights that developers in this region are apprehensive about the longevity of OSS, which partially undermines its main benefit. This apprehension is also reflected by the relatively low agreement associated with contributing. 

According to our data, South Asian developers value contributing to OSS significantly more than others. In addition, South Asia is the region with the largest proportion of developers who value collaborating and interacting with the community. This combination positions the region to be among the drivers of the next wave of OSS development. In the Middle East and Africa region, some key advantages of OSS, such as avoiding vendor lock-in and the overall low cost have not yet resonated with developers — this is despite the fact that, at least for Africa, income per capita is low compared to global averages. What assists in explaining this is this region’s proportion of professional developers and the experience of its developers. 

The Middle East and Africa, as well as South America, have roughly the same proportion of professional developers, 60.7%, in contrast to North America or Western Europe and Israel, where more than 80% of developers are professional. Non-professionals value OSS less. Similarly, developers in the Middle East and Africa are also the least experienced, on average, and years of experience in particular is linked with appreciating the low cost of OSS.

Some sectors embrace OSS while others don’t

Emergent sectors such as augmented reality (AR) and virtual reality (VR) stand to benefit greatly from OSS as a means of defining a common standard and exchanging ideas. Yet, we find that developers working in these two fields do not value forking/creating product derivatives, nor even collaboration in the case of VR, as much as other developers do, on average, from other fields. This could be partially explained by the lower than average agreement with the need for continuous support for a technology. When developers do not value this characteristic, it is unlikely that they are working with the mindset which would ensure long term OSS growth and desirability. 

On the other hand, developers who are building apps and extensions for third party ecosystems, on average, value contributing and forking more than developers in other sectors. Similarly, the very successful node.js runtime has facilitated other extensions and developers working in backend services really value the continuous support of OSS projects. At present, despite the large percentage of developers who use open source software, it is only in certain circumstances that the majority of developers value OSS for any given reason. Perhaps this suggests that OSS has become an expectation rather than being perceived as a gift from society at large to society at large. Observing how developers value OSS in the future would be a good litmus test for the health of open source projects. For now though, there are encouraging blooms in South Asia for example, but also software sectors of scepticism, such as in AR/VR.

Are you involved in open source? Share your experiences with us in our Developer Economics 20th edition survey!


Be a guest writer on our blog
Have you got brilliant tips and resources that developers love to read? Then we want you on our blog! Find out more.

Categories
Languages

Infographic: Programming languages adoption trends 2020

Languages are a beloved subject of debate and the kernels of some of the strongest developer communities. The choice of programming language matters deeply to developers because they want to keep their skills up to date and marketable. They matter to toolmakers too, because they want to make sure they provide the most useful SDKs. So which programming languages had notable changes in adoption trends in the last 3 years? Find the answers in our infographic with key findings from our Developer Economics 19th edition survey, which ran in June-August 2020 and reached 17,000 developers in 159 countries. 

JavaScript is the most popular programming language

As of Q3 2020, 12.4M developers globally were using JavaScript. We also estimate that in mid-2020 there were 21.3M active software developers in the world. So, 58% of all developers use JavaScript. Notably, the JavaScript community has been growing in size consistently for the past three years. Between Q2 2017 and Q3 2020, nearly 5M developers joined the community – by far the highest growth in absolute terms across all languages. Even in software sectors where JavaScript is least popular, like data science or AR/VR, over a fifth of developers use it in their projects. 

It’s a good idea to learn Python

For the second half-year period in a row, Python is the most widely adopted language behind JavaScript. Python now counts 9M users, after adding 2.2M net new developers in the past year alone, outranking Java at the beginning of 2020. The rise of data science and machine learning (ML) is a clear factor in its popularity. An impressive 77% of ML developers and data scientists currently use Python. For perspective, only 22% use R, the other language often associated with data science.

What’s new with Java and other well- established programming languages?

Java, with over 8M active users worldwide, is the cornerstone of the mobile app ecosystem – Android – as well as one of the most important general-purpose languages. It’s adoption may have remained stable in the past six months but, in the overall picture, the Java community has gained 1.6M developers since mid-2017, which corresponds to a 24% growth.

The group of major, well-established languages is completed with C/C++ (6.3M), PHP (6.1M) and C# (6M). The fact that C# lost three places in the ranking of language communities during the last three years is mostly explained by its slower growth compared to C/C++ and PHP. C and C++ remain core languages in 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# may be sustaining its dominance in the game and AR/VR developer ecosystems, but it seems to be losing its edge in desktop development – possibly due to the emergence of cross-platform tools based on web technologies.

Android developers behind Kotlin growth

Kotlin is one of the fastest growing language communities, having increased more than two-fold in size since the end of 2017, from 1.1M in Q4 2017 to 2.3M in Q3 2020. This is also very evident from Kotlin’s ranking, where it moved from 11th to ninth place during that period – a trend that’s largely attributed to Google’s decision to make Kotlin its preferred language for Android development. 

Swift surpassed Kotlin in popularity this year, after attracting slightly more net new developers in the first half of 2020 (400k vs 300k). Since Swift became the default language for development across all Apple platforms, the adoption of Objective C has been decreasing steadily. This phase-out from the Apple app ecosystem is also matched by a significant drop in the rank of Objective C, from ninth to 12th place. 

Finally, the more niche languages – Go, Ruby, Rust, and Lua – are still much smaller, with up to 1.5M active software developers each. Ruby and Lua have been around for more than two decades now, but their communities have essentially stopped growing in the last three years. On the contrary, Go and Rust appear to be actively adding developers, although it is still unclear whether the two languages will climb the programming language ranking in the coming period.

What’s your favourite programming language? Take our Developer Economics 20th edition survey to support your choice!

Infographic: Programming languages adoption trends 2020
Categories
Tips

10 Minute Comprehensive Guide on Modern Software Development with Agile Methods

When it comes to custom software development, Agile methodology is preferred because it focuses on the requirement of the customer and fast delivery.  The principles are applied to small software products developed by a single team, as well as big ones developed by programs that consist of more than ten teams.

The goal of any software development company today, as well as the clientele, is producing software at the lowest cost possible, in the shortest time and the best quality. The right planning and management of the development process and the correct methodology are critical to achieve your business goal. The Agile Methodology is a growing trend that’s exponentially growing.

Agile methodologies have helped many business organizations respond to the evolving market conditions fast, boost customer satisfaction, and boost efficiency. Still, so many organizations are facing hardships in comprehending and adopting Agile. For your brand to overcome the challenges, let’s check out an extensive guide explaining everything about modern software development with Agile methods.

Who is this Guide for?

This guide is intended for:

✔ anyone who wants to learn all the ins and outs of the agile methodologies

✔ anyone who seeks out knowledge on what agile is and why it’s monstrously awesome

✔ anyone who’s afraid of adapting the methodologies in their next software project

Your Comprehensive Modern Software Development with Agile

An Overview

Most of you probably already know that Agile has taken the world of software development and testing by storm. The majority of organizations are already practicing the software development methodology in some form. Agile, in simplest terms, is a way of managing projects.

It’s worth noting that although the approach could be used for just about anything, it was nonetheless founded originally in India. Unlike the Waterfall approach in which all the requirements are gathered from the start, and design is all done next, and then development is executed, the Agile method enables designers, developers, analysts, and stakeholders to work together simultaneously.

Traditional Waterfall Approach Limitations

The Waterfall Model was presented first by Winston Royce back in 1970, and it was intended to be used in developing government projects. It was called a waterfall because of its cascading activities with phases, which keep the development process going forward. Because of this nature, the model does not leave room for doing unexpected changes.

Making changes would be difficult and demands a lot of work as well as a waste of money and precious time. Furthermore, it also excludes the client from the project because its focus is mainly on the internal team. Today, clients want to be involved in the development process as much as possible, and since the Waterfall Model pays so little attention to the client involvement, this could mean high change requests in the development later on.

Agile—How it Works

In contrast to the traditional Waterfall Method, Agile Methodologies adhere to the iterative approach. Basically, Agile software development involves several cycles, typically called ‘sprints,’ which are individually designed, developed, and tested. To put it simply, consider every sprint as a miniature project with its own phases of design, backlog, development, testing, and deployment within a predefined work scope.

A possibly deliverable product is shipped at the end of every sprint. Simply, with the completion of each iteration, new features are being added to the main software, resulting in software growth.

Agile Misapprehensions

Even though Agile has been majorly adopted all over the world, still there remain misconceptions about the approach, including the following:

1. It’s very different

Agile could be an entirely new concept to your organization and the entire team. It also demands a bit of rewiring regarding how all stakeholders would remain on the same page during development. Nevertheless, all companies that adopt the methodology know that the new approach runs the entire development cycle smoothly and consistently.

2. It’s unpredictable

It could indeed be unpredictable at times. But it’s the same with other development approaches. Honestly, it’s entirely impossible to determine what the software should be at the start of the development exactly.

Nonetheless, unlike the traditional approach, Agile embraces unpredictability and uses it to its own advantage that leads to producing better outputs.

3. All features are prioritized by developers

There are still some people who believe that with Agile, developers decide what’s relevant, what must be implemented, and when. However, this is far from the truth since, at the start of every sprint, there is always an extensive spring meeting in which all stakeholders get to participate and decide the features that would be developed and delivered.

4. More short-term-focused

It’s hard to understand why, but some still believe that since the Agile approach splits up projects into short sprints or iterations, it doesn’t consider the long-term goals. The Agile methodology, in truth, provides a lot more benefits and provides a better way than the traditional one. Furthermore, earlier testing lets you indirectly make better decisions for your long-term goals.

5. Works only for Software and Developers

Indeed, it started out in the tech industry, but today, as it benefits an organization as a whole, it’s widely accepted even in non-software industries, such as in the field of communication, manufacturing, healthcare, and so on.

The Actual Benefits of the Agile Methodology

Today, a software development company uses the Agile methodology to stay competitive. Majority of clients anywhere in the world demand that their software solutions be developed using the methodology. Why? Because of the many benefits that it brings to the table. Check out these benefits.

1. Business Value Concentration

One of the major benefits of Agile is an increased concentration of focus on the delivery of strategic business value through the involvement of business stakeholders in the process. With this, the development team understands what matters most and could deliver the features that provide the most value to the brand.

2. Enhanced Quality

Another of the great benefits of Agile is the improved quality of a product. By dividing projects into manageable units, the team could focus on high-quality software development, high-quality testing, and collaboration. Moreover, by creating frequent builds and doing reviews and testing on every iteration, quality is enhanced by quickly finding and fixing defects, as well as determining mismatches in the expectation early on.

3. Engagement of Stakeholders

Agile provides numerous opportunities for the engagement of the stakeholders and the team before, during, and after every sprint. Through involving various stakeholders each step of the way, there’s a higher collaboration degree between teams. The team will have more opportunities to genuinely understand the vision of a business, early delivery of working software, and boosts stakeholders’ trust often.

4. Predictable and Early Delivery

By using fixed, time-boxed Sprints of 1-4 weeks’ schedule, new features are quickly and frequently delivered, with a high predictability level. Also, this provides a chance to beta test or release software earlier than planned if there’s enough business value.

5. Enables Change

Unlike the Waterfall method, one of the key benefits of Agile is that it enables change. While the team has to remain focused on delivering an agreed-to subset of product features on every iteration, there’s a chance to refine and reprioritize the overall product backlog in a constant manner. Changed or new backlogs could be planned for the next iteration, providing a chance to introduce changes in a few weeks.

6. Transparency

Clients are involved throughout the software development project. This could include prioritizing iteration planning, features, review sessions, or frequent software builds that contain new features. This nonetheless requires the customers to understand that they’re looking at a work in progress in exchange for the added transparency benefit.

7. Predictable Schedule and Costs

Since each Sprint is a fixed duration, the cost is predictable and restricted to the amount of work that could be done by the team in a fixed-schedule time box. Together with the estimates given before every Sprint, the company could easily understand the approximate cost of every feature, which boosts decision making about prioritizing the features, and the need for more iterations.

Popular Agile Methods

Every organization differs, and so the internal and external factors that they face. Therefore, to meet the different organization requirements, let’s check out a couple of the most popular Agile methods. Which methodology works for you best would depend entirely on your internal and external factors.

Scrum

It’s a popular agile management method focusing on defining the major features and its objectives at the start of each sprint. Putting it simply, Scrum was introduced to minimize the overall risk in software development while providing faster value as well. Basically, it begins with the story or requirements, explaining how the particular features should work and should be tested.

Some of the most popular Scrum tools that help in increasing the teams’ productivity level are – Jira, Nutcache, monday.com, and ClickUp.  To manage teams & projects following Scrum methodology, you can choose monday.com. While on the other hand, Jira can also be your best choice for project management and creating customized work reports.

Benefits of Using Scrum Methodology

  • Increase in project visibility
  • Manage different priorities
  • Effective usage of money & time

Kanban

Originally, Kanban was developed by Toyota because of their need to boost factory productivity. It’s a very seamless, Agile methodology that could be defined as a prioritized, big to-do list. The requirements in Kanban, just like Scrum, are monitored by their present status as well, including in development, to-do, in a test, and delivery. 

Kanban tools offer the best services to software developers and project managers. They provide Kanban boards for the development teams. These tools are – Scrumwise, Kanbanery, Volerro, and Planview LeanKit.

Benefits of Using Kanban Methodology

  • Increases efficiency & productivity
  • Reduces work time
  • Continuous delivery approach

Lean Development

The Lean development methodology is created by Toyota and is used for the software development process. It offers conceptual frameworks and principles that enable software developers to apply the Agile development approach to their projects. This methodology’s seven essential principles are – quality development, differing commitments, fast delivery, deleting things that are not important, optimization, and respecting the team. 

Lean development offers some fantastic tools like Kaizen, Value Stream Mapping, 5S, and Focus PDCA. These tools enable the teams to improve efficiency and production levels.

Benefits of Using Lean Development Methodology

  • Strengthens knowledge
  • Optimizes value-stream
  • Eliminates delay in engineering  

Extreme Programming (XP)

Extreme programming is another very popular Agile development framework used by software development companies for various dimensions. This methodology follows the values like – simplicity, courage, respect, feedback, and communication to provide a perfect solution to the customers and satisfy them. The teams following XP methodology for their projects can choose any tool from – Project Planning & Tracking System, ExtremePlanner, and Targetprocess. Besides this, if you are a Java developer, you can select any tool from – JUnit, Maven & AntHill, and Cactus. For the .Net developers, the options are – NUnit and NAnt.

Benefits of Using XP Methodology

  • Increases product quality
  • Early product delivery
  • Empowers the team

Crystal

Crystal is a methodology that comes with different variations like Crystal Red, Crystal Orange, Crystal Yellow, and Crystal Clear. These variations specify the number of team members working on a project. It has a different range from 8 to 1000 (Clear to Red). Crystal methodology works on principles like – skills, community, talent, communication, and interactions. 

Benefits of Using Crystal Methodology

  • Flexible
  • Fewer team members required
  • Fixed-rate contract

Conclusion

Evidence reveals that the Agile methodology is very effective in modern software development these days. For most business organizations, the business and people’s results make the methodology well worth the effort.

Categories
Tips

Productivity tips busy developers need to know

Software development is a dynamic field. This has always meant that it’s essential for developers to take an active approach, and stay on top of changes. And that, in turn, means that the best developers tend to have reliable ways of keeping themselves productive.

In 2020, this trait — being able to stay productive — is arguably more important than ever. Numerous industries related to software development have taken hits, and many developers are working under different conditions than they’re used to. The ones who are best able to keep up their standard and complete their projects are the ones who are going to handle these challenges most effectively. And that leads us to our main focus: a few productivity tips busy developers need to keep in mind.

Eliminate Distractions

This is a general tip for anyone working from home, like so many developers are doing today. Basically, when you’re working from home, anything from family members and roommates, to television, to your own mobile devices can become a serious distraction, and detract from productivity. Fortunately, avoiding this issue is a simple matter of discipline. Creative Bloq posted tips on avoiding distractions that can help give you an idea of what to focus on. The best ideas they highlighted include getting comfortable physically, closing unnecessary apps, and shutting yourself into a home office all as ways to start walling yourself off from distractions.

Frankly, we see all of these as part of one bigger tip: establishing a home workspace. Particularly these days, with more people working from home, it’s important to have an area where you can be comfortable and able to focus on projects. For starters, we’d recommend an ergonomic desk and chair and a piece of lounge furniture (even a beanbag can be brilliant). Make sure temperature control and lighting are available to you. And if possible, bring in some natural light and plants. All of this will make the workspace cosy and liveable, allowing you to feel your best, focus, and stay put without feeling shut in. With a space like this, you’ll be certain to see a spike in productivity.

Schedule (Including Breaks)

In just about any situation — working from home or otherwise — a clear schedule can boost productivity in a few different ways. A Verizon Connect piece on how to work intelligently explored this idea, suggesting (rightly) that scheduling every task does two things. First, the article said, scheduling gives you a clear picture of what you have to do in a given day; second, it gives you a clear path toward a small sense of accomplishment when you complete outlined tasks. These benefits can absolutely lead to more productivity by software developers.

How you schedule will depend somewhat on your specific work and the projects you have on hand. But we recommend breaking things down (something we’ll speak on more below), and writing your schedule out in a format that allows you to cross off tasks. Even a simple Excel sheet or note-taking app (such as Evernote, OneNote, or even a simple but perfectly functional Apple Notes) can serve as a scheduling book, where you can lay out each day’s activity and cross items off as you fulfill them.

Break Down Projects

As you go about scheduling, and looking for that little sense of accomplishment you get by moving through tasks, it’s also a good idea to break down projects into parts. This might not always be doable, but in development there are often ways to segment jobs into different stages. This can first and foremost make a job seem less formidable, and make you more willing to dive in and start doing the work. But it also leads to more of that sense that you’re checking things off your list and progressing successfully through a day’s work.

These benefits are in fact what many developers get out of tools like Asana and Jira, which exist in part to help organize projects and segment tasks in an orderly fashion. While it’s easy to think of “project management” as something meant for entire teams, busy developers make excellent use out of the idea and the tools that help to make it easier.   

Automate Where You Can

“Automate stuff” was arguably the most interesting idea within Developer Circles Lagos’s developer productivity ideas posted on Medium. While that same post had some other interesting points, what showed through is the notion that people working in software development tend to have some idea of how to do a little bit of automation — say, by writing scripts that accomplish certain tasks on their own. And this sort of effort can help to simplify a job in a way that significantly improves productivity.

Automation may not help with every project, and naturally, some developers will be better able to take advantage of this idea than others. But generally, automating where you can is a sound strategy. Even using your development skills to automate a sort of record-keeping that logs your hour-to-hour activity can be extraordinarily helpful. This example would afford you a better picture of your own working habits, and enable you to adjust accordingly.

Additionally, it’s worth noting that you may not even have to do this sort of automation on your own, given the ready-made tools that exist within modern work programs. As an example, consider Slack’s “Standup Bot,” which is essentially a built-in project management assistant that can help to keep you on task.

Maintain Personal Health

Personal health doesn’t always come up with regard to on-the-job productivity, but it’s a mistake to assume it’s not a factor. As stated in our piece ‘5 Challenges for a Freelance Developer’ it’s important not to forget to “eat well, sleep and keep an eye on your health” in order to stay productive. Simply put, if your body and mind aren’t healthy, you’ll be less prepared to focus and have productive workdays. You’ll be a better and more prolific developer the healthier you are.

Written/Edited by: Amanda Fuller

Amanda Fuller is a freelance writer for over seven years. Since becoming freelance she has written extensively about work practices, both at home and in the office. She maintains that in order for a company to be successful they must pay as much attention to their employees as their profit margins. In her free time she practices yoga.