DEV Community

Ben Halpern
Ben Halpern

Posted on

What library/language/tool wowed you with its developer experience?

What thing really raised the bar for your expectations of developer experience when you first went to use it?

Top comments (84)

Collapse
 
lehmannsystems profile image
Mike

Netlify. It was unbelievable how simple it was.

Collapse
 
cescquintero profile image
Francisco Quintero πŸ‡¨πŸ‡΄

Same thing for Now.sh :thumbs-up:

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

Depending on how complex your API and CRUD are, Now.sh might be simpler and support more languages. But for SSG, it has to be Netlify this time.

Collapse
 
ben profile image
Ben Halpern

I'll name a few. Ruby really did capture me in this way. Being able to type irb into a terminal and then type "hello".upcase and see HELLO right there was really refreshing and spoke to me. I've been writing Ruby ever since.

In my brief experimentation with Flutter, I was quite impressed by the attention to developer experience that the developers are going for with this environment. I haven't done any production-oriented work, but if I went back to Flutter the experience would be a big reason for it.

Collapse
 
hyftar profile image
Simon Landry

Also "did you mean ... ?", Gotchas, syntactic sugar and Active Record in general. Coming from the .Net world where we have to write getters and setters even for the simplest model to this magical world where you can just code a db and a few relationships and everything just magically works. I sometimes get imposter syndrome while writing Ruby / RoR because everything is so easy and I feel like anyone could write a website in a few days. Of course it's not true, but it goes to show how uncomfortably good Ruby makes me feel.

Collapse
 
mburszley profile image
Maximilian Burszley

Coming from the .Net world where we have to write getters and setters even for the simplest model

Unclear when you last worked with .NET. T PropName { get; set; } is not really that difficult.

Thread Thread
 
hyftar profile image
Simon Landry

Never said it wasn't easy, just that you /have/ to. Even if it's small, my point is that it's redundant. In Ruby on Rails, you don't have to do that, it automatically generates most of the methods you need just by reading your database.

Collapse
 
janmpeterka profile image
Jan Peterka

For most of my time, I was writing in Python.
I really loved it and was able to argue for Python for hours.
I thought would never prefer another language when I had a choice.

Well... I was wrong.
In current job, I met Ruby (or Rails, to be specific) for the first time.
It seemed nice, easy to learn after Python, had some nice features.
I didn't realize how much comfortable and elegant it is before I did some work on my hobby project in Python.
It's still good, but there were multiple moments when I thought "well, I could write this much nicely in Ruby, shame Python doesn't do this".

Collapse
 
apstone profile image
Aaron Stone

I agree, Ben. I have done some Flutter work and it was a pleasure to work with.

Collapse
 
apstone profile image
Aaron Stone • Edited

Angular (v9.1.0 as of writing) has been delightful to work with so far. It has an awesome CLI that really empowered me hit the ground running on my new personal site. I am also really keen on learning Ruby.

Collapse
 
colewalker profile image
Cole Walker • Edited

I always thought that Angular would be the hardest of the front-end frameworks to learn, but it was much friendlier than React.

Collapse
 
apstone profile image
Aaron Stone

I agree!

Collapse
 
aminnairi profile image
Amin • Edited

