I wasted several hours trying to make REBL work from a Leiningen project. Couldn't manage to have it connect to my REPL and show me the forms I'd get there. Gave up even though I managed to overcome the boggus dependencies.
I'm fed up with Clojure/script and the core dev team. The language came out without a build system, so Technomancy invented Leiningen, the build system, and eventually, something like 10 years later, the dev team released Deps: you still need to remember painfully long commands to run your project (and as a consequence store them in some textfile because eventually your teammates will ask you: can you send me the command to run the project/tests/whatever ?). Clojurescript is just a hideous mess and having to sprinkle countless reader conditionnals because of the atrocious clojurescript specific ':require-macros' is a huge letdown and makes writing universal portable code that can run both in the jvm and the browser a painful and sad experience. And it's almost impossible to suggest improvements to the language (even tiny ones) because the dev team is just smug. They'll turn down your idea and implement it anyway when they feel they need it (I've had 2 suggestions turned down then integrated anyway – I'm the one who pointed out Ruby manages terminal map arguments just fine, whether it's a literal or "variadic" map).
This rant has hardly anything to do with the linked announcement, except that it starts with (paraphrasing) 'I once tried using REBL in an unsupported way and gave up after some hours'
The criticisms have been adressed or discussed in many other contexts already, which is also why I won't engage in such discussions here.
Go look for recent Clojure projects on github It's roughly half leiningen (counted 5) half deps (counted 5) with the occasional outliers using "npx shadow-cljs" or other unknown build methods (counted 2).
We specifically preferred Leiningen for all new projects at my last job because of a number of plugins we still used that were unsupported by Deps. This was a year ago, so that may have changed since I left.
I still find Lein a little easier to use, and use it for personal projects, but appreciate Deps's more data-driven, "simpler" approach -- and it seems faster.
there are so many lessons that we need to understand and leverage in our modern tooling, languages, and systems that Smalltalk and Lisp got right decades ago.
It's a bit like a Jupyter notebook, but you get to use your own editor, you still have a normal Clojure REPL, it's stored in git like "normal" code, etc.
For exploratory, information processing type work, it's pretty great.
Are Clojure dev teams outside of Nubank currently using REBL excited about this?
As a small project Clojure dev (and admittedly a couple years out of daily Clojure use), these types of projects are hard for me to place in a day-to-day work context. The doc says that Morse is one tool that can "amplify the power of the programmer during interactive development".
I totally feel like Clojure REPL-based dev is better for me personally - the interactive feedback feels so natural and functional programming matches so well my preferred dev process. But it is more difficult for me to understand where this type of tooling fits in dev workflow. Is Morse an incremental improvement? Does it make more sense in significant Clojure dev shops with many programmers vs just me sitting around with an Emacs repl going?
If it’s anything like REBL (and it looks like it) it’s complimentary to a repl. Think it it as a visual data browser, which is something that a repl isn’t good for
for me, (just started using it), at least 1 good case is traversing deeply nested maps without going crazy. Even when looking at nested structures from other langs, easy enough to write a converter and then use this to inspect. Also if the datatypes are special, you can have it expand in other ways like links to browser, or other custom view types. That alone seems pretty useful. You can make GUI like behavior with just adding some metadata.
Thank you clojure team and nubank for making this open-source!(really excited to check this out). Also off topic but I did not realize they recently made datomic free, another great contribution!
This sounds awful to google for, I guess if you do "Clojure Morse" it might work. The other nitpick is, if you're ever introducing a new language, regardless of context, throw some code samples, like a simple applicable "hello world" at a minimum.
> if you're ever introducing a new language, regardless of context, throw some code samples
This is not a new language, it's a tool for Clojure.
I really appreciate the contributions that Nubank is making (after making Datomic free, https://blog.datomic.com/2023/04/datomic-is-free.html). My only nitpick this time is that I would have liked some screenshots/screencasts of the this new tool in action.
You could have just read the article, it explains very clearly what it is about. Or checked the github page linked in the article that provides more information and screenshots.
I'm fed up with Clojure/script and the core dev team. The language came out without a build system, so Technomancy invented Leiningen, the build system, and eventually, something like 10 years later, the dev team released Deps: you still need to remember painfully long commands to run your project (and as a consequence store them in some textfile because eventually your teammates will ask you: can you send me the command to run the project/tests/whatever ?). Clojurescript is just a hideous mess and having to sprinkle countless reader conditionnals because of the atrocious clojurescript specific ':require-macros' is a huge letdown and makes writing universal portable code that can run both in the jvm and the browser a painful and sad experience. And it's almost impossible to suggest improvements to the language (even tiny ones) because the dev team is just smug. They'll turn down your idea and implement it anyway when they feel they need it (I've had 2 suggestions turned down then integrated anyway – I'm the one who pointed out Ruby manages terminal map arguments just fine, whether it's a literal or "variadic" map).
I'm looking forward to luxlang now. https://trello.com/b/VRQhvXjs/lux