Nim Language
ภาษาที่ไว และบางทีก็ไวกว่า C (มัน compile เป็น C ไหงเทสแล้วไวกว่าฟระ) แต่เขียนง่ายคล้ายไพธอน (บางส่วนก็ยังคล้าย C นั้นละ คิดว่า crystal ง่ายกว่า) ป้องกันความผิดพลาดคล้าย rust ดูเหมือนมีแต่ข้อดี ข้อเสียคือมันยังไม่ดังยังไงละ ไลบรารี่ก็เลยอาจจะน้อยไปหน่อย (แต่เยอะกว่า crystal) แถมแบ็คอัพก็ไม่ใช่พวกบริษัทที่มีชื่อเสียง แต่ถึงแบบนั้นมันก็มีคนใช้เพิ่มขึ้นเรื่อยๆ แถมยังรองรับการใช้งานร่วมกับไลบรารี่ ทั้งของ js และตระกูล c (แต่ห้ามใช้พร้อมกันนะ) นอกจากนี้ยังมีโปรเจคทำให้ใช้ร่วมกับ godot ได้อีกด้วย (อย่างว่า ถ้าภาษาไหนใช้ง่าย แล้วดี คนที่พร้อมจะเข้ามาร่วมใน ตปท ก็มีเยอะนะ) เช่นเคย ลองติดตั้งดูกัน
- sudo apt install build-essential -y ส่วนประกอบอื่นๆ ที่จำเป็น ของผมเคยลงไปหลายรอบละ
- curl https://nim-lang.org/choosenim/init.sh -sSf | sh โหลดตัวลงของ nim และสั่งรัน
- nano ~/.bashrc เข้าไปแก้ไขไฟล์นี้เพื่อให้รู้จัก nim
- export PATH=/home/$USER/.nimble/bin:$PATH ด้วยการเอาพาธของโปรแกรมใส่มันเข้าที่ล่างสุด แล้วกด Ctrl+s ต่อด้วย Ctrl+x เพื่อเซฟและปิดไฟล์
- source ~/.bashrc ทำการดึงค่า config ใหม่อีกรอบ
- nim -v เช็คเวอร์ชั่น เพื่อเป็นอันเสร็จสมบูรณ์
- แต่เพื่อความเร็วก็ต้องทำการ compile ก่อนรันด้วยคำสั่ง nim c FileName.nim
- ./FileName รันไฟล์
- หรือใช้ nim compile -r FileName.nim นะครับ จะทั้ง compile และรันให้เลย ปล. ส่วนตัวคิดว่า compile ไวกว่า crystal
- ทดลองสร้างไฟล์ hello.nim แล้วใส่คำสั่งตามนี้ (ใช้ space bar เว้นเอานะครับ เขียนผ่าน Sublime มันยังไม่ซัพพอร์ต tab)
import strutils echo "M or F ?" var gender = readLine(stdin) case gender: of "M": echo "y r Male ?" of "F": echo "y r Female ?" else: echo "OK. I get!."
- nim c -r hello.nim จะทำงานเลยนะครับ แค่ย่อลงอีก
- ลองสร้างไฟล์ func.nim ทำ function ดูใช้คำสั่งตามนี้
import strutils proc some_func(get_var: int): int = var result: int = 0; for i in 0..get_var: result = result+i return result echo "result =", some_func(3)
- nim c -r func.nim เหมือนเดิมครับ จะเห็นว่าการประกาศตัวแปรจะแปลกกว่าชาวบ้านเค้านิดหน่อย แต่ก็ไม่ได้เข้าใจอะไรยาก แค่อาจจะไม่ชิน
- nimble install naylib อันนี้ลองติดตั้งโปรเจค raylib ที่เป็น wrapper ของ nim นะครับ
- mkdir naylib สร้างโฟลเดอร์โปรเจคของเรา
- cd naylib/ เข้าไปข้างใน
- nimble init ทำการติดตั้งซึ่งเราจะได้ไฟล์ *.nimble ที่เอาไว้ตั้งค่าของโปรเจค (มันจะถามตอนสร้าง) กับไฟล์เริ่มต้นในโฟลเดอร์ src
- requires "naylib >= 24.52.0" เพิ่มส่วนนี้เข้าไปในไฟล์ *.nimble ข้างใต้ Dependencies นะครับ
- nimble install ติดตั้งส่วนประกอบที่เราเพิ่มเข้าไปนะครับ
ปล. อันนี้ doc ของ nim และที่ต้องระวังคือเรื่องการใช้ _ ในตัวแปร ลองค้นนิดๆ หน่อยๆ ข้อมูลการสอนใช้งานแต่ละ library, frame work ก็ยังน้อยอยู่ (มากกว่า crystal) แต่ที่น่าสนใจคือการใช้งานร่วมกับ godot (แต่จริงๆ คิดว่าสุดท้ายก็แปลมาเป็น C นะ ไม่รู้จะมีความต่างกับ GD script ไหม)
ปล. สอง มีข่าวมาว่าตอนนี้ทาง unreal engine ทำให้รองรับภาษา nim ได้แล้ว link
ความคิดเห็น
แสดงความคิดเห็น