[HN Gopher] (next Rich)
       ___________________________________________________________________
        
       (next Rich)
        
       Author : poidos
       Score  : 802 points
       Date   : 2023-08-04 14:28 UTC (8 hours ago)
        
 (HTM) web link (clojure.org)
 (TXT) w3m dump (clojure.org)
        
       | jonahbenton wrote:
       | The word congratulations came into English from Latin, where it
       | was formed by combining prefix com-, meaning with, to gratulari,
       | meaning "give thanks" or "show joy." Gratulari is derived from
       | gratus, as is gratitude. Gratus means "pleasing," "thankful."
       | 
       | Having only had the good fortune to meet you in person a few
       | times:
       | 
       | Congratulations, Rich. You have my deepest gratitude. It fills me
       | with great joy to know you are taking this step. I look forward
       | to what your next stage brings.
        
         | tbalsam wrote:
         | Few people capture this spirit like the classic
         | "Congratulations" video from Big Man Tyrone.
         | 
         | While it has gone through the revolutions from sincere, to
         | sarcastic in intent, to back again, I believe the inherently
         | joyful attitude underpinning the original video carries the
         | buoyishly optimism of sincere joy.
        
         | agumonkey wrote:
         | we see what you did there ;)
        
         | culi wrote:
         | thanks for the lesson etymonline
        
           | mattdeboard wrote:
           | Go watch the classic Simple Made Easy and you'll understand
           | the comment.
           | 
           | https://youtu.be/SxdOUGdseq4
        
             | capableweb wrote:
             | It might have started with Rich, but by now starting a
             | Clojure talk with the destructuring (heh) of a word is
             | basically a meme at this point.
        
               | koito17 wrote:
               | Quite literally a meme: https://youtu.be/jlPaby7suOc?t=75
               | 
               | One of the funniest Conj talks ever.
        
           | nordsieck wrote:
           | > thanks for the lesson etymonline
           | 
           | Perhaps you've never listened to a Rich Hickey talk before
           | but he's notorious for riffing on the meaning of words.
        
             | culi wrote:
             | I got downvoted heavily but I genuinely do enjoy etymology.
             | Wasn't at all a negative remark, just a playful jab
             | 
             | Anyways thanks for the explanation. I wasn't in on the meme
        
         | brundolf wrote:
         | Hah, very fitting way to put it :)
        
           | magicinky wrote:
           | Agree. For those not familiar with Rich's famous use of
           | etymology, see his 2011 presentation "Simple made Easy" as a
           | good example: https://www.infoq.com/presentations/Simple-
           | Made-Easy/
           | 
           | Side question: Rich seems to use etymology as a tool for
           | original thinking and clear explanations. Are there other
           | people who do this as well as he does?
        
             | aporetics wrote:
             | I don't know about technologists who use it in writing or
             | speaking like Rich, but you can trace writers' use of
             | etymology to provoke thinking at least back to Plato. More
             | recent, prominent examples would be Hannah Arendt's
             | acceptance speech in 1975 receiving Denmark's Sonning
             | Prize, in which she uses the etymology of "person", and at
             | least Martin Heidegger's essay The Question Concerning
             | Technology in which he plays with several, including the
             | etymology of "technology" itself.
        
       | braza wrote:
       | For whom is interested in some of the Rich's talks, this is a
       | great compilation[1].
       | 
       | [1] - https://changelog.com/posts/rich-hickeys-greatest-hits
        
       | koito17 wrote:
       | Well-deserved retirement! I recall a history of Clojure paper
       | mentioning that Rich was using his retirement savings in the
       | years spent to build Clojure[0]. This provides a lot of context
       | as to why he has wanted to maintain ownership and tight control
       | of Clojure. Overall, Clojure is a brilliant piece of work and it
       | has made software development fun and productive. Many great
       | talks were also given by Rich over the years, and Datomic, though
       | the licensing was restrictive up until very recently, has so much
       | synergy with Clojure that it's tough going back to Postgres. :)
       | 
       | Congratulations, Rich.
       | 
       | [0] https://download.clojure.org/papers/clojure-hopl-iv-
       | final.pd...
        
       | hk__2 wrote:
       | Meta: title should be "(next Rich)", not "(Next Rich)"
        
         | jdminhbg wrote:
         | HN autocapitalizes the first letter, so dang or another mod
         | would have to fix this manually.
        
       | jturolla wrote:
       | Problem-solving by Cognitect's standards has transformed Nubank
       | and my approach to work. Thank you for your time here, Rich. I
       | greatly appreciate the knowledge I've gained while collaborating
       | with your Cognitect colleagues.
        
       | buybackoff wrote:
       | There are 16 "talks" mentions as of this writing, yet I want to
       | reiterate how important, insightful, useful and fun his talks are
       | and watching them have been. They move a listener to a (next
       | level). Good luck, Rich! Have a nice time in a hammock :)
        
       | JamesLeonis wrote:
       | Clojure has changed my whole career, and many of Rich's talks
       | directly inspired my thinking about large systems. I hope
       | retirement gives Rich the best Hammock Time!
        
       | kaliszad wrote:
       | Without Clojure and the immense effort of the community around it
       | and ClojureScript, OrgPad would not be possible and the
       | individuals on the team would probably be stuck in some academic
       | or corporate structures instead of having basically a two-
       | families startup/ company. So thank you Rich and thank you to
       | everybody else, who supported You on the journey to create
       | something that makes coding predictable, productive and almost
       | fun instead of laborious work. ;-)
        
       | rryan wrote:
       | Thanks for everything, Rich. You inspired me repeatedly.
        
         | ignoramous wrote:
         | Don't think Rich Hickey is "retiring" retiring, just that he's
         | retiring from Nubank and "commerical software development".
         | 
         | TFA: _I look forward to continuing to lead ongoing work
         | maintaining and enhancing Clojure with Alex, Stu, Fogus, and
         | many others, as an independent developer once again...
         | Retirement returns me to the freedom and independence I had
         | when originally developing Clojure. The journey continues!_
        
       | chollida1 wrote:
       | I wrote my first trading system in Clojure because a few of the
       | libraries we relied on were in java.
       | 
       | It was 2011 and I'd had about 3 years of lisp experience. I got a
       | bit of side eye from people when I told them I was using a
       | relatively new programming language but the fact that it was
       | based on the JVM, which alot of HFT firms were using helped make
       | the case.
       | 
       | We didn't use if for more than a few years before it was retired
       | and rewritten, though that was due to new requirements that
       | included C++ interop.
       | 
       | In the end tracking memory usage and allocations got too hard and
       | if you've ever written something that is time sensitive you'll
       | know just how slow memory allocation is, so you could argue I
       | made a poor choice but for the rewrite was easy to reuse the java
       | libraries when we moved to java.
       | 
       | The harder part was porting the algorithm implementation code.
       | The reason was that I chose a common lisp trick of first writing
       | a DSL in Clojure that was then used to write the algos.
       | 
       | That was the one part that seemed worse in the rewrite as it
       | became far more verbose and clunky.
       | 
       | But man was it fun, I learned more in a month than I often do in
       | a year now.
       | 
       | Thanks Rich!! It's not often you get to experiment with cool tech
       | and make lots of money doing it. I appreciate your work.
        
         | kaba0 wrote:
         | > you'll know just how slow memory allocation is
         | 
         | Just a small nitpick, but allocation is definitely not slow in
         | case of the JVM, it is often faster than manually managed
         | languages. It is a pointer bump only.
         | 
         | All the necessary mechanisms of a GC does have an overhead, so
         | your point stands, but not for the mentioned reason.
        
           | [deleted]
        
         | behnamoh wrote:
         | > The harder part was porting the algorithm implementation
         | code. The reason was that I chose a common lisp trick of first
         | writing a DSL in Clojure that was then used to write the algos.
         | 
         | Doesn't it mean that Lisp macros should really be avoided at
         | all costs?
        
           | chollida1 wrote:
           | Can't say for sure, given that my sample size is one.
           | 
           | The upsides of DSL(Domain specific languages) and macros in
           | general is that they cut down on code duplication and give
           | everyone using them a common language and set of tools on
           | which to build an app. That part is awesome and I think
           | really helped to speed up development of the algos that were
           | built on top of the DSL.
           | 
           | The downside is, that you need to learn the DSL but that's a
           | very small impact in my experience. THe larger downside as
           | you and I point out is that those tools aren't really there
           | for other languages so if you do plan on porting the code
           | base to another language then maybe steer clear of macros.
           | 
           | But again, I wouldn't say I have anywhere near enough
           | experience to claim to be an expert in that.
        
         | uxcolumbo wrote:
         | So you had to switch to C++ because Clojure / Java wasn't
         | performant enough?
        
           | WinLychee wrote:
           | For extremely low latency, Clojure can be an awkward fit. By
           | default there's a lot of sugar in the syntax, so if you need
           | to be precise about the underlying types of your data and the
           | exact datastructure, you need to toss out most of the
           | standard datatypes and datastructures. It's small details
           | like: "I definitely have an array of unboxed integers, and I
           | need to be sure this one operation won't accidentally
           | allocate a new list of boxed integers, and that this function
           | I'm calling doesn't dispatch dynamically" or things like
           | that. You start using `deftype` everywhere, sometimes dipping
           | into Java, etc. You may as well just write java at that
           | point. However from a pure Clojure standpoint, the author of
           | Neanderthal has done great work on making Clojure viable for
           | high performance numerical computing.
        
           | chollida1 wrote:
           | > So you had to switch to C++ because Clojure / Java wasn't
           | performant enough?
           | 
           | Clojure yes, java no. Many HFT firms build their systems in
           | java and run on the jvm(specialized hardware aside), its
           | plenty fast if you avoid memory allocations.
           | 
           | It is also possible Clojure is more than up to the task now
           | and its also reasonable to believe that I wasn't a strong
           | enough clojure developer to fix those issues at the time and
           | a more competent developer could have made it work.
           | 
           | But like almost all things if you chose a very out of the
           | mainstream language and start to have issues, most developers
           | will point fingers at the language first.
           | 
           | Side note, its a miracle that Jane Street kept using OCaml
           | after the first few years and points to how strong their core
           | tech team was.
           | 
           | C++ was an external dependency brought on by other systems
           | that needed to be integrated and is a far safer language to
           | use. I'd imagine that if you say HFT to most developers,
           | their first thought would be C++ even if they haven't worked
           | in the domain before.
           | 
           | It's like choosing Julia for your machine learning platform
           | and then switching to python.
        
             | Jach wrote:
             | It's a shame you couldn't have pitched Common Lisp. Maybe
             | could have ported your DSL pretty quickly and wound up
             | having SBCL output nice compiled assembly instructions and
             | shown x% speed improvement without much effort by using a
             | "sister language" of sorts? ABCL in 2011 would have been a
             | harder sell, it only had its 1.0 release that October.
             | 
             | A few years ago another commenter noted they had developed
             | a trading system in Lisp and C
             | https://news.ycombinator.com/item?id=25222297 (further
             | comments elaborate a bit) before being asked to rewrite it
             | in Java. What keeps less popular languages alive at
             | companies, when there's no forcing reason to get rid of it
             | like really unacceptable performance, is a conviction
             | (borne out as far as I can tell) that it's ok to hire
             | people who don't know the language -- they'll get up to
             | speed more than fast enough.
        
           | jwr wrote:
           | > because Clojure / Java wasn't performant enough
           | 
           | Languages aren't "performant". You can write good or bad code
           | in most languages, or code that isn't a good fit for a
           | language.
           | 
           | That said, there are languages which will make you incur
           | certain penalties, as there is a price to be paid for
           | automatic memory management with garbage collection, for
           | example. These penalties generally do not matter except for
           | edge cases (and HFT trading might very well be one!).
           | 
           | There are also languages which help you write much faster
           | code, but on a higher level. Clojure transducers are a good
           | example: pipelines built of composable transformations, where
           | data sequences are not fully realized between the
           | transformations. These can provide significant performance
           | (and memory allocation) improvements, while still letting you
           | write high-level code.
        
             | moomin wrote:
             | There is "the expected performance of idiomatic code",
             | though, which is what most people mean when they talk about
             | the performance of a language.
        
         | nerdponx wrote:
         | I suppose you couldn't convince your employer to let you use an
         | embeddable Scheme interpreter for the DSL?
        
           | chollida1 wrote:
           | Well the performance hit alone would be a non starter.
        
       | the-alchemist wrote:
       | Very smart guy, can't wait to see what he comes up with next.
        
       | elamje wrote:
       | I, for one, and super excited to see how Rich and Clojure evolve
       | post-Nubank. Clojure and Rich's talks greatly inspired me and
       | improved my software thinking skills - I can't say thank you
       | enough!
        
       | usgroup wrote:
       | Best of luck in what follows! Clojure was the first Lisp I had
       | ever learned. It was really easy to pick up and be productive
       | with. It was data science I tried to use it for where it quickly
       | runs into a myriad headwinds but it is a beautiful language all
       | the same.
        
       | nXqd wrote:
       | with the new wave of languages emerging, and now the return of
       | Rich being active with Clojure, I'm super excited and welcome
       | back :)
        
       | phillipcarter wrote:
       | Rich Hickey's talks inspired me to explore Clojure and functional
       | programming in college. That led to a part of my career where I
       | got to help advance an FP language (F#). Can't say it was a
       | raging success, but it wasn't a raging failure either. Really
       | happy things worked out the way they did, though. I still look
       | back at my senior project, written in Clojure, from time to time
       | and find it elegant in a unique way.
        
         | neoncontrails wrote:
         | My experience was similar. I've built far more impactful things
         | since then, but at the end of the day, the software that I'm
         | most proud of was a calculator, of all things, that I made in
         | Clojurescript. It was loosely based on the final chapter of
         | SICP, and implemented an hilariously metacircular approach to
         | transitioning the state of the register machine. Since the
         | implementation was way more interesting than the actual
         | application, I used Processing to visualize the register
         | machine as if it were a rudimentary ALU (which it basically
         | was).
         | 
         | If it hadn't been for Rich Hickey, or Clojure, I'm not sure I'd
         | have the slightest inkling of how joyful and creative it can be
         | to write software. It was an A+ experience, even if I'd be
         | swiftly fired for trying to push logic like that into
         | production.
        
           | waffletower wrote:
           | I pushed another build of a Clojure service into production a
           | few minutes ago. There are companies that use it as a primary
           | language you know :)
        
             | pluijzer wrote:
             | Second that and just to add, working fulltime with Clojure,
             | apart from all the features and practical aspect is, really
             | enjoyable.
        
         | owenm wrote:
         | FWIW, I started programming F# during your tenure at MS and in
         | a couple of years it became a really capable cross platform
         | option - partly MS, partly community, but definitely helped out
         | by you. Thanks!
        
       | chubot wrote:
       | FWIW the original announcements in 2020:
       | 
       | https://cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank
       | 
       | https://news.ycombinator.com/item?id=23926407
       | 
       | https://building.nubank.com.br/welcoming-cognitect-nubank/
       | 
       | Very interesting story!
        
         | rashkov wrote:
         | one year ago today. I'm guessing the waiting period is over for
         | Rich
         | 
         | edit: not one year ago at all
        
           | apgwoz wrote:
           | What year and month are you living in? In my timeline these
           | links are 3 years, 12 days old.
        
             | rashkov wrote:
             | Whoops, yeah my mistake!
        
       | fnord77 wrote:
       | we used clojure on a pretty big project. We made the decision to
       | rewrite in java after it became clear that some fairly big
       | libraries we were using weren't being maintained.
       | 
       | It was contentious, but I'm glad we dumped clojure.
       | 
       | No matter how good a project is, it needs loads of support behind
       | it
        
       | netbioserror wrote:
       | I made two large projects in Clojure: One abandoned startup SaaS
       | and one internal system. Both were a damn joy. They taught me the
       | immense value of loosely coupled components that exchange simple
       | data with each other, from large server components all the way
       | down to module-level coupling. I can only ever view gigantic,
       | monolithic, opinionated web frameworks with a strong degree of
       | skepticism from now on.
       | 
       | Lisp in general was probably the most fulfilling programming
       | rabbit hole I ever followed down, and I don't regret a moment of
       | it. A true gold mine of skill, ability, and thought training that
       | changed the way I program, even in imperative/procedural
       | languages.
        
       | cmiles74 wrote:
       | Rich presented Clojure to our local software development group in
       | 2008, I've been working with Clojure (both as a hobbyist and
       | eventually professionally) ever since.
       | 
       | https://www.youtube.com/watch?v=dGVqrGmwOAw
       | 
       | At that time I had been working with Java for years, both the
       | conciseness of the code and the interactivity were flat-out
       | amazing to me. It's saved me time and made me 100 times more
       | productive.
       | 
       | Congratulations to Rich, I am also extremely grateful for his
       | work!
        
       | [deleted]
        
       | shove wrote:
       | "just slip out the back, Jack Make a new plan, Stan You don't
       | need to be coy, Roy Just get yourself free!"
        
       | adamgravitis wrote:
       | Orig article has lowercase 'n' in 'next', which makes more
       | sense...
        
         | seabass-labrax wrote:
         | Agreed; this is a reference to the 'next' function in the
         | Clojure language. @dang, please could you change the title?
         | Thank you.
        
       | WinLychee wrote:
       | Thanks a ton Rich, Clojure is a real breath of fresh air in
       | programming languages. I hope it continues to influence
       | progamming for years to come, looking forward to seeing what you
       | come up with in the future!
        
       | munro wrote:
       | Amazing news. I saw a video cast of Rick during a meeting @
       | NuBank, and it looked like corporate life had sucked the life out
       | of him [1]. So, I'm glad he got out of there, and I hope he's
       | able to shake it off like a bad dream. Building something like
       | Clojure require radical thinking, and creative freedom. I can
       | only imagine how trying to fit that into your weekly scrum sprint
       | would be draining. And in the monthly meetings where they recite
       | the corporate values.. _shivers_
       | 
       | [1] https://news.ycombinator.com/item?id=34781607
        
         | meeuwer wrote:
         | Funny, I too thought of that very video the moment I'd read the
         | news. Rich was barely managing to feign just enough engagement
         | without appearing rude. Happy he has escaped.
        
         | frou_dh wrote:
         | Maybe you're just used to seeing him in "on" mode (giving
         | legendary conference presentations) and he's more subdued when
         | doing everyday work.
         | 
         | It's a bit distasteful to virtually follow him around and
         | speculate about his mental health.
        
       | javajosh wrote:
       | Congrats Rich! You've been a big inspiration to go off and try
       | new things, and to not be afraid to explain and explore the
       | nuanced underpinnings of your design.
        
       | tru1ock wrote:
       | Simple made easy is the most impactful talk I have watched. Made
       | a very big impact and I still think of it frequently. I never got
       | into clojure but I am so glad it is around.
        
       | josefrichter wrote:
       | I'm a designer and barely ever write production-grade code (coz I
       | suck at it), but Rich has been my inspiration for years and I
       | shared his talks available online across pretty much all design
       | teams I've ever worked with, because they're just full of
       | invaluable experience and wisdom. Excited about Clojure future!
        
       | draw_down wrote:
       | I wonder if he'll still give talks. I don't blame him if not, but
       | he's really good at it.
       | 
       | "Simple made easy" was a classic even if everyone proceeded to
       | ignore the practical advice contained therein. And "Maybe not" is
       | my personal favorite, a great discussion of
       | requirements/provisions and the downsides of option types.
        
         | colonwqbang wrote:
         | This comment didn't really deserve to die, did it?
        
           | Jtsummers wrote:
           | It wasn't flagged. The user's comments are all dead for a
           | while now.
        
           | draw_down wrote:
           | [dead]
        
         | cutler wrote:
         | I'll never forget "gem install hairball" during his talk
         | "Simplicity Matters" at Ruby Conf 2012 where he basically told
         | the Ruby community they were doing it wrong.
        
         | girishso wrote:
         | He specifically said in the post that he intends to work on
         | next versions of Clojure. Hope we have many more talks to hear
         | from him.
        
         | cwilper wrote:
         | Yep, the guy has a gift. I've never touched a line of Clojure
         | or looked at Datomic, but I'm repeatedly inspired by Rich's
         | talks, which I come back to often.
        
         | w-m wrote:
         | I think Hammock Driven Development[0] deserves a spot in the
         | classics!
         | 
         | [0]: https://www.youtube.com/watch?v=f84n5oFoZBc
        
           | amelius wrote:
           | Somehow this reminded me of Joel Spolsky, who apparently is
           | still blogging.
        
           | justin_oaks wrote:
           | Because of your comment, I watched this for the first time. I
           | agree that it deserves a spot in the classics.
           | 
           | For those who haven't seen it, in the presentation Rich talks
           | about figuring out the problem before you work on a solution.
           | It's definitely something that could be improved in myself
           | and in a lot of people and organizations involved in software
           | development.
        
       | [deleted]
        
       | adityaathalye wrote:
       | This is awesome! One, it reinforces the ongoing maturing of
       | Clojure, the language as a team project. Two, it portends cool
       | new things to come; the kind that can only come from a place of
       | personal liberty. Three, BDFL is retiring _from_ an _employer_ ,
       | headlong _into_ his life 's work. I for one am cheering.
       | 
       | (edit: typos, formatting)
        
         | mdaverde wrote:
         | This was exactly my take. This language just got a whole lot of
         | significant focus behind it
        
       | slifin wrote:
       | Rich changed my whole career, I owe him a big debt!
        
       | Jach wrote:
       | Well deserved, I'm looking forward to seeing what Rich does next
       | in his free time. Clojure made me love programming again the same
       | way Python once did (the whole Py3k fiasco soured that). I
       | haven't used it in quite a while (switched to Common Lisp) but
       | I'll always be happy to see more Clojure success.
        
       | [deleted]
        
       | BaculumMeumEst wrote:
       | i'm very grateful to rich for clojure, cognitect's
       | libraries/tooling, and datomic. all of these have been well
       | maintained, stable, and backwards compatible over the years.
       | 
       | although he's no longer working on datomic, i really hope
       | cognitect values growing it. it feels like such an improvement
       | over sql to work with.
        
         | __jem wrote:
         | Could not disagree more strongly that Datomic is well
         | maintained. I'd view it as a significant liability in any
         | organization using it without _very_ good reason. My experience
         | operationally supporting Datomic at even a moderate scale was a
         | total nightmare and soured me on the Clojure ecosystem as a
         | whole.
        
           | BaculumMeumEst wrote:
           | may i ask what you consider moderate scale in terms of
           | daily/concurrent users? i've had no issue with small
           | projects, but i'm curious to know where it starts falling
           | over
        
       | bjoli wrote:
       | I look in envy at what Rich has achieved. I think we all have
       | ideas of how we would like a language to be, but actually sitting
       | down and doing it to Rich's extent is something else.
       | 
       | As a schemer there are so many small things I would like to
       | change that put me off using it for my personal projects, but
       | regardless I have really enjoyed contributing to other people's
       | Clojure projects. It is not far away from what I would consider a
       | good starting position for my own perfect language.
        
       | lawrencehong88 wrote:
       | Your work on Clojure and other projects has been truly
       | influential, and your talks are some of the best out there. I
       | remember watching your "Simple Made Easy" presentation and being
       | blown away.
       | 
       | The impact of Clojure cannot be overstated. It's amazing to see
       | how far it has come since its inception. You've inspired so many
       | developers, including myself, to explore functional programming
       | and think differently about software design.
        
       | cfcfcf wrote:
       | A lot of people have mentioned Rich's inspiring talks over the
       | years. Any particular videos folks would like to share?
        
         | addywaddy wrote:
         | Simple Made Easy has to be my favourite:
         | https://youtu.be/SxdOUGdseq4
        
       | drewr wrote:
       | I was about to give up on a career in software development when I
       | found Clojure in 2007.
       | 
       | Rich, I'll always be grateful to you for creating a language and
       | community that got to the root of so many problems our industry
       | still faces today. I'm confident it will continue to change the
       | world as it has my own life.
        
       | nenadg wrote:
       | Being an independent developer is much more fulfilling than any
       | other personal accomplishment
        
       | runevault wrote:
       | I remember being curious about Lisp and then seeing a new Lisp-
       | style language was coming out for the JVM. I think back in the
       | 0.2 days (unless I'm confusing versions with Phoenix but I feel
       | like I started using both at that version number).
       | 
       | I didn't end up sticking with Clojure because I don't enjoy the
       | JVM tools/ecosystem, but Rich's talks gave me a lot to think
       | about and I've been spending time in more FP and FP adjacent
       | languages like Common Lisp and F# because of his thoughts and
       | ideas.
       | 
       | Thanks for everything and enjoy your retirement from professional
       | development!
        
       | yawaramin wrote:
       | I remember Rich talking about how much time and money he put into
       | Clojure-some of that money taken out of his retirement funds! I
       | hope he has a long and fulfilling retirement with lots of
       | happiness.
        
       | brundolf wrote:
       | Rich has to be my favorite thinker in this space, absolutely love
       | his talks and the way he articulates things, and I often draw
       | from his philosophies in my work
       | 
       | But, I've always been turned off to Clojure by the lack of static
       | typing (I know spec exists, but it's not really the same thing).
       | I did a little project once to try it out, and even there I found
       | myself spending time debugging basic issues like passing the
       | wrong number or wrong kinds of arguments to functions
       | 
       | Can somebody sell me on it? I feel like I'm the target audience
        
         | delegate wrote:
         | It's a matter of habit. Once you get used to it, you quickly
         | know how or why it happens and where (especially when you
         | follow the correct workflow, see below). Modern editors/IDEs
         | help a lot with the typos and wrong number of args.
         | 
         | Some advice I would give myself when I started learning
         | Clojure:
         | 
         | Think not in types, but in data. It's a different model that
         | requires an 'aha' moment, but it's revelatory when you do get
         | it.
         | 
         | If you come from an OO language, think not in objects
         | (Elephant), but in information about objects (elephant's
         | record, a map).
         | 
         | Clojure is best served REPL driven.
         | 
         | You can technically compile and execute, but this is not how
         | the language shows its power. Here's how I use it:
         | 
         | I evaluate code in the REPL as I write it, reload definition on
         | every change. Inside a `comment` block, I call the function I'm
         | writing with the required arguments. I can quickly test how my
         | function behaves in corner-cases. You then construct another
         | function, which calls the first. You evaluate/execute the
         | function as you write it.
         | 
         | So your program keeps growing, while you keep running/changing
         | individual parts of it.
         | 
         | Once you get the hang of immutability and working with
         | maps/collections, this process becomes very engaging because of
         | the short feedback loop between thought and result.
        
           | Ketan-fullstack wrote:
           | yeah REPL driven development is pure joy. Even back when i
           | was a JS developer i was developing a lot of my algos in
           | devtools and then copying them to code.
           | 
           | It's like having a conversation with your program while you
           | are developing it.
        
         | bokchoi wrote:
         | clj-kondo helps with catching those types of errors. it works
         | really well
         | 
         | https://github.com/clj-kondo/clj-kondo
        
         | kaba0 wrote:
         | I am myself not 100% sold on it, except immediately after any
         | Rich talk (honestly, that man could sell me anything :D), but
         | it was eye opening to me that static typing is not an end goal
         | in itself -- it might be a local optimum, but there are many
         | more things it _can 't_ express than it can.
         | 
         | Also, in case of Clojure you usually handle FP code with no
         | side effects, written in a REPL-driven, interactive style. This
         | combination is not as prone to typing errors in my opinion than
         | "traditional" dynamic languages like Python and JS.
         | 
         | Another aspect might be the one being touched in the 'Maybe
         | Not' talk: Static types operate on a closed-world basis, where
         | the sum of all relevant code is available at the same time.
         | While this is common for certain kinds of programs, it is not
         | really true of _systems_ which have to interoperate with
         | services owned by different companies alltogether, having to
         | support many different versions of other interfaces at the same
         | time. In that case you want to be liberal in what you accept,
         | and arguably, dynamic types are better fit for this job. I am
         | not 100% sold on this part, mostly just reiterating what I 've
         | seen others claim, notably Oilshell's author is a big proponent
         | of this thought.
        
         | joshlemer wrote:
         | It is difficult to explain why, but there is actually a
         | positive case to be made for dynamic typing. Their benefits are
         | real but a lot less immediately apparent than the benefits of
         | static typing. I think this article from Eric Normand captured
         | some of it https://ericnormand.me/article/clojure-and-types. In
         | my opinion languages like TypeScript where the type system is
         | only a verification system and has no effect on the runtime,
         | combined with its emphasis on structural types, existence of
         | union/intersection types, etc, go a long way towards reducing
         | the downsides of static types but not completely.
        
         | globular-toast wrote:
         | As someone who's written at least as much code in dynamically
         | typed languages (Lisp, Clojure, Python) as static, I find this
         | question interesting because I really don't know how we know
         | what types to pass. I think a big part is naming and following
         | conventions. But honestly, somehow, I don't think I've ever had
         | problems figuring out or passing the wrong types to anything.
        
       | nathanyz wrote:
       | Hammock time seems to be when the best ideas come around. Wishing
       | Rich much more hammock time to ponder the life, universe, and
       | Clojure.
        
       | Clever321 wrote:
       | This is probably great news for clojure devs. It sounds like Rich
       | just wants his autonomy back. Being able to choose exactly what
       | you do, and do not, work on is precious.
        
       | dudul wrote:
       | While I never took the time to learn Clojure in depth or use it
       | for any serious project, I feel like I've been deeply inspired by
       | Hickey's talks. A lot of the principles he promoted helped me so
       | much in my career as a developer.
        
       | typon wrote:
       | Watching Rich Hickey's talks turned me from a "software is a
       | grind" kind of a guy into a "software can be beautiful". Highly
       | recommend watching every single one of his talks if you are a
       | young programmer. It doesn't matter if you end up using Clojure
       | or not - his philosophies and enthusiasm are infectious.
        
       | zengid wrote:
       | Hey idk if Rich reads HN but if you do thank you for being a huge
       | inspiration to me when I first started programming around 2014.
       | You've helped change the world for the better. Cheers!
        
       | datadeft wrote:
       | Clojure was hugely inspirational to me and I could finally enjoy
       | programming (focusing on algorithms). Rich has many great ideas,
       | the database as a value is my all time favorite from him.
        
       | germandiago wrote:
       | Rich has become a legend for me. Btw, he is a remarkably good
       | person at doing conferences. One of my favorites together with
       | Andrei Alexandrescu.
        
       | yayitswei wrote:
       | Congrats Rich! I met you at Stu's house during a rousing game of
       | Marvel Champions. Thank you for Clojure, Datomic, Cognitect, and
       | your talks. Your creations have enriched my life in many ways. I
       | hope retirement affords you ample hammock time!
        
       | mrcwinn wrote:
       | I am personally grateful to your contributions and talks, Rich.
       | Thank you for everything so far.
        
       | smrtinsert wrote:
       | I had a lot of fun in Clojure in the years I used it.
       | Congratulations on your retirement Rich, well deserved for sure.
        
       | valbaca wrote:
       | (inc hammock-time) ; Congratulations!
        
       | aardvark179 wrote:
       | Thank you Rich for everything you've done over the years, and I'm
       | really happy to see that Clojure continues to have a future.
        
       | jwr wrote:
       | Rich, thank you for creating and maintaining a tool that has
       | helped me build a successful SaaS business. I could not have done
       | this without your work and your insights. I also learned a lot
       | from your talks, and I do hope to meet you again at one of the
       | Clojure conferences.
        
         | devgoth wrote:
         | Curious, what SaaS space are you in where you found Clojure was
         | a good fit? Would love to add this info to my brain-base for
         | future ideas :)
        
       | [deleted]
        
       | quantum_state wrote:
       | Wish you all the best, Rich.
        
       | err4nt wrote:
       | Congrats Rich, and thanks for everything you've done, including
       | being in inspiration for so many!
        
       | deltree7 wrote:
       | May have to do with https://finance.yahoo.com/quote/NU?p=NU and
       | vesting periods :)
       | 
       | A true computing thought leader. All the best Rich. My only
       | complaint about you was not open-sourcing datomic and making it
       | free for developers.
        
         | fndex wrote:
         | https://blog.datomic.com/2023/04/datomic-is-free.html
        
         | nightwolf wrote:
         | FWIW, Datomic still isn't open-source, but it is free:
         | 
         | - https://blog.datomic.com/2023/04/datomic-is-free.html -
         | https://blog.datomic.com/2023/06/datomic-cloud-is-free.html
        
       ___________________________________________________________________
       (page generated 2023-08-04 23:00 UTC)