beginners

Keith Willoughby 2025-04-27T11:56:13.555479Z

Are there any examples of end-user GUI applications that embed a REPL back to themselves, e.g. to allow users to perform ad hoc data manipulation (I assume this is possible!)

Keith Willoughby 2025-04-27T12:00:43.224949Z

Similarly, are there any that allow a user to write Clojure code that is read/executed from file? (I'm basically thinking about Emacs Lisp-like behaviour, where the config is code)

a13 2025-04-27T12:03:01.620039Z

https://github.com/babashka/sci

2025-04-27T12:13:11.013039Z

https://github.com/phronmophobic/easel

Keith Willoughby 2025-04-27T12:15:29.797439Z

Magic, thanks both.

👍 1
2025-04-27T12:15:44.433529Z

https://www.flow-storm.org/ is also a GUI application that https://flow-storm.github.io/flow-storm-debugger/user_guide.html#_searching_by_predicate where you type Clojure code, which gets evaluated in it's own (or remote) process

❤️ 1
phronmophobic 2025-04-27T15:34:21.064309Z

Another example is https://clojurians.slack.com/archives/C0260KHN0Q0/p1728243474211319 where I have a clojure iOS app that let's you live code subapps. The app itself is also editable in itself. I thought it was neat, but it never got much traction from others. It runs my podcast listening app that I use every day. Maybe I'll revisit it at some point.

phronmophobic 2025-04-27T15:35:30.903379Z

If you're interested in easel, it's in active development and you can join #easel for updates.

Keith Willoughby 2025-04-27T20:13:55.066939Z

@smith.adriane Ta! And, have done

2025-04-27T20:02:27.103839Z

Is there a way to know what Clojure libraries will work with babashka? Or is it more of a "try it and see if anything blows up" kind of thing? Part of my reason for asking is that babashka is fast, and so I'm wondering how feasible it is to pair babashka with a Clojure project, sharing code/libs between them, and using bb for CLI utilities while JVM Clojure runs the application itself (CLIs in Clojure feel a little sluggish)

Bob B 2025-04-27T20:12:16.574899Z

"knowing" sort of entails knowing fairly deep details of the library, and knowing all the classes that are available in babashka. So, by way of really poor analogy, I'd say it's a bit like "knowing" whether an arbitrary number is prime... there are some things that can quickly say "no, it won't work" (<https://book.babashka.org/#differences-with-clojure>), but I think there are edge cases where trying it is the fastest way. In addition, I think in some cases it's not a binary works/doesn't work... there could be cases where some namespaces "work" and some "break" because they, for example, import java classes that aren't available. This is just my take, subject to be wrong.

👍 1
👍🏻 1
borkdude 2025-04-27T20:12:40.713259Z

it's more a try and see + come join the #babashka channel and ask kind of thing

👍🏻 1
➕ 1
Bob B 2025-04-27T20:14:50.046439Z

by way of extolling the virtues of borkdude, it's also possible that a library might not work, and then it gets asked about here, and 20 minutes later borkdude has it working on the main branch build 🙂

😂 2
lread 2025-04-27T20:30:36.143969Z

also: projects that deliberately work with bb typically display a https://book.babashka.org/#badges

borkdude 2025-04-27T20:38:45.948589Z

@lee that reminds me, fusebox now works with bb and I forgot to recommend the badge...

👍 1
lread 2025-04-27T22:24:18.041119Z

Hmmm... fusebox README does not seem to be into badges, first line is "An extremely lightweight https://github.com/potetm/fusebox#what-is-a-fault-tolerance-library for Clojure(Script) and Babashka" so that's probably good enough!

👍 1
teodorlu 2025-04-28T06:24:02.525029Z

Try and see is the way to go! If you're feeling thorough, try run the library's own test suite on Babashka. Also, it has to be pure Clojure to run on Babashka. If it requires compiling java classes, no luck (unless those java classes ship with the bb binary)