Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Andrey Antukh
Hi

2014-04-29 10:22 GMT+02:00 Bernhard Mäder :

> Hey guys,
>
> I need your help in choosing a web stack for a medium sized website
> project, which is going to take the better half of my time for the next
> year. I really want to use clojure, because of various reasons, but have
> never done web development with it before. Frankly, it’s quite hard to feel
> confident about such a decision, as there are so many libraries to choose
> from, many of which seem to be abandoned or with very little (public)
> momentum.
>
> These are the notable features I need on the server side:
>
>- Internationalization of content, with multilingual URLs
>- Authentication through username / password and through xing (oauth)
>and linkedin (oath2).
>- Image and PDF upload
>- A small (and pretty basic) CMS
>- Beautiful reports renderings
>- A basic admin backend
>
> First, I was thinking along the compojure/hiccup/friend stack. I like it
> for the simplicity, the flexibility and the abundance of documentation on
> the web. Unfortunately, I see myself reinventing the wheel a few times with
> this approach…
>

> Then there is caribou. I like that it’s very well documented and that it’s
> already being used in production. It appears to be the most feature
> complete solution for the time being. It handles images, has backend
> scaffolding and i18n. OTOH, authentication isn’t really built-in (other
> than basic auth, if I got that right) and, it’s very new, so adoption seems
> to be still low. Also, it is developed in-house, so there’s the risk of
> abandonment, too.
>

> Finally, I took a look at pedestal (services). I like its overall design
> and I especially welcome the URL generator, which is going to be a boon in
> larger projects. But all in all, it seems to be little more than a
> (powerful) routing engine (again, maybe I’m missing something) and lacks
> internationalization as well as authentication (although I read that the
> snapshot version of friend will work with it). Also, it is developed
> in-house and not declared production-ready yet.
>
> I don’t feel very comfortable with either choice and would appreciate the
> thoughts of seasoned clojure web devs on that topic. Please talk me into
> it! I don’t want to end up with scala and play… :-)
>

For authentication and authorization I'm using buddy (
http://niwibe.github.io/buddy/) what has slightly different approach that
friend,
Liberator for backend code and angularjs for frontend. It works very well
for my purposes.

For your purposes the best choice is my opinion is caribou with some
external lib for authentication like buddy or friend.
Sorry for not being much help.


> Thanks for your thought!
> Bernhard
>


Greetings.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be 
https://github.com/niwibe

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Timothy Baldridge
One of the biggest value propositions of Pedestal has always been that it's
the only Clojure web server library to support end-to-end async operations.
You can do things like have a handler return a core.async channel, or
pause/resume the entire web stack multiple times during a single request.
Other libraries may support async or streaming responses, but none allow
that level of control, so if you need that feature Pedestal is there.

Pedestal's routing stack is also data based, that's a pretty big deal if
you're used to debugging nested ring handlers that are instances of
functions. Data over code...that's the way I like it.

But yes, as a whole the entire Clojure ecosystem is built around small
composable libraries instead of a monolithic framework. Pick and choose and
build your own stack.

Timothy


On Tue, Apr 29, 2014 at 2:22 AM, Bernhard Mäder
wrote:

