8 ms·
I've read On Lisp by pg, and I'm passionate about using emacs (still depend too much on vim for productivity), so I'd love to start using Lisp-y languages every
by lawry 11y ago
I've read On Lisp by pg, and I'm passionate about using emacs (still depend too much on vim for productivity), so I'd love to start using Lisp-y languages everywhere. But it seems it's not main-stream [1] enough to have tons of tutorials, books, tools, employees that would appreciate it.. yet.
But I'm getting more hopeful every time I see a new post surface with a new language or tool that is lisp-y.
Btw, this is not the first time I'm wondering this, but could I start using something like ClojureScript instead of Javascript and be able to use the libraries I currently use, like I would with coffeescript?
[1]: No something does not have to be main-stream or widely used/acknowledged as good to be good, but you can't deny it helps. I just don't want to spend my time learning something that could become obsolete, (in the eyes of coworkers/employers!)
- AlwaysBCoding 11y agoYes, you can use any JS library you normally would from ClojureScript. Pretty much the only JS "framework" that feels natural to use from ClojureScript is React, but things like jQuery, Highcharts, etc... all work just like they would in CoffeeScript.
- Scarbutt 11y agoIn Clojurescript, the google Closure Library is favored over using something like jQuery since Clojurescript leverages the Closure Compiler, not as famous as jQuery but is a solid lib used by gmail, google docs, maps and much more.
- AlwaysBCoding 11y agoYeah I agree, for basic DOM manipulation it's easier to just call out to the google closure functions than worrying about including jQuery... HOWEVA, there are a lot of useful libraries (highcharts, jqueryUI etc...) that are built on top of jQuery so I find myself including it frequently in my cljs builds.
- idibidiart 11y agoready to turn over a new leaf and try reactive clojurescript? :)
- erichmond 11y agoClojure still has a long way to go to become "mainstream", but as you can see from this list, it's getting there. http://clojure.org/companies http://clojure.org/companies Walmart, Twitter and Amazon would be three notable examples of companies that have achieved large scale that are using it.
- justinmk 11y agoVim has great plugins for Clojure. https://github.com/tpope/vim-fireplace https://github.com/tpope/vim-fireplace https://github.com/guns/vim-sexp https://github.com/guns/vim-sexp https://github.com/guns/vim-clojure-static https://github.com/guns/vim-clojure-static Also, this might be useful: https://github.com/ctford/vim-fireplace-easy https://github.com/ctford/vim-fireplace-easy
- grayrest 11y ago> [C]ould I start using something like ClojureScript instead of Javascript and be able to use the libraries I currently use, like I would with coffeescript? Clojure has an opinionated idea about how data should be handled and changed over time. This interacts very poorly with data binding so if your current libraries are Ember, Angular, Knockout, or the like then the answer is no. You can call into any JS library fairly easily so if you want to use jQuery, d3, three, or whatnot then it's doable but not in the "it's just javascript" way of coffeescript. On the other hand, Clojure fits into the React model like toothpaste in tubes and the community has switched almost universally (save the Hoplon guys) to one of the React wrappers. I recommend starting with Reagent [1]. Om has more mindshare but Reagent's model is considerably simpler. If you need more structure around the app, check out Re-frame [2]. In either case you want to set up your project with figwheel [3] (lein new figwheel <project>) and add reagent/re-frame as a dependency. [1] http://holmsand.github.io/reagent/ http://holmsand.github.io/reagent/ [2] https://github.com/Day8/re-frame/ https://github.com/Day8/re-frame/ [3] https://github.com/bhauman/lein-figwheel https://github.com/bhauman/lein-figwheel I encourage you to give the langauge a try but I don't really recommend Clojurescript at work unless you're already working at a Clojure shop. The language is nicer than Javascript and I care enough about that to take a job working in cljs full time but the language isn't mature nor enough of a productivity boost over js (especially babelized js) to justify saddling your company with a niche language maintenance burden when you leave. If you're going to evangelize, I recommend starting in Clojure where the win over Java is much, much bigger. P.S. I use Vim for everything non-lisp but I use Emacs with Evil mode for lisps. Evil mode is bar none the best vim emulator I've used and is the only one I can stand to use on an extended basis.
- idibidiart 11y agoGood summary but I disagree that jumping off a cliff with 3 other guys is always a bad idea. Sometimes you can grow wings and sour over the beautiful mountains others are struggling to climb
- deleted 11y ago[deleted]
- escherize 11y ago
- jwr 11y ago> But it seems it's not main-stream [1] enough to have tons of tutorials, books, tools, employees that would appreciate it.. yet. My "Clojure Books" folder contains 10 books. Several more came out recently, but I stopped buying the beginner ones. How many more do you need? > I just don't want to spend my time learning something that could become obsolete, (in the eyes of coworkers/employers!) As Master Yoda would say – "I sense much fear in you" :-)
- codeshaman 11y agoIt's been almost 2 months since I started learning Clojure+ClojureScript. The language itself is beautiful and very powerful, you feel like you're gaining new superpowers as you learn it. You also start to understand your imperative languages much better as you learn Clojure and grasp concepts like functional programming, data (im)mutability, runtime polymorphism and get some new insights into concurrency. Lisp's Code is data and 'data is all you need' is an extremely powerful concept too. Interactive development is a really cool thing. But the path was not all flowers, I must confess. I've struggled for weeks with the editors and Repl integration (I chose Cursive eventually), setting up the projects and the workflow for clojure, browser and node.js vm. We have a tendency to try and adapt the stuff we learn to the things we already know and sometimes I did just that, trying to fit a square into the circle that I know and it never quite fits. It's best if you 'forget' all your previous programming knowledge and just go with the Clojure/ClojureScript way of doing things. The language (and especially the tools/libs) are evolving rapidly so check the date on the articles you read: if earlier than 2014, chances are things are done differently now. Also, the best way to get help fast is through the IRC channels on freenet. I would have saved days if not weeks if I've figured this out earlier. That being said, ClojureScript is not like CoffeeScript. While it compiles to javascript, there's little benefit in using it as a 'javascript dialect'. It's power is in it's ability to be Clojure in the browser and the most benefit is when you have the tandem of clojure server and clojurescript client (which is actually one single application - go figure). You can also feel that clojure is on the rise right now - there's stuff appearing every day - articles, books, libraries and cool demos, I think programmers are just starting to grasp the true power of the 21st century lisp. It kind of feels like the early days of node.js, so things will definitely grow in the future.
- davexunit 11y ago>I think programmers are just starting to grasp the true power of the 21st century lisp. Now, if programmers would only realize that Scheme and Common Lisp are even better and start using them more. It's nice to see a Lisp get some mainstream acceptance, but it's unfortunate that it has to be Clojure.
- 11y ago
- atratus 11y agothere is a community curating effort around http://cljsjs.github.io/ http://cljsjs.github.io/ for popular external libraries