10 ms·
TimL – Clojure like language which compiles down to VimL
- krick 13y agoIt's so cool that I would be skeptic (real programming language that compiles into VimL? God, that must be buggy!) already if not the fact that it's written by tpope. That's totally awesome.
- jzelinskie 13y agoThis could be totally awesome. Maybe with neovim's planned LuaJIT implementation of VimL this can actually run quick.
- nilved 13y agoYou could just code it in Clojure if you were using neovim.
- pi-rat 13y agoA lisp for vim - with months of commit history.. released on 1st of April.. awesome!
- typicalbender 13y agoI'm still not convinced its not an elaborate april fools joke but I want it to be real so bad!
- mikegerwitz 13y agoIn the never-ending Emacs vs. Vim debate, as a long-time Vim user (with no intent on switching), I've always envied Elisp. tpope has once again delivered and maybe now I can stop shamefully eyeing up Emacs from a distance. I haven't given this a try yet, but I can expect that, if it works well, it will be worth even a modest performance hit.
- yangyang 13y agoIt's a start, but one of the huge advantages of Emacs is the fact that a very large chunk of the system is written in Emacs lisp.
- pekk 13y agoRather than transpiling into VimL it might be more productive in the long term to hack on Vim's MzScheme scripting interface...
- Tyr42 13y agoOh man, that would be pretty cool. I would like it more if we could pull it up to Racket, since I've use that and it feels really good as a language. It's what was mzscheme.
- hibikir 13y agoNow if Vim only had the really important emacs features, like Sokoban, and a built-in psychiatrist.
- rabino 13y agoMaybe the april fools' joke is that this is not a joke
- goldfeld 13y agoThis is beyond my wildest wishes. Meaning I have wished, as a formerly active Vim plugin author now fully switched over to Emacs/evil, exactly for Clojure compiling down to VimL so that I could maintain my plugins as Clojure/Lisp code, compiling it to actual VimL for public consumption, as a preprocessor. I'd think that would mostly do away with runtime performance worries, and not require the plugin user to actually have TimL installed as a plugin. Which means it could ease the transition of plugin authors to TimL, until eventually it's ok (and perhaps performant) to have it as a runtime. Needless to say, I love the fact that Tim Pope has hopped on the Clojure bandwagon, that the community can enjoy well thought out tooling such as he did/does for Rails. That said, tpope is one of only a few driving forces over on the Vim side of Clojure, whereas most seem to flock to Emacs. So I see this as potentially a great opportunity to eventually have Clojure-ish compiling/running on both Vim and Emacs, so that plugin authors can literally write and keep a single codebase that maps into the respective editor APIs. Well, least common denominator I guess, with extras specific for each editor. And maybe, speaking from my experience developing Vim plugins and looking into Elisp code, we will need 'clojureditor' packages providing higher level functionality painstakingly implemented for both editors, since it would be plenty non-trivial code that probably doesn't belong in a core like TimL neither in a Clojure+elisp equivalent. Then you could see this actually taking off big time since the more voluminous Clojure+Emacs community would be writing a good deal of plugins which would also work on Vim for free (imagine that!), so that they could support both platforms because it wouldn't be much extra effort. Hats off to the Pope for actually taking on the arguably tougher half, since Elisp should hopefully be an easier target for a lisp like Clojure.
- cursork 13y agoReally hope this doesn't sound like belabouring the point but... > tpope is one of only a few driving forces over on the Vim side of Clojure tpope is indeed one of the few, but I'd hate for people to dismiss https://github.com/guns https://github.com/guns for his work on vim-clojure-static, vim-clojure-highlight, etc. Both have done a great job on those projects, but also with engaging with the community. And let's not forget Meikel Brandmeyer, met him once, lovely guy. But also spent a lot of time delivering VimClojure back in the day. (I'm glad I don't have to suffer nailgun any more!) I think there's plenty enough willing people (I'm one - I've contributed 1 or 2 line snippets here and there). But the environment is actually pretty damn nice already. No complaints.
- seth1010 13y agoOh, this is neat. (keeps reading...) HOLY SHIT TIM POPE
- SmileyKeith 13y agoAs someone who develops some plugins this looks freaking awesome. Think I'm past thinking this is a April fools joke, knowing his sense of humor, the number of lines of code and the commit history.
- Morgawr 13y agoAt first I started reading and I was skeptical, there are so many abandoned/unused lisp dialects out there nowadays.. Then I checked the size of the project and at the first mention of actual clojure datatypes I was pleasantly surprised. Kudos tpope, this is freaking awesome!
- tomphoolery 13y agoUGH! SO MONEY!!! <3 <3 <3
- skue 13y ago> Is this a joke? > > If you mean the 6,000 lines of working code, then no, I poured hundreds upon hundreds of very serious hours into that. But if you're referring to the fact it's woefully underdocumented, adds considerable overhead to an already slow host platform, and ultimately unlikely to gain any traction, then yeah, probably. This is the best sort of April 1 announcement - something ridiculously ironic and playful, yet incredibly useful long term. Thanks so much for creating this, along with all of your plugins.
- kul_ 13y agoCan this be used to develop plugins for vim? I would love to see someone come up with a plugin in TimL or port one to it!
- daGrevis 13y agoHere's an example of TimL in action! https://github.com/sjl/tslime2.vim/blob/master/plugin/tslime.tim https://github.com/sjl/tslime2.vim/blob/master/plugin/tslime...
- cursork 13y agoLiterally came here to post that! The comment for send-line-to-tmux... I've felt that pain before.
- aktau 13y agoEven though I like clojure and think it's cool, I don't think VimL needs another layer that slows it down. I'm putting my money on the VimL to Lua translator that's currently being worked on by ZyX-l (https://github.com/ZyX-I/neovim/tree/luaviml https://github.com/ZyX-I/neovim/tree/luaviml) for neovim. With that, we can run VimL as Lua code in LuaJIT, which will transform VimL from one of the slowest scripting languages to among the fastest. Note that I said among the fastest, because VimL uses native integers which Lua doesn't have. LuaJIT does have them but their conversion rules are different so there has to be some shim code (https://github.com/neovim/neovim/issues/392 https://github.com/neovim/neovim/issues/392). There's also many other VimL -> Lua incompatibilities that will incur some slowdown but it should be wicked fast still. Of course, I expect that many people will start writing native lua plugins after a while, it is a far more pleasant language, after all.