\

Hoot: Scheme on WebAssembly

131 points - today at 12:18 PM

Source
  • veqq

    today at 7:29 PM

    It's fascinating how much development's occurring in Guile recently. Unfortunately, a lot seems to be ex-Racketers moving over. The splitting of community effort's sad (particularly as Guile e.g. greatly lags Racket performance or lacks nice libraries like Gauche).

    • NeutralForest

      today at 1:33 PM

      It's such an amazing project, I wish it used something other than Guile but you can't have everything.

        • zelphirkalt

          today at 3:01 PM

          Guile has lots of libraries though, and is the language of Guix. This makes it more likely for people to package their stuff via Guix. Guix itself enriches the ecosystem, and Guile projects can use Guix to make them reproducible.

          A few problems remain though. A good debugger, a good macro expander (geiser in Emacs is able to expand somehow), and solving the issues with R6RS library syntax and standard library bindings, are what comes to mind.

          Racket's multi-core abilities for a long time were mostly heavy weight (places, starting whole new Racket VMs), except for their implementation of futures, but that one was not always useful. I think recently the situation in Racket has improved, but I don't know, whether it is as good as Guile fibers and futures (which are different from futures in Racket).

            • terminalbraid

              today at 5:32 PM

              > Guix itself enriches the ecosystem

              Except that ecosystem Guix provides is not on Windows nor MacOS, making a serious limitation to anyone who wants to develop guile on those platforms.

              I support GNU's mission in general, but I find it ironic that when they push freedom of choice you're forced to make the "right" choice or you're left twisting in the wind.

              • NeutralForest

                today at 3:17 PM

                Aside from the debugging & testing I already mentioned, going only through guix is a tough sell considering the very tiny amount of people that use it. It's also incredibly slow and doesn't have many packages available. Even for Emacs, it has this weird way of going around Emacs-installed packages (GNU or MELPA channels). Just like Guile docs, it also doesn't tell you of a good way to do things, it only says "here is what exists" with too little guidance imo. It means people have to figure out how to setup things properly on top of all the rest. It makes for a terrible onboarding.

                • nerdponx

                  today at 3:24 PM

                  If Guile had more of the "batteries" from the Gauche standard library it might be the perfect all-purpose Scheme. But for just writing a simple application quickly and easily it's been impossible to beat Gauche for me, it's on par with Python and Ruby in that regard IMO.

              • Zambyte

                today at 1:38 PM

                Other than Guile as in different Scheme implementations? It's usually not too difficult to port things between Schemes. Especially if you use standard R6RS or R7RS library syntax.

                  • noosphr

                    today at 1:41 PM

                    Guiles debugging has been a nightmare in the 3.x series. Which is rather surprising since it was probably the easiest scheme to debug in the 1.x days.

                    It got so bad I moved to racket as my daily driver.

                      • wwfn

                        today at 1:47 PM

                        Can you say more? Guile's the only scheme I've tried (attempts at packaging for Guix). Debugging has been difficult, but I figured it was me struggling with new tools and API. Does racket have better facilities for introspection or discovery at the REPL?

                          • pjmlp

                            today at 2:27 PM

                            Yes, since years, all the way when it was still known as Dr. Scheme.

                            It has a graphical experience similar to the survivors from Lisp is Great days, like LispWorks and Allegro Common Lisp, or Clojure with Cursive.

                        • pjmlp

                          today at 2:25 PM

                          Even better than PLT Scheme with Dr. Scheme, now Raket has ever been?

                          I have my doubts, given its age.

                          • feastingonslop

                            today at 1:45 PM

                            Which LLM works best for Racket?

                              • davidelettieri

                                today at 6:48 PM

                                I found gemini 3 pro to be pretty good.

                                Overall understanding of the code, code generation capabilities and ability to explain are all pretty good.

                        • NeutralForest

                          today at 2:21 PM

                          A different scheme that has great debugging and testing and also better docs.

                  • xbumblefudgex

                    today at 7:14 PM

                    woot

                    • threemux

                      today at 2:51 PM

                      Very cool! Would this work with Cloudflare Workers potentially?

                      • behnamoh

                        today at 4:24 PM

                        This is what JavaScript was supposed to be until Netscape forced the dude to use a C/Java-like syntax.

                        • sheepscreek

                          today at 4:09 PM

                          I love this so much! It got me thinking about the future we’re heading towards, that took me down a rabbit hole.

                          As agents become the dominant code writers, the top concerns for a “working class” programming language would become reducing errors and improving clarity. I think that will lead to languages becoming more explicit and less fun for humans to write, but great for producing code that has a clear intent and can be easily modified without breaking. Rust in its rawest form with lifetimes and the rigmarole will IMO top the charts.

                          The big question that I still ponder over: will languages like Hoot have a place in the professional world? Or will they be relegated to hobbyists, who still hand-type code for the love of the craft. It could be the difference between having a kitchen gardening hobby vs modern farming…

                            • billythethird

                              today at 5:05 PM

                              I have been wondering what an AI first programming language might look like and my closest guess is something like Scheme/Lisp. Maybe they get more popular in the long run.

                                • bloppe

                                  today at 7:30 PM

                                  I think the bitter lesson has an answer to that question. The best AI language is whichever one has the largest corpus of high quality training data. Perhaps new language designers will come up with new ways to create large, high quality corpi in the future, but for the foreseeable future it looks like the big incumbents have an unassailable advantage.

                                    • t1amat

                                      today at 8:08 PM

                                      Perhaps the opposite: a language small enough that its entirety can easily be stuffed in context.

                                  • xkriva11

                                    today at 6:26 PM

                                    Smalltalk offers several excellent features for LLM agents:

                                    - Very small methods that function as standalone compilation units, enabling extremely fast compilation.

                                    - Built-in, fast, and effective code browsing capabilities (e.g., listing senders, implementors, and instance variable users...). This makes it easy for the agent to extract only the required context from the system.

                                    - Powerful runtime reflectivity and easily accessible debugging capabilities.

                                    - A simple grammar with a more natural, language-like feel compared to Lisp.

                                    - Natural sandboxing

                                  • zozbot234

                                    today at 6:58 PM

                                    LLM's are mainly trained on English natural language text, so you'll want a language that looks as much as possible like English. COBOL is it, then.

                                    • spankalee

                                      today at 5:44 PM

                                      I'm working on what I hope is an AI-first language now, but I'm taking the opposite approach: something like Swift/DartTypeScript with plenty of high level constructs that compactly describe intent.

                                      I'm focusing on very high-quality feedback from the compiler, and sandboxing via WASM to be able to safely iterate without human intervention - which Hoot has as well.