<style>
.reveal section img { background:none; border:none; box-shadow:none; }
</style>
# Ruby介紹
---
### Ruby是啥? ~~能吃嗎?~~
----
![](https://i.imgur.com/qDUoTZj.png)
<span>此Ruby非彼Ruby<!-- .element: class="fragment" data-fragment-index="1" --></span>
----
![](https://i.imgur.com/4wslvVN.png)
這味才對
---
### Ruby is an interpreted language
###### <span> 公尛<!-- .element: class="fragment" data-fragment-index="1" --></span>
----
![](https://i.imgur.com/3BG81vt.png)
----
一般最常接觸的程式語言:
* (低 - 組合語言) x86
* (中 - 編譯語言) C/C++
* (高 - 直譯語言) JavaScript
----
### 編譯語言(C/C++):
<span>整份程式碼 ─(編譯)→ 機器碼 → 執行<!-- .element: class="fragment" data-fragment-index="1" --></span>
<br><span>
### 直譯語言(Ruby/Python):<!-- .element: class="fragment" data-fragment-index="2" --></span><span>
一行程式碼 ─(直譯)→ 虛擬環境 →
機器碼 → 執行<!-- .element: class="fragment" data-fragment-index="3" --></span>
----
| 編譯語言 | 直譯語言 |
| -------- | -------- |
| 執行速度快 | 可立即得知執行結果、<br>動態執行 |
| 撰寫規則(語法)<br>嚴謹 | 語法相對寬鬆 |
| 開發速度慢 | 開發速度快 |
---
### 阿所以, 跟Python有啥差別?
----
### 共通點<span>
* 都有一堆內建的函式庫<!-- .element: class="fragment" data-fragment-index="1" --></span><span>
* 撰寫相對簡單(e.g.鴨子形別)<!-- .element: class="fragment" data-fragment-index="2" --></span><span>
* 直譯器(跑起來有點慢)<!-- .element: class="fragment" data-fragment-index="3" --></span>
----
| **Ruby** | **Python** |
| -------- | -------- |
| 社群主流為網站開發 | 社群主流為科學研究 |
| Code直覺、優雅 | Code一般可讀性較高 |
| 撰寫相對靈活 | 撰寫規則相對嚴謹 |
| 資源相對較少 | 資源相對較多 |
<br>
<span>
Q: 為什麼Ruby資源比較少?<br><!-- .element: class="fragment" data-fragment-index="1" -->
</span>
<span>
A: 歷史共業<!-- .element: class="fragment" data-fragment-index="2" -->
</span>
----
### 最大的差異: 語言設計的"哲學"
<br>
<img src="https://upload.wikimedia.org/wikipedia/commons/f/f1/Ruby_logo.png" style="width:64px;margin:-10px"> <span> 一件事情, 應有不止一種方法去完成</span>
<br><br>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1024px-Python-logo-notext.svg.png" style="width:64px;margin:-10px"> 一件事情, 最好只用一種方法去完成
----
### 更多的比較:
[Geeks for Geeks](https://www.geeksforgeeks.org/python-vs-ruby/)
---
### 優勢?
----
### 更快的開發速度
### 更彈性的coding style
----
![](https://i.imgur.com/hr9r20F.png)
----
![](https://i.imgur.com/9wicaBS.png)
----
![](https://i.imgur.com/YQUFdXw.png)
<span>
Don't do this...<!-- .element: class="fragment" data-fragment-index="1" -->
</span>
---
### 想要寫出魔法般的神奇code嗎?
### Welcome to Ruby!
---
教材參考:
* https://www.tutorialspoint.com/ruby
* 張欽圳教授與他的Python課程教材
---
下一章: [環境架設](https://hackmd.io/@KAc1h0HBTd-XyG31w7-GDA/rJHYcGlBH#/)
```
______ ____ ______
| ____/ __ \| ____|
| |__ | | | | |__
| __|| | | | __|
| |___| |__| | |
|______\____/|_|
source: http://patorjk.com/software/taag/
```
{"metaMigratedAt":"2023-06-14T22:52:49.122Z","metaMigratedFrom":"YAML","title":"Ruby Introduction","breaks":true,"description":"Same as title","slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"28073587-41c1-4ddf-97c8-6df5c3bf860c\",\"add\":9863,\"del\":9386}]"}