> Hey guys,
>
> I need your help in choosing a web stack for a medium sized website
> project, which is going to take the better half of my time for the next
> year. I really want to use clojure, because of various reasons, but have
> never done web development with it before. Frankly, it’s quite hard to feel
> confident about such a decision, as there are so many libraries to choose
> from, many of which seem to be abandoned or with very little (public)
> momentum.
>
> These are the notable features I need on the server side:
>
>- Internationalization of content, with multilingual URLs
>- Authentication through username / password and through xing (oauth)
>and linkedin (oath2).
>- Image and PDF upload
>- A small (and pretty basic) CMS
>- Beautiful reports renderings
>- A basic admin backend
>
> First, I was thinking along the compojure/hiccup/friend stack. I like it
> for the simplicity, the flexibility and the abundance of documentation on
> the web. Unfortunately, I see myself reinventing the wheel a few times with
> this approach…
>
> Then there is caribou. I like that it’s very well documented and that it’s
> already being used in production. It appears to be the most feature
> complete solution for the time being. It handles images, has backend
> scaffolding and i18n. OTOH, authentication isn’t really built-in (other
> than basic auth, if I got that right) and, it’s very new, so adoption seems
> to be still low. Also, it is developed in-house, so there’s the risk of
> abandonment, too.
>
> Finally, I took a look at pedestal (services). I like its overall design
> and I especially welcome the URL generator, which is going to be a boon in
> larger projects. But all in all, it seems to be little more than a
> (powerful) routing engine (again, maybe I’m missing something) and lacks
> internationalization as well as authentication (although I read that the
> snapshot version of friend will work with it). Also, it is developed
> in-house and not declared production-ready yet.
>
> I don’t feel very comfortable with either choice and would appreciate the
> thoughts of seasoned clojure web devs on that topic. Please talk me into
> it! I don’t want to end up with scala and play… :-)
>
> Thanks for your thought!
> Bernhard
>
>  --
> 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/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Bernhard Mäder
On Tuesday, April 29, 2014 3:25:45 PM UTC+2, Andrey Antukh wrote:
>
> For authentication and authorization I'm using buddy (
> http://niwibe.github.io/buddy/) what has slightly different approach that 
> friend,
> Liberator for backend code and angularjs for frontend. It works very well 
> for my purposes. 
>
> For your purposes the best choice is my opinion is caribou with some 
> external lib for authentication like buddy or friend.
> Sorry for not being much help.
>
>
Ah nice, I didn't know about buddy. I will take a good look at it. Thanks 
for pointing it out!

Bernhard

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Bernhard Mäder

On Tuesday, April 29, 2014 3:29:26 PM UTC+2, tbc++ wrote:
>
> One of the biggest value propositions of Pedestal has always been that 
> it's the only Clojure web server library to support end-to-end async 
> operations. You can do things like have a handler return a core.async 
> channel, or pause/resume the entire web stack multiple times during a 
> single request. Other libraries may support async or streaming responses, 
> but none allow that level of control, so if you need that feature Pedestal 
> is there. 
>

Yes, it's a really cool feature. Unfortunately, I'm not going to need it! 
:-)
 

>   
> Pedestal's routing stack is also data based, that's a pretty big deal if 
> you're used to debugging nested ring handlers that are instances of 
> functions. Data over code...that's the way I like it. 
>

Yeah, that's what I thought as well. I also like that aproach much better.
 

>
> But yes, as a whole the entire Clojure ecosystem is built around small 
> composable libraries instead of a monolithic framework. Pick and choose and 
> build your own stack.
>
>
That's what I'm trying to right now Did you use pedestal in a 
productive environment?

Thanks,
Bernhard 

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Mike Haney
Pedestal was developed by Cognitect and I would assume they use it on many of 
their consulting projects.  Since future support appears be a major concern for 
you (rightly so), Pedestal probably fulfills that requirement better than 
anything else out there right now.  Even if you don't need all the features it 
offers, it's worth considering building your server-side stack around it for 
that reason alone.

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-29 Thread Daniel Jomphe
Not to make it more complicated for you, but have you looked at Hoplon too?

http://hoplon.io/

I was *very* impressed by the author's presentations, the later of which 
is https://www.youtube.com/watch?v=wVXjExRiFy0
And podcast about 
it: http://thinkrelevance.com/blog/2014/03/18/alan-dipert-cognicast-episode-052

It's optimized around single-page web apps.

