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

Top all-time · #1705

Y

Yehonathan Sharvit

Personal blog · blog.klipse.techprogramming

Yehonathan Sharvit's personal blog at blog.klipse.tech covers programming. Since 2016, 42 different Hacker News readers have linked it 187 times, most often “Revisiting the principles of data-oriented programming”. It is still writing: the last post was on 2026-07-06, and you can follow it by feed.

Visit the blog
187mentions?
4recommend?
42HN people?
2016–2026first – last linked?
Links on Hacker News per year · peak 83 in 2016

Rarely recommended · 4 of 31 sampled comments recommend it?

Why HN links it

Yehonathan Sharvit's blog, cited for its Data-Oriented Programming principles and for interactive code tutorials built with the Klipse plugin (JavaScript, Clojure, Python, lambda calculus).

Recommended for · 4 comments
Called a great article, good introduction material for Clojure topics, and a nice brief summary clarifying DOP vs DOD.

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

Developer. Author. Speaker.

Most-linked posts?

  1. Revisiting the principles of data-oriented programming
    5 people · 6 mentions · first linked 2022-06-24
  2. Distinction between three data related programming paradigms
    4 people · 6 mentions · first linked 2021-03-12
  3. Things I learned writing my first technical book
    3 people · 4 mentions · first linked 2021-12-21
  4. Parsing with derivatives – Elegant matching of regular languages in clojure
    3 people · 4 mentions · first linked 2016-10-05
  5. Code playground in ruby, clojure, JavaScript, python, PHP and more
    2 people · 3 mentions · first linked 2016-09-09
  6. A new way of blogging about ruby
    2 people · 2 mentions · first linked 2016-06-20
  7. Show HN: Brainfuck for dummies
    2 people · 2 mentions · first linked 2016-12-18
  8. Interactive Wallpaper Algorithms
    2 people · 2 mentions · first linked 2017-04-24
  9. Clojure: Re-Frame (Interactive Demo)
    2 people · 2 mentions · first linked 2019-02-20
  10. Lambda Calculus: The Y combinator in ruby
    2 people · 2 mentions · first linked 2016-08-14

