Categories
Tips

Hello, world. Meet Developer Nation!

It’s a new era for our community, Developer Economics is now Developer Nation.

Over the last ten years we’ve gathered over 40,000 developers with one thing in common: an unyielding curiosity about what the future holds for software builders. Together with all of you we’ve run 20 global developer surveys, co-created over 300 blog posts, read over 20 reports, pondered over 300 graphs and tried to make sense of the emerging trends in the developer world and what they mean for you and your projects.

Now it’s time to reveal a new chapter. We want to be more than just a survey, a report or a newsletter you interact with from time to time. It’s time to shift the focus from us to you – a diverse group of curious and ambitions software creators who want more from the ecosystem: more support from the platforms, more value for your time, and more chances to learn from each other.

Why Developer Nation?

For the last 10 years we were known as Developer Economics. It helped us earned the trust of tens of thousands of developers over the years. But it’s not helping us resonate with many, many more software creators out there. The “Economics” part especially. We have evolved beyond analysing revenue models for developers. We’ve grown by mapping trends across a wider ecosystem of developer tools, platforms, technologies, and programs. The future is about helping all software creators (developers and no-coders alike) influence how the software is built.

We approached the new name from different angles: blending concepts, metaphors, acronyms, dev jargon, pop culture, creative spelling, crunchy suffixes, Latin words, fringe Greek gods, and more. We came up with 157 name ideas! We then asked around 1,000 of our most loyal members for a feedback. Developer Nation is the name that stood out the most with you. It was associated with trust and excitement.

With a new name comes a new responsibility

Our vision is a software development ecosystem that listens, empowers, and supports software creators to pursue continuous learning, build future-forward solutions without compromises. We want to help you feel confident in your technology choices and included in the conversation about the future of the ecosystem.

We pledge to do this through a global research, sharing with you trustworthy data about emerging software trends, and offering you new opportunities to connect with the people at the service of software builders.

How can you get more involved?

We’ll be testing new programs and channels through which you can connect with other software creators and platform leaders to exchange ideas and experiences.

We want to give you more space and opportunities to speak about the topics that you find relevant and other software builders will care about:

  • What’s in your toolbox?
  • What was your journey to becoming a software creator like? Your biggest mistakes and “a-ha!” moments?
  • Which software development trends need to be questioned and which deserve more attention, in your expert opinion?
  • Which books / podcasts / events / blogs / people inspire you?
  • What projects are you working on and how can our community help you test, give feedback, and earn users or followers?

Find out how you can get involved here.

We’ll still invite you to participate in our global surveys twice a year.

We’d also love for you to read our blog, reports, and newsletter.

It’s a feature, not a bug

Some of our links and form still refer to developereconomics.com and your user profile is still a bit of work-in-progress. Hang in there, we’ll get it sorted!

Say hello to our team!

Last but not least, it’s about time you met the people behind the screens who want to turn this into a real community!

Categories
Tools

AngularJS development tools for 2021

Business and economy took the worst hit during the 2020 pandemic and the situation is making a comeback again this year. The adversities also paved the way to recognize the digital approach towards business. While digital marketing, websites, social media prevailed and was put to good use by businesses even before this situation, the pandemic made it a necessity rather than an option.

Businesses joined the online race to boost their company and stay afloat in these difficult times. All these together showed us how a business model can be re-thought based entirely on the internet.

The shift to e-commerce specifically called for simpler technologies for businesses as well as users and as a result, exponential growth in the requirement for web development tools has been witnessed. 

One such option is the AngularJS development tools. It is an open-source application that is particularly useful for making single-page applications. Angular JS Development Companies are significantly using the AngularJS Frameworks to simplify their works. 

We have listed some of the top AngularJS Development tools which are trending in 2021 here to give you an insight into the best options you can look out for.

5 Trending AngularJS development tools in 2021

With the help of AngularJS development tools, you can easily create a platform to promote your business—from a simple interface to comparatively complex applications. The following are top trending AngularJS platforms that are growing in popularity by the day:

Karma

This is one of the most popular testing frameworks for AngularJS Development. The primary perks of using this one are the option to test the application on a browser as well as a different device like tablets or smartphones. Unit testing, E2E testing, and midway testing are primarily conducted in this.

Features of Karma AngularJS Framework:

  • Versatile and can be used on all browsers
  • Open-source platform
  • Can be easily integrated with Travis, Jenkins, and Semaphore
  • Debugging is made easier
  • Integration is smooth

Pros and cons:

  • You can test it on real devices.
  • There are several plug-ins available to make your task simpler.
  • However, it is a bit slow compared to many other such tools.

Jasmine

If you want to test Javascript Codes, the Jasmine AngularJS Development tool is the one for you. It is driven by a behaviour approach and an independent framework that is not reliant on DOM javascript. 

