--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why is it that Elixir, with a much smaller community and lifespan than Clojure's, has managed to put 4 times as much mindshare into its main web framework when its module output, as measured by modulecounts.com, is a tiny fraction of Clojure's?
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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 a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/tA2_IbU0unE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
On 03/05/2015 00:39, James Reeves wrote:
Luminus is a web framework. We don't have to write web frameworks at all, that's true. Neither did the Ruby community. They had Sinatra before Rails but it was Rails which brought them huge mindshare and, more importantly, plenty of developers earning a good living.
I agree that web development in Clojure can be improved, but I don't see
why it follows that we should be writing web frameworks.
All I'm saying is there's room for both approaches but the outside world, where people make a living, tends to prefer web frameworks.
You've listed contributors and commits for single repositories, but that
will clearly produce erroneous results when comparing a monolithic
project to a very modular one.
Elixir's Phoenix is as modular as Luminus so the comparison is valid. The 2 leading Rails developers behind it - Jose Valim and Chris McCord - recognised before Elixir reached 1.0 that a strong web framework was essential to gaining mindshare.
One could conclude from this that the Clojure community isn't that interested in web development but the last Clojure survey suggests otherwise.
Furthermore, I have a hunch that Clojure's poor adoption as indicated by Indeed.com maybe due to this immaturity in the web framework sphere.
Clojure is great for creating new, disruptive web models, but what's the easiest path to creating something that can be done trivially with, say, Drupal or Django?
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
Because many problems start out as things that can be solved with standard solutions and then evolve into something more elaborate. Best to start with something that can both do the easy things, and handle the more complex stuff as well.
gvim
--
From a technological standpoint, I think we're there. The things we most need are informational resources and higher-level shared resources, such as UI widgets. For example:
On 03/05/2015 05:24, Sean Corfield wrote:
> On Sat, May 2, 2015 at 8:18 PM, Mark Engelberg <mark.en...@gmail.com
> <mailto:mark.en...@gmail.com>> wrote:
>
> Clojure is great for creating new, disruptive web models, but what's
> the easiest path to creating something that can be done trivially
> with, say, Drupal or Django?
>
>
> The question tho' is why you'd want to use Clojure for something that is
> already trivially solved with free packaged software for widely used
> scripting languages where cheap, plentiful developers are falling over
> themselves to help... :)
>
> Clojure doesn't have to be the solution for every problem. It certainly
> doesn't need to be the solution for low-value problems...
Forgive me if that sounds a little elitist. What if I want to do what
Django can do but in Clojure? If Clojure is a better option there should
be something which can do more than Django. If my only choice is library
composition by definition it doesn't do what Django does well, ie. a
fully-structured setup out of the box with a predictable, best of breed
set of technologies.
There are many businesses, large and small, who will only go with a
well-established web framework with a vibrant community. Sadly,
Clojure's preference for protecting its niche means it will never be an
option for these opportunities, hence its poor showing in job listings.
Do we, as a community, want to be paid for what we do?
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Rails is omakase. A team of chefs picked out the ingredients, designed the APIs, and arranged the order of consumption on your behalf according to their idea of what would make for a tasty full-stack framework. The menu can be both personal and quirky. It isn't designed to appeal to the taste of everyone, everywhere.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi,
Reading through all the discussion I don't get which features you are actually missing. I love luminus and did a lot with it, however, for me it was missing some standard stuff, that's why I put together closp, which is just another leiningen template providing some more features out of the box.
I'd consider adding even more features if you would become more specific in terms of features.
For the rest I agree with what is mostly said here, the beauty of clojure lies in the nature of small composable building blocks and the same goes for frameworks, so, basically it's all there, one just has to put it together. And to not have to put it together by hand time and time again there are leiningen templates.
Clojure + developer's skill + existing libraries + custom code is the framework.
--
So, basically, Clojure *is* the framework? :)
--
On 03/05/2015 05:24, Sean Corfield wrote:
On Sat, May 2, 2015 at 8:18 PM, Mark Engelberg <mark.en...@gmail.com
<mailto:mark.en...@gmail.com>> wrote:
Clojure is great for creating new, disruptive web models, but what's
the easiest path to creating something that can be done trivially
with, say, Drupal or Django?
Clojure doesn't have to be the solution for every problem. It certainly
doesn't need to be the solution for low-value problems...
Forgive me if that sounds a little elitist. What if I want to do what Django can do but in Clojure? If Clojure is a better option there should be something which can do more than Django. If my only choice is library composition by definition it doesn't do what Django does well, ie. a fully-structured setup out of the box with a predictable, best of breed set of technologies.
But it isn't and the reasons why not are not in the language, but in the community itself, which contains not just the strengths but also the weaknesses of the BBM.
One of these is the inability to finish things off properly. The phrase 'throw-away design' is absolutely made for the BBM and it comes from the Lisp community. Lisp allows you to just chuck things off so easily, and it is easy to take this for granted. I saw this 10 years ago when looking for a GUI to my Lisp (Garnet had just gone West then). No problem, there were 9 different offerings. The trouble was that none of the 9 were properly documented and none were bug free. Basically each person had implemented his own solution and it worked for him so that was fine. This is a BBM attitude; it works for me and I understand it. It is also the product of not needing or wanting anybody else's help to do something."
--
--
Yes, I do program in Clojure. Exclusively at the moment as I'm currently free to work on my own startup project. I'm using Luminus and enjoy it so I didn't start this thread out of dissatisfaction with Luminus itself but more from a sense of frustration at seeing so little input coming from the community compared with other languages.
I posted some figures at the beginning of this thread where I was comparing frameworks, not components. A framework is more than the sum of it's components so I don't think comparing Ring and Compojure to Phoenix or Play is relevant. Clojure frameworks aren't the only ones built from components.
While I agree that g vim's metrics aren't terribly meaningful, the conclusion he's arriving at is an important one. I've heavily used Clojure in production for years, and there have been a number of times where having to hand assemble everything cost lots of support from other engineers. Luminus is an improvement, but doesn't always generate correct code for specific sets of options, and is tricky to extend.
Extending a little more on Herwig's previous idea, a good "Clojure framework" could be a collection of schemas, protocols and interfaces. A "ring for the whole stack".
I recently did some research into web frameworks on Github. Here's what I found
Reading through all the discussion I don't get which features you are actually missing. I love luminus and did a lot with it, however, for me it was missing some standard stuff, that's why I put together closp, which is just another leiningen template providing some more features out of the box.
I'd consider adding even more features if you would become more specific in terms of features.
I recently did some research into web frameworks on Github. Here's what
I found:
FRAMEWORK LANG CONTRIBUTORS COMMITS
Luminus Clojure 28 678
Caribou Clojure 2 275
Beego Golang 99 1522
Phoenix Elixir 124 1949
Yesod Haskell 130 3722
Laravel PHP 268 4421
Play Scala 417 6085
Symfony PHP 1130 20914
Rails Ruby 2691 51000
One could conclude from this that the Clojure community isn't that
interested in web development but the last Clojure survey suggests
otherwise. Clojure's library composition approach to everything only
goes so far with large web applications, as Aaron Bedra reminded us in
March last year: www.youtube.com/watch?v=CBL59w7fXw4 . Less manpower
means less momentum and more bugs. Furthermore, I have a hunch that
Clojure's poor adoption as indicated by Indeed.com maybe due to this
immaturity in the web framework sphere. Why is it that Elixir, with a
much smaller community and lifespan than Clojure's, has managed to put 4
times as much mindshare into its main web framework when its module
output, as measured by modulecounts.com, is a tiny fraction of Clojure's?
gvim
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
All in all this is basically the direction I want to go with closp and closp-crud. The intention is not to have a webframework, but to automatize steps that need to be done manually otherwise.
On Monday, May 4, 2015 at 4:41:02 AM UTC-4, Sven Richter wrote:All in all this is basically the direction I want to go with closp and closp-crud. The intention is not to have a webframework, but to automatize steps that need to be done manually otherwise.
One potential problem with this "web framework" as app template approach is upgrade-ability. When 2.0 of your "framework" comes out, what happens to an app generated from 1.0 that wants to benefit from the new capabilities?
It's not a showstopper to the approach. It's just something to think hard about. I've taken a couple of long lived Rails apps from Rails 1 to Rails 4 and while there have been breaking changes with each major version change (and some minor versions) in general it's pretty easy to keep up with the latest versions and there are copious docs (even whole ebooks in some cases) to walk developers through the changes.
I thought about it and all that came to my mind that there simply won't be
an upgrade path. Once you generated your code / templates / whatever you
are done and up to yourself.
Having a supported upgrade path might be
- to much for one or two persons to handle
- Incompatible to the "generate" everything approach as one would have to make sure that old code, enriched with user code (which can be anything), still works with new code in whatever feature context that might be.
I think that's a very reasonable approach to take for the app template approach to a "web framework". I just wonder if it will ever meet the original posters presumed need for a web framework for the Clojure community. I think an upgrade path is probably table stakes (for many people, not all) for a web framework that will see wide adoption these days.
I am curious, why did you upgrade your application over such a long time?
Was this a product that got added new features over many years? Or was it
more a "it's easy to do, so let's just stay up to date in case we might
need it"?
It's the latter case, a few products that started 6+ years ago that continue to grow in usage and features. I can also add that the benefits that came along with each release (Rails 2, 3 and 4) have been critical in being able to add new features and modernize the app. Building features today with the tech we had in Ruby/Rails in 2009 would be very inefficient.
Cheers,
Sean
I would like to echo the sentiment expressed by several posters in this thread, but with a slight twist. A few years back I picked up Ruby and Ruby on Rails as the language/framework to create a website with moderate complexity and functionality. I did this without any prior experience with the language of framework. What allowed me to quickly pick up both was the excellent documentation around the language and framework. For example, with the information from http://guides.rubyonrails.org and the canonical application built in https://www.railstutorial.org one can acquire the necessary knowledge to develop highly functional websites. Branching out to leverage "non-canonical" libraries/products then becomes a fairly easy exercise (MongoDB instead of MySQL, Mongoid instead of ActiveRecords, etc.). What allows that to happen is the momentum built around the Rails ecosystem via community participation and documentation.We have recently started to build our "back end" infrastructure in Clojure. Many times we have discussed the value and desire to unify our development efforts on and around Clojure. Inevitably we tally up all the functionality inherited from Ruby gems (that play nice with Rails - the Framework) that would have to be replicated in Clojure and there always shortcomings, not necessarily in the availability of libraries that perform these functions, but in the readily accessible documentation about how to best integrate them.The "composable libraries over framework" mantra is technically solid. What we're missing, in the "web development with Clojure" subset of the community, is the stewardship to create and maintain a canonical amalgamation of composable libraries and the best practices around them - a la https://railstutorial.org. This would lower the barrier of entry into the web development realm for Clojure developers. My 2+ cents.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/tA2_IbU0unE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Thanks Sean. that makes sense. I didnt want that map to be stored as one cookie because it could potentially be big... (there is a 4kb limit per cookie right?) . I will dig into it and check. If that works for me, then all i need is compojure, ring and the awesome ring-defaults middleware. No need for a monolithic framework.
On May 4, 2015 7:16 AM, "Eric MacAdie" <emac...@gmail.com> wrote:
>
> I think what Clojure needs is a default. It doesn't matter if it is a "web framework" like Rails, or "libraries strung together" like Luminus.
>
What Clojure needs is, well nothing. What the market MAY need is an entrepreneur who will produce the framework the OP craves. No takers so far. Conclusion: not a genuine unmet need. But in the long run simple economics say the Clojure approach will win. You can't make your product stand out by using the same framework everybody else uses. The inevitable trend, driven by basic economics, is toward bespoke stuff, which is where Clojure excels. My guess is that over the next 2-3 years we will see some clojure frameworks emerge but they will not be like "traditional" frameworks. They'll be infinitely and easily customizable because they wont force choices-they'll just make the easy stuff not only easy but flexible. My 2 cents.
No, it isn't. And never has this author proven that programmers with bipolar personality are programming more LISP then other languages.Many larger libraries in the Clojure community are well documented and "finished-off properly".Web frameworks have been tried and not been picked up. Users have chosen the modular compose it yourself approach. Framework authors have simply stopped maintaining what nobody wanted anyway or split them up into smaller pieces.
On Sunday, May 3, 2015 at 8:25:22 PM UTC+2, larry google groups wrote:
> The web development industry as reflected in job postings at
> Indeed.co.uk is still dominated by the likes of Rails, Django, Laravel,
> Zend, Symfony & Spring so I'm not sure how you've concluded that there's
> been a 15-year trend towards composition.That is a good point, though I would also point out that, according to Indeed.com, the use of Clojure is also growing. To me, what's important is the growth of the Clojure community, rather than the growth of some sub-community focused on a particular niche.However, I acknowledge you may have a point about the failure of any of the Clojure frameworks to take off. It's possible this is another manifestation of the Bipolar Programmer problem:"Brilliance and failure are so often mixed together and our initial reaction is it shouldn't be. But it happens and it happens a lot. Why? ...But brilliance is not enough. You need application too, because the material is harder at university. So pretty soon our man is getting B+, then Bs and then Cs for his assignments. He experiences alternating feelings of failure cutting through his usual self assurance. He can still stay up to 5.00AM and hand in his assignment before the 9.00AM deadline, but what he hands in is not so great....So BBMs love Lisp. And the stunning originality of Lisp is reflective of the creativity of the BBM; so we have a long list of ideas that originated with Lispers - garbage collection, list handling, personal computing, windowing and areas in which Lisp people were amongst the earliest pioneers. So we would think, off the cuff, that Lisp should be well established, the premiere programming language because hey - its great and we were the first guys to do this stuff.But it isn't and the reasons why not are not in the language, but in the community itself, which contains not just the strengths but also the weaknesses of the BBM.
One of these is the inability to finish things off properly. The phrase 'throw-away design' is absolutely made for the BBM and it comes from the Lisp community. Lisp allows you to just chuck things off so easily, and it is easy to take this for granted. I saw this 10 years ago when looking for a GUI to my Lisp (Garnet had just gone West then). No problem, there were 9 different offerings. The trouble was that none of the 9 were properly documented and none were bug free. Basically each person had implemented his own solution and it worked for him so that was fine. This is a BBM attitude; it works for me and I understand it. It is also the product of not needing or wanting anybody else's help to do something."
On Sunday, May 3, 2015 at 9:51:15 AM UTC-4, g vim wrote:On 03/05/2015 14:39, larry google groups wrote:
> The industry has been moving against frameworks for 15 years now. The
> peak of the monolithic framework craze was Struts, back in 2000. After
> that, people started craving something less bloated. That's why the
> whole industry was so excited when Rails emerged in 2004. Bruce Eckel
> summed up the sudden change of mood in his essay "The departure of the
> hyper-enthusiasts":
>
> http://www.artima.com/weblogs/viewpost.jsp?thread=141312
>
> But after awhile, people began to feel that even Rails was bloated,
> which lead to the emergence of micro-frameworks like Sinatra.
>
> And then, continuing with the trend, we've seen the emergence of
> eco-systems, such as Clojure, that allow the trend to go further:
> Clojure supports such high levels composition that frameworks are no
> longer needed. And this is the direction the industry has been moving
> for the last 15 years. Clojure is simply out in front. Most languages
> don't allow this level of composition.
>
The web development industry as reflected in job postings at
Indeed.co.uk is still dominated by the likes of Rails, Django, Laravel,
Zend, Symfony & Spring so I'm not sure how you've concluded that there's
been a 15-year trend towards composition. Ruby and Python have had
lightweight composable alternatives for many years but Rails and Django
still dominate. I'm not against the composition at all. I just think we
need more structured alternatives that we can at least brand and market
as well as teach to Clojure beginners.
gvim