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
    J

    Jay Fields

    blog.jayfields.com · Personal blog · on HN since 2007

    Jay Fields, a software developer and consultant, writes about Clojure, Ruby testing, pair programming, technical books and developer productivity.

    Visit blogHN submissions
    ProgrammingLanguages & CompilersCareer & Work
    What HN says

    Commenters point to it for Ruby testing posts, Clojure destructuring and thoughts on pair programming and consulting, treating it as a useful practitioner's blog.

    Stats for nerds
    52HN people shared it
    78linked in comments
    893story points
    Jun 2022last shared
    2008people per year2022

    Top posts on HN

    1. 1
      Linux Commands for Developers
      1 person · 98 points · first shared 2012 · 64 comments on HN
    2. 2
      The Case for Buying Technical Books
      2 people · 78 points · first shared 2014 · 52 comments on HN
    3. 3
      How I Open Source
      1 person · 77 points · first shared 2012 · 10 comments on HN
    4. 4
      Clojure & Java Interop
      1 person · 64 points · first shared 2011 · 14 comments on HN
    5. 5
      Year Five
      1 person · 60 points · first shared 2013 · 33 comments on HN
    6. 6
      Clojure's Destructuring
      3 people · 47 points · first shared 2010 · Discussion on HN
    7. 7
      Clojure: Truthy and Falsey
      1 person · 39 points · first shared 2011 · 26 comments on HN
    8. 8
      Developers needed; Hackers need not apply
      1 person · 38 points · first shared 2008 · 29 comments on HN
    9. 9
      Clojure: &env and &form
      1 person · 36 points · first shared 2011 · Discussion on HN
    10. 10
      Clojure: if-let and when-let
      1 person · 36 points · first shared 2011 · 8 comments on HN

    What HN people wrote when they linked it

    • yogthosOct 2018

      That is pure and utter FUD I'm afraid. My team has been working with Clojure for over 8 years now. We have tons of code in production, and we don't have any problems maintaining these projects. Furthermore, there's absolutely no empirical evidence to support the notion that static typing results in statistically significant reduction in defects, speed of development, or ease of maintenance. Considering how long both disciplines have been around, and the sheer amount of software written in each, that's quite the elephant in the room. I also have no idea who the people migrating from Clojure to OCaml, Haskell, or F# are. I don't think I've seen a single story about a company doing that.

      My experience is that dynamic typing is problematic in imperative/OO languages. One problem is that the data is mutable, and you pass things around by reference. Even if you knew the shape of the data originally, there's no way to tell whether it's been changed elsewhere via side effects. The other problem is that OO encourages proliferation of types in your code. Keeping track of that quickly gets out of hand.

      What I find to be of highest importance is the ability to reason about parts of the application in isolation, and types don't provide much help in that regard. When you have shared mutable state, it becomes impossible to track it in your head as application size grows. Knowing the types of the data does not reduce the complexity of understanding how different parts of the application…

    • johnkchowJan 2012

      I have to agree that PP loses value when you have many senior level programmers on the team. The biggest value in PP, in my personal experience, is transfer of knowledge and experience. This applies mostly to teams with huge gaps in experience (juniors vs. seniors) or new team members that need to be caught up to speed with the codebase.

      If the talent level is the same (and by talent I mean having the innate passion and ability to learn, not having actual knowledge) the knowledge of the collective team members will eventually equalize through the initial PP sessions.

      Like the author said, the context of the team and the general strategy of the company (i.e. maintaining a project vs developing new features) are the most important signals when determining the programming tactics (i.e. PP and self-learning) to reach those goals.

      P.S. The link at the bottom of the article (http://blog.jayfields.com/2011/08/life-after-pair-programming.html), provides two great team contexts for when pair programming succeeds and when it fails. Definitely take a read on that.

    • lkrubnerAug 2014

      This is great, and it is also worth reading "Destructuring in Clojure and Ruby":

      http://eyeofthesquid.com/blog/2013/09/29/destructing-in-ruby-and-clojure/

      which has some great comparisons. As it says:

      "As with many things in Ruby, the better question than “Can it be done this way?” is “Is it wise?”. "

      There is a lot that you can do in Ruby that is more gracefully done in Clojure. Brian Carper brings this out even more clearly with his post "Keyword Arguments: Ruby, Clojure, Common Lisp":

      http://briancarper.net/blog/579/keyword-arguments-ruby-clojure-common-lisp

      That post shows the exact point where keyword arguments in Ruby can become ambiguous, which is the exact moment that Clojure's clarity becomes obvious.

      Also, Jay Field's post on the subject of Clojure destructuring is where I got a lot of practical starting ideas (such as using the :keys directive):

      http://blog.jayfields.com/2010/07/clojure-destructuring.html

    • twicFeb 2019

      > What we call technical debt is really best analogous to an uncovered short sale

      Steve Freeman famously described it as an unhedged call option:

      https://jaxenter.com/bad-code-isnt-technical-debt-103059.html

      The key difference between a short position and a call option is that the former is linear, whereas the latter is not: if things let a little bit worse, a short will lose a little bit of money, whereas a call will cost nothing, but if things get a lot worse, a short will lose a lot of money, and a call may lose an enormous amount of money.

      Someone who actually works at some dodgy trading company argued that some kinds of debt are like options, and some are like debt - and so potentially, some are like shorts:

      http://blog.jayfields.com/2011/03/types-of-technical-debt.html

      So now we just need to calculate our technical debt portfolio's delta, beta, vega, theta, rho ...

    • valbacaJun 2022

      Whether to pass in a single dict/object/map/assoc-list or individually separated arguments is a tale as old as LISP (JS has some FP roots if you squint hard enough) and most LISPs (and JS has started doing this as well) mitigates this with destructuring:

      Common Lisp: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node252.html

      Clojure: http://blog.jayfields.com/2010/07/clojure-destructuring.html

      JS: https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6

    • sh1mmerJan 2009

      Vaguely interesting article to me. It's basically a reality check for this: http://blog.jayfields.com/2009/01/cost-of-net-negative-producing.html

      In short the reasons why you a good programmer can't remove all the "bad programmers"

      1. Working out who is good and bad is hard
      2. It would involve too much politics that you may not be good at
      3. You look like a jerk if you besmirch your co-workers
      4. It's easiest for companies to hire based on "years of experience"

    Related

    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Prismatic Blogblog.getprismatic.com40 people

    Om Sweet Om: functional front-end engineering with ClojureScript and React

    Prismatic Blog
    Company · last shared 2015
    Think Relevancethinkrelevance.com69 people

    My Clojure Workflow, Reloaded

    Think Relevance
    Company · last shared 2020
    Yogthosyogthos.net45 people

    Why I'm Productive in Clojure (2013)

    Yogthos
    Personal · last shared 2026
    Alex Millertech.puredanger.com24 people

    Real world Clojure

    Alex Miller
    Personal · last shared 2015
    Kent Beckthreeriversinstitute.org30 people

    "Joel Spolksy is wrong about my work" - Kent Beck

    Kent Beck
    Personal · last shared 2015
    Brian Carperbriancarper.net48 people

    Making an RPG in Clojure (2010)

    Brian Carper
    Personal · last shared 2017
    Zef Hemelzef.me55 people

    I Hate Puzzles: Am I Still a Programmer? (2011)

    Zef Hemel
    Personal · last shared 2019