Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2464

V

Val on Programming

Personal blog · vvvvalvalval.github.io/postsprogrammingdata

Val on Programming is a personal blog at vvvvalvalval.github.io about programming and data. Since 2016, 29 different Hacker News readers have linked it 67 times, most often “Datomic: Event Sourcing without the hassle”. The last post was in 2024, but the archive is still widely read.

Visit the blog
67mentions?
3recommend?
29HN people?
2016–2025first – last linked?
Links on Hacker News per year · peak 10 in 2018

Rarely recommended · 3 of 37 sampled comments recommend it?

Why HN links it

HN readers link this blog, Val on Programming, for essays on Clojure, REPL-driven development, Datomic and event sourcing, and static versus dynamic typing.

Recommended for · 3 comments
Called a very interesting post on its topic, an excellent blog post, and the best blog post one commenter has seen on REPL-driven development.123

Summarised by Claude from a sample of 37 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Datomic: Event Sourcing without the hassle
    10 people · 16 mentions · first linked 2018-11-12
  2. What makes a good REPL? (2017)
    6 people · 13 mentions · first linked 2018-10-31
  3. What makes a good REPL?
    5 people · 7 mentions · first linked 2017-08-23
  4. So yeah, about Clojure's syntax
    3 people · 3 mentions · first linked 2018-01-09
  5. Datomic: Not the history you're looking for (2017)
    2 people · 5 mentions · first linked 2022-04-22
  6. DataScript (Lingua Franca for domain modeling)
    2 people · 3 mentions · first linked 2018-09-15
  7. /posts/2018-05-01-making-a-datomic-system-gdpr-compliant.html
    2 people · 2 mentions · first linked 2018-11-13
  8. DataScript as a lingua franca for domain modeling
    2 people · 2 mentions · first linked 2018-07-23

