Post AVupA0GvciaxvKxSts by rml@functional.cafe
(DIR) More posts by rml@functional.cafe
(DIR) Post #AVup9x09mcOfmS5WqG by rml@functional.cafe
2023-05-20T15:29:24Z
0 likes, 0 repeats
I think something the scheme community could learn from Haskell is to lean-in on it's prestige. I see so many people post about how they were never able to figure out how to use scheme in any practical way, and most schemers I've spoke to said it took them about a year to get really compfortable. But I think the #scheme community has traditionally advertised it as "so easy, you can learn it in an afternoon!", and so people, often times already coming from some other #lisp like #clojure, expect to be able to just pick it up, and when they fail to they think the language is lacking. But nobody comes to #Haskell with such expectations, and the Haskell community never advertised it as super easy and quick to learn. In my experience, Haskell has always been sold as "takes time to learn, but is worth it".
(DIR) Post #AVup9xjt2ayc4HU37Y by ramin_hal9001@emacs.ch
2023-05-20T16:02:50Z
0 likes, 0 repeats
@rml If you were only interested in computers as a brute-force calculating tool, or interested only in the business side of #software, you aren't interested in #Lisp because it lost out to languages like Python, JavaScript, C/C++. So I think any Lisp will only attract people who are interested in lambda calculus and/or programming language theory, and/or maybe people interested in dependent typing, like anyone who has run across the work of Dan P. Friedman.I assume it is not just me that the reason Scheme is appealing is because it is a well-designed minimal Lisp. And just being able to understand, from a pure computer science perspective, the deep philosophical implications of what a "well-designed, minimal Lisp" even means has already narrowed down the pool of potential converts to a tiny minority of people.But the fragmentation is still the biggest problem. The absolute first question I had when I wanted to get started with #Scheme was, "which implementation should I use?" And immediately it becomes clear that once you have picked one, it isn't easy to just switch your code over to some other implementation in the case that later on you feel like the one you picked first is wrong. So there is soooo much pressure to pick the right implementation on your first try. That alone I think scares too many people away. I didn't run away because I was already committed to the idea mastering a "well-designed, minimal Lisp."
(DIR) Post #AVup9yNEgIS62JtTSC by akater@shitposter.club
2023-05-21T08:49:53.390660Z
0 likes, 0 repeats
@ramin_hal9001 @rml > Lisp will only attract people who are interested in lambda calculus and/or programming language theory, and/or maybe people interested in dependent typingI use Lisp because it offers me computing freedom unlike anything else. I don't care about lambda calculus or programming theory. It'd be nice to have better support for dependent types but it's not crucial.26% of my system packages are Lisp (mostly Emacs Lisp), and I wish it was 100%. This 0.26 number will certainly increase.
(DIR) Post #AVup9z3Q9SCE99dACu by ramin_hal9001@emacs.ch
2023-05-21T16:14:12Z
0 likes, 0 repeats
@akater @rml I use Lisp because it offers me computing freedom unlike anything else. I don't care about lambda calculus or programming theory.26% of my system packages are Lisp (mostly Emacs Lisp), and I wish it was 100%.I'll admit I was maybe over-generalizing and I didn't mean to exclude you or anyone who honestly appreciate the aesthetics or the pragmatic features of Lisp. But it does make me curious, when you say "computing freedom," what features of Lisp make it more liberating for you personally than some other more popular high-level language such as Python or JavaScript?I suppose you use #Guix OS with Shepherd? That is a good way to use Guile Scheme for a large portion of your operating system, in particular the package management and the init system. Then use Emacs on top of that and you have most of your day-to-day computing tasks covered by Lisp. You could probably also use the Nyxt browser, although the core of it is still WebKit, which is not Lisp.
(DIR) Post #AVup9zedv3yE0b2tE0 by akater@shitposter.club
2023-05-21T17:38:37.481221Z
0 likes, 0 repeats
@ramin_hal9001 @rml > what features of Lisp make it more liberating for you personally than some other more popular high-level language such as Python or JavaScript?Lisp offers “Freedom 1” (“the freedom to study how the program works, and change it”) in its fullest. Any function definition is a single M-. away to study, and it can be changed at any time, instantly. OODA loop is as short as it gets. I'm sure Emacs users read and change the code of the program they are running more than any other social group in the world.Patch the object system, alter the thing that defines local functions, extend the syntax that defines code transformers — all with immediate effects, of course — all that would probably beyond my hopes, had I settled with more popular languages. (And I had to do all the things I mentioned, due to bugs or missing features.) How about something less fancy, such as redefining a class? Looks like Python has problems even with that. This is extremely limiting.> I suppose you use #Guix OS with Shepherd?No; Gentoo.> Then […] have most of your day-to-day computing tasks covered by Lisp.Smartphone use aside, that's the case already. I have to run some daemons written in C, and the system depends somewhat heavily on Python and Perl but that's it. I just never leave Emacs, except when it crashes.
(DIR) Post #AVupA0GvciaxvKxSts by rml@functional.cafe
2023-05-21T18:44:08Z
0 likes, 0 repeats
@akater @ramin_hal9001 out of curiosity, if youre trying to increasethe percentage of your lisp based software, and are a free software advocate, why not guix? Its like the emacs of Linux distros, and its one of the most interesting codebases I've ever been in.
(DIR) Post #AVupA0rRQxnnka2coS by ramin_hal9001@emacs.ch
2023-05-22T00:43:57Z
0 likes, 0 repeats
@rml @akater Yes, I also recommend you try Guix OS, and it's "Shepherd" init system. But it definitely takes time to learn how to use it if you have never used Nix or Guix before. @akater Lisp offers “Freedom 1” (“the freedom to study how the program works, and change it”) in its fullest.I would say this is a feature of Emacs, and Emacs Lisp, but not Lisp in general. It is possible to write a fully proprietary system in Chez Scheme or a Common Lisp such as SBCL, even though the compilers are open source. And there are fully closed-source proprietary Common Lisp compilers such as Allegro Common Lisp.I think when you say Lisp gives you "the freedom to study how the program works, and change it," you might be referring to Lisp's "image based programming" model. This is where Lisp basically freezes itself when an exception is thrown, then you can make changes to the code and resume execution. The stack trace shows you every part of the program, and you can modify any part of the program in memory as it runs. You can also dump the entire program and it's state to an "image" file and load it up later.By the way, you might be interested to learn that languages like Erlang and Prolog can do this too. Erlang rather famously provides a micro-threading feature with asynchronous message passing built-in, which encourages you to structure your program as countless communicating microthreads. Not only that, but you can actually freeze any one single thread and fix a bug in it's code (as you would in Lisp) while the all the other threads in the system keeps running. It is used in telecommunication, and has a reputation for creating programs that never need to be halted (100% uptime) since you can fix bugs on live systems without shutting them down.
(DIR) Post #AVupA1OPSOApOpSxCS by akater@shitposter.club
2023-05-22T04:53:29.363404Z
0 likes, 0 repeats
@ramin_hal9001 @rml > you might be referring to Lisp's "image based programming" model. This is where Lisp basically freezes itself when an exception is thrown, then you can make changes to the code and resume executionImage-based, yes. Condition system has nothing to do with this. Functions can be recompiled without dealing with it.Erlang is famous, yes. One active member of our local Emacs community uses Elixir and seems to enjoy it, and claims they even use macros fairly often. Maybe it would be possible and beneficial to have such concurrency in a Common Lisp implementation (or in Emacs) but I have enough life goals already. 🙂
(DIR) Post #AVupA2UpM0twp1TaqG by w96k@fosstodon.org
2023-05-22T08:10:54Z
0 likes, 0 repeats
@akater Dunno about alixir, but erlang repl was quite limited, so it differs a lot comparing to CL workflow.@ramin_hal9001 @rml
(DIR) Post #AVupA3Dqecuj4eXY12 by rml@functional.cafe
2023-05-22T10:51:39Z
0 likes, 0 repeats
@w96k @akater @ramin_hal9001 it's worth pointing out #LFE, lisp flavored Erlang, which might be the nicest Lisp 2 I've played with. Been meaning to find a project to do with it, been having some ideas for a kind of minimal + extensible #activitypub implementation where every user has a configuration file, but its still fuzzy.My experiences with elixir have been pretty good. Its like python in the sense that you can figure out everything at the repl and can just jump into code and everything is obvious. And the beam is a great system. I have an old C++ programmer's allergy to the JVM, but the #beam is like a vintage spaceship from a more sophisticated age.
(DIR) Post #AVupA3nIWpGoqb7rGq by akater@shitposter.club
2023-05-22T12:03:15.750368Z
0 likes, 0 repeats
@rml @w96k @ramin_hal9001 > like python in the sense that you can figure out everything at the repl😏 Why would a Lisper consider a comparison with Python's “repl” as favorable?My experience with Python boils down to a single script I wrote for a one-time use but when I see someone dealing with Python interactively, it certainly doesn't look as smooth compared to the workflow I'm used to. A fairly well-known exposition by mikelevins confirms this: https://lisp-journey.gitlab.io/blog/how-are-lisp-repls-different-from-python-or-ruby-repls/