Nim Language

            ภาษาที่ไว และบางทีก็ไวกว่า C (มัน compile เป็น C ไหงเทสแล้วไวกว่าฟระ) แต่เขียนง่ายคล้ายไพธอน (บางส่วนก็ยังคล้าย C นั้นละ คิดว่า crystal ง่ายกว่า) ป้องกันความผิดพลาดคล้าย rust ดูเหมือนมีแต่ข้อดี ข้อเสียคือมันยังไม่ดังยังไงละ ไลบรารี่ก็เลยอาจจะน้อยไปหน่อย (แต่เยอะกว่า crystal) แถมแบ็คอัพก็ไม่ใช่พวกบริษัทที่มีชื่อเสียง แต่ถึงแบบนั้นมันก็มีคนใช้เพิ่มขึ้นเรื่อยๆ แถมยังรองรับการใช้งานร่วมกับไลบรารี่ ทั้งของ js และตระกูล c (แต่ห้ามใช้พร้อมกันนะ) นอกจากนี้ยังมีโปรเจคทำให้ใช้ร่วมกับ godot ได้อีกด้วย (อย่างว่า ถ้าภาษาไหนใช้ง่าย  แล้วดี คนที่พร้อมจะเข้ามาร่วมใน ตปท ก็มีเยอะนะ) เช่นเคย ลองติดตั้งดูกัน

  1. sudo apt install build-essential -y ส่วนประกอบอื่นๆ ที่จำเป็น ของผมเคยลงไปหลายรอบละ
  2. curl https://nim-lang.org/choosenim/init.sh -sSf | sh โหลดตัวลงของ nim และสั่งรัน
  3. nano ~/.profile เข้าไปแก้ไขไฟล์นี้เพื่อให้รู้จัก nim
  4. export PATH=/home/$USER/.nimble/bin:$PATH ด้วยการเอาพาธของโปรแกรมใส่มันเข้าที่ล่างสุด แล้วกด Ctrl+s ต่อด้วย Ctrl+x เพื่อเซฟและปิดไฟล์
  5. source ~/.profile ทำการดึงค่า config ใหม่อีกรอบ
  6. nim -v เช็คเวอร์ชั่น เพื่อเป็นอันเสร็จสมบูรณ์
  7. แต่เพื่อความเร็วก็ต้องทำการ compile ก่อนรันด้วยคำสั่ง nim c FileName.nim
  8. ./FileName รันไฟล์
  9. หรือใช้ nim compile -r FileName.nim นะครับ จะทั้ง compile และรันให้เลย ปล. ส่วนตัวคิดว่า compile ไวกว่า crystal
  10. ทดลองสร้างไฟล์ 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!."
  11. nim c -r hello.nim จะทำงานเลยนะครับ แค่ย่อลงอีก
  12. ลองสร้างไฟล์ 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)
    

  13. nim c -r func.nim เหมือนเดิมครับ จะเห็นว่าการประกาศตัวแปรจะแปลกกว่าชาวบ้านเค้านิดหน่อย แต่ก็ไม่ได้เข้าใจอะไรยาก แค่อาจจะไม่ชิน
            ปล. อันนี้ doc ของ nim และที่ต้องระวังคือเรื่องการใช้ _ ในตัวแปร ลองค้นนิดๆ หน่อยๆ ข้อมูลการสอนใช้งานแต่ละ library, frame work ก็ยังน้อยอยู่ (มากกว่า crystal) แต่ที่น่าสนใจคือการใช้งานร่วมกับ godot (แต่จริงๆ คิดว่าสุดท้ายก็แปลมาเป็น C นะ ไม่รู้จะมีความต่างกับ GD script ไหม)
             ปล. สอง มีข่าวมาว่าตอนนี้ทาง unreal engine ทำให้รองรับภาษา nim ได้แล้ว link 

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

โปรโมชั่นเน็ต TOT

โน๊ตบุ๊ค acer switch sa5-271 แบตบวม T^T

Blog นี้สร้างเพื่อ?