This article(wiki page?) resonates with me, in that I also chose to abandon aspirations to have something like F#(or any ML-inspired language really) with a nice game engine like Godot or Stride, and eventually settled with Godot and GDScript with a websocket server in a functional programming language(Unison) for a small game I’m making.
GDScript isn’t bad at all, and for software developers with little spare time, Godot works wonders. The OOP-ness is manageable, because usually scripts are small and self contained. A downside I found was that web exports are big in size and aren’t really ‘one click’ for me.
I’ve been meaning to try out Bevy, but my Rust is bad and it seems to have quite a bit of breaking changes.
I tend to think better in an Erlang-y message-sending model, but it’s still neat having first-class support for them
I’m not sure if you are aware of Defold, but it does have this type of thing: https://defold.com/manuals/message-passing/ . I prefer it as well, but with Defold I’m doing a lot more plumbing (which is good depending on one’s taste).
BTW I seem to remember Miguel de Icaza did a thing with Swift bindings for Godot? (I can’t in good faith recommend for or against it because I have no idea what its status is.)
It”s in testflight now snd development is pretty active. I haven’t done more with it than start it and say ”it seems to work”, but it”s pretty ambitious and may turn into a nicer native editor than the original one.
Yes, Miguel wrote SwiftGodot, “Swift language bindings for the Godot 4.3 game engine using the new GDExtension system”. I haven’t used it myself, but it seems to still be maintained – it received 11 commits in the last month.
I wasn’t aware of Defold, thanks! It looks pretty interesting, so I guess I have something new to investigate.
A friend of mine has been playing with Bevy a fair amount recently, and describes it as “it solves all the hard problems really wonderfully, and for all the easy but boring-to-implement problems… well, you’ll have two or three different community crates that solve it with varying levels of competence, and might get upstreamed someday.”
I love how lean this is(the code is even quite readable!). As a far away admirer of htmx/hyperscript, I haven’t had the chance to use them for something yet, this has some neat stuff, particularly using fetch() and MutationObserver. Great design tradeoffs!
I’m not entirely sure why/when somebody should use htmx over fixi.js. Or what are the options if somebody wants something with a mixture of the features of htmx and fixi.js. Is the idea that if you need anything more than that fixi.jsoffers, one should turn tohtmx`?
I also wonder if this’ll start a trend of “build-less HTMX alternative frameworks”, which doesn’t need to be a bad thing, but it would be a bit ironic.
Fixi uses dom transition that is not well supported yet (FF doesn’t support it so smooth element transitions will appear as sudden switches, which you might or might not care about), and drops some legacy browsers support. Other than this is just stripped down version of HTMX, AFAICT.
htmx is much more fully featured, with things like history support, boosting, etc.
fixi almost certainly requires a user to write some JavaScript to make it work the way you want in a real world situation, so if you are comfortable with that then it’ll be great, but a lot of folks just want that code to be written for them, in which case htmx is a better choice
I also wonder if this’ll start a trend of “build-less HTMX alternative frameworks”, which doesn’t need to be a bad thing, but it would be a bit ironic.
I think this would be fantastic. I love htmx, but sometimes I wish there were more “competitors” in the space exploring different designs (and of course as seen here, taking advantage of potentially new browser APIs). For me personally, htmx is like 80% great, 20% a bit awkward, so I’d love to see more exploration in case maybe an alternative might suit me more. Nice to see alpine-ajax, data-star etc. And of course more people using these types of “juiced-up html libraries” will bring bug fixes, smooth edges, etc.
I’m really eager to try out the Mono variant. I’ve been maining Iosevka Comfy (which has been renamed now I believe), but Atkinson Hyperlegible is my favorite font to read our utside of my editor!
For those who are not familiar, Unison is a content-addressed functional programming language designed for distributed computing. Since versioning is based on ASTs rather than text, Unison has its own version control system (UCM). I find this desktop UI for UCM interesting because a) Unison is interesting, and b) they did it with Elm and Tauri.
As somebody who likes Unison, I found Elm to be very cool and easy to get started with. Doesn’t have a lot of fancy features but pattern matching and its type system work really well together and for UI stuff that’s generally speaking enough for me. Same vibes with Gleam.
Unison itself is something I’ve been using for most of my free-time-budget, because it’s a delightfully hassle free experience.
Wooohoo TAB in autocompleted snippets fix is in!
I’ve been using Helix for a little bit under a year now as my main editor, and it’s been nice.“Select and then act” as been my favorite way to do modal editing since discovering Helix(and kakoune!), because I make less mistakes in actions I take and multiple cursors work really well with this modal way.
It’s also been interesting seeing how Helix maintainers have been improving the codebase whilst dealing with increased popularity and attention to the editor, OSS at times is extremely fun, but I’ve seen some crazy comments about…editing text in a computer program.
Anyhow, thank you to all the maintainers and contributors!
Besides visiting some family, I’ve recently revived my old Emacs config, because changes in Emacs 30 and 31 are looking nice, I still use helix as my main editor, but meow and Emacs have impressed me quite a bit.
And hopefully some time to start learning more about game development!
Anything you’d highlight? I was thinking of simplifying a bit my config. I want to reconsider my use of helm, lsp-mode, company… see if I can replace elpy by some LSP… and esp. find a “project” solution that works for me. (I used projectile for a while, but I never stuck to it. Maybe because I use submodules with symlinks a lot and I never bothered to make it work properly.)
In fact, playing with Emacs was on my list of stuff to do this weekend :D
I’ll try my best to explain why I like the current/upcoming stuff! Due to time and inexperience in the Emacs codebase/mailing list I can’t provide specific links to new builtin features.
In Emacs 31, grep-edit makes wgrep for me not necessary anymore and I can do find+replace across multiple buffers with visual-replace.
Emacs 30 also has faster JSON parsing so lsp modes should be snappier. I prefer lsp-mode over eglot, because I need multiple language servers. lsp-mode has https://github.com/emacs-lsp/lsp-pyright I believe currently non-VSCode editors use a two LSPs instead of one for Python.
The extra tree-sitter modes are nice, a bit of a pain in the ass to get working and they are unversioned, but they are working on improving it. Elixir tree-sitter is a builtin one.
Builtin project.el with some consult functions and packages for going zipping around the workspace is enough for me, I tried some packages for doing fancy project management, but it’s a rabbit hole that didn’t work out in my case. Are you looking for anything specifically that a project solution should include?
Once I got it working with lsp-mode and yasnippet, the corfu + vertico + cape combination works great, and I prefer it over anything I’ve seen in other editors so far.
But precisely your pointers about Python and LSP is something I want to figure out. (I like elpy, but it kinda doesn’t feel right to use non-LSP if LSP is available.)
Are you looking for anything specifically that a project solution should include?
I have a project that is in a private repo, but has some code pulled in as submodules of a public repo. And there’s some glue in the form of symlinks. I haven’t spent time figuring it out, but by default most tools (including Emacs, and including Projectile) don’t traverse those well.
I’m kinda thinking that the solution is to use other solutions for this private/public repo thing (e.g. https://josh-project.github.io/josh/), though.
edit: also I’m still stuck in a local maxima where I just use git grep and sed in a terminal. I’m not yet fully-in the hardcore Emacs approach.
But precisely your pointers about Python and LSP is something I want to figure out. (I like elpy, but it kinda doesn’t feel right to use non-LSP if LSP is available.)
LSP isn’t perfect, but lsp-pyright (or the eglot equivalent) should be worth trying out!
I haven’t spent time figuring it out, but by default most tools (including Emacs, and including Projectile) don’t traverse those well.
Oof sorry, yea I don’t have any experience here.
also I’m still stuck in a local maxima where I just use git grep and sed in a terminal. I’m not yet fully-in the hardcore Emacs approach.
This is (often) the way as well! I like to have some more beginner friendly tools around these type of things, but I try avoid to use Emacs for everything. consult for example has a wrapper around ripgrep where ripgrep does the hard work and I get a nice UI around it. I’d recommend test driving vertico and consult etc, they might seem “full Emacs” but they are more like good defaults for standard Emacs API’s.
This article(wiki page?) resonates with me, in that I also chose to abandon aspirations to have something like F#(or any ML-inspired language really) with a nice game engine like Godot or Stride, and eventually settled with Godot and GDScript with a websocket server in a functional programming language(Unison) for a small game I’m making.
GDScript isn’t bad at all, and for software developers with little spare time, Godot works wonders. The OOP-ness is manageable, because usually scripts are small and self contained. A downside I found was that web exports are big in size and aren’t really ‘one click’ for me.
I’ve been meaning to try out Bevy, but my Rust is bad and it seems to have quite a bit of breaking changes.
I’m not sure if you are aware of Defold, but it does have this type of thing: https://defold.com/manuals/message-passing/ . I prefer it as well, but with Defold I’m doing a lot more plumbing (which is good depending on one’s taste).
BTW I seem to remember Miguel de Icaza did a thing with Swift bindings for Godot? (I can’t in good faith recommend for or against it because I have no idea what its status is.)
https://xogot.com/
It”s in testflight now snd development is pretty active. I haven’t done more with it than start it and say ”it seems to work”, but it”s pretty ambitious and may turn into a nicer native editor than the original one.
Yes, Miguel wrote SwiftGodot, “Swift language bindings for the Godot 4.3 game engine using the new GDExtension system”. I haven’t used it myself, but it seems to still be maintained – it received 11 commits in the last month.
I wasn’t aware of Defold, thanks! It looks pretty interesting, so I guess I have something new to investigate.
A friend of mine has been playing with Bevy a fair amount recently, and describes it as “it solves all the hard problems really wonderfully, and for all the easy but boring-to-implement problems… well, you’ll have two or three different community crates that solve it with varying levels of competence, and might get upstreamed someday.”
I love how lean this is(the code is even quite readable!). As a far away admirer of htmx/hyperscript, I haven’t had the chance to use them for something yet, this has some neat stuff, particularly using
fetch()andMutationObserver. Great design tradeoffs!I’m not entirely sure why/when somebody should use
htmxoverfixi.js. Or what are the options if somebody wants something with a mixture of the features ofhtmxand fixi.js. Is the idea that if you need anything more than thatfixi.jsoffers, one should turn tohtmx`?I also wonder if this’ll start a trend of “build-less HTMX alternative frameworks”, which doesn’t need to be a bad thing, but it would be a bit ironic.
Fixi uses dom transition that is not well supported yet (FF doesn’t support it so smooth element transitions will appear as sudden switches, which you might or might not care about), and drops some legacy browsers support. Other than this is just stripped down version of HTMX, AFAICT.
Graceful degradation is a great feature of HTML
htmx is much more fully featured, with things like history support, boosting, etc.
fixi almost certainly requires a user to write some JavaScript to make it work the way you want in a real world situation, so if you are comfortable with that then it’ll be great, but a lot of folks just want that code to be written for them, in which case htmx is a better choice
I think this would be fantastic. I love htmx, but sometimes I wish there were more “competitors” in the space exploring different designs (and of course as seen here, taking advantage of potentially new browser APIs). For me personally, htmx is like 80% great, 20% a bit awkward, so I’d love to see more exploration in case maybe an alternative might suit me more. Nice to see alpine-ajax, data-star etc. And of course more people using these types of “juiced-up html libraries” will bring bug fixes, smooth edges, etc.
Of course maybe Fixi is what I’m looking for!
I’m really eager to try out the Mono variant. I’ve been maining Iosevka Comfy (which has been renamed now I believe), but Atkinson Hyperlegible is my favorite font to read our utside of my editor!
I tried it out today. Found it too wide. Wider than probably even Source Code Pro!
Yeah I’m trying it as replacement for Source Code Pro and not sure how I feel. My code feels less graceful and more… industrial?
Yes that’s it! And the kerning…characters feel too spaced apart. That might be the intention though, for readability.
It actually does feel more readable when I switch in some ways. But also… it’s showing rectangles instead of backticks? are you seeing that too?
UPDATE: switched to the variable TTF from Google Fonts (isntead of the OTFs I was using) and that fixed it.
It shows a backtick ` correctly in VS Code.
This also reminded me of the early UI of Steam! What a nostalgia blast.
For those who are not familiar, Unison is a content-addressed functional programming language designed for distributed computing. Since versioning is based on ASTs rather than text, Unison has its own version control system (UCM). I find this desktop UI for UCM interesting because a) Unison is interesting, and b) they did it with Elm and Tauri.
As somebody who likes Unison, I found Elm to be very cool and easy to get started with. Doesn’t have a lot of fancy features but pattern matching and its type system work really well together and for UI stuff that’s generally speaking enough for me. Same vibes with Gleam.
Unison itself is something I’ve been using for most of my free-time-budget, because it’s a delightfully hassle free experience.
Wooohoo
TABin autocompleted snippets fix is in! I’ve been using Helix for a little bit under a year now as my main editor, and it’s been nice.“Select and then act” as been my favorite way to do modal editing since discovering Helix(and kakoune!), because I make less mistakes in actions I take and multiple cursors work really well with this modal way.It’s also been interesting seeing how Helix maintainers have been improving the codebase whilst dealing with increased popularity and attention to the editor, OSS at times is extremely fun, but I’ve seen some crazy comments about…editing text in a computer program.
Anyhow, thank you to all the maintainers and contributors!
Besides visiting some family, I’ve recently revived my old Emacs config, because changes in Emacs 30 and 31 are looking nice, I still use
helixas my main editor, but meow and Emacs have impressed me quite a bit.And hopefully some time to start learning more about game development!
Anything you’d highlight? I was thinking of simplifying a bit my config. I want to reconsider my use of helm, lsp-mode, company… see if I can replace elpy by some LSP… and esp. find a “project” solution that works for me. (I used projectile for a while, but I never stuck to it. Maybe because I use submodules with symlinks a lot and I never bothered to make it work properly.)
In fact, playing with Emacs was on my list of stuff to do this weekend :D
I’ll try my best to explain why I like the current/upcoming stuff! Due to time and inexperience in the Emacs codebase/mailing list I can’t provide specific links to new builtin features.
In Emacs 31,
grep-editmakeswgrepfor me not necessary anymore and I can do find+replace across multiple buffers withvisual-replace.Emacs 30 also has faster JSON parsing so lsp modes should be snappier. I prefer
lsp-modeover eglot, because I need multiple language servers. lsp-mode has https://github.com/emacs-lsp/lsp-pyright I believe currently non-VSCode editors use a two LSPs instead of one for Python.The extra tree-sitter modes are nice, a bit of a pain in the ass to get working and they are unversioned, but they are working on improving it. Elixir tree-sitter is a builtin one.
Builtin
project.elwith someconsultfunctions and packages for going zipping around the workspace is enough for me, I tried some packages for doing fancy project management, but it’s a rabbit hole that didn’t work out in my case. Are you looking for anything specifically that a project solution should include?Once I got it working with
lsp-modeandyasnippet, thecorfu+vertico+capecombination works great, and I prefer it over anything I’ve seen in other editors so far.Ah, that’s more or less what I scanned.
But precisely your pointers about Python and LSP is something I want to figure out. (I like elpy, but it kinda doesn’t feel right to use non-LSP if LSP is available.)
I have a project that is in a private repo, but has some code pulled in as submodules of a public repo. And there’s some glue in the form of symlinks. I haven’t spent time figuring it out, but by default most tools (including Emacs, and including Projectile) don’t traverse those well.
I’m kinda thinking that the solution is to use other solutions for this private/public repo thing (e.g. https://josh-project.github.io/josh/), though.
edit: also I’m still stuck in a local maxima where I just use
git grepandsedin a terminal. I’m not yet fully-in the hardcore Emacs approach.LSP isn’t perfect, but
lsp-pyright(or theeglotequivalent) should be worth trying out!Oof sorry, yea I don’t have any experience here.
This is (often) the way as well! I like to have some more beginner friendly tools around these type of things, but I try avoid to use Emacs for everything.
consultfor example has a wrapper aroundripgrepwhereripgrepdoes the hard work and I get a nice UI around it. I’d recommend test drivingverticoandconsultetc, they might seem “full Emacs” but they are more like good defaults for standard Emacs API’s.