> 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