post06_clojure_and_arguile.skr 1.5 KB

123456789101112131415161718192021222324252627282930
  1. (post
  2. :title "Arguile Updates, Clojure Comparison"
  3. :date (make-date* 2017 3 16)
  4. :tags '("clojure" "clj" "lisp")
  5. (h3 [Update])
  6. (p [Finally found the downtime to write some brief updates. Over the
  7. past few months, I've been using Clojure at my job. It's
  8. pretty awesome,
  9. and solves many of the problems attempted by Arguile.
  10. It also has some major wins over Arguile:
  11. it's highly concurrent (arguile still relies on kernel threads/mutexes)
  12. it runs on the JVM (arguile written in c) a debatable win, and has fast dynamic
  13. polymorphism through protocols
  14. (arguile has slower dispatch-on-type polymorhism). There are many more
  15. examples, each a decent strike
  16. against Arguile. Most programmers would be happy with Clojure, and me too, but
  17. Arguile is still a small project, so not exactly fair to compare.
  18. Regardless, I have found some interesting differences between the two
  19. , and even a few wins in the Arguile camp.
  20. But first, let's quickly overview what I've copied
  21. from Clojure into Arguile.])
  22. (h3 [Things Arguile needed to copy:])
  23. (ul
  24. (li
  25. (p [vector and hash-table syntax. Just a great feature that leverages these unused characters]))
  26. (li (p [Data destructuring. Used all over the place in clojure, and for good reason]))
  27. (li (p [Expression threading. Turns (f1 (f2 (f3 exp))) into (-> exp f3 f2 f1).]))))