Re: Cells aka Dataflow aka FRP now pure CLJC

2016-05-26 Thread hiskennyness


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.


Re: Cells aka Dataflow aka FRP now pure CLJC

2016-05-25 Thread Keith Irwin
I remember you from the olden days as a colorful personality on comp.lang.lisp. 

Having spent this time with Clojure the language, and the community, any 
interesting impressions compared to Common Lisp or, well, just any general 
thoughts?

> On May 24, 2016, at 9:24 AM, hiskennyness  wrote:
> 
> Last week was supposed to be a port from a Clojure version to a CLJS version 
> but for the heck of it I did it all in CLJC and (OMG) I now have my cherished 
> little project running either way: https://github.com/kennytilton/rube
> 
> Yes, that is my third and last home for the beast.
> 
> Clojure: lein test
> Clojurescript: lein cljsbuild test
> 
> Same code, same substantial tests. Full marks to the Clojure team for making 
> it possible.
> 
> -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 
> .

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


Cells aka Dataflow aka FRP now pure CLJC

2016-05-24 Thread hiskennyness
Last week was supposed to be a port from a Clojure version to a CLJS 
version but for the heck of it I did it all in CLJC and (OMG) I now have my 
cherished little project running either 
way: https://github.com/kennytilton/rube

Yes, that is my third and last home for the beast.

Clojure: lein test
Clojurescript: lein cljsbuild test

Same code, same substantial tests. Full marks to the Clojure team for 
making it possible.

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