DEV Community

Cover image for What languages and tools do you use that spark joy?

What languages and tools do you use that spark joy?

Rob OLeary on June 10, 2020

You may have heard of Marie Kondo, a Japanese Organization Consultant, she wrote a book called The Life-Changing Magic of Tidying Up. In the book s...
Collapse
 
lalabadie profile image
Louis-André Labadie

Lua! In my case, I used it with LÖVE.

It's exceedingly clear, it runs everywhere, and it's close enough to the metal that no bugs are magical. Every time I use it, it's a pleasure.

Collapse
 
robole profile image
Rob OLeary

LOVE looks cool! I was unaware of Lua until I was looking at single-board computers, i was surprised that Lua was a common language to be bundled with them!

Collapse
 
gypsydave5 profile image
David Wickes

Yeah +1 to Lua. Aggressively simple. I've been enjoying my Lua with Lisp flavour recently - check out Fennel.

Collapse
 
fronkan profile image
Fredrik Sjöstrand

Löve is for sure the game engine I have enjoyed the most! Is is just fun to use even for the first time. I recently tested phaser and that was so rough in comparison.

Collapse
 
itsjzt profile image
Saurabh Sharma

observablehq.com and quokkajs.com

I wish regular development could have that kind of feedback loop

Collapse
 
zilti_500 profile image
Daniel Ziltener

Sounds like you wish for a Lisp

Collapse
 
robole profile image
Rob OLeary

Some of the observable journals are beautiful, I have not used it, but would like to pick it up some time :-)

Collapse
 
galoisgirl profile image
Anna

Before answering that question, I'd go back to the roots of the KonMari method. "Sparking joy" is an imperfect translastion from Japanese, says redditor:

Long and short of it, ときめく(Tokimeku) is a compound verb by "Toki" and "meku", where "Toki" is derivation of "Dokidoki" (Heart pounding) according to the two main Japanese dictionary. Full meaning :

Daijirin Dictionary 3rd edition (大辞林 第三版 ) - "ときめく( 動カ五[四] ) : 喜びや期待などのために、胸がどきどきする。" = Due to the joy and the feeling of looking forward, the heart is pounding.

Daijisen Dictionary (大辞泉) - "ときめく[動カ五(四)] : 喜びや期待などで胸がどきどきする。心が躍る。" = Because of the joy and the feeling of looking forward, the heart is pounding.

Looking forward is crucial in technology. Tools and frameworks are constantly evolving. Sometimes, this happens too fast, with people focusing too much on trends and buzzwords.

"Joy" is not the term I'd use for my experience with npm - quite often, it's exactly the opposite, I'm feeling very frustrated. But in going forward with my current project, npm is the tool that will let me reach my goals.

Collapse
 
robole profile image
Rob OLeary

Yep, I agree that you have to look forward in tech, and evolve, but I think it's important to be rooted in the present and not to be swayed too much, or too far from the core of what you enjoy. Of course, sometimes you have to use a tool because of a work environment, or the high adoption rate in the industry. So, if you can choose, choose a work environment that uses your "happy" stack!

I have not had to use npm extensively, so I cant share your pain! The trend that some people hope for is to use native imports more in the future and reduce the reliance on npm, I believe that's the ecosystem Deno is going for

Collapse
 
miketalbot profile image
Mike Talbot ⭐

If it's a tool: for me it is probably Wallaby.js - realtime as you type test runner with super powerful in editor feedback and debugging tools (and as someone else said, Quokka.js its sibling).

For a language then that's harder - I always had a soft spot for Ruby, I'm very excited about Elixir, I think C# is powerful and expressive, but coming from where it was - modern Javascript has a fluidity that is complimented by it's new found terseness and support for asynchronous coding.

Collapse
 
wilgert profile image
Wilgert Velinga

Wallaby is the best. Not only is it a joy to use, if you by accident throw a project at it that doesn't work their support team is always very quick to help you out (Example: github.com/wallabyjs/public/issues...).

For other languages there are also alternatives. C# -> nCrunch, Python -> PyCrunch, Java -> InfiniTest.

