On Meteor and Clojure

Hi everyone!

I’ve discovered Clojure a few months ago and I must say that I’m really hooked on this programming language. I can’t seem to just leave it on the backburner and get back to business with some other language. However, I still have real work to do for the small business I’m part of and I’m not yet convinced about going all-in with Clojure.

I won’t lie to you… there’s someone else! :hushed:

We’re getting started producing Web based applications for manufacturing businesses and we’re still exploring what would be the tools of choice for the future. So far, we’ve been using Meteor JS as our main development platform for a year or so. We’ve been able to make apps up-and-running quite easily and relatively fast considering our entry level experience in Web development.

My reason is telling me to go with what works (Meteor) and get insanely good at it… but I can’t seem to let go of Clojure. I know the reasons why I should go with Clojure (immutability, FP all the way, easy and predictable syntax, JVM deployment, etc.) and I can compare them to those for Meteor (massive NPM ecosystem, seamless client-server integration, authentification built-in, mobile apps, etc.). I do feel that the learning curve for Clojure is still steep, even though I’ve read tons about and experimented a bit with it… but Rich Hickey is pretty convincing! :yum:

So here are my questions:

  1. Has anyone here used Meteor and decided to go with Clojure instead. If so, why?
  2. What kind of stack would I need to get close to Meteor’s capabilities?

I know that even if I ever choose to stick to Meteor, I’ll try to learn Clojure on the side.
Can you convince me to do the other way around? :upside_down_face:


@davidsavoie1 For me it’s fulcro by fulcrologic

Check out the new videos: Fulcro 2.0 Basics Part 1 – Getting Started - YouTube

Haven’t used meteor. But with fulcro you get a lot of things, for free because of the way it’s designed. For meteor like think the fact that the db is normalized makes life a lot easier.

Might also like this article:

untangled = old version of “fulcro”, it was renamed to fulcro
om next = fulcro 2.0 is a fork of om-next. Builds on the om-next concepts, but makes some really smart decisions regarding the architecture. Also has great docs, tutorials & really active community on #fulcro slack channel.

Thanks for this information, I really appreciate the input! I’ve read through the getting started documentation (didn’t watch the videos yet). It seems interesting and I might give it a shot. I do find the learning curve pretty steep still, though…

1 Like

Yep, it’s actually a ridiculously simple flow once you get it a bit. But it takes a bit of learning & unlearning.

For me fulcro seems the same as with clojure, a steep learning curve at first but then it’s just really simple since everything is so well thought out and consistent.

Rich mentioned in a presentation something along the lines of “is it a marathon or a sprint ?”.

If it’s a sprint I think js & meteor.js are the way to go. For marathons clojurescript & stuff like fulcro.

In 1 year more or less you will be in the same place. Takes a bit more with clojure but at the end of that period:

with clojure:
Solid code base that you can build upon, refactor quickly when requirements change… Basically as time goes by you should move a lot faster.

with js and meteor like stuff:
Get really fast to a point, then development moves really slowly & bug prone. You reach pretty soon the stage where you need a big refactor or double your team just to get something out and meet costumer demand (big risk of overselling and not being able to deliver).

With clojure & fulcro built a decently sized SPA for a client (only in free time at night, python & js at work). First time in a lot of years that I take a 2 week break then in 5 minutes I’m productive and continuing to build/improve where I left off. Fulcro plays a big part here since it reduces a ton of complexity UI & server.

It’s just crazy since I’m new to clojure and the code I wrote is just a lot better than what I could have written in python & js, and I’ve been working in those languages for 6 years+ full time.

1 Like