What Hacker News says?

  1. > I think there are some projects floating around out there, but I personally don't see a purpose for one. It's not python or matlab I was thinking of a REPL in the sense of common Clojure usage ( https://vvvvalvalval.github.io/posts/what-makes-a-good-repl.... ) not the basic "write lines into a separate program and then copy-paste it into your source code" that Python offers.

    Comment linking /posts/what-makes-a-good-repl.html

    on “Dave Herman’s contributions to Rust”
  2. Submitted Datomic: Event Sourcing without the hassle as a story · 206 points

    HN discussion
  3. Simple core languages that are syntactically extensible with libraries have the best of both worlds: https://vvvvalvalval.github.io/posts/2018-01-06-so-yeah-abou...

    Comment linking /posts/2018-01-06-so-yeah-about-clojures-syntax.html

    on “What's Coming in Python 3.8”
  4. Submitted What makes a good REPL? as a story · 168 points

    HN discussion
  5. Clojure isn't actually a purely functional language. It's more of a consenting adults language that guides you towards doing the right thing by default. If you write idiomatic Clojure code, then it will be written in a purely functional style. However, Clojure won't stop you from writing imperative code or adding side effects if it makes sense in your particular scenario. Lisp family of languages also have a lot of…

    Comment linking /posts/what-makes-a-good-repl.html

    on “A History of Clojure [pdf]”
  6. Submitted Supdate – A Clojure library for transforming nested data structures as a story · 155 points

    HN discussion
  7. Datomic: Event Sourcing without the hassle https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even...

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “Event Sourcing is Hard”
  8. Submitted Datomic: this is not the history you're looking for as a story · 132 points

    HN discussion
  9. Some contrarian opinion: https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even... Basic idea is to make the event log dumb. Instead of capturing business logic, make them as dumb as SQL commit logs: this row was inserted at this time, that row was deleted at that time. Sort of like a glorified WAL file. Benefits of this scheme? Querying old database states and auditing.

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “Event Sourcing is Hard”
  10. Submitted What makes a good REPL? (2017) as a story · 90 points

    HN discussion
  11. A lot of the same refactoring is possible in dynamic languages as in static ones. I recommend reading up on Term to see what's possible to do with JavaScript http://marijnhaverbeke.nl/blog/tern.html I use Cursive https://cursive-ide.com/ for working with Clojure, and it can do safe refactoring for symbols by doing static analysis of the source. It can show all usages of a symbol, rename it, do automatic imports, and…

    Comment linking /posts/what-makes-a-good-repl.html

    on “Diminishing returns of static typing”
  12. Submitted What makes a good REPL? (2017) as a story · 63 points

    HN discussion
  13. The claim that there's declining interest is absurd, and that's what I'm arguing. Google trends are simply not a measure of anything interesting in practice. It's about as useful as throwing around TIOBE rankings. >Tooling is a big problem, not because the once you learn emacs and cider it is insufficient, but because it is a pain to setup and learn emacs and cider. Not because Atom and proto-repl are bad tools, but…

    Comment linking /posts/what-makes-a-good-repl.html

    on “Elements of Clojure”
  14. Submitted What makes a good REPL? (2017) as a story · 15 points

    HN discussion
  15. Worked with static typing for about a decade primarily with Java in the enterprise. However, I've also used Haskell and Scala which have advanced type systems. I moved to work with Clojure about 8 years ago, and I don't miss types. If I did, I would've gone back to a typed language a long time ago. My experience is that dynamic typing is problematic in imperative/OO languages. One problem is that the data is mutable…

    Comment linking /posts/what-makes-a-good-repl.html

    on “Clojure at Netflix (2013) [slides]”
  16. Submitted Covariances behave: views on normal distributions and Gaussian Processes as a story · 5 points

    HN discussion
  17. You just discovered repl driven development that lisp users have been advocating for years. Check it out in Clojure: https://vvvvalvalval.github.io/posts/what-makes-a-good-repl....

    Comment linking /posts/what-makes-a-good-repl.html

    on “Django 2.2”
  18. Submitted What makes a good REPL? as a story · 5 points

    HN discussion
  19. This is often called "event sourcing". The other commenter mentions Datomic, which probably is the 'latest and greatest' form of event sourcing (I've never used it). https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even... If you want something built on postgres, I don't have any specific recommendations, but you can build a simple event sourcing system yourself. I worked somewhere that used event sourcing on…

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “You might as well timestamp it”
  20. Submitted Datomic: Event Sourcing Without the Hassle as a story · 4 points

    HN discussion
  21. My team used to be a Java shop, we adopted Clojure around a decade ago and never looked back. Not really sure what this whole compiler telling the developer what to do is supposed to mean to be honest. One of the advantages of using a Lisp is that you get immediate feedback from the compiler as you're writing code via the REPL driven workflow. https://vvvvalvalval.github.io/posts/what-makes-a-good-repl....

    Comment linking /posts/what-makes-a-good-repl.html

    on “Lisping at JPL (2002)”
  22. Submitted So yeah, about Clojure's syntax as a story · 4 points

    HN discussion
  23. I submit that Event Sourcing (or at least something very close to it) can be easy, once you've removed some technology locks. I've seen it happen with Datomic ( https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even... ), but it can probably happen similarly with other tech, such as XTDB ( https://xtdb.com/ ).

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “Event Sourcing Is Hard (2019)”
  24. Submitted Event Sourcing without the Hassle as a story · 3 points

    HN discussion
  25. This matches closely with my experience working at a company that was mostly built on event-sourcing. I would add a few things, some of which are touched upon in the article: - The general problem with event-sourcing (at small scale) is that it forces you to have to think about and handle many things that can mostly be ignored with a more typical persistence approach. This overhead of complexity was one of the facto…

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “Event Sourcing Is Hard (2019)”
  26. Submitted Clojure's keyword namespacing convention Considered Harmful as a story · 3 points

    HN discussion
  27. Event Sourcing sucks. I blame OOP abstractions taken to an extreme. https://vvvvalvalval.github.io/posts/2018-11-12-datomic-even...

    Comment linking /posts/2018-11-12-datomic-event-sourcing-without-the-hassle.html

    on “Event Sourcing Is Hard (2019)”
  28. Submitted DataScript (Lingua Franca for domain modeling) as a story · 3 points

    HN discussion
  29. To me, being able to make changes to your code while keeping the current state in the REPL is key to interactive development. My workflow is generally to build up state, and then experiment with functions on that state until I get the correct output. This workflow is very natural in Clojure, Common Lisp and even Python (with IPython and autoreload). However, in Racket you have to restart everything on every change.…

    Comment linking /posts/what-makes-a-good-repl.html

    on “Why I haven't jumped ship from Common Lisp to Racket just yet”
  30. Submitted DataScript as a lingua franca for domain modeling as a story · 3 points

    HN discussion

Search all of HN for vvvvalvalval.github.io

Linked by the same people?