kolme
Joined 13 years ago
Joined 13 years ago
I was thinking the whole time, "this person would _love_ Clojure".
IIRC I stopped using it when Firefox ("Phoenix" at the time) was released.
You can have real branches! Many of them! You don't have to manually merge them! It's decentralized, you can have multiple origins, it lets you work offline! The list goes on and on.
There were many compelling reasons to switch to Git. But for all the articles about jj out there, I've never read any compelling reason to switch to jj. "It easier", "the commands are somewhat more ergonomic"... that's all?
- Scrolling is unbearable on Firefox/Android.
- The icons are way too "noisy" I would remove them. Also, posts without icon look "misplaced".
Other than that looks pretty nice. The dark mode is awesome. Don't let the angry mob bring you down ;)
Really? I write code to pay my bills and sometimes just for fun.
Trying to do everything "the most optimal way possible" is going to get in the way of actually getting stuff done.
"Why do we code? To prematurely optimize all the things".
First and foremost I was wrong thinking that I was smarter than others — that's not even how intelligence works.
Second I was wrong being so stubbornly pro-tabs / anti-spaces (for example). It doesn't make that much of a difference, so there's no point in being so passionate about it.
And third I was wasting everyone's time (and my persuasion powers) by not choosing my battles more wisely.
My suggestion would be nowadays: let's choose a popular style guide, set up a linter and be done with it.
I thought I was very smart. Like, really really smart, maybe the smartest programmer in the team.
And as such my opinion was very important. Maybe the most important opinion in the team. Everyone had to listen to it!
That is all. Also, I was wrong.
Also, there are many linters that also do formatting, blurring the "line" you're pointing at.
How is it spreading knowledge around? A lot of times it gives half backed answers and a lot of beginners are using it while learning. That's not a good mix in my opinion.
I've been helping someone who's learning programming and I've had a look at their code. All of it is vibe coded. And the vibes are nightmarish, I don't think the AI is helping at all.
The only thing it's useful for is sparing expert programmers some tedious work, that's my perception as a programmer.
Oh, but we do this in ClojureScript the whole time.
You can express events and actions in pure functions as data and then take care of the effects outside of the core of your application.
A great example of how to do this is the "re-frame" framework [1] [2]. The documentation is also a joy to read.
> An example of this impedance surfacing in backend programming is a nontrivial map/reduce pipeline. What is the shape of the document at stage six?
There's many ways to find that out in Clojure/Script. There's the built-in `tap>` function [3] which can be used for debugging. You can use that to visualize complex data with Portal. [4]
(defn inspect
[coll]
(doto coll tap>))
(->> coll
(map this)
(inspect)
(filter that))
[1] The framework: https://github.com/day8/re-frame[2] A library with HTTP-Effects for your re-frame applications: https://github.com/Day8/re-frame-http-fx