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.


Reply via email to