atomic
Fennel
Our great sponsors
atomic | Fennel | |
---|---|---|
12 | 90 | |
32 | 2,289 | |
- | - | |
7.0 | 9.3 | |
about 1 month ago | 5 days ago | |
JavaScript | Fennel | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
atomic
-
Should all Clojure functions be polymorphic by default?
I wanted ClojureScript, without transpilation, in the browser so badly I implemented much of it in plain JS. But JS still lacks first-class protocols (although there is a T39 proposal for them) so I have to implement protocols first. And I can tell you from having implemented much of Clojure myself in plain JS that it's protocols all the way down. 80% of my library are types and their protocols.
-
Do you do full-on FP in JavaScript? Want it?
I've watched a lot of talks, but it was Rich Hickey's which most captivated me and, ultimately, inspired big change in how I coded. After discovering Clojure I was so desiring FP (i.e. ClojureScript) in the browser without a build step and hoard of dependencies that I wrote my own library.
-
FP and JavaScript/TypeScript
I fell in love with Clojure and ported most of the tools to plain ol' JavaScript. I stole reactives and FRP from Elm. I write a functional core then wrap it with an imperative shell. It's been my mainstay for 10 years now.
-
What do functional programmers like functional programming?
What I did was looked past the languages at the ideas and saw they could be applied everywhere, including JavaScript. Take a look at my example programs (via prior link) and you can see Clojure applied to the JavaScript/browser realm.
-
Writing Javascript without a build system
I have found that the amount of code needed to support any page/app need not be massive. I have implemented modern board games with 250-300KB of js and the core lib I use on all my projects maxes out around 250KB, unminified. The lib itself is built on the premise of build avoidance.
-
Do you guys work with other languages?
I do JavaScript most of the time, but I was so inspired that I ported the Clojure mindset into the web development world so I could use it even in the absence of Clojure. I know there's ClojureScript, but I wanted the goodness without transpilation.
-
On Not Drinking the FP Kool-Aid
So I don't even do Clojure per se. I do Clojure in JavaScript without ClojureScript.
-
side effects in fp: to accept or not to accept
I use functional core, imperative shell. It would have you write a core which is a pure simulation. Write everything in the core using immutable data and pure functions. I elaborate on that here, along with examples.
- GitHub - mlanza/atomic: Write Clojuresque functional core, imperative shell programs in JavaScript.
- Clojuresque functional core, imperative shell programs in JavaScript
Fennel
-
Pluto, a Modern Lua Dialect
Eh it's not just luajit and luajit didn't create that problem either. It's a symptom of lua actually succeeding at its design goal of being easily embedded as an extension language. A significant number of incompatible runtimes are more popular than the most recent puc lua, including I believe the older official lua 5.2 released in 2011.
I've done a fair bit of professional lua development and I don't think I've ever written standalone up-to-date puc lua except maybe for some tooling & scripts. It's such a small language and used in such a way that the runtime, distribution method, and available APIs have much more impact on your use (and compatibility) than the version.
Virtually everyone shipping a lua environment is also shipping changes to it that make it a unique target, if only extensions to the standard library. This is why I think syntax layer-only approach like fennel's is the correct choice for improving on lua. It mirrors lua's runtime semantics exactly, and allows you to access the implementation peculiars on their own terms and so can just be run on time of any lua system.
https://fennel-lang.org
-
LÖVE: a framework to make 2D games in Lua
Just learned about https://fennel-lang.org/ , could have probably used that as well to avoid Lua.
-
The Bipolar Lisp Programmer
> I’m positive that there is a Lispy language out there (actually in existence, or the aether) that is appropriate for embedded work, but the constraints of the target make it difficult to envision.
Perhaps Fennel* fits the bill?
* https://fennel-lang.org/
-
The Future of the Vim Project
I've also seen neovim plugins written in fennel [0], so if you want something lispy, that's possible now.
[0]: a Lisp that compiles to Lua, https://github.com/bakpakin/Fennel
- Qual a linguagem que vocês mais gostam de programar?
- Can I use elixir as the scripting language of my game engine?
-
TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript
Something similar: Fennel (https://fennel-lang.org/) is a lisp that compiles into Lua, which nvim can use as plugins, so you can write nvim plugins in a lisp. Aniseed (https://github.com/Olical/aniseed) makes this really easy.
-
Announcing automation-service: write and schedule home automation scripts in Lua
If you want a more FP language on the Lua runtime, you might be interested in Fennel. I wrote a post about adding Fennel compiler to a hslua interpreter a while back, which might be useful for you.
- 916 Days of Emacs
-
What's your opinion on Lua programming language?
There's fennel if you're a fan of LISP syntax. I like embedding lua because it's light and easy and doesn't re-engineer itself every six months like python; but I agree, the lua syntax certainly is fugly.
What are some alternatives?
vscode-haskell - VS Code extension for Haskell, powered by haskell-language-server
janet - A dynamic language and bytecode vm
episode-code-samples - 💾 Point-Free episode code.
urn - Yet another Lisp variant which compiles to Lua
electric - a reactive Clojure dialect for web development that uses a compiler to infer the frontend/backend boundary
nvim-lspconfig - Quickstart configs for Nvim LSP
squint - Light-weight ClojureScript dialect
Lua-RTOS-ESP32 - Lua RTOS for ESP32
proposal-command-syntax - Proposal: Command Syntax for JavaScript
lua-languages - Languages that compile to Lua
euphoria - The Euphoria programming language (https://openeuphoria.org/)
webassembly-lua - Write and compile WebAssembly code with Lua