[Rust] Get Started
ในวันนี้เราจะมาพูดถึงเรื่องใหม่สำหรับ Blog นี้กัน แต่ก็ไม่ได้ใหม่ในโลกนี้ซะทีเดียว นั้นก็คือเรื่อง ……….
Rust นั้นเอง
Rust นั้นเป็น ภาษา Programming ที่มุ่งเน้นไปในทางด้าน ความปลอดภัย โดยเฉพาะความปลอดภัยด้านการทำ Concurrency. และอีกทั้งยังมี Syntax คล้ายกับ C++ อีกด้วย คนที่เริ่มต้นมาจากการเรียนด้วย ภาษา C++ ก็อาจจะเรียนรู้ Syxtax ของ Rust ได้ไม่ยากเท่าไหร่ ← ความเห็นส่วนตัวล้วนๆ
แต่จุด Peak ที่โด่งดังที่สุดของภาษานี้ที่ยังไงใครก็ต้องพูดถึงซึ่งก็คือในเรื่องของการจัดการ memory ไม่ว่าจะเป็นด้านความปลอดภัยหรือด้าน Performance สามารถ run บน Embeded device ก็ยังได้
เอาภาษา Rust ไปทำอะไรได้บ้าง?
- สร้าง Command-line app
- ทำ WebAssembly
- ทำ Networking
- สร้าง Program แล้ว รันบน Embedded device
เอาละเราเกริ่นกันมาพอสมควรแล้ว รันมาลอง install แล้วhello-world กันดีกว่า
Installation
สำหรับคนที่ใช้ macOS, Linux หรืออะไรก็ตามที่เป็น Unix base สามารถ install ได้ด้วยคำสั่งนี้ไปเลย
curl https://sh.rustup.rs -sSf | sh
แต่สำหรับคนที่ใช้ Windows จะต้องโหลดตัว Installer มา แต่ถ้า Windows ของคุณมี Subsystem สำหรับ Linux ก็สามารถใช่คำสั่งเดียวกันได้
ถ้าคนที่ใช้ Windows เข้า Links นี้ไปจะเห็นปุ่มให้ Download installer เลย แต่ถ้าเป็น macOS, Linux หรืออะไรก็ตามที่เป็น Unix base จะมองไม่เห็น จะเห็นเพียง คำสั่งที่กล่าวไปข้างต้น
พอรันคำสั่งก็จะมีหน้าตา Prompt รอให้เราเลือกว่าจะลงแบบ Default ไปเลยหรือ Customize หรือยกเลิก สำหรับผมเลือก 1 เพื่อ Default installation
พอเสร็จแล้วก็จะได้หน้าตาแบบรูปด้านบนมา จะเห็นว่ามีคำอธิบายอยู่ว่า จะมีให้เรารันคำสั่งเพื่อให้มี Cargo’s bin directory ใน PATH environment ด้วยการรันคำสั่ง
source $HOME/.cargo/env
แล้วไอเจ้า Cargo นี้มันคืออะไรละ?
มันคือ Build tool และ Package manager ของ Rust นั้นเอง เจ้าตัว Cargo เนี่ยทำได้หลายอย่างเลย เช่น
- build project ด้วยคำสั่ง cargo build
- run project ด้วยคำสั่ง cargo run
- test project ด้วยคำสั่ง cargo test
- build documentation สำหรับ project ด้วยคำสั่ง cargo doc
- publish library ไปที่ create.io ด้วย cargo publish
อยาก Test version ของ cargo ใช้ไหมละ รัน
cargo --version
Editor สำหรับ Rust
- VS Code
- Sublime text 3
- ATOM
- IntelliJ IDEA
- ECLIPSE
- VIM
- EMACS
แต่ตัวผมจะเลือกใช้ VS Code เพราคุ้นเคยที่สุด แล้วต้องทำอะไรใน VS Code บ้าง
- Ctrl + P เพื่อพิมพ์ Command ด้านล่าง
ext install rust-lang.rust
เสร็จละ มีข้อเดียว เพื่อลง Extension ของ Rust
มาสร้าง Hello world กันเถอะ
เริ่มต้นด้วยคำสั่ง
cargo new hello-rust
สร้าง เรียบร้อย แล้วเราได้อะไรมาบ้างละ
cargo.toml เป็น manifest file สำหรับ Rust เป็นไฟล์ที่เอาไว้เก็บ metedata ของ Ptoject รวมไปถึง Dependencies ด้วย
src/main.rs เป็นที่ๆเราจะเขียน Application ของเรากัน
แต่ลืมอธิบายไป ว่า คำสั่ง cargo new เนี่ยมันจำทำการสร้าง Hello, world project ให้กับเรา และเราสามารถรัน Program นี้ด้วยคำสั่ง cargo run แต่อย่าลืมเข้าไปใน Directory ของ Projectนั้นๆ ด้วยนะ
ก็จะได้อะไรออกมาประมานนี้จาก Code ที่คำสั่ง cargo new generate ให้
อยากใส่ Dependencies ทำยังไงดี?
ให้ไปที่ไฟล์ Cargo.toml แล้วก็จะเห็นหน้าตาเป็นแบบนี้
แล้วจากนั้นเราก็แค่ใช้ชื่อ dependencies กับ version ที่ต้องการภายใต้หัวข้อ dependencies สมมุติว่าเราอยากลง ferris-says
ก็จะได้เป็นแบบนี้ หลังจากนั้นให้รัน cargo build เพื่อที่ cargo จะได้ install dependency ให้เราก็จะเห็นอะไรประมาณรูปด้านล่างนี้
มาลองใช้ Dependency ที่เราเพิ่งลงกันเถอะ
use ferris_says::say;
ใช้ Code ด้านบนเพื่อเรียกใช้ Dependency
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};fn main() {
let stdout = stdout();
let out = b"Hello fellow Rustaceans!";
let width = 24;let mut writer = BufWriter::new(stdout.lock());
say(out, width, &mut writer).unwrap();
}
Code ด้านบนนี้หาได้จากเว็บ get-started ที่ให้ไปข้างต้น เมื่อเรารันก็จะได้อะไรน่ารักๆ แบบนี้
ยาวเหมือนกันนะเนี่ย เริ่มขี้เกียจตั้งแต่เขียนได้ครึ่งทาง แต่อยากเขียนให้จบเพื่อผู้อ่านทุกท่าน สำหรับรอบนี้ ลาแล้วจ้า