What Hacker News says?

  1. Data Oriented Programming. In short, don't entangle your code with data, and the data should immutable. https://blog.klipse.tech/databook/2020/09/25/data-book-chap0...

    Comment linking /databook/2020/09/25/data-book-chap0.html

    on “Case against OOP is understated, not overstated (2020)”
  2. Submitted Principles of Data Oriented Programming as a story · 375 points

    HN discussion
  3. viebel · 2016-10-25Recommends
    Great article! It would be fantastic to make all the code snippet interactive with the klipse plugin. http://blog.klipse.tech/javascript/2016/06/20/blog-javascrip...

    Comment linking /javascript/2016/06/20/blog-javascript.html

    on “Overview of JavaScript ES6 features”
  4. Submitted Show HN: How to write a tiny compiler as a story · 224 points

    HN discussion
  5. jrvarela56 · 2022-08-02Recommends
    | Objects are excellent for data Check out DOP https://blog.klipse.tech/dop/2022/06/22/principles-of-dop.ht... and Rich Hikey's critique of OOP (~'objects are custom languages on top of data'; they force you to learn specific semantics to manipulate plain data structures and make it tough to reuse your code).

    Comment linking /dop/2022/06/22/principles-of-dop.html

    on “Why study functional programming? (2012)”
  6. Submitted Things I learned writing my first technical book as a story · 142 points

    HN discussion
  7. I've copy/pasted the code of your reverse polish evaluator in python in this interactive blog post: http://blog.klipse.tech/python/2016/09/22/python-reverse-pol...

    Comment linking /python/2016/09/22/python-reverse-polish-evaluator.html

    on “LL and LR Parsing Demystified (2013)”
  8. Submitted An interactive way of blogging about JavaScript as a story · 137 points

    HN discussion
  9. I think ClojureScript has been able to compile itself since ~2015 if I remember correctly. There is some helper libraries that makes the experience nicer nowadays too, tools like KLIPSE ( https://github.com/viebel/klipse ) Here are some starting points: - https://clojurescript.org/guides/self-hosting - https://practicalli.github.io/clojurescript/quickstart/self-... - https://blog.klipse.tech/clojurescript/2016/04/04…

    Comment linking /clojurescript/2016/04/04/self-host-part-1.html

    on “ClojureScript 1.10.866 Release”
  10. Submitted JSX in detail as a story · 129 points

    HN discussion
  11. I understand your worry, but I've had a quite opposite take on this. I think we can agree that it's not that hard to find ANY job as an experienced developer. However it's much more difficult to find a great, satisfying job. For that you need to navigate around a lot of corpo-bullshit type of projects, and Clojure has served me well as a useful filter in doing that. My reasoning is that Clojure is niche enough that…

    Comment linking /dop/2022/06/22/principles-of-dop.html

    on “Ask HN: What is the job market like for niche languages (Nim, Crystal)?”
  12. Submitted Revisiting the principles of data-oriented programming as a story · 126 points

    HN discussion
  13. Comments like this make my day, thanks :) I'm hopeful that we'll see lots more blog posts written in this interactive style in the future - the KLIPSE plugin I use is extremely simple to set up, and has support for a ton of languages including Python and Ruby (not to mention regular old JavaScript!). http://blog.klipse.tech/klipse/2016/09/09/klipse-languages.h... is a gallery page that has examples of all of the lan…

    Comment linking /klipse/2016/09/09/klipse-languages.html

    on “Procedural Dungeon Generation: Cellular Automata”
  14. Submitted Show HN: A new way of blogging about Lua as a story · 111 points

    HN discussion
  15. The same site has also done similar plugins for ClojureScript: http://blog.klipse.tech/clojure/2016/06/07/klipse-plugin-tut... And Ruby: http://blog.klipse.tech/ruby/2016/06/20/blog-ruby.html

    Comment linking /ruby/2016/06/20/blog-ruby.html

    on “An interactive way of blogging about JavaScript”
  16. Submitted Lambda Calculus Interactive Tutorial as a story · 83 points

    HN discussion
  17. > I can't get past the lack of currying. Say again? Currying may not exist as a special form, but adding it is utterly trivial: [0] Which I guess is where Lisp shines. Modifying the language to suit your needs is easy. You aren't bound by the limits that many languages force upon you. That being said, I wouldn't say that Common Lisp or Ocaml have the same userbase. In much the same way that C and JavaScript don't se…

    Comment linking /clojure/2016/10/25/core-match.html

    on “Portacle – A Portable Common Lisp Development Environment”
  18. Submitted Recursions without names: Introduction to the Y combinator in JavaScript as a story · 77 points

    HN discussion
  19. DOP is not the same as DOD [1] 1: https://blog.klipse.tech/visualization/2021/02/16/data-relat...

    Comment linking /visualization/2021/02/16/data-related-paradigms.html

    on “Revisiting the principles of data-oriented programming”
  20. Submitted An Interactive Quine in Clojure as a story · 47 points

    HN discussion
  21. Awful stuff. These principles could only ever make sense in a dynamic language since it's mostly manually enforcing some of the basic functionality of a type system, but the fact that he also tries to argue this style could be used in a language like C# throws that defense out the window. https://blog.klipse.tech/databook/2022/06/22/generic-data-st... The examples also contradict his other principles, i.e. immutabil…

    Comment linking /databook/2022/06/22/generic-data-structures.html

    on “Revisiting the principles of data-oriented programming”
  22. Submitted Java is confusing, Clojure is simple as a story · 30 points

    HN discussion
  23. Its official use case is hacking recursion into a language that doesn't support recursion, but does have first-class functions. To the best of my knowledge, the only language that fits this description is the lambda calculus itself. There is a paper, Y in Practical Programs ( https://blog.klipse.tech/assets/y-in-practical-programs.pdf ) that presents some interesting things you can layer on top of the technique. I'l…

    Comment linking /assets/y-in-practical-programs.pdf

    on “Common Lisp Books”
  24. Submitted A new way of blogging about Prolog as a story · 27 points

    HN discussion
  25. For most things, yes. But this is JavaScript, the language where intransitive equality, implicit object-to-primitive casting and mutable global objects must be used in all slight-above-trivial code. Where `typeof` is useless and wrong, but nonetheless necessary; where there are seven different ways to parse a number, with six different semantics… there's a reason that “JavaScript: The Good Parts” is such a short boo…

    Comment linking /assets/js_good_parts.jpg

    on “In JS functions, the ‘last’ return wins”
  26. Submitted A New Way of Blogging About Common Lisp (2018) as a story · 22 points

    HN discussion
  27. Your small dive prompted me to create a simple version of what you were describing [1]. I didn't use my usual editor, and just used the cljsfiddle itself. I really wanted to create a spec for the data in app-state, and check the value in the app-state atom each time I edited it (perhaps with an add-watch). That gets you many of the same advantages of static typing, but you only add the extra insurance when you think…

    Comment linking /clojure/2016/10/10/defn-args.html

    on “A small dive into, and rejection of, Elm”
  28. Submitted A new way of blogging about Golang as a story · 21 points

    HN discussion
  29. It's nice to have interactive code samples in most places where you use an editor. e.g.: http://blog.klipse.tech/lisp/2018/05/07/blog-common-lisp.htm... https://polymervis.github.io/monaco-editor/build/demo/ https://oakes.github.io/play-cljs/

    Comment linking /lisp/2018/05/07/blog-common-lisp.html

    on “Ace – an embeddable code editor”
  30. Submitted Data-Oriented Programming: A link in the chain of programming paradigms as a story · 20 points

    HN discussion

Search all of HN for blog.klipse.tech

Linked by the same people?