Live data from Hacker News

Chez Scheme is now free

github.com

101–110 of 185 posts

Re: Chez Scheme is now free

#101

Someone explain to me: Chez vs Gambit vs Chicken vs Bigloo. Which do I pick? Especially interested in parallel/multithreading abilities, standards compliance, and overall performance.

Out of the four you mentioned, only Chez has true posix threads.

Re: Chez Scheme is now free

#102
post #49

Earlier quoted context omitted.

(Cadence for those who don't know are basically the equivalent of SolidWorks for anything in EE. They are the only company ( maybe Synopsis or Mentor, but I think there are a few holes here and there) on the planet that lets you go from designing something as simple and low level as an analog jellybean op-amp (with state of the art EM and S-param simulation) and verification, to RTL design (full power simulation and…

I'm pretty sure that the Cadence you're thinking of is not the Cadence that owned Scheme. Cadence Research Systems was afaik a tiny entity that mainly owned Chez Scheme.

Yeah, it's a sifferent company. I doubt Cisco could even afford an EDA vendor other than little Mentor. Parent is also wrong about Cadence being only one that can do each of the major jobs: all of them have products for that. Too many to keep travk of actually.

Mentor has an advantage since they acquired Tanner, best of the budget ones.

Re: Chez Scheme is now free

#103
post #41

Earlier quoted context omitted.

I thought scheme was like the beatles - people universally only had good things to say about it.

I newly joined this company, and they have 20 years old codebase which is mix of C and Scheme code. The only way they debug the massive Scheme part is using print statements. And I only have bad things to say about that. :( If there's a better way all of them have been missing, I'd love to hear that. I've learned that they have adapted the MIT Scheme implementation to add Object Oriented features, and it "kind of" wo…

Pretty much every 20 year old codebase is a mix of terrible stuff. The exceptions are rare and usually involve a strong handed dictator who is willing to make cleanups from time to time.

You're lucky it isn't Fortran and a homegrown (crappy) macro language.... You can't fairly judge Scheme or C from a legacy codebase unless you judge every other language that way too.

Re: Chez Scheme is now free

#104
post #87
post #42

Earlier quoted context omitted.

>OberonSystem can build the whole compiler, OS, and applications in around 3 seconds. I'm not usually given to short, low-content comments here on HN, but: wow!

Staying on the low-content theme . . . that's just how awesome Wirth et al are.

Fast compile times are cool, but I've never heard anyone say they liked programming in a language that Wirth created. The possible exception is Delphi as a Pascal derivative, but that has very little to do with wanting to program in Pascal.

Re: Chez Scheme is now free

#105
Wow, this takes me back. I took intro CS at IU in 1993. At that time they were still teaching Scheme, using George Springer's Scheme and the Art of Programming and something like The Little Schemer (but not that because I guess it didn't come out for another two years). Delightful language with a really clean library. I always found Common Lisp's naming conventions to be—dare I say it?—PHP-esque in their irregularity. Scheme, meanwhile, actually has naming conventions. :)

Re: Chez Scheme is now free

#106
post #77

Earlier quoted context omitted.

>there is a reason that C is the foundation of computing rather than Lisp. I don't think anybody really thinks otherwise anymore. C is not the foundation of computing. Why would you say this? >Likewise, Scheme implementations have mutable hash tables, but they're written in C and not Scheme. A native code compiler written in Scheme would have its hash table implementation also written in Scheme. >I don't know how you…

C is the foundation of computing in the sense that essentially every programming language and operating system is written in C or C++, and those are the tools that enable every other piece of software. More precisely, I would say that C is the foundation of software; it's how we stopped throwing out our programs when we changed computers. The first portable operating system kernels were written in C. I guess I could…

> To actually be bootstrapped, they had to add all this other stuff like vectors and hash tables.

Just like C had to add things like arrays to the Turing machine? C doesn't even have hash tables in the spec! According to your definitions, C is a toy language.

Re: Chez Scheme is now free

#107

Someone explain to me: Chez vs Gambit vs Chicken vs Bigloo. Which do I pick? Especially interested in parallel/multithreading abilities, standards compliance, and overall performance.

This page has a useful comparison between various scheme implementations. It's written by one of the authors of Guile Scheme: https://wingolog.org/archives/2013/01/07/an-opinionated-guid...

Re: Chez Scheme is now free

#108
post #36

Dybvig's compiler course was exemplary. Say what you may about Scheme, you learned so much more in those classes. His Scheme Programming Language book is highly recommended. Especially check out his extended examples chapter: http://www.scheme.com/tspl4/examples.html#./examples:h0

I was fortunate enough to take both his compiler course as well as a follow-up course involving optimization and hygienic macros. Brilliant man, fantastic teacher, and of course, he wrote a great compiler :)

Re: Chez Scheme is now free

#109
post #98
post #50

Earlier quoted context omitted.

I might not be getting a reference here, but FWIW, I had a recent experience with Scheme that was interesting. I did SICP nearly 19 years ago as a freshman, in 1997. And then a few months ago, I ported the metacircular-evaluator -- the "crown" of the course -- to femtolisp (the Lisp implementation underlying Julia). My thoughts were: 1) It sure is awkward to represent struct fields 1 2 3 as (cdr struct), (cadr struct…

> 1) It sure is awkward to represent struct fields 1 2 3 as (cdr struct), (cadr struct), (caddr), ... The Right Way to do this is with a D-List, or Detached List, analogous to an A-List or a P-List. An A-List, if you recall, is a list of key-value conses. A P-List is a list of alternating key-value pairs. A D-list is a cons of a list of keys and a list of values, i.e.: ((key1 key2 ...) val1 val2 ...) D-lists are supe…

Interesting. I've never heard of D-list nomenclature before.

With the A-list method you typically need to write a "zipper" function, that recursively conses the heads of two lists to generate the A-list. Makes "apply" an expensive operation with needless allocations.

What's great about D-lists is that the "make-env" method is just a single cons operation. Clearly superior. I'm surprised its not more well known.

Re: Chez Scheme is now free

#110
post #98

Earlier quoted context omitted.

> 1) It sure is awkward to represent struct fields 1 2 3 as (cdr struct), (cadr struct), (caddr), ... The Right Way to do this is with a D-List, or Detached List, analogous to an A-List or a P-List. An A-List, if you recall, is a list of key-value conses. A P-List is a list of alternating key-value pairs. A D-list is a cons of a list of keys and a list of values, i.e.: ((key1 key2 ...) val1 val2 ...) D-lists are supe…

Interesting. I've never heard of D-list nomenclature before. With the A-list method you typically need to write a "zipper" function, that recursively conses the heads of two lists to generate the A-list. Makes "apply" an expensive operation with needless allocations. What's great about D-lists is that the "make-env" method is just a single cons operation. Clearly superior. I'm surprised its not more well known.

> Clearly superior.

Thanks.

> I'm surprised its not more well known.

Yeah, me too :-(

Post reply on HN