Collapse
 
kevinschweikert profile image
Kevin Schweikert

For me it‘s Go/Golang! I love to write it and learning something new feels like reading a good book. Interesting and rewarding

Collapse
 
tfantina profile image
Travis Fantina

Ruby and Rails spark more joy than anything else for me. I'm also a huge fan of Elixir, it's a phenomenal language and in my opinion, has some of the best documentation out there: it's standardized, concise, and easy to document your code as you go.

Svelte also sparks joy, I haven't been able to use it too much yet but the little I've played with it has me excited to try building something real with it.

As far as tools, Atom still sparks joy, it does everything I need, easy to configure and it was my first real text editor. For notes Bear sparks joy.

Collapse
 
joaomarcusc profile image
João

You know, programming in React is sparking joy for me. I like how easy it is to create components and refactor them into smaller pieces. It's 6 years old an still going strong, evolving and getting better while not leaving old code behind.

Collapse
 
robole profile image
Rob OLeary

I noticed a lot of people speaking fondly about TailwindCSS. It's on my radar :-)

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

Personally, I don't really see the benefit of TailwindCSS, or I haven't use it much.

  • TailwindCSS is still a framework, with unneeded CSS. You still have to purge / minify it.
  • Still, atomic CSS is a way to go.
  • Much can be accomplished using mere SCSS, but for some reasons, default HTML stylesheet is so bad... much has to be revamped.

Yes, please Change my mind.

Collapse
 
richytong profile image
Richard Tong

I love the library I created: rubico. Think RxJS, but no Observables, just vanilla types. I put up a website with some runnable code examples here. Here's a code sample with deno that I look at every now and again

import { serve } from "https://deno.land/std/http/server.ts";
import { map, transform } from "https://deno.land/x/rubico/rubico.js";
const s = serve({ port: 8001 });
console.log("http://localhost:8001/");
transform(map(req => {
  req.respond({ body: "Hello World\n" });
}), null)(s);
Collapse
 
devsrsouza profile image
Gabriel Souza

Kotlin and Coroutines

Collapse
 
jsn1nj4 profile image
Elliot Derhay

As a PHP user, I love using Laravel. I also love using Tailwind CSS whenever I get the chance.

Tailwind was weird to look at at first with all of the class names, but it quickly became easy to remember them by their prefixes.

As another comment said, the Tailwind IntelliSense plugin for VS Code also helps a lot when you're trying to find the right variation of a class (especially margin/padding sizes and text colors).

I guess I could say I'm happy not having to directly write CSS. It's so time-consuming.

Collapse
 
zilti_500 profile image
Daniel Ziltener

Clojure so much. The whole ecosystem around it, and on Emacs, and yes, also that little tool called "clj-kondo" :P And lately to a big part the Fulcro framework. The tooling it has is amazing.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
pablodavila_ profile image
SuperAudioFriend

Try Elixir and Phoenix :)

Collapse
 
michi profile image
Michael Z

Despite its many quirks, JavaScript is fun. To this day I still pick up awesome little tricks like this one.

Collapse
 
tnypxl profile image
tnypxl

I was a Ruby/Rails stan for a long long time. Did modern javascript for a couple years, going through all of the relationship phases there. Then I got a job doing C#/dotnet, all the type safety and building before seeing any change was annoying at first. But then it started clicking. I've grown very skilled at learning to like whatever platform I'm working in. But, C# is the first language that I'd genuinely be happy coding in for the foreseeable future.

Collapse
 
robole profile image
Rob OLeary

I've had similar experiences going from language to language. If you go from statically typed to dynamically typed, it can feel wild west in the beginning, but once you recognise the types of things you need to be concerned with, and what you can ignore, the paranoia dissipates. For me, JS still feels a bit wild west. I prefer languages with more substantial built-in libraries. Over time, with familiarity, you can grow to like a language, but I think depending on your background and personality, you can be drawn to particular languages more.

Collapse
 
togmund profile image
Ted Ogmundson • Edited