Projects based on NodeJS, particularly find this useful, and any other project where the javascript works will also benefit from this. Accenture, Gitlab, Walmart are a few of the corporations among the 200 others which are built using Jasmine.

Features of Jasmine are as follows:

  • It is a fast framework with lower overhead.
  • There is an included library that you can access while using this framework.
  • It can be used for both browser and Node.
  • It does not require DOM.

Pros and Cons:

  • It is an open-source framework with a set of straightforward syntax for easier testing.
  • Coding is easier here and you also get community support along with thorough documentation.
  • The front end, as well as the backend test, are both simplified.
  • However, asynchronous testing can be a little bit tricky.

AngularFire

AngularFire is known as one of the best backend development tools. Dynamic API features and 3-way data binding can easily be facilitated with this tool. When you need a rapid development process, this is going to work. The most attractive feature of AngularFire is its ability to synchronize real-time binding and save the data in automated mode.

Features of AngularFire that make it so popular:

  • Data Storage is automatic.
  • Data syncing is done in real-time.
  • Binary files like videos and images are managed easily.
  • Firebase services are easily projected and injected.

Pros and Cons:

  • High security for the Angular roots and flexible and dynamic API.
  • The developer experience is simple and effective.
  • Documentation features are not considered up to the mark by many developers which is the only drawback of this AngularJS tool.

Djangular

It comes with several functionalities that help to focus on the primary development process and based on a philosophy called DRY or Don’t Repeat Yourself. Many leading e-commerce websites and social companies adopt this tool because it has a robust content delivery network.

Scalability, security, and rapid development are assured by this AngularJS development tool.

Features of Djangular:

  • You can get namespacing AngularJS content.
  • The frameworks are very flexible.

Pros and Cons:

  • It is protected by CSRF Security.
  • It is a reusable app and you can develop project-specific content.
  • Though an open-source development tool, it is a bit too advanced for beginners.

Mocha JS

Another popular JavaScript testing framework, Mocha JS, is known for flexibility and overall precise reporting. Many inbuilt features are incorporated in this tool and can also run on Node.JS. It sanctions asynchronous testing with mapping and broadcasting.

It also has global leak detection capabilities, browsing support, asynchronous support, and much more. In short, the Mocha.JS is ideal for producing suites and custom projects using its functionalities.

Features of Mocha.JS:

  • The framework has several features.
  • You get browser and async support.
  • Auto exit and testing support are also available with Mocha.JS.
  • There is a JavaScript API for testing.
  • The ease of set-up of this AngularJS tool is unbeatable.

Pros and Cons:

  • There is optimum test reporting and offers much more flexibility.
  • The multiple browser compatibility is commendable.
  • You get both TDD and BDD or Test Driven Development and Behavior Driven Development.

When you are trying to develop an app or website for your business, there are so many different features and aspects to keep in mind. This calls for using the right development tools. By opting for any of the above-mentioned tools, you can fulfill the requirement thoroughly. 

Now that you know the different popular AngularJS development tools and what their features are, you can determine easily how to put any of these to good use. Boosting your entrepreneurial ventures even in these difficult times is made simpler when you embrace the right technology.

About

Harikrishna Kundariya, is a marketer, developer, IoT, ChatBot & Blockchain savvy, designer, co-founder, Director of eSparkBiz Technologies. His 8+ experience enables him to provide digital solutions to new start-ups based on IoT and ChatBot.

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
Analysis

The search for a cloud-native database

Cedrick Lunven (@clunven) and Jeff Carpenter (@jscarp) of K8ssandra discuss the search fora cloud-native database.

The concept of “cloud-native” has come to stand for a collection of best practices for application logic and infrastructure, including databases. However, many of the databases supporting our applications have been around for decades, before the cloud or cloud-native was a thing. The data gravity associated with these legacy solutions has limited our ability to move applications and workloads. As we move to the cloud, how do we evolve our data storage approach? Do we need a cloud-native database? What would it even mean for a database to be cloud-native? Let’s take a look at these questions.

What is Cloud-Native?

It’s helpful to start by defining terms. In unpacking “cloud-native”, let’s start with the word “native”. For individuals, the word may evoke thoughts of your first language, or your country or origin – things that feel natural to you. Or in nature itself, we might consider the native habitats inhabited by wildlife, and how each species is adapted to its environment. We can use this as a basis to understand the meaning of cloud-native.

Here’s how the Cloud Native Computing Foundation (CNCF) defines the term:

“Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds: Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.”

This is a rich definition, but it can be a challenge to use this to define what a cloud-native database is, as evidenced by the Database section of the CNCF Landscape Map:

