Settings

Theme

Morse, an open-source interactive tool for inspecting Clojure

clojure.org

173 points by xmlblog 3 years ago · 38 comments

Reader

blatant303 3 years ago

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).

I'm looking forward to luxlang now. https://trello.com/b/VRQhvXjs/lux

  • lgrapenthin 3 years ago

    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.

    • blatant303 3 years ago

      > in an unsupported way

      The majority of Clojure projects use Leiningen. As a consequence, REBL/Morse do not support the majority of Clojure projects.

      • lgrapenthin 3 years ago

        I haven't seen leiningen based projects in a long time. Are you sure?

        • blatant303 3 years ago

          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).

          https://github.com/search?q=language%3Aclojure&type=reposito...

          Note: I examined one project per author.

        • eigenhombre 3 years ago

          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.

  • uxcolumbo 3 years ago

    The Trello link didn’t really tell me what Lux is.

    Is it this one? https://luxlang.github.io/lux/

    So it got inspired by Haskell, clojure etc. and is early dev… not sure what the cadence is or how big the community is.

    What benefits does this project provide vs the established more battle tested projects, like clojure?

dimitar 3 years ago

Screenshot here: https://raw.githubusercontent.com/nubank/morse/main/screensh...

erichocean 3 years ago

I've been really enjoying using Clojure with Clerk: https://github.com/nextjournal/clerk

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.

Demo here: https://www.youtube.com/watch?v=3bs3QX92kYA

clusterhacks 3 years ago

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?

  • fogus 3 years ago

    > Clojure REPL-based dev is better for me personally

    me too! Morse is complementary to your normal REPL-based workflow. it is designed to not get in the way of that.

    • slifin 3 years ago

      Is it fair to say a user of rebl isn't going to notice much difference between morse and rebl?

      But replicant seems important overall for the ecosystem and probably worth highlighting?

      • fogus 3 years ago

        REBL wanted to be your REPL but Morse uses the REPL that it's hosted in or remotely connected to.

  • phyrex 3 years ago

    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

  • bmillare 3 years ago

    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.

  • hcarvalhoalves 3 years ago

    Back in the day, I used the Cursive plugin + IntelliJ integrated debugger to inspect complicated data structures. This seems like a natural evolution.

geokon 3 years ago

I'm glad the MATLAB interface isn't dead haha

This this looks awfully similar to Reveal - though Reveal seems to be more composable and modular

https://github.com/vlaaad/reveal/

beanjuiceII 3 years ago

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!

beeskneecaps 3 years ago

    -... .- -.. -. .- —- .
Hammershaft 3 years ago

Nice work, I had a similiar idea a month ago, if I commited to the project I would have named it Explojure.

I'll give this a whirl tonight!

chankstein38 3 years ago

No. Morse is a long-established communication protocol for letters. This tool is just something named poorly.

giancarlostoro 3 years ago

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.

And because someone has to...

"Can I look at your Morse code?"

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection