There is no reason not to consider using a combination of both technologies. I have found Clojure is excellent for writing http services (for example sending/receiving JSON), but is a bit weak in comparison to say the combination of ruby and haml for building UIs quickly.
On Thu, Nov 14, 2013 at 10:22 AM, Brian Craft <craft.br...@gmail.com> wrote: > > > On Thursday, November 14, 2013 2:28:51 AM UTC-8, Sean Johnson wrote: >> >> Framework vs. ecosystem of interoperable libraries. The monolithic >> framework (see Rails and Django) is not the way web development is done in >> Clojure. Instead imagine the Clojure world as a set of legos. You get to >> build whatever you want with your legos, selecting just the blocks you >> need, in the colors and sizes you want, and they all snap together [1]. The >> benefit to this approach is simplicity. There is a LOT to know about the >> Rails and Django frameworks, as they are big, mature things that have grown >> to solve all the common web development needs, and you start your >> development with ALL of that framework. Your starting point with Clojure on >> the other hand is much simpler. It will seem too simple... at first you'll >> be wondering... where is all the "stuff"? You start with maybe just ring >> and compojure (web middleware and routing) and a few lines of your code and >> your first couple of stories are already complete. You add libraries as you >> find you need them as you build out your app over time, but at all times >> your app is as simple as it can be, and only has the "stuff" it needs. It's >> therefore much easier to understand and less a "big ball of mud". >> > > I don't believe the legos analogy is very accurate for clojure. Or, > rather, it's more of a vision than a reality. I'm unaware of any libraries > in clojure that you can piece together to give you the features of > django-south, django admin, and the forms/validation/db layers, for > example. Today, clojure web libraries are more like an auto parts store: > your chance of putting together a complete car from the inventory is slim > indeed, and your chance of doing it in a timely fashion is exactly zero. > There are about a dozen migration libraries for clojure, for example, but > none of them integrate very well with the other libraries because there > isn't much in the way of a data modeling framework for the different > components to leverage. Also, I don't think any of them provide the > simplicity of south, where your data model is declared in one place (rather > than in a sequence of sql commands that you have to interpret to deduce the > final data model), and migrations are derived from changes in the data > model. > > The putting of things together is the hard part of software engineering. This > makes a huge difference in development time. Clean algorithms are easy > in comparison. Rich talks about the importance of taking things apart, but > you can't take things apart that never fit together in the first place. > IIRC he actually suggested that one take things apart such that they fit > together again. I agree with this, but I don't think it describes much of > clojure web tooling today. > > Also, the overwhelming majority of db and web work is boilerplate. That's > what django provides: all the mindless boilerplate that is completely > uninteresting to your problem domain, but necessary to launch a web site. > With the current clojure web tools, there is no solution for most of that > boilerplate, which can easily add an order of magnitude to your development > time. > > And again, I will have to reevaluate all of this in light of caribou, > which appears to address much of it. Also, I'd be very happy to hear that > I'm wrong, if anyone has example projects to show, or libraries I've missed. > > -- > -- > 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. > -- -- 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.