Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    C

    Cliff Click

    blogs.azulsystems.com · Personal blog · on HN since 2007

    Cliff Click, a Java virtual machine engineer at Azul Systems, writes about concurrency, JIT compilers, and non-blocking data structures.

    Visit blogHN submissions
    Systems & PerformanceProgrammingLanguages & Compilers
    What HN says

    HN links it for his non-blocking hash table, his views on STM versus locks, and Java performance, and a commenter links his talk with David Moon.

    Stats for nerds
    18HN people shared it
    12linked in comments
    179story points
    Apr 2010last shared
    2008people per year2010

    Top posts on HN

    1. 1
      Java vs C performance, from Cliff Click of Azul
      3 people · 47 points · first shared 2009 · 43 comments on HN
    2. 2
      Cliff Click checking in
      1 person · 32 points · first shared 2009 · 3 comments on HN
    3. 3
      We don't know how to program...
      1 person · 26 points · first shared 2008 · 4 comments on HN
    4. 4
      Inline Caches and Call Site Optimization
      1 person · 25 points · first shared 2010 · Discussion on HN
    5. 5
      An Interview with David Moon and Daniel Weinreb
      2 people · 20 points · first shared 2009 · 3 comments on HN
    6. 6
      Cliff Click Jr: Experiences with Hardware Transactional Memory for Java
      1 person · 10 points · first shared 2009 · 3 comments on HN
    7. 7
      Biased Locking in the JVM
      1 person · 6 points · first shared 2010 · Discussion on HN
    8. 8
      Just What-the-Heck is a "wait-free" algorithm?
      1 person · 5 points · first shared 2008 · Discussion on HN
    9. 9
      A Non-Blocking HashTable
      4 people · 3 points · first shared 2007 · 1 comments on HN
    10. 10
      Clojure from Azul perspective: STMs vs Locks
      3 people · 3 points · first shared 2008 · Discussion on HN

    What HN people wrote when they linked it

    • strlenDec 2009

      The criticism of Java language is very much to the point (re: verbosity, inheritance). There's some confusion where he calls anonymous classes implementing interfaces "abstract classes with virtual methods"; that's not to say that it's not an awkward approach to closures and function pointers. There's also criticism of synchronized and the Thread class, but there's no mention of the strong points (Doug Lea's java.util.concurrent).

      However, the criticism of JVM seems like it's written in 1999 about the Blackdown JVM (Josh Bloch in his interview in Coders At Work attributes much distrust of Java earlier on at Google to experience with this platform). Hot-spot can, many times, be within 10-15% of C's performance. In many cases code running on the JVM will outperform C++'s runtime (and particularly boost).

      That's not to say there aren't issues: garbage collection pauses, the stack based nature -- rightly -- is pointed out as an impediment, but it's odd that LLVM isn't mention. However, excluding JVM due to performance (especially when used with modern languages, e.g. Scala, Clojure, Ruby, Javascript) seems short-sighted. See Cliff Click's post on JVM performance:

      http://blogs.azulsystems.com/cliff/2009/09/java-vs-c-performance-again.html

      Repeat after me: HotSpot is not Blackdown, 1.5+ is not 1.2 (you have non-blocking I/O -- even though NIO is still painful to use, you have autoboxing, you have foreach, you have -- for all their limitations -- generics, you have…

    • runT1MEApr 2010

      Interesting, I haven't gotten to hear the thoughts of too many other telecom engineers when it comes to next generation languages and threading. I'm pretty convinced it has to be one of the hardest problems to get right.

      Speaking of STM and locks, have you seen this epic debate?

      http://blogs.azulsystems.com/cliff/2008/05/clojure-stms-vs.html

      The problem with telecom software (that I'm dealing with now, in my very humble opinion), and the reason it hurts my head, is because you're essentially dealing with a distributed system, each leg being a node
      (since each action a leg takes needs to go out over the wire). Not only do you need to see consistent 'state', you also need to make sure your actions are handled correctly as well.

    • jbellisJan 2010

      "Sometimes no-warmup is important (see comments above about pacemakers), but more often a short warmup period is irrelevant to the overall application. If I'm using an IDE, I expect a largish loading period... but then I'm using the IDE all day. I don't use an IDE for 0.1 sec. If warmup is NOT important to the application, then allow the JVM a warmup period before comparing performance numbers. Many of the benchmarks in the language shootout at http://shootout.alioth.debian.org fall into this camp: too short to measure something interesting. Nearly all complete in 1 minute or less." http://blogs.azulsystems.com/cliff/2009/09/java-vs-c-performance-again.html

    • gtaniApr 2010

      OK, let me try to be more helpful. Here's good backgrounders

      http://www.tbray.org/ongoing/What/Technology/Concurrency/

      http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/

      http://groups.google.com/group/clojure/browse_thread/thread/5c7a962cc72c1fe7?hl=en

      http://blogs.azulsystems.com/cliff/2008/09/jvm-language-su.html

      http://wiki.jvmlangsummit.com/pdf/36_Click_fastbcs.pdf

      ---------------------

      also recommended: Herlihy/Shavit book, blogs by Sutter and Duffy,

      http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916

      http://herbsutter.com/

      http://www.bluebytesoftware.com/blog/Default.aspx

    • ntoshevJan 2008

      http://anarchaia.org/

      http://blogs.azulsystems.com/cliff/ (JVM hacking, concurrency, non-blocking hashtable)

      http://osteele.com/ (javascript, functional programming)

      http://glinden.blogspot.com/ (personalization, collective intelligence)

      http://paulbuchheit.blogspot.com/

      http://steve-yegge.blogspot.com/

    • bayareaguyJan 2009

      For the impatient, here's a pastebin with the actual code:

      http://java.pastebin.ca/1298391

      A followup article to this one includes a link to his sourceforge project:

      http://blogs.azulsystems.com/cliff/2007/04/nonblocking_has.html

    Related

    Sun Blogsblogs.sun.com115 people

    128-bit storage: are you high?

    Sun Blogs
    Company · last shared 2014
    CUBRID Blogcubrid.org25 people

    Understanding JVM Internals

    CUBRID Blog
    Company · last shared 2023
    JJ Behrensjjinux.blogspot.com26 people

    Ask HN: Haskell or Erlang?

    JJ Behrens
    Personal · last shared 2014
    Vanilla Javavanillajava.blogspot.com26 people

    High performance libraries in Java

    Vanilla Java
    Personal · last shared 2015
    Doug Leagee.cs.oswego.edu31 people

    Using JDK 9 Memory Order Modes

    Doug Lea
    Personal · last shared 2026
    Joe Armstrongarmstrongonsoftware.blogspot.com21 people

    Why I often implement things from scratch (2006)

    Joe Armstrong
    Personal · last shared 2024
    Probably Danceprobablydance.com74 people

    Fibonacci Hashing: The Optimization That the World Forgot

    Probably Dance
    Personal · last shared 2026
    Herb Suttergotw.ca84 people

    Ritchie, Stroustrup, and Gosling interview

    Herb Sutter
    Personal · last shared 2026