4 ms·
You want to check out concatenative programming[1] and particularly #concatenative on Freenode. Factor[2] is the preeminent concatenative language at this time.
by evincarofautumn 13y ago
You want to check out concatenative programming[1] and particularly #concatenative on Freenode. Factor[2] is the preeminent concatenative language at this time. It is dynamically typed and comes with an excellent interactive environment and a fairly large collection of libraries. It feels very much like “Lisp done right”—which is to say that it’s very practical, and you get much more composability and metaprogramming power without all the parentheses.
Joy[3] was the first language to be described as “concatenative”, invented by the late Manfred von Thun; its operation is defined as a term rewriting system, but it can be implemented using a stack. If you want some theoretical background, Brent Kirby’s Theory of Concatenative Combinators[4] may be enlightening. Cat[5] was the first statically typed concatenative language, and Kitten is my successor to Cat.
If you’re looking at Rust, Kitten[6][7] is designed with similar goals in mind. It’s a language about safe, expressive abstractions with predictable, low runtime costs. It encourages expressing programs as compositions of effects. It is not usable for production but may be fun to play around with; we are currently working on a native backend.
[1]: http://concatenative.org http://concatenative.org
[2]: http://factorcode.org/ http://factorcode.org/
[3]: http://www.kevinalbrecht.com/code/joy-mirror/joy.html http://www.kevinalbrecht.com/code/joy-mirror/joy.html
[4]: http://tunes.org/~iepos/joy.html http://tunes.org/~iepos/joy.html
[5]: http://cat-language.com/ http://cat-language.com/
[6]: http://kittenlang.org/ http://kittenlang.org/
[7]: https://github.com/evincarofautumn/kitten https://github.com/evincarofautumn/kitten
- mr_luc 13y agoI mentioned Factor in less detail below, I think it's a lot of fun, but -- from the detail here, might I assume that you're involved with Factor in some way? If so: does it have a package manager yet? The last I was plunking around with Factor, 6-8 months ago, uh, "dire" was a good word to describe the package/library management situation. Is that still accurate? Have you guys considered bootstrapping by using a package manager from another language/ecosystem? For instance, npm is pretty awesome, and they don't really care whether what's being distributed is javascript or not.
- evincarofautumn 13y agoI’m not involved with Factor development, just a casual user and concatenative evangelist. Factor still lacks a package manager; the notion, I suppose, is that the standard library is the standard package repository like npmjs.org for Node or Hackage for Haskell.
- mr_luc 13y agoHmm. Man, maybe I should see if I can hack something together using npm and a naming convention. Package managers are ... important.
- jyf1987 13y agofactor is cool and fasion except it only focus on x86 right now