On Wednesday, May 25, 2016 at 2:00:14 AM UTC-4, Keith Irwin wrote: > > I remember you from the olden days as a colorful personality on > comp.lang.lisp. >
We sure had some fun over there. Still the best tech forum I know of. > > Having spent this time with Clojure the language, and the community, any > interesting impressions compared to Common Lisp or, well, just any general > thoughts? > I am kinda taking my time coming to conclusions -- what's the new catchphrase, "Give it five minutes"? Lots of first impressions, though: For one, the community is amazing, both in skill and productivity. Second, I did not like Lisp-1 when I ported Cells to Arc, now I love it. Go figure. Speaking of Arc, I see the same fretting over eliminating parentheses in things like LET and COND. Not even sure what that is about, except maybe it is the same thing as with -> and -->. I did not grok those until someone explained that it let us avoid what they characterized as hard to follow: (final (penult (first 42))) I have no problem with that and rather enjoy the visual flow Paul Graham highlighted as characteristic of good code, so I wonder if ->/--> are cool only for newcomers to the Lispy world. The Google says PG likes Clojure, I see. The tooling required to do anything is pretty astonishing, but I do not think this is exclusive to Clojure. I am looking forward to getting past all that and concentrating on writing code. ClojureScript is a terrific win. I can't believe I have Cells running in Clojure and cljs with one code base. More below on that. I see lots of punctuation and syntax and am not sure what value they add. clojure.test is handy. It made TDD easy and was instrumental in porting Cells to clj. The fact that there are Clojure jobs is great. I am in the market which is how I ended up tackling Clojure. I am looking forward to trying out STM by having a changed Cell notify its dependents in parallel. That said, the absence of STM in cljs makes me wonder if STM will continue to be as big a deal (should cljs become bigger than clj). Not sure how I feel about "opinionated". I actually made Cells opinionated at the outset (in sharp contrast to Garnet's KR which had more back doors than front) so I am sympathetic, but I like freedom. Funny thought on immutable state: I code like a maniac and then debug the mess, but I am pretty sure I never had a bug caused by modifying state I did not "own" -- and I make it a point to use destructive functions wherever possible. I am not sure how OOP became a dirty word, but maybe I will see the light. One thing I am getting is that it is not so much about OOP as it is about classes. Speaking of OOP, defmulti is way cool. negatives are always tricky so I code UNLESS only when super-readable. What is not clear is how WHEN-NOT solves the readability of negatives. Bottom line: it still ahs DEFMACRO, all is forgiven. Getting back to Clojurescript, thanks to the JS interop (and Luke Vanderhart's explanation thereof at http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html) today I achieved "Hello world" with qooxdoo mobile: 1. Grab: https://github.com/kennytilton/rube 2. lein cljsbuild once 3. Open /rube/resources/identica/source/index.html or /rube/resources/identica/build/index.html in a browser. qooxdoo workflow usually involves a "generate" step after making edits before testing but we will only need that when deciding to start using a new qx mobile widget. Other than that we can just "lein cljsbuild auto" and after saving any edits by the time I find the browser tab with my app it is ready for refresh. By the end of next week we should have Cells-driven mobile apps in ClojureScript built atop qooxdoo, a very powerful, fast, and well-documented JS library. Stay tuned. -hk -- 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.