For me, it's #elixir
Favorite to read.
Favorite to write.
Makes hard problems easier.

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

Unix systems come to mind - the philosophy of small tools that do one thing and fit together really well. Vi, specifically Neovim, always makes me feel right at home. Git just generally tends to make me super stoked by how powerful it is.

Honestly, there aren't many libraries, languages or frameworks that have made me feel that way. Most seem to have too many jagged edges. The closest one is probably pytest - fantastic framework. Super flexible, and so well thought out. Top-quality docs, streamlined design, no-hassle setup, plugins, and just the right level of guard rails. I'm not a huge fan of dynically-typed languages, but the Python community in general seems to be just so full of good ideas.

Collapse
 
devjev profile image
Jevgeni Tarasov

Hands down Rust and Cargo. One of the best, most rewarding developer experiences I’ve ever had.

Collapse
 
madza profile image
Madza • Edited

Regex.

-Said no one ever :)

Collapse
 
rrampage profile image
Raunak Ramakrishnan • Edited

I'll be that person :P ... I love regexes. Tools like grep, sed, awk become power-tools when using regexes allowing you to slice and dice log files easily. They do have a learning curve, but once you have learned them, they are the most reliable tool, having a decent library in most programming language. I think regexes are a great example of abstract computer science (finite state automata) concepts being useful in practice.

Collapse
 
robole profile image
Rob OLeary • Edited

I wouldn't rate regex as joyful, but I like it. I dont feel the dread that some people have for regex! For some tasks, it is great, and packs a lot of punch. I think a lot of DSLs have a similar effect on people.

I wrote a post recently about calculating the reading time of a post, and regex shrinks the code dramatically, no need to do any parsing of html.

Collapse
 
johannesjo profile image
Johannes Millan

For me it's my favorite side project which is a to do/ time tracking app that I use every day. Often times when working for clients I am completely detached from the end result. I will never use it myself. Using my app is the opposite of that and it gives me so much joy to have build something which is very useful to me and it makes me even more proud if it is useful to others as well..

Collapse
 
robole profile image
Rob OLeary

The other side of writing code is liking what you're building! If you build own tools, I think it will give you more joy by default, especially since it matches your mental model for doing something.

Collapse
 
ryands17 profile image
Ryan Dsouza

VSCode and Prettier together work so well :) And TypeScript as always makes me happy to work with as it provides such a great Development Experience. I really cannot begin to start a new project without TS anymore :)

Collapse
 
robole profile image
Rob OLeary

I started using Prettier recently and it makes life easier. I appreciate tools with good defaults and that just work!

 
michi profile image
Michael Z

I've built a little interactive tutorial to overcome this initial skepticism you are talking about: learning-by-vueing.netlify.app/tai...

All free and can be completed very quickly.

Collapse
 
nullpointer0x00 profile image
Carlton Hanna

I can't live without Emacs plus org-mode. This is what helps get me through my day. I used to have so many applications open at once. This just became more desktop clutter and became a big distraction. Now, I have very few applications open and this allows me to focus on the tasks I need to get done. There is no end to what you can learn or do with emacs. I enjoy learning something new every single day.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

TypeScript (and Node.js) sparks an unhealthy relationship. It's love-hate, but the development is fast, as well as let me develop anything I can think of. (partially due to vastness of NPM, and partially due to dynamicness of JavaScript.)

Collapse
 
waylonwalker profile image
Waylon Walker

I have really been in love with type checking in python with mypy.

Collapse
 
burakaykan profile image
Burak Aykan ÜRER

Spring Boot ❤️

Collapse
 
hayden profile image
Hayden Rouille

Elixir is so beautiful to write <3

Collapse
 
anzelika profile image
Anzelika

Vue's native 2-way data binding sparks big balls joy in my daily work. I'd marry v-model if I could!

Collapse
 
robole profile image
Rob OLeary

A v-model husband 😄

 
robole profile image
Rob OLeary

Yes, I can imagine, you need to learn and buy into the mindset, and then it becomes easy 😏