I've recently been reading up on Clojure webstack. I've gone through ring/enlive. Now, I need to learn about Google Closure / the Clojure bindings: https://github.com/levand/domina
However, I can't find a good domina tutorial anywhere. Is there a website that provides a guided tour for building web apps in domina?
(I'm familiar with Clojure + Java GUI -- the main thing I need is to learn how to build web apps.)
Thanks!
Before learning Domina you will need to learn ClojureScript. Check out : ClojureScriptOne
Related
I was previously working with Kafka as my data source and found it very powerful but had a rather steep learning curve managed to get it partially working but had a few hitches here and there and don't feel comfortable maintaining it in production.
So decided to switch over to Rabbitmq since I am more familiar with it however I have run into a slight problem.
I am unable to find a Clojure Library for Apache Storm Spouting from Rabbitmq. Should I extend BaseRichSpout or can someone point me to a useful library.
There was no clear cut library to assist with this so I extended the
"BaseRichSpout" in java code, compiled to a jar file and imported it to clojure code.
There was quite a bit of diddling around because my Storm cluster was running backtype version i.e. older version of storm.
However this was the sample code I used.
I've already seen that there are a few tools to build mobile apps from clojure but i would like to know more details about libraries, environment, drawbacks, profiling and real working examples
Thanks
Using ClojureScript with React Native is now becoming a great answer to this question:
Performance of React Native is great.
Existing React libraries like Om and Reagent work with React Native.
You can benefit from “learn once, write anywhere” knowledge reuse.
You benefit from using a stack and language that have significant communities behind them.
And the most compelling reason: React Native allows you to write mobile apps using ClojureScript's strength as a functional language, avoiding the imperative style, mutation, and statefulness.
So far, here is my investigation result:
To create native mobile apps I've found 2 lein plugins available:
Native android: lein-droid. Let's you compile, deploy, install and live repl with usual lein commands [lein droid doall, lein droid install, lein droid compile].
Native iOS: lein-fruit. A Leiningen plugin for building native iOS apps in Clojure and Java using the RoboVM bytecode-to-native translator.
There is also another interesting way to build an iOS app in the same way that works clojurescript to obtain javascript. In this case from clojure to scheme to C with clojure-scheme
And on irc #clojure channel, David Nolen and others suggest the following paths:
[6:27pm] dnolen: tangrammer: w/ iOS you'll have better luck with the JavaScriptCore bridge and ClojureScript
[6:27pm] dnolen: tangrammer: I've tried it works great and I know other people are experimenting with it as well
[6:28pm] dnolen: tangrammer: it does limit you to iOS 7, but you could take the Ejecta approach for earlier OSs
[6:38pm] dnolen: tangrammer: core.async on iOS works great
[6:38pm] dnolen: tangrammer: you can also do multithreaded CLJS on iOS
The Why and How of Clojure on Android is a great starting point and covers this better than I could here. From what I have seen the lein-droid leiningen plugin is the easiest way to get started though the process is sometimes not entirely smooth.
Im currently learning C++ and Im interested in a web front end that can be fast as its C++ back end part. Which front ends does make a good combination?
Not looking for the best just the ones that can join cpp without using cgi. So please dont vote down.
---Update------
I actually develope my web applications in Java and is nice. Im looking at the C++ side since I want to give it a try. I learn a little of C++ on a college class 3 years ago and now Im reading the Deitel 8th Edition book to cover what I miss and review what I previosly learned. I'll read all your suggestions and will select a balance between productivity and speed. I admit it I am a performace addict that's the reason of my interest on this. Before asking this I thought Python could be used as a web front end. But maybe its not near C++ performance and thats why you didnt mentioned it.
-----Update #2------
What behaivor could have using python web frameworks or java servlets for the web engine and then connect it to C++? Will tomcat or the python server be a bottleneck?
I think it's hard to find a web front end in C++ (probably what you are looking for is a C++ equivalent of GWT). Back ends are more common and there're some frameworks to create web apps in C++. Facebook has Hiphop for converting PHP code to C++ to speed up. But everything mostly boils down to HTML(5)/JavaScript/CSS. However, Qt framework has integration with WebKit and you can build applications using this framework which leverages HTML5/JavaScript/CSS3 in a C++ app (I'm not too familiar with it, so may be wrong). Take a look at this by the way.
EDIT: On further googling, found Wt, this might look interesting. :)
I've gone through the Ring/Enlive tutorials. I'm trying to pick up the rest of the Clojure webstack by learning how to use Google Closure with Clojure. So far, I have the Google Closure book (but haven't read it yet). What are the good resources for learning the Clojure/Closure webstack?
Thanks!
if you want to use clojure on the client (clojurescript) too (and it probably makes sense to do so, because it has very tight integration with closure) then you need to download + play with clojurescript one.
it's a complete example (server + client) that you can pull apart and play with.
Are there any open source projects that use both JRuby and Clojure and integrate the two parts somehow?
I have never used these projects, but they should give you a starting point:
https://github.com/stilkov/jruby-rails-clojure
https://github.com/technomancy/clojure-gem
The AltLaw project (2007-2010) used JRuby and Clojure.
Example Clojure code calling JRuby
I added a Clojure REPL to Redcar Editor. It was a pretty painless process and worked just as you would expect. The source code is available on GitHub.