TGIF
morning! TGIF indeed.
Watched the Clojure documentary yesterday, really liked it. Great to get a bit more insight into the early days of Clojure. What a risk Rich took! In particular, it's interesting to hear Alessandra Sierra say he "blew the Lisp NYC out of the water with his preparedness" [I'm paraphrasing]. He committed to his "I made this little thing Lisp NYC talk six weeks before it took place, which prompted him both to a furious talk-driven-development period, plus an effort to structure enough of his ideas to fill the hour or two it took. Definitely not the "I thought of something so I'm pushing it out over the weekend" we see today (though I still support sharing your scrappy fiddles). Perhaps the lesson here is to denote your scrappy fiddles clearly as scrappy fiddles.
What also stood out to me is that Rich had done a lot of related projects before Clojure to make Common Lisp reachable from other more commercially viable languages. Probably not scrappy fiddles but good to realize that Clojure didnโt just drop out of nowhere
The documentary was surprsingly good. I thought there wouldn't be much there for someone who already read his Clojure paper and saw all the talks, but it was really interesting to get a bit of the human side too.
> Rich had done a lot of related projects before Clojure to make Common Lisp reachable from other more commercially viable languages Yup, he definitely tried other options before inventing a brand new programming language. To hear straight up that Clojure wouldn't have happened if Common Lisp was easier to deploy was very interesting. I got to talk to the author of https://www.korulang.org a few weeks ago, another new programming language. My primary concern / question / criticism was why he chose to make a brand new programming language, when my take was that it could have been hosted into an existing rich ecosystem (such as JVM or .NET), and I didn't feel like I got a clear language, instead mostly arguments about how it's easy โ when I was interested in Koru as a tool for making high performance subsystems. Sad to see that starting from zero and throwing all the old stuff away is often considered cheap.
I donโt believe that you used AI to write this up but use of an emdash in Slack I find highly suspicious ๐
haha, it's a habit. Option+shift minus on macs. I promise that this isn't AI bullshit ๐ I find people using AI to type shit up for them highly suspicious. If I write verbosely, or am mistaken, it's entirely my own, human fault.
I didnโt think you were, but I donโt see a lot of emdash in human casual prose nowadays :)
Perhaps that's enough of a reason to stop using it ๐ It is a bit of a crutch to avoid writing proper sentences. Instead, just append thoughts.
In Dutch I believe we use a semi-colon for it too
The em dash is a beautiful typographic unit which conveys pause in a way that the semicolon, to me, doesn'tโand I really don't want to stop using it ๐
Rich's story and character are unique and authentic. Reconciles me with this profession that I sometimes dislike (too much BS).
โfair enoughโ
Looking forward to watch it ๐
@teodorlu I am guilty of sinning using AI to implement a โnewโ programming language (it's basically just another Clojure) because I'm tired of all the issues we faced when game designers and players use Lua in our game engine ๐ I've been thinking about it and wanting to do a proof of concept for some time, but it's been virtually impossible as a father with a busy job before AI came along. Iโm feeling an interesting mixture of achievement and shame ๐ When I see how hard Rich had to work and how much he had to sacrifice to create Clojure from first principles, Iโm in awe of his passion, dedication and commitment.
Rich is highly committed to brevity, taste, and the avoidence of adding unnecessary fluff! I, also, suffer from putting worse things into the world than Rich. And I believe Lu Wilson was right to encourage us to https://www.youtube.com/watch?v=MJzV0CX0q8o.
But from a different angle, Iโm also happy to bring โthe Clojure philosophyโ into the embedded world and show it off to C/C++ and Lua programmers who would otherwise never have looked at it.
would https://jank-lang.org/ serve the same purpose as your new dialect? It's already received a few rounds of Clojurists Together funding.
No, it comes at the problem from the other angle. I've written about it on the About page: http://mino-lang.org/about/
Janet is the closest comparison to mino
And Lua + Fennel after Janet.
But I've been following Jank closely, and Iโm also interested in that. They could even be complementary as mino could be embedded in Jank (although that might be a bit silly).
Good on you for writing a thorough justification and comparison ๐ช
Thanks! I carefully and thoughtfully wrote down my vision, goals, non-goals, trade-offs, and compromises before starting. That's where I spent most of my time (without AI).
And also writing down architectural stuff and how I want the C code designed with zero dependencies.
I'm still thinking about whether it makes sense to introduce namespaces in the embedded context, and maybe some basic concurrent stuff. But I borrowed some concepts from Erlang/BEAM to implement cross-runtime concurrency.
Having spent considerable time with C/C++, Lua, and Erlang/Elixir (+ https://clojureverse.org/t/introduce-yourself/1327/305?u=leif) before discovering Clojure, I feel I have a very clear vision of what I want. But I don't have the depth of experience with pure ANSI C and the time to implement it solo, nor the economic freedom to take a sabbatical. So AI was the only way for me to test the ideas for real.
But in a real sense mino is a very large โscrappy fiddleโ/proof of concept (for now) ๐ Even if the ideas and concepts might be strong, the implementation suffers from โAI side-effects.โ
I think Rich proved that taking shortcuts isn't worth it. AI won't help you other than to rush out some ideas. Why the rush?
I reject the concept of ai generated scrappy fiddles
It's not as much about speed as it is about being able to try out an idea at all, given the knowledge, skills, and time available. โAIโ makes it possible to try bigger things that would be virtually impossible otherwise. Of course, that's not the case for everyone. Some people choose not to have a family and dedicate their lives to science, or perhaps they have inherited or earned a fortune that allows them the freedom to pursue creative ambitions without worrying about how they will pay the bills.
Also, if a person has a potentially good idea, why wouldn't we want them to be able to implement and test their hypothesis faster, learn and iterate more rapidly? If Rich had found a way to realize his vision more efficiently, Iโm pretty sure he would have used it, as exemplified by the rigorous research he did into writings and other languages. It would be interesting to hear from Rich himself whether and how he would have used โAIโ had it existed in its current form when he was working on Clojure.
I'm reminded of this quote from Simple Made Easy: > We don't ship source code, and the user doesn't look at our source code and say, "Ah, that's so pleasant." Right? No? [โฆ] the user is not looking at our software, and they don't actually care very much about how good a time we had when we were writing it. Right? What they care about is what the program does, and if it works well, it will be related to whether or not the output of those constructs were simple. In other words, what complexity did they yield?
I think he still wouldn't have used AI. He made a specific comment in the documentary about how much time was reading and thinking and how little time was spent typing. Given how straightforward and direct/simple much of Clojure's implementation is -- perhaps beyond the persistent data structures themselves -- I don't think AI code generation would have sped up the project any, and I think Rich is so very focused on his craft that he would have (and still does) reject the utility of AI.
The Java code behind Clojure is, for the most part, not idiomatic Java. A lot of people in the community say they learned a lot from reading the source code. I think that simplicity and clarity is part of what Rich wanted for the implementation.
Maybe he would have used it only to find relevant papers to read or summarize things. I don't know. Only he knows.
Of course, you could always ask him during today's live Q&A!
Also worth pointing out that the core team recently clarified that no AI-generated code would be accepted into Clojure and Alex further clarified on ClojureVerse that includes AI-generated "auto-complete" as well.
(I thought that followed "obviously" from the wording in the CLA around copyright assignment -- since the US Copyright Office says you cannot copyright AI output of any kind, and the courts have agreed so far)
Also worth reading: https://gist.github.com/richhickey/ea94e3741ff0a4e3af55b9fe6287887f Rich Hickey: Thanks AI
Iโm fairly sure you're right, @seancorfield. It's highly unlikely Rich would have even considered using AI had it existed then.
He did have the time and the finances in order. And the knowledge and skills to do it. And likely took great pleasure in the creative process as well.
Despite my comments above, I do find value in AI-assisted development, and AI-assisted research, but I understand that not everyone wants to use AI and not everyone gets value from it. I've been integrating a new 3rd party API at work that uses XML, and I had AI generate a first pass of a wrapper for it so I could pass and return Clojure hash maps. It produced about 1,000 lines of fairly dumb Clojure -- including tests! -- and it saved me a bunch of time writing out fairly tedious boilerplate code. And it only had a couple of bugs in it. It left me to focus on the more interesting aspects of integrating the API into our business logic.
Basically, people like Rich are exceedingly rare.
and it's not about being rich, in the monetary sense. One has to choose. It's like saying artists could go faster if they used AI. They can't.
Right, one can choose not to have kids and dedicate one's life entirely to coding.
that's not what I'm saying.
Or art or whatever else.
AI will not improve your thinking.
Exactly.
some people can get productive value out of the tool but I think that is proving very difficult to generalise or consider sustainable. And just to relate it to Clojure, think of the side-effects ๐คท๐ผโโ๏ธ
Take one of my experiments/projects as a concrete example: https://eido.leifericf.com I've been working with computer graphics for nearly 20 years now. I had a very clear idea of what I wanted to try, and I've been thinking about it for years. I didn't have the skills or time to implement it in a reasonable amount of time. But I did have the time to think, write down everything I wanted and how I wanted it, and spoon-feed it to "AI" agents, review the results, correct them, etc.
But it's honestly still quite wonky. Even though it does work.
The thinking, ideas, concepts, and visions were my own, inspired by other great creators. But the implementation is done (mostly) by AI agents.
In other words, more time goes into thinking about the problem, concepts, and constraints, and less time goes into typing the code. This seems to be what Rich is talking about, in some cases.
The main problem is that โAIโ still produces crap code a lot of the time. So the implementations tend to suck. So we still have to โtype in the codeโ if we want to realize the ideas and concepts effectively, take concepts out of our heads and into the real world.
Maybe in the future we can spend 99% of the time in the hammock instead of only 70% ๐
You can dream in hammocks too ๐ด
good morning
morning
Good morning!
What's this thing where using Ctrl-Z/Cmd-Z does not undo the latest thing I did in my text field (usually a paste), but a previous thing. It's driving me up the wall
I think I experience it both in browser-based and "native" text fields
in MacOS
Also, I miss using Slack for work. The "paint" style of formatting, known from Word, is the only option in both Jira and Teams ๐ Give me back my markdown based formatting, or any kind of text based formatting, really!
There's an AI project for you ๐ MS doesn't allow third party Teams clients, but there's the official web-based client. I'm sure it's hackable!
I use the web based client. Hmmm how to go about it. I suppose I could make my own separate input field and submit the contents to the real field... Kind of a wysiwyg experience.
Good ๐ morning
Good โ๏ธ morning