TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Behind the Scenes with Chicken Scheme

145 点作者 fogus大约 12 年前

6 条评论

thecombjelly大约 12 年前
I learned lisp a few years ago originally with Paul Graham's ansi common lisp and built a few products in various common lisp systems but after a while I really fell in love with scheme. I tried out numerous scheme ecosystems and fell in love with chicken very quickly.<p>Since I found chicken scheme I have used it do everything I can. I have built numerous web applications using it and it always makes my happy inside; something I can't say for other ecosystems. It also works great for scripts and interfacing to system libraries.<p>And of course the community is amazing. Even when I was new to lisp and chicken my questions and patches were always taken seriously and responses are always kind and helpful.<p>As felix mentions chicken scheme is really fast. Even on websites with moderate load and very little performance profiling or caching my dynamic pages are very consistently generated in less than &#60;20ms. If you go a bit further and give the compiler hints it gets even faster. And if it isn't fast enough yet you can embed C code straight in your lisp source files.<p>It is tough to beat a language and ecosystem that nearly never gets in the way, is easy for rapid prototyping, and gets great performance when you need it.<p>As mentioned, Henry Bakers "Cheney on the M.T.A"[1] is a great read. I have used it to implement a scheme system as well.<p>In summary: use chicken scheme if you want a nearly mature, production ready, rapid prototyping, statically or dynamically typed, fast, easy to use, and powerful language and ecosystem.<p>edit: Another really cool feature of chicken scheme is the ability to serialize continuations. It can be used to make an extremely powerful stateful web app that operates like arc and hacker news.[2] Since you can serialize the continuations you can write the state to a file and you won't lose the state when you restart the app or the server crashes.<p>[1] <a href="http://home.pipeline.com/~hbaker1/CheneyMTA.html" rel="nofollow">http://home.pipeline.com/~hbaker1/CheneyMTA.html</a><p>[2] <a href="http://wiki.call-cc.org/eggref/4/suspension" rel="nofollow">http://wiki.call-cc.org/eggref/4/suspension</a> and <a href="http://www.paulgraham.com/arcchallenge.html" rel="nofollow">http://www.paulgraham.com/arcchallenge.html</a>
评论 #5646024 未加载
评论 #5646815 未加载
sgrove大约 12 年前
<i>"But what really makes CHICKEN special is its community. A group of helpful and faithful fanatics is actively maintaining and improving it, sometimes at a frightening pace. If you need help, ask on the mailing lists or IRC channel and you get it. Always."</i><p>I can attest to this - I played around making a 3d engine in Chicken, and the IRC channel was both super helpful, and simply nice. It's wonderful to deal with smart, nice people. Interestingly, #clojure is similarly full of nice, smart people.<p>As for the language and tooling itself, it's also extremely nice. Binding to C libraries was simple, even for someone doing it for the firs time. The emacs integration was tight (not as tight as slime, but still nice). It just felt like a productive ecosystem.
gecko大约 12 年前
The original title of this was correct, guys; the product is named CHICKEN. I'm not sure why the casing got altered.
melling大约 12 年前
Every now and then I get the urge to try Scheme in my iOS app. I google'd and found this:<p><a href="https://github.com/outworlder/beamrider" rel="nofollow">https://github.com/outworlder/beamrider</a><p>Anyone using Scheme in a shipping mobile app? Does it work well in practise or are there a lot of hurdles?
评论 #5646147 未加载
评论 #5645964 未加载
评论 #5646022 未加载
jopython大约 12 年前
My only gripe with Chicken,is that it has support only for green threads. Otherwise it is one of the best scheme implementations you can get your hands on.
oskarkv大约 12 年前
Does Chicken have immutable data structures? How about typeclasses/protocols? How about literal syntax for hash maps, sets, vectors/arrays?<p>I'm coming from Clojure, and I'm interested in Chicken. I really like the things mentioned above about Clojure and I am just interested in how Chicken compares when it comes to these things.
评论 #5672719 未加载