4 ms·
The main issue with Guile is the same issue as with any other Scheme, and that issue is that it is a Scheme. No single Scheme is widely adopted and the main rea
by muuh-gnu 13y ago
The main issue with Guile is the same issue as with any other Scheme, and that issue is that it is a Scheme. No single Scheme is widely adopted and the main reason for that is extreme balkanization. You dont write code in Scheme, you write Guile, Racket, Chicken, etc.
The Scheme philosophy, which was developed in opposition to batteries-included aka "bloated" Common Lisp, was to have a small core and emphasize simplicity, purity, etc. For years proponents of Scheme have emphasized how beautiful and simple the small standard of 50 pages is, compared with Common Lisps "bloated" 1000+ pages standard.
This had two consequences:
1. It was extremely easy to write a scheme implementation, soinstead of writing code _in_ scheme, people wrote _schemes_. Hundreds of them. And while other people spent the last 20 years writing thousands of useful libraries in C, python, java, scheme implementors spent reinventing the wheel, over and over and over and over again. Today there are more implementations of scheme than libraries in scheme.
2. The emphasis on "small core" might be cute for teaching SICP, but in order to be able to do anything useful with the implementation, it forced the implementors to reinvent the wheels for everything else. And each implementation did it their own way because standardization was considered "selling out" and aping the nemesis Common Lisp. This led to _extreme_ code unportability.
Nowadays they are somehow trying to standardize, but with the consequence that they are realizing that by doing that, they are becoming indistinguishable from their old nemesis Common Lisp, which went through the same balkanization phase 20 years ago, so the point of splitting off Scheme from Lisp is becoming questionable. Instead of wasting precious time writing 1001 scheme implementations, they could have spent the last 20 years writing useful common lisp libraries and competing with other batteries-included languages like java and python.
In short: Besides the social problems that every Scheme suffers from and the Lisp world suffered during the 80s, Guile on its own is doing quite well. Once it is integrated into Emacs, Emacs will become Guile's killer app, boost its popularity and set it apart from other schemes.
- gkya 13y agoI concur, with sorrow. Scheme is such a nice language... I believe a standardised syntax to define compound data structures (aka defstruct) and a standardised C FFI would make Scheme language usable. If these existed, I'd implement a Leiningen-ish tool and a couple libraries for Scheme, to get going with web development. (There is one more problem I have with Scheme, which is the name. It sounds identical to a vulgar Turkish word for "my penis"; resulting in awkward situations when talking about the language in Turkey, where I live. :)) edit: - the Turkish word + a vulgar Turkish word
- reirob 13y agoa very potent language :D
- gkya 13y agoI can only call it Lisp in public. Otherwise, Turkish translation of "I'm using Scheme to build this application" sounds identical to "I'm using my penis to build this application". I said the sentence at lunch in my last job, and boy, albeit we're all devs, it was awkward.
- pmelendez 13y agoI tried to search it out of curiosity but google wasn't helpful. Could you please tell us how to spelled or point to a reference?
- gkya 13y agoThe Turkish word? Sure, it is spelled as sikim, where sik [1] is the (quite vulgar) word for penis (noun, when used as verb, means to f.ck), and (i)m is the possessive affix [2]. The letter i is always pronounced like the first i in victim, and the word is pronounced like si-kim. The perception of the phrase is similar to that of my cock, rather than my penis. One might think that the similarity is so vague, that wouldn't pose a problem to speak it out loud. I, personally never recognised the similarity, until I spoke the word out loud. [1] http://www.turkishdictionary.net/?word=sik http://www.turkishdictionary.net/?word=sik [2] Turkish is slightly similar to Latin. edit: add a newline between footnotes
- srl 13y agoThe language/proof assistant coq has similar problems (damn frenchies getting their revenge).
- Flow 13y ago:-) Do you say Sch-eme or Sk-eme? I think both are ok, but please correct me if you are a native english speaker.
- davidw 13y agoAdditionally, the licensing is perhaps not quite as worry-free as something like Tcl's or Lua's. Guile is LGPL, which means you should be able to link it in without problems, but the subtleties of GPL vs LGPL are probably lost on many people, who steer clear of the whole lot. Also, at least IIRC, at one point in time you could "check in, but never leave" to hotel Guile from C code. Once you called the Guile function, you pretty much handed off control. Or something like that, my memory is a bit fuzzy. Here we go: https://www.gnu.org/software/guile/docs/docs-1.6/guile-ref/Starting-and-controlling-the-interpreter.html https://www.gnu.org/software/guile/docs/docs-1.6/guile-ref/S... So embedding Guile in something like Apache was tricky. IIRC, this is done so that Guile can GC stuff on the C stack by walking backwards and examining it. (Edit is -> was)
- davexunit 13y agoWhoa, that's guile 1.6! Guile 1.8 is itself over 3 years old and no longer supported. Check out the 2.0.x docs instead!
- davidw 13y agoWoops, you're right. That was what I bumped into at the time and searched on the "problematic" function. Looks like things have indeed improved from that point of view: http://www.gnu.org/software/guile/manual/html_node/Guile-Initialization-Functions.html#Guile-Initialization-Functions http://www.gnu.org/software/guile/manual/html_node/Guile-Ini...
- a8da6b0c91d 13y agoGo look at the projects list. Half the stuff is GPL, not even LGPL. Why are the GTK bindings GPL? If the culture is to GPL lots of libraries and projects, well that scares me away.
- davexunit 13y agoWe are truly sorry that you cannot use our free software to build proprietary software. Guile is a GNU project, thus it shares the mission of creating a fully free operating system.
- quotemstr 13y ago> Once it is integrated into Emacs, Emacs will become Guile's killer app, boost its popularity and set it apart from other schemes. You say that like Guile becoming the Emacs Lisp runtime is a foregone conclusion. It's not. The Emacs Lisp interpreter is so tightly bound to the C core (which uses lisp primitives for error handling, memory allocation, and data storage) that ripping it would involve massive modifications to large parts of that core. Even if Guile were included in Emacs, it would be running Emacs Lisp almost all the time, not Scheme. Elisp, being a Lisp-2, is much closer to Common Lisp than it is to Scheme, and the recent integration of the cl-lib package has brought it even closer. We even have a CLOS workalike. Embedding Guile in Emacs is a waste of time and energy. There are many desperately needed features in Emacs, and implementing them isn't going to be any easier after rebasing the runtime. No, being able to write code in JavaScript or Scheme isn't going to make things easier. It'll make things harder due to language fragmentation and impedance mismatches between the various languages.
- davexunit 13y agoThe idea isn't to write Emacs extensions in Scheme instead of Elisp, but to give Elisp a much more powerful environment in which to run. The Guile VM brings features such as delimited continuations, threading, and a C FFI that Emacs could benefit greatly from.
- gaius 13y agoSame as the Forth community.