One of the best and instructive post I have read in years. Thanks Timothy

Mimmo

> Il giorno 23 lug 2016, alle ore 22:26, Timothy Baldridge 
> <tbaldri...@gmail.com> ha scritto:
> 
> Peter, 
> 
> I share your frustration, or at least I did at one point. If you dig back 
> about 6 years in this mailing list you will find an epic rant by me about 
> OpenGL and Clojure. Looking back on what I thought at that time, I'll mention 
> as perhaps they can help you not make the mistakes I did. 
> 
> 1) Be as specific as possible. If I say "clojure sucks because I can get a 
> nil anywhere", isn't that helpful to anyone. But if I say "here's some code 
> that stumped me, what am I doing wrong, how can I get better", people can 
> chime in with a direct example, and a direct solution.
> 
> 2) It's hard, but stick with one problem per email thread.  Too often I see 
> lists (and yes I've written them myself) that go on a tirade of "everything 
> that's wrong with X". The problem is that mailing lists are very poor mediums 
> for having multithreaded conversations. So some questions will get lost or 
> emphasized, to the determent of other questions. So to use your email as an 
> example, it would be awesome to see a email thread about "defrecord 
> reloading", one about "empty? and ints" and another about datomic's log 
> function. They all have different answers and it's hard to answer them all at 
> once. 
> 
> 3) Many things in Clojure seem random until you understand the reasoning 
> behind them. I hate telling people to go read the Clojure source, but I'll 
> say the more of it you read the more you will understand. Very few things in 
> Clojure are done without a reason, and some things that seem like bugs may 
> actually just be a misunderstanding of the basic concepts of the language. 
> 
> I once had a co-worker (who used Ruby a lot) say, "why does Python suck so 
> much?". After a conversation with him we both kindof realized it's not that 
> Ruby rocks and Python sucks, its simply a different set of tradeoffs and 
> optimizations that make each language unique. The same is true for Clojure. 
> Learning what those tradeoffs is, is very important. 
> 
> 4) Don't give up! I played with Clojure for about 2 years before becoming 
> comfortable with it. Don't be like me and throw it away every few months in 
> anger. Keep at it, please keep asking questions, and do so before you reach 
> the point of frustration. I've worked with more languages than I can 
> remember, but Clojure is the only one I've stuck with this long, simply 
> because it's that good. Not perfect, but more perfect (imo) than any other 
> language I've used. 
> 
> Hope this helps, 
> 
> Timothy
> 
>> On Sat, Jul 23, 2016 at 8:17 AM, Colin Yates <colin.ya...@gmail.com> wrote:
>> Abstractions and dynamic/static typing are orthogonal. Static/dynamic
>> is simply _when_ types are considered. Strong/weak typing is arguably
>> more relevant and is about how narrowly type information is
>> considered.
>> 
>> I can't find an actual declaration but I consider Clojure is dynamic
>> but strongly typed. Some dynamically typed languages tend to be more
>> forgiving when asking questions and will guess at what you are asking
>> regardless of whether they are statically or dynamically typed, so
>> Ruby (sort of strongly typed) and JavaScript (weakly typed) have no
>> problem with asking if an Integer is empty.
>> 
>> Wow, that reads like I am lecturing down to somebody - apologies, that
>> isn't my intent. Half of the problem is that like 'Functional
>> Programming' there isn't really an authoritative definition of
>> 'strongly typed' or 'weakly typed' :-).
>> 
>> On 23 July 2016 at 14:15, 'Adrian A.' via Clojure
>> <clojure@googlegroups.com> wrote:
>> >
>> >
>> >> The point is that an 'Integer'
>> >> (abstraction) has no sense of 'emptiness' or 'fullness'.
>> >>
>> > IMHO that might be true for a statically typed language, but in the case of
>> > a dynamic language like Clojure it makes perfect sense, and most users
>> > expect
>> > this behavior.
>> >
>> > --
>> > 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.
>> 
>> --
>> 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.

-- 
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.

Reply via email to