Re: [公告] 本板歡迎討論 Crystal 程式語言
: 推 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://www.ptt.cc/bbs/Ruby/M.1488113920.A.EFA.html
推
02/26 21:08, , 1F
02/26 21:08, 1F
推
02/26 21:09, , 2F
02/26 21:09, 2F
有些地方不太一樣啦,例如沒有全域變數($)、同樣功能的方法不會有多個命名(alias)
容器(如 Array、Hash 等)進行空白宣告的時候要指定元素型別、
或是有為了加速而出現的靜態陣列(StaticArray、BitArray)或是 Tuple 之類的XDDDD
※ 編輯: david50407 (114.33.26.84), 02/26/2017 21:15:22
→
02/27 01:41, , 3F
02/27 01:41, 3F
→
02/27 01:41, , 4F
02/27 01:41, 4F
有人寫的話最棒惹 ヾ( * ∀ * )ノ 不會跟你搶XD
推
02/27 07:38, , 5F
02/27 07:38, 5F
※ 編輯: david50407 (114.33.26.84), 02/27/2017 14:36:24
推
02/27 17:53, , 6F
02/27 17:53, 6F
推
02/27 21:21, , 7F
02/27 21:21, 7F
推
02/28 19:33, , 8F
02/28 19:33, 8F
推
03/04 01:17, , 9F
03/04 01:17, 9F
推
03/15 07:07, , 10F
03/15 07:07, 10F
這裡有人做了簡單的 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
推
06/15 20:25, , 11F
06/15 20:25, 11F
幫 QQ 啊不是 我是說 幫推個
※ 編輯: david50407 (220.134.184.214), 06/22/2017 02:05:03
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章