What pain-points of Leiningen and Compojure does this framework aim to solve?
I'm sure its an excellent framework, but there way too much for me to consider using it right now. My concerns:
How difficult would it be to switch out Datomic for PostgreSQL?
What if I don't want ClojureScript at this moment?
What happens if I want to switch X with Z or drop ABC?
How hard will it be to minimize and erase all the things I don't want?
Why are there so many extra words needed for the routing templates?
I've always felt Clojure would get a boost from a Rails-like framework, but I'm concerned that a large, opinionated framework will break the very promise of Clojure: flexibility and easy DSL creation. Once we are faced with something that needs to be reverse-engineered or broken, then this promise is ruined.
I'm all for new frameworks and ideas, but its a little funny to think that Noir was dropped, in part, for being too large and complicated.
Despite my "not-for-me" criticisms, I do hope that you have some nice success in this framework and it attracts people to Clojure.
I was at Clojure/west today where Pedestal was unveiled. Here are some answers that I picked up:
- Pedestal doesn't deal with the DB. I just grepped for datomic on the codebase and found nothing. Relevance is one half of Datomic so it's not surprising they've used it in their example docs.
- The idea is to use clojure across the entire stack. As a clojure developer, this is fantastic. It also uses EDN as it's wire format.
- I'm not sure how far the composability goes but I get the impression that it's one of their design goals.
- The routing syntax looks pretty simple to me.
I don't get the opinion that this is Rails for Clojure. It's dealing mainly with asynchronous real-time client server communication with some great client additions. It doesn't enforce any kind of DB integration such as DB migrations which have always been one of Rail's killer features to me.
> What pain-points of Leiningen and Compojure does this framework aim to solve?
There are no problems with Leiningen solved. It's based on it like other Clojure libs with project templates etc.
With Compojure it's another story, it only gives you a handler function. Pedestal makes a routing table available, enabling reverse routing. The route definition is data based. It's less repetitive to define routes.
> I'm sure its an excellent framework, but there way too much for me to consider using it right now. My concerns:
How difficult would it be to switch out Datomic for PostgreSQL?
Not difficult at all? Have you looked at the datomic tutorial? It does nothing besides setting up a connection and querying the database. What dbs do not support that?
>What if I don't want ClojureScript at this moment?
What happens if I want to switch X with Z or drop ABC?
How hard will it be to minimize and erase all the things I don't want?
Well, you go through and pick the libraries you want to use?
> Why are there so many extra words needed for the routing templates?
It's a comprehensive description of all aspects of the flexible routing dsv, including the programatic inteface to define routes at runtime.
> I've always felt Clojure would get a boost from a Rails-like framework, but I'm concerned that a large, opinionated framework will break the very promise of Clojure: flexibility and easy DSL creation. Once we are faced with something that needs to be reverse-engineered or broken, then this promise is ruined.
It's not rails. We've all seen where that got.
> I'm all for new frameworks and ideas, but its a little funny to think that Noir was dropped, in part, for being too large and complicated.
It's a set of libraries, not a framework.
Also, it doesn't add state for everything everywhere. Instead it takes the current concept of Clojure web apps and takes it to the next level.
In Compojure you define lots of routes, mostly calling separate handling functions, only passing out the routes parameters. That what pedestals routing does by default. That's just one example of many.
"How difficult would it be to switch out Datomic for PostgreSQL?"
Seen that Datomic can be backed by many different types of storage, including SQL DBs, this sounds like a very weird question... I mean: if you want SQL, just use SQL as the backing store for Datomic.
The benefits of Datomic are too huge to go to the old crappy way of designing DBs...
I'm sure its an excellent framework, but there way too much for me to consider using it right now. My concerns:
How difficult would it be to switch out Datomic for PostgreSQL?
What if I don't want ClojureScript at this moment?
What happens if I want to switch X with Z or drop ABC?
How hard will it be to minimize and erase all the things I don't want?
Why are there so many extra words needed for the routing templates?
I've always felt Clojure would get a boost from a Rails-like framework, but I'm concerned that a large, opinionated framework will break the very promise of Clojure: flexibility and easy DSL creation. Once we are faced with something that needs to be reverse-engineered or broken, then this promise is ruined.
I'm all for new frameworks and ideas, but its a little funny to think that Noir was dropped, in part, for being too large and complicated.
Despite my "not-for-me" criticisms, I do hope that you have some nice success in this framework and it attracts people to Clojure.