作者david50407 (Davy)
看板Ruby
标题Re: [公告] 本板欢迎讨论 Crystal 程式语言
时间Sun Feb 26 20:58:29 2017
: 推 david50407: 太好了XDD 顺便求大家帮忙翻译 tw.crystal-lang.org 02/22 13:44
: 小弟我不知道 Crystal 社群需要这个
: 可否写个文章说明一下如何帮忙
: 搞不好大家可以见证一个新语言的成长 (挺)
其实一开始我是有打算跟着版工在板上 PO 一篇「用 Crystal 写 Gem」的教学文的
(可是工作跟学业繁忙就(ry)
关於
http://tw.crystal-lang.org 的部份是
我在接触了 Crystal 这个语言之後发现在台湾玩的人好像很少,
(或是还没看到社群)
不过看到 Crystal-JP 日本的社群还满活跃的,所以异想天开地就在 GitHub 上面
(一开始真的是异想天开想说自己有没有机会也来带起这个风气(?)
开了一个 Organization 看能不能作为 Crystal Taiwan Users Group 的根据地,
(网址在此:
https://github.com/crystal-tw )
里面已经先拉了几个也有兴趣的朋友进去帮忙翻译,
这边先说说如果大家对於 Crystal 有兴趣或是想帮忙贡献翻译的话,
这里有几个入门的方式给大家参考,先说说怎麽玩 Crystal:
首先是直接从中文入门文件开始看(就是等等我们要来翻译的那个),
网址:
http://tw.crystal-lang.org/docs/
不过里面也是部分翻译而已,大部分的内容还是原文……
然後对应原文版本的网址都是将 tw. 去掉就可以了
(例如中文页面是 http://tw.crystal-lang.org/docs/installation/
那麽原文网址就是 http://crystal-lang.org/docs/installation/ )
照着里面的安装步骤就可以把 Crystal 装起来,
如果你是想要自己编译 Crystal 的,还是要请你先取得一个可以用的 Crystal binary
因为 Crystal 现在是自编译的(用 Crystal 编译 Crystal)。
最基本的 Crystal 用法有两种,一个是直接执行,另一种是编译成执行档——
假设我们现在有一个范例程式(hello_world.cr):
puts "Hello, World!"
对的,Crystal 的语法跟 Ruby 有 87% 像呢,所以熟悉 Ruby 的同学可能会觉得我
胡咙大家,怎麽会拿 Ruby 的程式来跑,但这的的确确是合法的 Crystal 程式哦 >.0
(一)直接执行的用法
$
crystal hello_world.cr
Hello, World!
$
预设状态下,Crystal 会将吃进来的程式码编译到 /tmp 下面存放并执行,
感觉就好像是直接执行
ruby xxx.rb 一样,但在 Crystal 的世界里面其实
一切都要先编译过才会执行。
(二)编译成执行档的用法
$
crystal build hello_world.cr
$
./hello_world
Hello, World!
$
当执行
crystal build 的时候,他只会进行编译并产生一个同名的执行档,
就像是我们跑
gcc xxx.c 一般,我们可以直接执行产生的执行档而不需要安装 Crystal
这边关於 Crystal 更多的用法可能要之後我才有更多时间来板上跟大家多多介绍,
接下来是要进入正题——如果我想贡献翻译怎麽办?
在 Crystal-TW 下面,分别有两个 Repo,一个是首页的仓库,一个是入门文件的仓库
https://github.com/crystal-tw/crystal-tw.github.io 是首页的仓库,
目前只有翻译了首页的部分,并在页尾加上了 Crystal-TW 的相关资讯,
不过我希望有机会的话也能把原文站的 Blog 也翻译过来,里面的内容也是满有趣的
这边跟原文站用到的工具相同,都是 jekyll,可以直接在 GitHub Pages 上面 render
如果有兴趣的同好可以帮忙翻译看看 blog post 的地方……
因为我现在主要注意的是入门文件的部分。
再来是
https://github.com/crystal-tw/docs 这部份就是前面大家看到的入门文件,
虽然我自己喜欢叫他入门文件,因为里面的内容真的满简单的,也很基础,
不过原文其实是直接叫 Docs 了,这部份是我有空就会翻译,
然後基本上有 PR 就会 Merge,这边用的工具是 Gitbook CLI(跟原文一样)
这边如果大家有兴趣翻译的话可以先看看 README.md 里面有一些说明,
还有如果有任何的想法欢迎开 issue 出来讨论或是在 Crystal-TW 的 Gitter 上面讨论
大家可以 fork 回家,然後改好之後送 PR 到
master branch,
不是 gh-pages 哦,Travis CI 会在 master 有变动的时候跑 gitbook build 出
static pages 并 commit 到 gh-pages,所以大家只要安心的送 PR 到 master,
网站就会更新了!
(这部份是参考原来 Crystal 跟 Crystal-JP 的设计,如果有更好的方法欢迎提供 :D)
然後基本上最小的要求就是可能要符合 README.md 上的要点,如果你觉得哪里做的不够好
欢迎直接上来讨论 <(_ _)>
最後你可能会问,那 API 文件呢?需不需要翻译?
因为目前 API doc 是根据 Crystal 原始码自动产生的,我个人是觉得不太好 sync
但如果有人有兴趣的话我们也可以一起来讨论,
另外就是因为我最近比较忙一点点点点,所以如果有勇者可以来帮忙维护 PR 品质的话
我也绝对可以给你 Organization 的权限XDDDD"
最後的最後,Crystal 其实是很好玩的,不过还有些 Stdlib 还在改进中,
如果大家有空有机会有想法也可以在官方的 repo 开 issue 跟大家讨论
不过 Crystal 是在阿根廷诞生的,所以大部分的作息刚好跟台湾相反,请大家有耐心
我个人比较关注的 issue 是跟类别继承有关的还有 Windows porting 的部分,
(对,还没有 Windows 版)
我觉得这个语言还满有趣的,所以也可以私下来找我讨论XDDD
大概就是这样了,谢谢大家(鞠躬)
BTW, 欢迎阿公揪阿爸、楼顶揪楼脚、大家一起来推广 Crystal XD
--
Crystal-TW:
https://github.com/crystal-tw
Gitter:
https://gitter.im/crystal-tw/crystal-tw.github.io
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.26.84
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1488113920.A.EFA.html
1F:推 fouring: 推推 02/26 21:08
2F:推 Neisseria: 推 Crystal,跟 Ruby 有 87% 相似 02/26 21:09
有些地方不太一样啦,例如没有全域变数(
$)、同样功能的方法不会有多个命名(alias)
容器(如 Array、Hash 等)进行空白宣告的时候要指定元素型别、
或是有为了加速而出现的静态阵列(
StaticArray、
BitArray)或是
Tuple 之类的XDDDD
※ 编辑: david50407 (114.33.26.84), 02/26/2017 21:15:22
3F:→ danny8376: QQ 抱歉我挂group却还没commit(? 02/27 01:41
4F:→ danny8376: 不要跟我抢"用 Crystal 写 Gem"(X 02/27 01:41
有人写的话最棒惹 ヾ( * ∀ * )ノ 不会跟你抢XD
5F:推 a73126: 推Davy 02/27 07:38
※ 编辑: david50407 (114.33.26.84), 02/27/2017 14:36:24
6F:推 firejox: 推推(=゚ω゚)ノ 02/27 17:53
7F:推 freetsubasa: 推Davy 02/27 21:21
8F:推 CP64: 围观推 Davy 02/28 19:33
9F:推 davidyun: 推 03/04 01:17
10F:推 abc0: 超酷的! 有效能比较吗? 03/15 07:07
这里有人做了简单的 Benchmark
https://github.com/kostya/benchmarks
你可以参考看看
还有如果想作 web server 的话,这里有简单的 golang/nodejs/crystal 比较
http://blog.seraum.com/crystal-lang-vs-nodejs-vs-golang-vs-http-benchmark
当然上面的都不是最新版本,所以如果想知道目前现况的话可以拉测试脚本下来自己跑哦
※ 编辑: david50407 (140.115.204.31), 03/21/2017 20:45:40
11F:推 soheadsome: Elixir边缘人 06/15 20:25
帮 QQ 啊不是 我是说 帮推个
※ 编辑: david50407 (220.134.184.214), 06/22/2017 02:05:03