Personally, I had good experience with marimos so far. Reactive execution, variable deduplication, clear business logic vs UI elements logic separation that is forced on you is good. It retrains ppl to write slightly better structured Python code which is a win in my eyes.
Not very hard to you, however the reproducibility numbers tell a different story. Back in the days, when we were searching for some ML model implementations in the public repos and found ipynb files in it, we skipped the repo without delving into details. Within the company data engineer research notebooks were never allowed inside a repo. Experiment, yes, but rewrite it in plain python and push.
A lot of people don't put away shopping carts, but the conclusion from that isn't that putting shopping carts away requires very high discipline. (Maybe if what is meant by "very high" is "not so low that everyone will do it", which is perhaps the point)
pacman and aur with preconfigured DE, it saves a lot of time. I switched to Manjaro after I got tired of tweaking arch even for most trivial things every single reinstall. Its the best distro for learning though. Apt or rpm distros can barely compete with the amount of available and up-to-date packages in aur.
Some people say that Manjaro is bloated, and I understand. But if you want a customized setup I find it easier to install Manjaro, remove what I don't want and them customize than installing doing the opposite with Arch
Sigh. I don't get the sentiment and the whole debate here. The author is clearly nitpicking (he is the first person who uses messages after all). But honestly, complaints about "arrange" screens button?
Nevertheless, he is probably right. Only the people who went through working on Windows, Linux both on cheap and expensive machines while dealing with all the "baggage" these environments bring can tolerate MacOS with leniency. I will never come back to anything else until I see a competitive offer from just anyone because what Apple offers is:
* Fast, silent, extremely energy efficient devices with excellent screens and audio.
* The font rendering. I honestly can't believe people who professionally work with text all their lives never mention it here. MacOS had and continues to have the best fonts and font rendering that is.
* Solid build that lasts (I own MacBook Pro and MS Surface Book 2 both from 2019 so I see how they age).
* A device that is ready to work when you open a lid or touch a keyboard button without any "waking up from sleep/hibernation" or freezing due to buggy video drivers and inability to work with GPU in hybrid mode OUT-OF-THE-BOX in 2025.
The above-mentioned is more than enough for me to tolerate any MacOS issues and the ones mentioned in the article are just laughable.
Apple offers you the full package that allows cross-device integration while Win/Linux users still rely on the Google stack or other third party "workarounds". Yes, no surprises here -- owning the hardware and software stack is a massive advantage.
> * The font rendering. I honestly can't believe people who professionally work with text all their lives never mention it here. MacOS had and continues to have the best fonts and font rendering that is.
Linux has significantly better font rendering than macOS these days if you're on a 140 or less PPI screen. Linux still does subpixel AA and text looks razor sharp, while Apple pretends very large monitors like my 140ppi 57" don't exist.
I tried doing some LeetCode problems and found that the time I spent making sense of their task descriptions is just not worth it. They are a mixed bag and some of them are simply not well written to a degree that you feel stupid while spending hours to make your code pass their tests. Is it some elaborate scheme to make you pay and use the debugger? In the end I simply didn't enjoy the process.
What I really liked going through though are project euler and 4ever-clojure problems. It's subjective but I suspect it's because you don't need to read through paragraphs of text before starting to write a solution. It's the opposite, the small problems with clear goals leave you with more space for creativity and urge you to write more code in the end. I personally found the hours spent on such problems to be more productive.
I have to admit, several years ago, a colleague of mine advised me if not to try Clojure but at least to read the "History of Clojure": https://dl.acm.org/doi/pdf/10.1145/3386321, which I never did. But one day I decided to watch Rich Hickey - Greatest Hits https://changelog.com/posts/rich-hickeys-greatest-hits... I then read the "History of Clojure", and then jumped into learning it.
This is probably one of the most fun languages to build with and one of the most beautiful ones. If not syntax-wise, rather in a way it allows you to express your thoughts via good design and composition that so nicely tickles your brain. If you are still searching for that one shiny tool, and none of them clicks, maybe try Clojure. It's one of the most concise and yet powerful languages I've seen.
I got what you described by learning Common Lisp just a few months ago. Do you think learning Clojure would get me something in addition to that or is it roughly the same?
> Do you think learning Clojure would get me something in addition to that
For me, the biggest benefit is that it's hosted. Learning only Clojure, I can easily today write for JVM, .NET, JavaScript, Flutter, or shell scripts. Even when I need to write Lua, I'd usually pick Fennel. It's not Clojure but feels very similar. There are libs that can give you Python or R interop from Clojure. There are projects to target Golang, Rust or Erlang. Jank is a super interesting, experimental implementation of Clojure that runs on LLVM, I'm very excited about it. Do you want to become a true polyglot programmer? You only need to learn Clojure.
I can't really say. I know you can (for example) use LispWorks to write CL for mobile, targeting both - Android and iOS, but I think there would be greater friction to keep it cross-platform, each platform's nuances would have to be handled differently, it's not going to be very unified codebase (I think).
I think Clojure leans into immutability a lot, and that leads to more interesting APIs and norms that are valuable. CL has always felt a bit more.... "running on a machine" that I feel has less of a place in an era where everyone and their dog has functional programming essentials built in.
Clojure is interesting, but some Clojure APIs (stuff like Spectre) is "I want this everywhere now" stuff.
Clojure also teaches you functional programming, where-as CL only teaches you the LISP beauty. Clojure teaches you both Lisp and Fp. So the FP part should still be worth it even though you got the Lisp part from CL.
Clojure has immutability built into the language and the core data structures are all persistent so that you can get sufficiently efficient partial updates while still preserving a pure FP style.
Furthermore, the data structures in clojure also have interfaces that make it easier to swap out which data structure you're using while still keeping whatever map/filter/reduce algorithm implementation you're sending it through.
Common lisp, on the other hand, has setf. Which more or lets you mutate anything. You certainly can code in an FP style in common lisp, but it doesn't restrict you in any meaningful way. Not a problem if you control the entire codebase, but when gluing components together this can be a source of friction.
FP in CL is kind of optional, and it's also more in the sense that you can pass functions as arguments or return functions, meaning FP == First Class Functions.
But in Clojure, FP is kind of mandatory, there's no OO for example, and it's more than just first-class functions, it's also immutability.
Depends on your style of programming CL. Clojure is immutable by default with a heavy emphasis on concurrency and strong ties to the JVM as its host environment. The differences you’ll find mostly lie in those areas.
IMO, Clojure is superficially/syntactically much more elegant and beautiful than Common Lisp or Scheme. I find this really helps you focus on what matters most.
Clojure uses immutable lists, vectors, hashmaps, and sets. Also it has syntax sugar such as [1 2 3] for vectors, {"Jan" 31 "Feb" 28} for hashmaps, #{1 2 3} for sets, and much more. Also it has multimethods which are even more generic than CLOS.
I used to use Phind for couple of months. I liked the UI improvements but the slow limited free GPT4 and fast lackluster Phind model turned me off. I tried Bing and it wasn’t worse, had more free searches per day.