Thoughts about Developer Experience

It's interesting how people often debate about the fastest framework, the most popular stack, the best programming language, or the most lightweight library, but they don't pay much attention to the developer experience 💻.

Set up an effective development environment, work with stacks that have a good developer experience, and you will:

  • stay longer in the flow

  • focus more on business problems

  • struggle less when issues occur

  • enjoy more your day

This will make you a more productive and happier developer, and your company might be more successful as well.

Illuminated letters on the floor spell out "CODE HAPPY".

I don’t think we should choose a technology only because the developer experience is great. Of course, we should consider features, adoption, support, community, performance, etc. However, even if it's not the main factor, developer experience should still be part of the decision-making process.

People won't always agree on what makes a good developer experience. There are many aspects to it, and not everything is equally important to everyone. A framework that I believe provides a good developer experience might not be as good for someone else, and that's fine. Everyone comes from different backgrounds, has experienced different technologies, has different tastes, and needs to find what suits them best.

I have always been interested in useful tools, nice IDE plugins, and interesting tips to improve my developer experience. I try to share some of that on this blog, and I plan to do so even more in the future. I also want to talk more about technologies I have been using that have a good developer experience.

For instance, I can mention:

Nuxt

The “Intuitive Vue framework” (as it’s called in the Nuxt’s website) provides one of the best developer experience I have ever seen. There has been a real focus put on developer experience, which makes developing with Nuxt very enjoyable. It’s not only the framework but also the tools, check the Nuxt DevTools for instance, it’s just awesome. Of course, not everything is perfect but it’s nice framework and a good example of what a great developer experience can be. This blog is made with Nuxt by the way 😀.

Screenshot of the Nuxt website showcasing version 3.15. The text highlights "The Intuitive Vue Framework," describing Nuxt as an open-source framework for building web applications.

Pulumi

With Pulumi you can author your infrastructure as code using programming languages like TypeScript/JavaScript, Python, Go, C#, or Java. The developer experience is nice because you don’t have to learn and use a clunky DSL (domain specific language) like HCL to write your infrastructure code. You can use a language your already know, and benefit from its ecosystem and tooling. The developer experience is only one of the reasons of using Pulumi instead of Terraform but I think it’s an important one because when doing IaC you don’t want to focus on the tools but on the complexity of configuring the infrastructure itself.

Screenshot of Pulumi's website highlighting "Infrastructure as Code in any Programming Language" with a "Get Started" button. The page promotes authoring in any language for cloud deployment, featuring languages like TypeScript, Python, Go, C#, Java, and YAML.

I’m not saying you should use these technologies, it depends on your context and preferences. These are just 2 examples of technologies that I love, partly due to their developer experience and why it matters.

So, what’s next ? I want to start a new series of articles “.NET Aspirations” talking about .NET Aspire. .NET Aspire primarily aims at improving the local development experience when developing modern .NET applications (distributed or not). That seems an interesting topic to keep talking about developer experience. See you in the next article, and keep learning.

0
Subscribe to my newsletter

Read articles from Alexandre Nedelec directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Alexandre Nedelec
Alexandre Nedelec

I am a software developer living in Bordeaux. I am a .NET and Azure enthusiast, primarly coding in C# but I like to discover other languages and technologies too.