I'm not saying that's what I'd necessarily use for your product; you may 
want to use all of it, or parts of it (it's modular) along something else.

If this kind of approach isn't what you'd use on your front-end, make sure 
you look at Om, Reagent and Quiescent for that.

And obviously, I'm forgetting a few other batteries-included frameworks 
I've seen (because there are a few, apart from Caribou).

On Tuesday, April 29, 2014 4:22:58 AM UTC-4, Bernhard Mäder wrote:
>
> Hey guys,
>
> I need your help in choosing a web stack for a medium sized website 
> project, which is going to take the better half of my time for the next 
> year. I really want to use clojure, because of various reasons, but have 
> never done web development with it before. Frankly, it’s quite hard to feel 
> confident about such a decision, as there are so many libraries to choose 
> from, many of which seem to be abandoned or with very little (public) 
> momentum.
>
> These are the notable features I need on the server side:
>
>- Internationalization of content, with multilingual URLs
>- Authentication through username / password and through xing (oauth) 
>and linkedin (oath2).
>- Image and PDF upload
>- A small (and pretty basic) CMS
>- Beautiful reports renderings
>- A basic admin backend 
>
> First, I was thinking along the compojure/hiccup/friend stack. I like it 
> for the simplicity, the flexibility and the abundance of documentation on 
> the web. Unfortunately, I see myself reinventing the wheel a few times with 
> this approach…
>
> Then there is caribou. I like that it’s very well documented and that it’s 
> already being used in production. It appears to be the most feature 
> complete solution for the time being. It handles images, has backend 
> scaffolding and i18n. OTOH, authentication isn’t really built-in (other 
> than basic auth, if I got that right) and, it’s very new, so adoption seems 
> to be still low. Also, it is developed in-house, so there’s the risk of 
> abandonment, too.
>
> Finally, I took a look at pedestal (services). I like its overall design 
> and I especially welcome the URL generator, which is going to be a boon in 
> larger projects. But all in all, it seems to be little more than a 
> (powerful) routing engine (again, maybe I’m missing something) and lacks 
> internationalization as well as authentication (although I read that the 
> snapshot version of friend will work with it). Also, it is developed 
> in-house and not declared production-ready yet. 
>
> I don’t feel very comfortable with either choice and would appreciate the 
> thoughts of seasoned clojure web devs on that topic. Please talk me into 
> it! I don’t want to end up with scala and play… :-)
>
> Thanks for your thought!
> Bernhard
>
>

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-30 Thread Bernhard Mäder
Yes, one would hope so. Then again, they've been using Pedestal-App for 
their projects as well... :-)

Anyway, pedestal seems the way to go. After all, I could also see myself 
replacing it with the latest and greatest routing library without much 
hassle, should it once be deprecated.

On Tuesday, April 29, 2014 5:35:25 PM UTC+2, Mike Haney wrote:
>
> Pedestal was developed by Cognitect and I would assume they use it on many 
> of their consulting projects.  Since future support appears be a major 
> concern for you (rightly so), Pedestal probably fulfills that requirement 
> better than anything else out there right now.  Even if you don't need all 
> the features it offers, it's worth considering building your server-side 
> stack around it for that reason alone.

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-30 Thread Bernhard Mäder
 

Hoplon looks really interesting. It’s just that I don’t want to build a 
single page application, so it’s kind of moot to consider it, I guess.

I was planning to have a lot of server rendered pages in the app, not least 
to make the content accessible for search engine bots. For the dynamic UI 
parts I will definitely use React.js or some of the clojure “bindings” for 
it (Om, Reagent?). We'll see.

Guys, thank you all for your comments! 

