Thanks for all the words folks!
I confess the thoughts about "Guile is crap" is reasonable for some people, especially when you compare Guile to Chez and Racket. We can't ignore the quality of Chez and Racket.
People always have choices, some would choose performance, some choose rapid development, some choose popularity. I choose to grow up with Guile. Of course, I can choose to grow up with anything, but I choose Guile, and I've learnt many things. When I came to Guile community 10 years ago, I know nothing, I just want to start to learn. And many people here helped me a lot, I mean, on many things about programming, not only the knowledge of Guile. It's my great appreciation to this community, so that I keep contributing to Guile. And I don't believe Guile is crap when there is such a community around it.
Back to the reality.
We use Python in product, alghouth GIL fucked us a lot on performance. Alright, we endure it, who doesn't nowadays? In 2019, DevOps department told me many problems about Python, yes, it's in a critical year to upgrade to Python3. We can upgrade our code, but there're lot of dependencies choose to stay at Python2 at present, maybe they will change later, but we are going to deliver soon. We can't wait.
All these issues are ignored by developers, because they just enjoy the convenience from Python, they care less about deployment. DevOps people are not happy. BTW, Guix may help on this issue, but it's still not mature enough, I'm expecting use it someday with full of hope.
Fortunately Guile saved us, and we replace Python with Guile as scripting language. Guile's FFI is easy to use compared to CPython, so that we can do it rapidly without any pain. The machine learning part has to stay with Python, but the situation is much better, although we have to introduce complex IPC architecture. If someday we can use Guile for machine learning, then it's perfect.
Someone once asked me how to hire Scheme people. Well, the answer is easy, we don't do that. We hire Python people, C++ people, then train them with SICP. They become usable Scheme developer within a month. Scheme is easy to learn with so many classical books, and we take this benefit.
It seems Scheme wins here, but why not Chez or Racket? (I mention these 2 because they are mentioned in this thread)
I was planning to use Chez in the product, and I even prepared all things to start. But I really need keywords which is not in RnRS. I've asked this in Chez community, and to someone here may know this issue on GitHub, it's strongly rejected by the author. I'm not here to complain or blame anyone, everyone has choices. So Racket and Guile are left in my arsenal.
It's really hard to make a choice between them. Racket is good, and I have several developers graduated from universities like Waterloo which teaches Racket so that we can take it easily.
Finally we choose Guile because I have GNU Artanis for Restful WebAPI. It's functionalities are rich so that we can save some time. No mention we may have Lua or Python3 (4 maybe) on Guile later. My guile-lua-rebirth is ready, but it's no hurry. Thanks for Guile's compiler tower, so that we may add new languages and reuse existing Guile modules in other languages on Guile.
Guile 2.9.0 with JIT is a surprise to me that it accelerates amazingly. I've been learning how to implement high performance optimizing compiler with CPS according to Andy Wingo's work. It's interesting. I'd like to make a similar thing for embedded system. Good luck to me, if I made it finally, I can use Scheme everywhere in our product.
Dear folks, with all these things above, do you still think Guile is crap?
Mikael Djurfeldt <address@hidden> writes:
> It was a great experience and joy for me to meet some of you at FOSDEM
> 2019. Thank you all!
Thank you, too!
> Now a piece of advice.
> Everyone who works with Guile knows that it's crap and look with envy at
> projects like Chez and Racket, right?
I’ll ignore for a moment that this is a rhethoric method and answer
directly: No, I don’t think that Guile is crap. It is actually really
good, and while there are missing parts, I enjoy working in Guile more
than I enjoy working in Python. Even when I use parentheses :-)
The talk by Christopher Webber basically described the importance of
shiny — all the bits other people already polished. A similar argument
cuts for using Python, and even Java.
This does not make it invalid: Chris is right that shiny is important;
but it is not all-important, especially not in the long run. And
different from many other projects, Guile takes the long run seriously.
And seeing my scripts finish within 60ms is impressive. It’s not yet
perl-level startup-time, but it already beats Python (by a narrow margin).
> That is all good, unless it hurts the sense of meaning and joy in your
Thank you for these words!
> I think it is pretty strong and impressive, and I wouldn't like to live
> without it. It's especially important to look at Guile as a good breeding
> ground for new amazing work.
> That said, we should steal and collaborate all we can!
heißt politisch sein
ohne es zu merken