Database section of the CNCF Landscape Map

Databases are just a small portion of a crowded cloud computing landscape.

Look closely, and you’ll notice a wide range of offerings: both traditional relational databases and NoSQL databases, supporting a variety of different data models including key/value, document, and graph. You’ll also find technologies that layer clustering, querying or schema management capabilities on top of existing databases. And this doesn’t even consider related categories in the CNCF landscape such as Streaming and Messaging for data movement, or Cloud Native Storage for persistence.

Which of these databases are cloud-native? Only those that are designed for the cloud, should we include those that can be adapted to work in the cloud? Bill Wilder provides an interesting perspective in his 2012 book, “Cloud Architecture Patterns”, defining “cloud-native” as:

Any application that was architected to take full advantage of cloud platforms”

By this definition, cloud-native databases are those that have been architected to take full advantage of underlying cloud infrastructure. Obvious? Maybe. Contentious? Probably…

Why should I care if my database is cloud-native?

Or to ask a different way, what are the advantages of a cloud-native database? Consider the two main factors driving the popularity of the cloud: cost and time-to-market.

  • Cost – the ability to pay-as-you-go has been vital in increasing cloud adoption. (But that doesn’t mean that cloud is cheap or that cost management is always straightforward.)
  • Time-to-market – the ability to quickly spin up infrastructure to prototype, develop, test, and deliver new applications and features. (But that doesn’t mean that cloud development and operations are easy.)

These goals apply to your database selection, just as they do to any other part of your stack.

What are the characteristics of a cloud-native database?

Now we can revisit the CNCF definition and extract characteristics of a cloud-native database that will help achieve our cost and time-to-market goals:

  • Scalability – the system must be able to add capacity dynamically to absorb additional workload
  • Elasticity – it must also be able to scale back down, so that you only pay for the resources you need
  • Resiliency – the system must survive failures without losing your data
  • Observability – tracking your activity, but also health checking and handling failovers
  • Automation – implementing operations tasks as repeatable logic to reduce the possibility of error. This characteristic is the most difficult to achieve, but is essential to achieve a high delivery tempo at scale

Cloud-native databases are designed to embody these characteristics, which distinguish them from “cloud-ready” databases, that is, those that can be deployed to the cloud with some adaptation.

What’s a good example of a cloud-native database?

Let’s test this definition of a cloud-native database by applying it to Apache Cassandra™ as an example. While the term “cloud-native” was not yet widespread when Cassandra was developed, it bears many of the same architectural influences, since it was inspired by public cloud infrastructure such as Amazon’s Dynamo Paper and Google’s BigTable. Because of this lineage, Cassandra embodies the principles outlined above:

  • Cassandra demonstrates horizontal scalability through adding nodes, and can be scaled down elastically to free resources outside of peak load periods
  • By default, Cassandra is an AP system, that is, it prioritizes availability and partition tolerance over consistency, as described in the CAP theorem. Cassandra’s built in replication, shared-nothing architecture and self-healing features help guarantee resiliency.
  • Cassandra nodes expose logging, metrics, and query tracing, which enable observability
  • Automation is the most challenging aspect for Cassandra, as typical for databases.

While automating the initial deployment of a Cassandra cluster is a relatively simple task, other tasks such as scaling up and down or upgrading can be time-consuming and difficult to automate. After all, even single-node database operations can be challenging, as many a DBA can testify. Fortunately, the K8ssandra project provides best practices for deploying Cassandra on Kubernetes, including major strides forward in automating “day 2” operations.

Does a cloud-native database have to run on Kubernetes?

Speaking of Kubernetes… When we talk about databases in the cloud, we’re really talking about stateful workloads requiring some kind of storage. But in the cloud world, stateful is painful. Data gravity is a real challenge – data may be hard to move due to regulations and laws, and the cost can get quite expensive. This results in a premium on keeping applications close to their data.

The challenges only increase when we begin deploying containerized applications using Kubernetes, since it was not originally designed for stateful workloads. There’s an emerging push toward deploying databases to run on Kubernetes as well, in order to maximize development and operational efficiencies by running the entire stack on a single platform. What additional requirements does Kubernetes put on a cloud-native database?

Containerization

First, the database must run in containers. This may sound obvious, but some work is required. Storage must be externalized, the memory and other computing resources must be tuned appropriately, and the application logs and metrics must be made available to infrastructure for monitoring and log aggregation.

Storage

Next, we need to map the database’s storage needs onto Kubernetes constructs. At a minimum, each database node will make a persistent volume claim that Kubernetes can use to allocate a storage volume with appropriate capacity and I/O characteristics. Databases are typically deployed using Kubernetes Stateful Sets, which help manage the mapping of storage volumes to pods and maintain consistent, predictable, identity.

