5 ms·
Recently I tried to jump into scheme (I'm okish in clojure) man what a mission to install scheme on linux. I first tried todo gerbil scheme, then Ubuntu seems
by rawoke083600 4y ago
Recently I tried to jump into scheme (I'm okish in clojure) man what a mission to install scheme on linux.
I first tried todo gerbil scheme, then Ubuntu seems to have the wrong version of gambit (gerbil-scheme runs optop of gambit-scheme for those that don't know).
That took a few hours of compiling, reading, trying diff versions always ended in some deadlock-issue ??
Then I tried Guile,was a little better and easier, but soon got stumped when I wanted to access mysql-db yes there are packages but those packages I couldn't install for the life of me !
In the end chicken-scheme was surprisingly easy and complete solution for a hit-the-ground-running scheme.
Now I'm prob a noob as it comes to scheme, but not to fiddle and massage packages and programs on linux. Trying to learn scheme but spending a few hours just to get it installed was what killed it for me.
Clojure is certainly not perfect, but you could get up and running much faster in my opinion. Oh and it uses square brackets for parameters :)
- pjmlp 4y agoNext time just install Chez Scheme or Raket, they work perfectly fine straight out Ubuntu repos.
- medo-bear 4y agobesides having the best mascot, just curious why you would start with gebril? esp for a newbie. surprised you didnt just pick racket not an expert but i believe you should use guix for anything guile related > Oh and it uses square brackets for parameters :) for many lispers this is a negative because they see as a big positive the manimal (no) syntax value proposition of lisp. besides if you use emacs you can easily (if you are a lisper) make it do something like having parameters highlighted without introducing additional syntax in the underlying language
- bakul 4y agoGambit scheme also just works. That's what I use on FreeBSD, MacOS (m1 and x86-64), Ubuntu and Raspbian. Had a version running under plan9 as well but that was a long time ago.
- vkazanov 4y agoOne (non?) problem with Scheme is that it is has a long history of being a language implementation research device. This is why it is relatively easy to implement, and this is why there are so many implementations. At least it didn't go the way beautiful Standard ML went!
- bmitc 4y ago> At least it didn't go the way beautiful Standard ML went! It blows my mind how under appreciated MLs are.
- vkazanov 4y agoHaskell is relatively popular of the lazy crowd. Eager Ocaml is not thriving but is definitely very alive. But Standard ML is the cleanest of the bunch, and creators kind of suppressed its development until it faded away completely.
- dig1 4y agoNot sure why you went with Gerbil/Gambit - Gambit is usually marked as a hard-core Scheme, and you usually go with it if you need an excellent optimizing Scheme compiler without too much dance around it (it has a minimal interface). For Guile, you usually rely on OS package management to get modules or go with Guix. But if you want a "download, unpack it, run" Scheme, you go with Racket [1]. Tons of documentation, a good-enough JIT compiler, and usually everything works. You get an amazing IDE with it (DrRacket) with many advanced features yet to be found in modern IDEs for popular languages. > Oh and it uses square brackets for parameters Most modern Scheme implementations make square brackets and parenthesis equivalent. E.g. (let ((a 1) (b 2)) ...) ;; is the same as (let ([a 1] [b 2]) ...) [1] https://racket-lang.org/ https://racket-lang.org/
- bmitc 4y agoInstalling Clojure, because of its dependence on Java and plethora of IDEs, is a major pain in my experience. I have tried several times and usually just give up because I find it difficult to get up and running with a simple project that allows me to write code. I don’t understand the seemingly complicated project systems. It takes literally just a few minutes to download, install, and get going with Racket, Elixir, and F#. It’s the main reason I have not got into Clojure yet, despite trying.
- salad-fan 4y agoYep your experience is (sadly) not even remotely unusual, and Cognitect have repeatedly demonstrated that they don’t care about this issue (which will come back to bite them as the community stagnates). The “best” advice I have for Clojure beginners is to follow this guide: https://calva.io/get-started-with-clojure/ https://calva.io/get-started-with-clojure/, which will ultimately land you in a solid VSCode-based IDE environment for Clojure. That’s not how I personally like to approach a new language mind you (REPL from the command line plz), but I’ve pretty much given up trying to get Clojure beginners started there as there are just too many moving parts that can go wrong, and unjustifiable frictions.
- germandiago 4y agoTry this: https://janet-lang.org/ https://janet-lang.org/
- likeclockwork 4y agopacman -S clojure ? Just install it with your distro's package manager. I have no idea why the official instructions only involve brew (wtf?) but it's in the repo of most distros now.
- didibus 4y agoI think it's just bad online tutorials and guides. It's not any more complicated in practice than any other language I've tried, maybe with the caveat that getting a REPL running and connected is more work than an only static analysis based IDE.
- mhitza 4y agoIf you've went with chicken scheme, I recommend installing it from source code (has very few dependencies, so it isn't a time wasting process). The reason being that with the version that you might get from the OS package manager static libraries aren't shipped (at least that was the case in Fedora) and you won't be able to build statically linked executables. The other upside of using chicken is that their FFI interop with C is really streamlined. From one of my projects; in order to expose the `getpass` C stdlib function in my program I only had to write the following line (bind "char* getpass(const char *prompt);")