On Tuesday, April 29, 2014 6:40:41 PM UTC+2, Daniel Jomphe wrote:
>
> Not to make it more complicated for you, but have you looked at Hoplon too?
>
> http://hoplon.io/
>
> I was *very* impressed by the author's presentations, the later of which 
> is https://www.youtube.com/watch?v=wVXjExRiFy0
> And podcast about it: 
> http://thinkrelevance.com/blog/2014/03/18/alan-dipert-cognicast-episode-052
>
> It's optimized around single-page web apps.
>
> I'm not saying that's what I'd necessarily use for your product; you may 
> want to use all of it, or parts of it (it's modular) along something else.
>
> If this kind of approach isn't what you'd use on your front-end, make sure 
> you look at Om, Reagent and Quiescent for that.
>
> And obviously, I'm forgetting a few other batteries-included frameworks 
> I've seen (because there are a few, apart from Caribou).
>
> On Tuesday, April 29, 2014 4:22:58 AM UTC-4, Bernhard Mäder wrote:
>>
>> Hey guys,
>>
>> I need your help in choosing a web stack for a medium sized website 
>> project, which is going to take the better half of my time for the next 
>> year. I really want to use clojure, because of various reasons, but have 
>> never done web development with it before. Frankly, it’s quite hard to feel 
>> confident about such a decision, as there are so many libraries to choose 
>> from, many of which seem to be abandoned or with very little (public) 
>> momentum.
>>
>> These are the notable features I need on the server side:
>>
>>- Internationalization of content, with multilingual URLs
>>- Authentication through username / password and through xing (oauth) 
>>and linkedin (oath2).
>>- Image and PDF upload
>>- A small (and pretty basic) CMS
>>- Beautiful reports renderings
>>- A basic admin backend 
>>
>> First, I was thinking along the compojure/hiccup/friend stack. I like it 
>> for the simplicity, the flexibility and the abundance of documentation on 
>> the web. Unfortunately, I see myself reinventing the wheel a few times with 
>> this approach…
>>
>> Then there is caribou. I like that it’s very well documented and that 
>> it’s already being used in production. It appears to be the most feature 
>> complete solution for the time being. It handles images, has backend 
>> scaffolding and i18n. OTOH, authentication isn’t really built-in (other 
>> than basic auth, if I got that right) and, it’s very new, so adoption seems 
>> to be still low. Also, it is developed in-house, so there’s the risk of 
>> abandonment, too.
>>
>> Finally, I took a look at pedestal (services). I like its overall design 
>> and I especially welcome the URL generator, which is going to be a boon in 
>> larger projects. But all in all, it seems to be little more than a 
>> (powerful) routing engine (again, maybe I’m missing something) and lacks 
>> internationalization as well as authentication (although I read that the 
>> snapshot version of friend will work with it). Also, it is developed 
>> in-house and not declared production-ready yet. 
>>
>> I don’t feel very comfortable with either choice and would appreciate the 
>> thoughts of seasoned clojure web devs on that topic. Please talk me into 
>> it! I don’t want to end up with scala and play… :-)
>>
>> Thanks for your thought!
>> Bernhard
>>
>>

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-30 Thread Daniel
Wasn't Pedestal-app placed on hiatus?  What is the current status of that?

On Tuesday, April 29, 2014 10:35:25 AM UTC-5, Mike Haney wrote:
>
> Pedestal was developed by Cognitect and I would assume they use it on many 
> of their consulting projects.  Since future support appears be a major 
> concern for you (rightly so), Pedestal probably fulfills that requirement 
> better than anything else out there right now.  Even if you don't need all 
> the features it offers, it's worth considering building your server-side 
> stack around it for that reason alone.

-- 
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/d/optout.


Re: Clojure for web project? Talk me into it!

2014-04-30 Thread Mike Haney
Pedestal-app is pretty much dead, but pedestal (service)  is alive and well, 
and that is what I was talking about. 

I know some people were upset when pedestal-app was put on hiatus, but I look 
at it a different way.  Libraries like react (and its clojurescript 
counterparts) are changing the way people think about client-side development, 
and that's starting to look like the next big evolutionary step in ui's.  
Pedestal app was very new when this firestorm hit, with very little adoption, 
so I think Cognitect made a prudent choice to suspend it rather than encourage 
people to continue down a path that could end up in obsolescence.  Sure, they 
could have pressed on and made incremental changes as the technology coalesced, 
but why go down that path when it was still early enough to scrap the library 
without affecting many users?

Pedestal-service is a different story.  It's been around longer and from what 
I've seen Cognitect hasn't wavered at all in their support for it.

-- 
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/d/optout.