> The best thing we can do for Clojure web development right now is
> start developing web applications in Clojure, find the pieces that are
> missing, and fill them in.

This is the best advise I have heard in a while. We need to just start
doing it. If something that we need is missing then there is a great
opportunity for you to contribute. If you try to use a library and
find a problem, then either fix it or let the author know about the
problem. As the author of Sandbar, I wasn't even aware of with-keyword-
params but because Stuart and Aaron ran into this problem, I was made
aware of it and happily fixed it. New libraries tend to solve the
exact problems of the author so if you can use something in a
different environment and then provide feedback, you are performing a
great service.

> Clojure is a very different language from
> Ruby, and we will have to grow our own best practices.

Finding our own best practices is the big task ahead of us. The
flexibility of Compojure and Clojure can lead to vastly different ways
of doing things. I think this is a point where Relevance and Clojure/
core can show some real leadership. They will be doing a lot more
Clojure projects than the average developer over the coming years and
they have some of the top Clojure people. We will be able to learn a
lot from their experience.

> I can't see a way things like Django style user management or admin screens
> can be done by libraries.
> Frameworks are also very good for rapid prototyping. You usually pay
> for such power with inflexibility but Rails and Django seem to hit a
> sweet spot where you can develop a website fast and still run a
> business on them.

I think that this can be done in libraries. It will not be easy but it
will be much easier that doing it in Python or Ruby and will come at
less of a cost. Why? Because, if you are doing things right in
Clojure, your data is not hidden away in Objects behind mini-
languages. This makes it much easier to come up with generic solutions
to problems. For example, in 90% of my applications I need the same
exact user management component. I have created a way to simply add
this component to my application by adding a set of parametrized
routes. This gives me a paged table that can be filtered and sorted as
well as forms for adding, editing and deleting. All I need to
implement is a set of functions that define how to work with the data.
I will release this at some point but it still needs a little work to
be generally useful.

Final thought: As we move forward I think we need to be careful about
wanting a framework. We do need to have a common base that we can all
work from, which I believe we have in Ring/Compojure, but we don't
need to have something like Rails. A framework tries to make
everything easy. I believe this is folly. After using a framework for
too long, you start to forget about all the parts that the framework
hides from you and this diminishes your ability to solve problems in
the best possible way. When starting to solve a new problem, I want to
start thinking at the lowest level that I am willing to work, then add
libraries for the things that I want to make easy. We need to have a
common base, best practices and good libraries.

Brenton

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

Reply via email to