Cognitect Blog
blog.cognitect.com · Company blog · on HN since 2013
Cognitect is the company behind Datomic and a steward of Clojure, and its blog covers Clojure tools, architecture and company news.
What HN saysHN links it for Clojure material, such as the REPL debugging post cited as a way to deal with errors, and Rich Hickey's open source sponsorship post.
120HN people shared it
66linked it in comments
90stories submitted
3.8Kstory points
5 months agolast shared
2013people per year2026
Most-shared posts
- 1Documenting Architecture Decisions10 people · 16 points · first shared 2020 · 1 comments on HN
- 2Transit – A format for conveying values between different languages9 people · 300 points · first shared 2014 · 109 comments on HN
- 3Nubank acquires Cognitect7 people · 618 points · first shared 2020 · 272 comments on HN
- 4Walmart runs Clojure at Scale7 people · 14 points · first shared 2015 · 1 comments on HN
- 5Sponsoring Open Source Developers6 people · 326 points · first shared 2020 · 73 comments on HN
- 6REPL Debugging: No Stacktrace Required (2017)5 people · 92 points · first shared 2017 · 67 comments on HN
- 7Restate Your UI: Using State Machines to Simplify User Interface Development5 people · 8 points · first shared 2017 · 1 comments on HN
- 8Transducers are coming to Clojure4 people · 330 points · first shared 2014 · 100 comments on HN
- 9Cognitect: Relevance merges with Metadata Partners (Datomic)4 people · 121 points · first shared 2013 · 26 comments on HN
- 10Homepage4 people · first shared 2015
- 11Self Healing Code with clojure.spec3 people · 108 points · first shared 2016 · 28 comments on HN
- 12Clojure spec with Rich Hickey [podcast]3 people · 8 points · first shared 2016 · discussion on HN
- 13Functional Dreams (2017)3 people · 6 points · first shared 2017 · discussion on HN
- 14Improving on Types: Specing a Java Library with Clojure3 people · 6 points · first shared 2017 · discussion on HN
- 15State of Clojure 2016 – Results and Analysis2 people · 249 points · first shared 2017 · 78 comments on HN
What HN people wrote when they linked it
michaelsbradley · 2014-09-24
I agree that Clojure is continuing to rapidly gain mind share – among long-time Lispers, relative newcomers to programming, and also seasoned "curly bracers" that a few years ago never thought they'd see a day when Lisp would make it into mainstream dev shops. Personally, I like it a lot and use it on a daily basis. The excitement around it is in no small part due to the insightfulness and ongoing hard work of Rich Hickey[1], his close collaborators at Cognitect[2], and some amazingly dedicated community talent (e.g. Philip Hagelberg[3]). Not to be overlooked is the brilliant decision to have it be a "hosted language" that interoperates with non-Clojure code on the JVM with little to no hassle – that opens a lot of doors, better believe it!
That being said, I attended RacketCon 2014[4] last Saturday and was blown away by the work going on in that community. Michael Fogus[5], a well-known name in the Clojure community, even gave the keynote[6]. The language's creator, Prof. Matthias Felleisen[7], and his grad students have been doing truly cutting-edge work over the last 18+ years (what became Racket was "conceived" at Rice University in Fall 1995). It's a fair question, though, whether the Racket team even wants the language to "make it big," i.e. along the lines of Clojure's rapid rise in popularity. I got the impression they have mixed feelings about that prospect, and those concerns have certainly shaped (and will shape) their marketing of Racket.
My thought is that if,…
dimitar · 2022-07-30
This is a great article on the errors: https://lambdaisland.com/blog/2022-04-07-Clojure-Error-Messages
Also the REPL makes it so easy to debugging: https://www.cognitect.com/blog/2017/6/5/repl-debugging-no-stacktrace-r…
finalfantasia · 2021-08-02
To be fair, this is not unique to Clojure. You need to deal with stack traces no matter what as long as you're using any programming language that targets the JVM (even statically type-checked languages like Scala). There are some great articles [1][2] that discuss various simple techniques helpful for debugging and dealing with stack traces.
[1] https://eli.thegreenplace.net/2017/notes-on-debugging-clojure-code/
[2] https://cognitect.com/blog/2017/6/5/repl-debugging-no-stacktrace-requi…
kinleyd · 2020-12-20
It's a great development. I'm keen to see how it galvanizes the Clojure ecosystem in the years ahead.
I came to search HN to see if this had been posted yet. A link to Rich Hickey's post would be better, imo: https://cognitect.com/blog/2020/12/15/sponsoring-open-source-developer…
grierson · 2020-03-02
So this is a common issue on the clojure sub-reddit the two good responses i've seen to this is the library expound (https://github.com/bhb/expound) so you get more 'human' read-able errors and my personal favourite is Stuart Hallows blog post REPL DEBUGGING: NO STACKTRACE REQUIRED (http://blog.cognitect.com/blog/2017/6/5/repl-debugging-no-stacktrace-r…
_halgari · 2017-12-04
I had the great pleasure of interviewing Zach Oakes (author of nightcoders.net) the ~1hr podcast is available here: http://blog.cognitect.com/cognicast/130
dmix · 2017-05-16
I thought that was strange survey at first, as there were very few questions related to programming and coding with Rust but plenty of questions around engaging with the community (inclusiveness/comfort level, conference attendance, etc). But then I realized it was a "Rust Community Survey".
Is there another survey more suited to use Rust as a language ala "State of Clojure"? I don't use Clojure anymore but I still love reading these every year to keep up to date with the progress it's making.
For ex: http://blog.cognitect.com/blog/2017/1/31/state-of-clojure-2016-results
Edit: Oh nevermind, it seems the questions change if you select 'Yes' or 'No' at the beginning for "still using Rust". I didn't totally stop using Rust I just spent time learning it, experimenting on some projects, but I don't have a day-to-day need for it - not sure if either possible answer applied to me.
616c · 2016-07-31
On the Cognicast there was an excellent tangent (all of them were good) in episode 106, where Michael Nygard bemoans with the fellow Cognitect Craig that, despite all the hate from the JSON generation, the failed promise of XML was the ability (again, that is part, not the whole) to have separated data and presentation with schemas, so you would not have to redesign endpoints all the damn time.
http://blog.cognitect.com/cognicast/106
This is just one view, and I am sure I will be mercilessly downvoted, as this is a gross simplification of that point, but it was one of many gems in that episode. I might finally review XSLT as this once again affirms things other devs told me when they said do not write off XML, in the complexity of it is something interesting.
robto · 2016-07-12
I've started using clojure.spec[0] in my regular day programming with an eye on using generative testing, which I understand is a form of fuzzing. I'm very new to this, but it feels incredibly practical in terms of bang for buck - like the 'cutting edge' of practical use. I'm not sure what it's academic background is, but I'd highly recommend reading and listening to what Rich Hickey has to say about it. He's a smart guy.
[0]http://clojure.org/about/spec
[1]http://blog.cognitect.com/cognicast/103
brudgers · 2015-09-29
We can depict this solution in the following way:
[table labeled :Users:]
In my opinion that's a better way of encoding the desired behavior than either the C# or F# code by several orders of magnitude. It can be read to find out what privileges a user state allows. It can be read to find out what user states is required to access a privilege.
The key is that tables are readable. By anyone. Even non-programmers. All the behavior is right there. The question about what's the best way to represent it in code is not F# versus C#. It's automatically versus wrong. The table should be the point of truth. [1]
[1]: The point of departure is Aaron Brooks' idea of live specification. I don't claim to accurately represent his view. Listen for yourself here: http://blog.cognitect.com/cognicast/074
pselbert · 2014-10-02
There was a nice interview with Will Byrd a couple episodes ago on the Cognicast (Cognitect's Podcast). He discussed MiniKanren along with a ton of other work and thoughts. Recommended listening.
http://blog.cognitect.com/cognicast/063-will-byrd
espeed · 2014-01-05
Clojure would be my first choice, esp since you're fond of the JVM. Python is also good, esp for non-JVM projects.
Python and JVM languages give you access to the widest range of high-quality libraries, esp in the data processing space, and having high-quality libraries that you didn't have to write is key for rapid prototyping.
Clojure REPL-driven development enables you to define and evaluate functions inline, and the immediate feedback makes development fly. Combine this with Clojure's lack-of-verbosity, first-class Java interop that gives you access to all Java's libs, and Clojure's concurrency model, and you have a toolset ideal for rapid development that doesn't sacrifice performance.
Pedestal (http://pedestal.io/) is the Clojure Web toolkit I would use -- it's designed/backed by Cognitect (http://cognitect.com), Rich Hickey's new company.
NightMKoder · 2021-08-03
As others have mentioned - you’re probably talking about something like a python or node repl. Lisp repl development is not like python or node - you _work_ in the repl. The closer comparison might be between bash+node as a repl - up+enter and the like to rerun tests has an equivalent in clojure+IntelliJ. There’s no copy pasting but there are different key bindings.
One of the best parts about lisp style repl development is that you end up doing TDD automatically. You just redefine a function until it does what you want from sample data you pass in - without changing files or remembering how your test framework works. You can save the output of some http call in a top level variable and iterate on the code to process it into something useful. The code you evaluate lives in the file that will eventually house it anyway so it’s pretty common to just eval the entire file instead of just one function.
Since you don’t ever shut the repl down, developing huge apps is also quite pleasant. You only reload the code that you’re changing - not the rest of the infra so things like “memoize” can work in local development. That’s why it’s a bit closer to your bash shell in other languages.
If you’ve never tried it, I highly recommend trying the Clojure reloaded workflow [1] to build a web app with a db connection. You can really get into a flow building stuff instead of waiting for your migrations to run on every test boot.
[1]…
puredanger · 2020-12-14
Lots of good questions here. https://building.nubank.com.br/welcoming-cognitect-nubank/ from Ed Wible, CTO at Nubank is a good read that answers many of them btw. Also see https://cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank.
> What are the new resources (for Clojure? or just Datomic?), how are they being used? Does Nubank have opinions / direction on these resources.
Since Cognitect joined Nubank, several people have joined the Datomic team, both new hires and internal moves from Nubank and the rate of development has increased. We are also looking at expanding the Clojure team in the near future.
> Has an open sourced Datomic been discussed?
No changes planned.
> Who owns the Clojure trademarks and IP going forward. Any talk of a Clojure Foundation?
Clojure was and is an independent project and Rich Hickey is a joint owner (along with contributors) to the Clojure copyrights. From Rich's announcement on the Clojure mailing list: "Clojure remains independent, and development and stewardship will continue as it has, with more resources and a much larger sponsoring organization in Nubank."
> Alex Miller does an awesome job but boy he has a lot to cover.
Thanks and indeed! As above, we are likely to expand the Clojure team in the future.
> There was talk a few years ago of facilitating community involvement with a PEP type process
We created https://ask.clojure.org as a way for Clojure users to discuss problems important for them and to allow voting on those…
mercer · 2025-11-11
in some ways Elixir is a child of Clojure!
> JOSE: Yeah, so what happened is that it was the old concurrency story in which the Clojure audience is going to be really, really familiar. I’ve learned a lot also from Clojure because, at the time I was thinking about Elixir, Clojure was already around. I like to say it’s one of the top three influences in Elixir, but anyway it tells this whole story about concurrency, right?
https://www.cognitect.com/cognicast/120
colddevil · 2025-02-25
Upvote for mentioning ADRs! ;)
I really like the approach and as other comments already mentioned, this is a nice way to capture the "why" of specific decisions that go beyond the "how" in the code.
Here is a good starting point for people not familiar with ADRs: - https://cognitect.com/blog/2011/11/15/documenting-architecture-decisio… - https://adr.github.io/
ekzy · 2025-02-23
Probably referring to startup time. Larger apps solve this with the “reloaded” type of workflow (https://www.cognitect.com/blog/2013/06/04/clojure-workflow-reloaded)
chubot · 2023-08-04
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!
aae42 · 2022-12-30
Let me introduce you to [ADRs](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisio…
mwattsun · 2022-03-17
The reality is: most companies are taking economic advantage of the generous spirit of open source developers. That needs to stop.
SPONSORING OPEN SOURCE DEVELOPERS
Rich Hickey - December 15, 2020
https://cognitect.com/blog/2020/12/15/sponsoring-open-source-developer…
HN Thread here: https://news.ycombinator.com/item?id=25436335
gregors · 2022-01-31
Being acquired by a bank isn't exactly a bad thing for the language from a longevity perspective.
https://www.cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank
fernandotakai · 2021-10-11
does clojure count?
if so, nubank (brazilian fintech) would be one of the biggest one.
they even bought cognitect https://www.cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank
lmeyerov · 2021-07-23
Didn't Cognitect primarily make money through consulting services revenue for other people's projects, and not selling Clojure / Clojure tools?
I think there was a product attempt by becoming a database company -- datomic -- that happened to be written in clojure, but ultimately they still got bought out for consulting vs product: https://www.cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank
So again, for all the good parts, just not the success story for a PL/tools startup that Jean is looking for..
didibus · 2021-07-17
Elixir's Protocols actually were inspired by Clojure Protocols.
Here's Jose Valim talking about it:
> I’ve learned a lot also from Clojure because, at the time I was thinking about Elixir, Clojure was already around. I like to say it’s one of the top three influences in Elixir
[...]
> The main, the top three influences are Erlang, Ruby, and Clojure.
[...]
> I was like, no, but I’m going to call them protocols because there are a lot of similarities between Clojure and Elixir in terms of them being dynamic languages and in terms of the macro system. I was like, okay, I’m going to call them protocols because the closest thing we have today to what I want is Clojure
And he goes on talking about more inspiration and similarities from Clojure like Agents, etc.
Full exert is here: http://blog.cognitect.com/cognicast/120
Kalium · 2021-05-04
I've encountered the idea of a Chaos HR Simian. People get random, unplanned, multi-week vacations.
Mentioned here: https://www.cognitect.com/blog/2016/3/24/the-new-normal-embracing-fail…
I know I've been on teams that were significantly disrupted by jury duty, medical incidents, traffic accidents, etc. So it seems like a reasonable way to simulate this.
viebel · 2021-03-12
I didn't choose the term "Data-Oriented programming"
It was used by Cognitect folks to promote clojure [1] and actually it was coined by Eugene Kutznetsov in 2004 [2]
As you know, naming is one of the two hard things in programming.
[1]: https://www.cognitect.com/blog/2016/6/28/the-new-normal-data-leverage
[2]: https://adtmag.com/articles/2004/08/05/data-integration-a-little-dop-m…
mountaineer · 2021-02-07
I first learned about ADRs in a course led by Michael Nygard, author of the book Release It (https://pragprog.com/titles/mnee2/release-it-second-edition/). Since then, I've seen them used well by our Platform Team (Scaling/SRE/Infra), but our product teams have not adopted.
Interesting to also read Nygard's post from 2011 on ADRs: https://www.cognitect.com/blog/2011/11/15/documenting-architecture-dec…
Royalaid · 2021-01-15
Cognitect, the company that shepherds and maintains Clojure, has joined Nubank (https://cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank) and so they are starting to flesh and grow the core team as well as fund some of the open source projects/devs that the ecosystem relies on (https://cognitect.com/blog/2020/12/15/sponsoring-open-source-developer…
Add to this a lot of people are changing jobs and pushing for using more alternative languages or exploring new languages and as a result many people are building in what they want instead of what they are forced to use at work. The sibling comment about roam is a good example as they have had a lot of press lately.
DoreenMichele · 2020-12-16
I am so thrilled to see this. This is a vastly better thing to be trying to do than promoting UBI.
Please take a minute to peruse their services page and see if they might be doing something you might want to hire at some point.
Their services page: https://cognitect.com/services.html