I've been building out substantial ClojureScript apps for a few months now. Previously I had written an HTML5 game engine, so I'm no stranger to lots of JavaScript.
My CLJS code base is smaller, easier to organize/maintain, more functional and declarative, and boasts a level of server-side interop that surpasses JS's best attempts (like meteor js). Having the reader (and a REPL) in the browser opens up a lot of possibilities. As Kevin stated there are a few sticky spots when working with ClojureScript, but those are quickly being solved. If you're new to Clojure and client-side development (JavaScript), the lack of CLJS examples and documentation is going to be a hurdle for you. Errors in the console are not obvious unless you have some idea about the implementation details of ClojureScript. Error reporting will not tell you what line of CLJS code your error is on (or what you did wrong), you just have to look at the compiled JS source, know where in your CLJS source that code is being generated, and scan carefully until you spot the error in your code. This was my biggest hurdle starting out. Since you're picking up a toy project, I would choose whatever language you're most excited to learn. Enthusiasm is a great motivator for overcoming any challenge. Paul On Thursday, June 14, 2012 3:10:51 AM UTC-4, Jacobo Polavieja wrote: > > El jueves, 14 de junio de 2012 08:39:19 UTC+2, Kevin Lynagh escribió: >> >> >> >>> As to your first point and only to clarify, had you made it a wrapper >>> for D3 and in a node.js application, there would still be no problem in >>> using it server-side, am I right? >>> >> >> Unfortunately, no---D3 requires a full DOM. >> Node.js is just the JavaScript engine. >> There are some fake DOM implementations that people use with node.js for >> testing and scraping, but they were very rough last time I checked. >> PhantomJS is a very nice project that is a headless WebKit browser, which >> we've used to run JavaScript with a DOM on the serverside. >> It can get a bit involved to coordinate that with other processes >> though... >> >> >>> So, in short I've got a toy application in mind to learn either way, but >>> the end project in mind is a trading application on the browser (which is >>> my main field right now) that should deploy in as many devices/OS as >>> possible (so, Javascript again). C2 fits in just perfect. >>> >> >> Speaking of toy applications with C2, I just open sourced an >> implementation of "TodoMVC" using some new features slated for release in >> C2 0.2.0: >> >> https://github.com/lynaghk/c2-demos/tree/master/todoMVC >> >> You might want to check this out and compare it with the n+1 existing >> JavaScript application framework implementations to see which you like the >> best. >> >> >>> Many thanks for the answer as well as the talks, which have been trully >>> great! >>> >> >> Thanks! >> The Conj talk was my first experience with the Clojure community, which >> I've found to be very friendly and welcoming. >> Definitely don't shy away from posting to the list or dropping by >> #clojure on IRC. >> Personally I'm very interested to hear about experiences of people who >> are new to both JavaScript and Clojure(Script). >> > > Oh, I didn't really think about the DOM thing... hehe! > > Thanks for the TodoMVC bit, I'll have an in-depth look at it as soon as I > understand Clojure better. I've already started with a tutorial to grasp > the basic things and have looked for a book to complete the rest. > > I'll sure be posting back with my troubles and experiences. As I haven't > actually ever used Javascript I'm a good case to prove ClojureScript's > ability to stay away from it :). > > And the talks where great for me as you mentioned everything I wanted: > functional programming benefits, Javascript/CoffeeScript VS ClojureScript, > and the impact the way we display data can have (I too think programmers > need to think lots more about this...) > > Thanks a lot, you've been really helpful mate. > > Cheers! > -- 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