Automated Operations

Finally, we need tooling to manage and automate database operations, including installation and maintenance. This is typically implemented via the Kubernetes operator pattern. Operators are basically control loops that observe the state of Kubernetes resources and take actions to help achieve a desired state. In this way they are similar to Kubernetes built-in controllers, but with the key difference that they understand domain-specific state and thus help Kubernetes make better decisions.

For example, the K8ssandra project uses cass-operator, which defines a Kubernetes custom resource (CRD) called “CassandraDatacenter” to describe the desired state of each top-level failure domain of a Cassandra cluster. This provides a level of abstraction higher than dealing with Stateful Sets or individual pods.

Kubernetes database operators typically help to answer questions like:

  • What happens during failovers? (pods, disks, networks)
  • What happens when you scale out? (pod rescheduling)
  • How are backups performed?
  • How do we effectively detect and prevent failure?
  • How is software upgraded? (rolling restarts)

Conclusion and what’s next

A cloud-native database is one that is designed with cloud-native principles in mind, including scalability, elasticity, resiliency, observability, and automation. As we’ve seen with Cassandra, automation is often the final milestone to be achieved, but running databases in Kubernetes can actually help us progress toward this goal of automation.

What’s next in the maturation of cloud-native databases? We’d love to hear your input as we continue to invent the future of this technology together.

This blog post originally appeared on K8ssandra and is based on Cedrick’s presentation “Databases in the Cloud-Native Era” from BluePrint London, March 11, 2021 (registration required).

Categories
Tips

7 DevOps books to read in 2021

If you are looking to learn more about Ansible, Azure, Docker, Terraform, Kubernetes, and their roles in DevOps, then this blog post is for you. We continue our series of must-read books with 7 DevOps books to read in 2021, as recommended by our friends at Packt.

Azure DevOps Explained

Get started with Azure DevOps and develop your DevOps practices

What reviews say:

” In my opinion, it is definitely one of the greatest books I ever read for DevOps.
Although I am Azure DevOps certified, I really enjoy reading this book and it gives me an extra overview of what I have learned.
It is well structured and the fact that is simple to read and follow along makes it more attractive. “

Terraform Cookbook

Efficiently define, launch, and manage Infrastructure as Code across various cloud platforms

What reviews say:

” I had the chance to read this book and I was really pleased by its content.
noting that this is not the first book or terraform material that I read, I would say that this book contains valuable structured information with also access to code used in various chapters.
it is certainly an asset for those starting their journey with terraform.”

Practical Ansible 2

Automate infrastructure, manage configuration, and deploy applications with Ansible 2.9

What reviews say:

This book is probably perfect for someone with reasonable experience. It was what I needed as a second book to get a good look at the ecosystem and a second opinion of how to use it. “

Kubernetes – A Complete DevOps Cookbook

Build and manage your applications, orchestrate containers, and deploy cloud-native services

What reviews say:

” Great coverage of common Kubernetes and DevOps tools. I’ve learned about some of the tools I haven’t used before like Jenkins X, GitLab, Fossa, Trivy, Litmus Chaos etc.
Although some of the long YAML files are provided in the GitHub repository I got the digital version, makes it easier to copy paste. “

Kubernetes and Docker – An Enterprise Guide

Effectively containerize applications, integrate enterprise systems, and scale applications in your enterprise

What reviews say:

“If you have worked on Kubernetes at all, you have experienced the frustration of trying to go beyond a cluster that has a single config file and a simple layer 7 load-balancer using NGINX. This book does truly target not only the enterprise user, but any person that wants to learn topics that make Kubernetes a complete offering.

I have been looking into the external-dns project on my list for a few months, but I never got around to doing much – Much to my surprise, when I was reading the topics covered in the book, it mentioned Services and external-dns. Chapter 6, alone, to me is one reason to buy the book since it explained and showed me how to install Metallb with external-dns in easy to understand terms and hands-on configuration.”

Learning DevOps

The complete guide to accelerate collaboration with Jenkins, Kubernetes, Terraform and Azure DevOps

” I would suggest reading through each section before you work along with the steps. There’s lots of references to other resources that are not necessarily part of the topics being discussed ”

Docker for Developers

Develop and run your application with Docker containers using DevOps tools for continuous delivery

” When reading articles, tutorials and even books, that is very common that at the end of the reading you struggle about how to translate that to a real production situation. Believe me, this book is different. You get to the end with a sense that you are very likely to know what are the next steps to apply what you learned to your existent or new projects. And this means a lot. The book has some great balance from history, concepts, example and practice. ”

What books have helped you deepen your knowledge of DevOps? Do share in the comments. Looking for more books to read? We have also shared recommended Backend and Frontend books.

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!