Laravel, a PHP framework inspired by Ruby on Rails. The documentation is far, far far better than Symfony (and it saddens me because I'm french and I really wanted to support our french tech industry). But I'm forced to say that Laravel is a breeze to use (used it for two years). Eloquent really did make me love Laravel.

Elm has also caught my attention with its attention to super clear and explanatory error messages. It's like having a mentor 24/7, except it's free and it's a script. I don't know you, but I know no language or framework that tells you that:

Line 11, Column 13
The (//) operator is specifically for integer division:

11| test = 5 // 2.0
                ^^^
The right side of (//) must be an Int, but I am seeing a Float. I recommend
doing the conversion explicitly with one of these functions:

round 3.5     == 4
floor 3.5     == 3
ceiling 3.5   == 4
truncate 3.5  == 3

Note: Read <https://elm-lang.org/0.19.1/implicit-casts> to learn why Elm does
not implicitly convert Ints to Floats.
Collapse
 
shaijut profile image
Shaiju T • Edited

Programming Language should make developer life easier.

-It should be easy to learn.
-It should be maintainable.
-It should be easy to read, some languages have short syntax and its hard to find out were it starts and ends.
-It should have meaningful syntax and methods.

C# Meets all these points , I think its better than Java and other languages.

Tool should increase productivity:

-It should help locate files fast.
-It should help find Methods and Variables , References fast.
-It should make debugging easy.
-It should increase productivity.
-It should help build app using rapid development.
-It should make maintenance easier even in large enterprise projects.

Visual Studio and Visual Studio Code meets all these.

What you think ? πŸ˜„

Collapse
 
mburszley profile image
Maximilian Burszley

The only downside of Visual Studio to me is all the magic going on in the background with csproj/sln/msbuild files. I also really like C#, especially w/ the dotnet cli.

Collapse
 
simphiwehlabisa profile image
simphiwe sifiso hlabisa

I wish i can have that kind of enthusiasm with c#. πŸ˜‚

Collapse
 
rhymes profile image
rhymes

Ahaha a

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

For VSCode critiques, I cannot count how many times I have to reload (both the window and TS server). It can also hangs and sometimes slow.

Collapse
 
lawrence_eagles profile image
Lawrence Eagles • Edited

React Hooks. Thrilling experience with the functional programming approach, plus it takes away the pain of writing verbose class components. useEffect just saves me the mess in componentDidUpDate and code reusability makes things cleaner.

Collapse
 
dylantientcheu profile image
Dylan Tientcheu

I am really surprised no one mentioned VueJS. It’s simply awesome to work with.

From CLI create to deployment, you feel like they wanted you to focus on building your UI only rather than « the rest »

Collapse
 
thealiilman profile image
Ali Ilman

Ruby.

The idiomatic methods, the elegant syntax!
I’ve shed happy tears TWICE after looking at arguably the most elegant code I’ve ever seen in my life. And they were written in Ruby. πŸ™‚

Collapse
 
robole profile image
Rob OLeary

Getting back to front-end. after a long hiatus., I tried some frameworks out. Vue's documentation is exceptional. Vue CLI, and the Dev Tools Extensions in Chrome and FF have made the first steps smooth.

Collapse
 
ididnt_getalong profile image
Sudharshaun Mugundan

React and react hooks. Before react, I didn't have any much of framework experience so I was like can this be done easier!!! I use to write wrappers to manipulate DOM and was clunky to maintain. React gave me a great dev experience for the smooth transition.

Collapse
 
not_jffrydsr profile image
@nobody

. . . I agree πŸ’― Ruby & Elm merit all the praise for their unique grammars and DeveloperX. Personally, what's reigned supreme (after 3yrs (to mere competency) of steep walling) is the Clojure/ClojureScript stack.

For concision's sake I'll share 2 reasonings why still Clojure most wows me...

  1. Unique Homoiconic syntax - Clojure, most evidently, is a LISP (a programming language consisting grammatically of lists). As a LISP, Clojure code is substantively identical to Clojure data. This is possible thanks to Prefix (Polish) Notation where valid expressions follow the order: (( <Functor> < & Args> ). In addition, Clojure uses unique enclosing characters for various data types [ ] <- vector, { } <- map, ( ) <- list, this adds readability and simplifies conventions.

  2. Genuine Metaprogramming - many languages incrementally added Reflection & Metaclass
    protocols/interfaces that allow programmatic changes to source code attributes during runtime( Python, Ruby, Haskell, etc...). LISPs like Clojure or Racket enjoy an abstract syntax tree modeled in source and evaluation, allowing code generation with macros that relates to evaluation 1-to-1. I think features like this need to be a core aspect of a language spec, not an after thought like most other infix-notation languages.

Collapse
 
ssimontis profile image
Scott Simontis

I really want to like Elm but I am very disappointed where the creator has chosen to take the language. It really bothers me how restrictive they have made the package system and how only he and a select few are given the freedom to work with native code.

I understand his ideology, but at the same time, it seems pretty arrogant to not trust your user base to code things correctly. The reality is that you are going to have to interop with JavaScript at some point, because the entire world doesn't run on Elm, and all he's accomplished is making that experience even more painful.

Collapse
 
bugsysailor profile image
Bugsy Sailor

I continue to be impressed with Hugo.

Updates are released consistently and frequently. The ease and speed of getting a site built from scratch really impressed me. A number of the major releases have been super beneficial for my own projects, and the speed of building the site continues to improve, somehow. The active discussion board can get your questions answered quickly and there's a huge list of very useful functions.

Collapse
 
kovah profile image
Kevin Woblick

Can totally agree with that. After trying to get my head around Jekyll I knew I need something better. The first steps were super easy with Hugo. Also, while the structure is not the best, the documentation has many details and features covered. I rarely had to search on Stackoverflow for issues.

Collapse
 
alainvanhout profile image
Alain Van Hout

It may sound counterintuitive, but Java as a language because by form and by convention it forces you to be verbose, that is explicit, rather than terse. And the Java ecosystem, which really has no equal in maturity and reliability.

Collapse
 
tomekbuszewski profile image
Tomek Buszewski

IntelliJ. Solving most of my problems with [options+return] is a game-changer, plus refactoring options, fuzzy search etc., out of the box.

Also, Python. Writing readable, easy to understand code is very natural with it. And Django. Ease of setup, great documentation and extendability has won me over in a couple of first minutes.

Collapse
 
cjbrooks12 profile image
Casey Brooks

Kotlin.

It integrates with Java so incredibly seamlessly, and coming out of JetBrains, its IDE support is good with lots of helpful inspections and automatic Java->Kotlin conversion.

I also love how the Kotlin team always tries to provide solutions to the general problem instead of a bunch of smaller nuanced features and keywords. An example is a complete coroutines framework instead of singular mechanisms for "async/await" and "generator functions", which can both be implemented on top of the coroutines framework.

The IDE performance could certainly be better, and multiplatform (js, iOS, native) tooling is a bit confusing right now, but it's still a relatively early project and the future is looking very promising for Kotlin.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.