Hello all! First i would like to mention that I'm very new to Clojure, and still learning the language/functional programming. Mostly I'm doing web stuff, with the usual suspects (php,ruby,python) and im usually using a framework for RAD development.
Frameworks as they are usually implemented always re-invent the wheel, eg. every framework has its own template-language/auth-system/cache-handling and the list goes on... Surprisingly the solution that I have found very good comes from PHP. As in library/package management in PHP in the old days was handled by PEAR, that really sucked big time, there has been a new way, that is quite similar to leiningen, called Composer ( http://getcomposer.org/doc/00-intro.md ). It handles package management quite nicely. The idea behind this is that frameworks in PHP is starting to use the same packages as dependencies making the framework specific components decrease. A good example of a framework using composer packages is Laravel 4 ( http://four.laravel.com ) And if you need additional packages/libraries tou just add them to your composer.json file (the same as project.clj) and run composer update (same as lein deps) from your terminal. Now to my point: Because there are many good libraries in the Clojure land, there could be a easy MVC like framework using libs that already exists, the framework could just be a skeleton binding the libraries and maybe adding some abstraction. One issue I also have (I know this is mostly because I'm so new to Clojure) is that i find library documentation in some cases very lacking. If the Clojure community had one beginner friendly with excellent documentation i think it would boost the language a great deal. Just look what happened to Ruby after the Rails framework was released. Basically the important parts would be IMO: - MVC - Routing (compojure?) - Session/cookie handling - A good and easy ORM (Korma?) - DB Migrations / seeds - Built in Auth system - Templating ( https://github.com/readwise/hbs ?) - Cache handling Just my 2 cnts.. On Friday, January 11, 2013 6:52:05 PM UTC+2, Paul Umbers wrote: > > I've been experimenting with Clojure web services recently, and posting > the work on GitHub <https://github.com/3rddog/doitnow> and my > blog<http://internistic.blogspot.ca/search/label/clojure> > . > > When putting this test app together, it occurred to me that most other > languages have a full-stack API available which makes life easier when it > comes to making decisions about which libraries/APIs/frameworks to use. It > also reduces the possibility of "impedance mismatch" between the libraries. > For Java, you can use Spring (or any one of a dozen or more other popular > frameworks), for Scala there's Typesafe, and so on. Clojure has Compojure, > Ring, several logging, validation and database libraries, and they can be > used together but they don't constitute a coordinated full stack - and that > creates issues. > > For example, the latest vesion of Compojure (1.1.3) uses Ring 1.1.5 and > not the latest version of Ring (1.1.6) which has significantly better util > functions available - but I can't use them until Compojure catches up. By > the time you add logging, validation, data access, etc the odds of a > mismatch between these libraries goes up dramatically. > > This is a concern, because these mismatches must be worked around in *my*code > and are likely to break as the libraries are upgraded in future > versions. So, I'm having to spend my time maintaining what are essentially > "patches" for third-party libraries just so that they work together. > > Now, it may not be the best decision to try to put together a true > full-stack framework from scratch, but is it worth choosing a bunch of > existing frameworks and coordinating their releases - in much the same way > as Eclipse coordinates plugin releases for major releases - so that putting > together a full-stack app becomes easier? > > Projects taking part in the "meta-project" will work together to harmonize > their functionality & APIs, and coordinate their development cycles & > releases so that the meta-framework remains consistent and easily usable. > > Is this another barrier to adoption the Clojure community can remove? Is > this even a barrier? Am I missing something? > > Thoughts? > > [Also posted to http://www.reddit.com/r/Clojure] > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.