Tonsky: Don't go crazy with Clojure unless it makes you happy
The author shares their journey using Clojure macros for Humble UI's component library, emphasizing the language's flexibility in enabling unconventional solutions like reading source files and fetching code seamlessly.
Read original articleThe author discusses their experience with Clojure macros while working on Humble UI's component library. They wanted to document the library and use it as an integration test by showcasing every possible option. They created a macro that generates a table displaying running code alongside its source. Initially, existing formatters didn't meet their needs, leading them to consider reading the source file directly within the macro. Despite acknowledging the unconventional approach, the author appreciates Clojure's flexibility in allowing such experimentation without complex tooling. They highlight the language's unique ability to enable unconventional tasks like reading source files or fetching code from the internet seamlessly. The post reflects on the joy of working with Clojure for its capacity to explore unconventional and creative solutions within a concise and straightforward codebase.
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Why Use Clojure for Machine Learning?
Clojure's functional paradigm benefits machine learning with modular, readable, and predictable code. Leveraging JVM ensures speed and portability. Integration with Java libraries like TensorFlow and PyTorch supports deep learning. Despite being less mature, Clojure shows promise in ML projects.
Bio – experimental Lisp dialect, written in Zig
Bio is an experimental Lisp dialect on GitHub, featuring macros, garbage collection, and lambda expressions. Documentation is ongoing, with examples in `std.lisp` and `test.lisp`. Explore for more details.
It's all up for grabs, compound with glue
The article explores Emacs customization using elisp, emphasizing combining utilities like symbol-overlay and multiple-cursors for enhanced workflow efficiency. It also mentions a new blogging service at lmno.lol.
Poor man's job runner with Clojure Agents
The article explores creating a job runner in Clojure using Agents for concurrency. It discusses motivation, implementation details, pros (no external libraries, error recovery) and cons (single process dependency, timing bugs).
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Why Use Clojure for Machine Learning?
Clojure's functional paradigm benefits machine learning with modular, readable, and predictable code. Leveraging JVM ensures speed and portability. Integration with Java libraries like TensorFlow and PyTorch supports deep learning. Despite being less mature, Clojure shows promise in ML projects.
Bio – experimental Lisp dialect, written in Zig
Bio is an experimental Lisp dialect on GitHub, featuring macros, garbage collection, and lambda expressions. Documentation is ongoing, with examples in `std.lisp` and `test.lisp`. Explore for more details.
It's all up for grabs, compound with glue
The article explores Emacs customization using elisp, emphasizing combining utilities like symbol-overlay and multiple-cursors for enhanced workflow efficiency. It also mentions a new blogging service at lmno.lol.
Poor man's job runner with Clojure Agents
The article explores creating a job runner in Clojure using Agents for concurrency. It discusses motivation, implementation details, pros (no external libraries, error recovery) and cons (single process dependency, timing bugs).