On Thursday, December 26, 2013 at 5:06 AM, Massimiliano Tomassoli wrote:
Hi,
I'm not sure if Clojure is the right language for me. I'd like to use Clojure mainly for web development but I don't know if it's already mature enough to be productive. For instance, Scala has Play, Groovy has Grails, etc... If I'm not wrong, Clojure doesn't have a well-established framework for web development. I'm intrigued by Clojure because I like functional programming, but I need to be productive and, alas, I don't have time to learn Clojure just for my pleasure.
--
--
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/groups/opt_out.
Hi,
I'm not sure if Clojure is the right language for me. I'd like to use Clojure mainly for web development but I don't know if it's already mature enough to be productive. For instance, Scala has Play, Groovy has Grails, etc... If I'm not wrong, Clojure doesn't have a well-established framework for web development. I'm intrigued by Clojure because I like functional programming, but I need to be productive and, alas, I don't have time to learn Clojure just for my pleasure.
--
What sort of web development were you planning to do?
On Thursday, December 26, 2013 at 12:26 AM, tao wrote:
Why so many frameworks? It's difficult to decide which one to use and you'll find fewer people that use the same framework and can answer your questions.
--
Thank you, Malcolm. I'm completely new to LISP and its dialects and I'm a little bit worried about the absence of support for OOP in Clojure. How do you decompose large systems in Clojure?
It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures.
On 26 December 2013 16:32, Massimiliano Tomassoli <kiuh...@gmail.com> wrote:
Thank you, Malcolm. I'm completely new to LISP and its dialects and I'm a little bit worried about the absence of support for OOP in Clojure. How do you decompose large systems in Clojure?You write functions. To quote Alan J. Perlis:It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures.
IMO, OOP just makes it harder to build modular systems, because OOP involves a lot of implicit connections between components. Clojure, and other functional languages, tend to emphasise isolation more.
--
Thank you, Malcolm. I'm completely new to LISP and its dialects and I'm a little bit worried about the absence of support for OOP in Clojure. How do you decompose large systems in Clojure?
exactly which part of OOP is missing in clojure that you would like to use?if you took my java code and ported it to clojure, the main difference would be (a b) instead of b.a , but the main design would be similar
--
Why implicit? Objects communicate through well-defined channels. OOP can certainly be misused but it served me well for over 20 years (C++/C#). And Scala proves that FP and OOP are orthogonal paradigms. I can't see how the lack of OOP is a good thing for Clojure, honestly. I'm willing to give up mutability because I never programmed that way and I believe it can be a good thing (after I get used to it), but giving up OOP means going back to something I already know and I don't like.
Now you could create un mutable
objects but then why bother
creating classes with hidden
behaviours if there is no hidden
state ?
On 26 Dec 2013 21:04, "Softaddicts" <lprefo...@softaddicts.ca> wrote:
>
> a) encapsulation of unmutable state ? What for ?
> b) inheritance ? see a)
> c) polymorphism ? Multimethods (which are more flexible) or protocols
>
> Nice words but not much else.
>
> Comparing C versus C++ is fair but this comparison does not relate at all to
> Clojure, it's like answering "blue" to the question
> "which even number sits between 1 and 3 ?"
>
> I am still waiting for an answer to my previous post btwy...
Let's be nice. We're supposed to have a welcoming community, not a combative one :)
- James
--
"If I were to implement something (complex enough) in C and C++ the differences between my implementations would be far from superficial."
Those are both inexpressive in different ways. In my opinion java is closer to lisp than C++, given garbage collection, closures (even faked by objects), reflection (code-as-data), classloading (eval).
Ok I'll drop the subject. Still cannot understand why people cannot
try something new w/o sticking to the stuff they know already until they are
totally immersed in the new thing. And by that I mean use the new thing as
it was intended.
Then you can generate useful conclusions and get some benefits from
this learning process.
a) encapsulation of unmutable state ? What for ?
b) inheritance ? see a)
c) polymorphism ? Multimethods (which are more flexible) or protocols
Nice words but not much else.
Comparing C versus C++ is fair but this comparison does not relate at all to
Clojure, it's like answering "blue" to the question
"which even number sits between 1 and 3 ?"
I am still waiting for an answer to my previous post btwy...
--
On Thu, Dec 26, 2013 at 8:32 AM, Massimiliano Tomassoli
> How do you decompose large systems in Clojure?
I'm curious as to why you think only OOP allows you to decompose large
systems? Between namespaces, protocols, multimethods, ad hoc
hierarchies, and higher order functions, Clojure has a lot of tools
for organizing code...
--
--
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/zwhpqptqV1A/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
I've seen Clojure in action and I know it's extremely concise and expressive. What I wanted to know is how it copes with complexity when you develop complex systems.
I'm not sure why you are less trusting of their
real world experiences than what your professors told you about
(theoretical) OOP...
http://www.paulgraham.com/reesoo.html
Clojure supports some of the constructs that people typically relate to OOP.
Decomposing large systems: How do you decompose large systems with OOP? By using classes and objects? I don't believe that classes and objects tell you much about how to structure systems (comprised of multiple subsystems). It tells you more about how to view the software you are writing at a small scale, and it tells you how to build a mental image of your programs.
In any case, you can use established principles in Clojure programming that transcends language paradigms, e.g., hiding implementation details, creating well-defined interfaces and data structures, separating concerns (making things simple, as they say in the Clojure community).
If you are hoping to find a feature set in Clojure that matches what you are already familiar with, you may end up disappointed. Is Clojure the right language for you? It probably depends mostly on personal taste and willingness to change perspective.
Best regards,
Patrick
On Fri, Dec 27, 2013 at 12:24 PM, Massimiliano Tomassoli
> So I was under the impression that you were criticizing something you didn't
> fully understand.
Perhaps you've been convinced otherwise now? I feel that I understand
OOP pretty well after two decades of using several OOP languages to
deliver production systems - and helping to design parts of C++, and
building a C++ compiler :)
What are some flaws that you think Clojure has? : )
Given your goals of evaluating the language quickly, not having a lot of free time to devote to it, and having to get productive fast in a web environment,It's concise, close to Java OO, and yet have functional programming features and metaprogramming facilities.
I must admit I don't like its syntax (or absence of it), but I hope to get used to it.