bitwize

joined 11 months ago
[–] bitwize@alien.top 1 points 10 months ago

Defo worth posting. Reminds me of when I wrote a BASIC interpreter in Scheme. It came in two parts: a line parser and a "BASIC abstract machine" whose instructions were data structures consisting of a line number, a keyword, and arguments.

[–] bitwize@alien.top 1 points 10 months ago

I would say Dylan, which is so close to Lisp that some people consider it a Lisp, despite not having Lisp-like syntax. The modern language that fits that description is Julia.

JavaScript isn't Scheme -- far from it. But you can use a lot of Schemer techniques when programming in it. There are libraries like Ramda that help support programming in functional style. Ever since ECMAScript embraced internable symbols, I've been facetiously using the nickname "ES2049" to refer to Lisp when among JavaScript programmers; as it seems that JavaScript is slowly asymptotically approaching Lisp.

[–] bitwize@alien.top 1 points 10 months ago

Carcinization is the Greenspun's Tenth Law of aquatic arthropod evolution.

[–] bitwize@alien.top 1 points 10 months ago (3 children)

It's an iron law of software development that the more you can prove at compile time, the fewer bugs will creep in at run time. The future of software development will look a lot less like Lisp and a lot more like Rust. Strong static typing with parametric types is table stakes for a modern language. Ideally you want static object lifetime management too. Inasmuch as Lisp can adopt these things it still might be a niche contender.

[–] bitwize@alien.top 1 points 11 months ago

If you want a VS Code-like experience with no effort, you know where to find VS Code.

You use Emacs for an Emacs-like experience -- that is, a reasonable starting point, but with infinite customizability, to the point where you are modifying and extending your editor as you work with it.

You can begin coding in Python, Go, and Bash today with no additional add-ons. You may have a tough time of it at first if you're used to relying on autocomplete. Generally the first must-have package you should get is the major mode for whatever language you're working in (if it doesn't already come with Emacs). I generally use ivy to provide completion for things like file and buffer names, M-x commands, etc. so that's also a good choice. Eglot or lsp-mode is commonly used to provide autocomplete via Visual Studio Code's LSP.

Finally I recommend enabling auto-revert-mode, so that Emacs keeps itself automatically in sync with changes made to a file outside itself. This is built into Emacs.

[–] bitwize@alien.top 1 points 11 months ago

Yeah, t and nil are self-evaluating symbols in Lisps that use them, like Common Lisp and Emacs Lisp. Don't sweat it, just keep that in mind.