Natcha Luang - Aroonchai

Trust me I'm Petdo

Bangkok, Thailand

[Scala] ตอนที่ 1 รู้จักกับภาษา Scala พี่น้องของ Java

พบกับบทความตอนยาว (มั้ง) ของภาษา Scala ซึ่งต้องบอกว่าจริง ๆ แล้วภาษานี้เกิดก่อนภาษา Go เสียอีก แต่ด้วยความที่ผมไม่ได้สนใจจะใช้งานสักเท่าไรนัก มาคราวนี้ที่ผมต้องการเรียนรู้ภาษา Scala ส่วนนึงเลยก็เพื่อต้องการเข้าใจในงานที่ตัวเองกำลังทำอยู่ถึงแม้จะไม่ได้จับ Scala ตรง ๆ ก็ตามแต่ก็คิดว่ารู้ไว้ไม่เสียหาย อีกส่วนก็คือกระแส functional programming ด้วยซึ่งภาษา Scala เองก็รองรับการเขียนแบบ functional ด้วยเช่นกัน

สารบัญ

ภาพรวม

ภาษา Scala อ่านว่า "สกาล่า" เปิดตัวสู่สาธารณะตั้งแต่ปี 2004 ซึ่ง ณ ปัจจุบันก็ผ่านมากว่า 12 ปีแล้ว โดยลักษณะของภาษารองรับการเขียนโปรแกรมทั้งแบบ functional และ imperative ทั้งสองแบบ ตัวภาษา Scala เป็นภาษาที่ทำงานอยู่บน JVM ทำให้สามารถเรียกใช้งานไลบรารีทั้งหมดที่สามารถทำงานบน JVM ได้ทันที

แต่ถึงอย่างนั้นนักพัฒนาก็เลือกที่จะเขียนไลบรารีขึ้นมาใหม่เพราะความต้องการทางด้านประสิทธิภาพมากกว่า หลักการเขียนของ Scala จะอิงกับหลักการของ OOP ในภาษา Java แต่จะมี syntax ที่สั้นมากทำให้บางครั้งอาจจะอ่านยากเกินไปรวมไปถึงภาษา Scala เองยินยอมให้ใช้อักขระพิเศษในการตั้งชื่อได้อีกด้วย (เหมือน JavaScript) ทำให้การ debug ในบางครั้งเป็นเรื่องน่าปวดหัวอยู่พอสมควร แต่ตรงนี้ผมมองว่าเราแก้ปัญหาได้ด้วยการกำหนด coding standard ในการพัฒนาโปรแกรมแทน

อีกหนึ่งข้อที่สำคัญคือภาษา Scala มีความเป็น strong static typing ค่อนข้างมากทำให้ลดโอกาสเกิดข้อผิดพลาดในการพัฒนาโปรแกรมได้เป็นอย่างดี ในสมัยก่อนภาษาโปรแกรมเองก็มาพร้อมกับความสามารถ static typing อยู่แล้วเนื่องจากติดปัญหาด้านทรัพยากร

ในเวลาต่อมาทรัพยากรที่มากขึ้นของคอมพิวเตอร์ส่งผลให้เกิดการสร้างภาษาโปรแกรมที่มี dynamic typing (หรือเรียกว่า duck typing) ทำให้การพัฒนาโปรแกรมเป็นเรื่องง่ายเพราะตัวภาษาจะทำหน้าที่คอยทำ type casting ให้เองโดยอัตโนมัติแต่นั้นก็สร้างปัญหาให้การพัฒนาระบบที่มีขนาดใหญ่ หรือนักพัฒนาที่ขาดความชำนาญทำให้เกิดข้อผิดพลาดในโปรแกรมอยู่บ่อยครั้ง

จนตอนนี้โลกของการพัฒนาซอฟต์แวร์เปลี่ยนไปสู่ยุคของการใช้งานคลาวด์และเน้น release บ่อยขึ้น ทำให้การพัฒนาโปรแกรมต้องการความรัดกุมในการทำงานมากขึ้นและใช้งานทรัพยากรน้อยลง (เพราะคลาวด์คิดค่าใช้จ่ายตามปริมาณทรัพยากรที่ถูกใช้ในการประมวลผล) ทำให้ภาษาโปรแกรมที่มีลักษณะเป็น static typing เริ่มกลับมาได้รับความนิยมอีกครั้งหนึ่ง

วิธีติดตั้ง Scala

เกริ่นกันมายาวพอสมควรแล้วเราก็จะมาติดตั้ง Scala คอมไพเลอร์ในเครื่องกันก่อน โดยผมจะติดตั้งลงบน OS X ด้วย Homebrew ใครที่ไม่รู้จัก Homebrew อ่านวิธีติดตั้งได้ ที่นี่ และสำหรับระบบปฏิบัติการอื่น ๆ สามารถดาวน์โหลดตัวติดตั้งได้จาก ลิงค์นี้

การติดตั้ง Scala ผ่าน Homebrew เป็นเรื่องง่ายดายมากเพียงเปิด terminal ขึ้นมาจากนั้นพิมพ์คำสั่งนี้ลงไป

brew install scala

Homebrew จะดาวน์โหลดแพคเกจและติดตั้งให้จนเสร็จ จากนั้นทดลองเรียกใช้งานคำสั่ง scalac -version เพื่อดูเลขเวอร์ชันของ Scala หากการติดตั้งสมบูรณ์จะได้ผลลัพธ์ออกมาประมาณนี้

Scala compiler version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL

Hello, world!

ต่อจากนั้นเราต้องปฏิบัติตามธรรมเนียมกันก่อนคือโปรแกรม Hello, world! ในตอนนี้ผมจะยังไม่ใช้ IDE ใด ๆ ทั้งสิ้นในการเขียน ผมจะเน้นไปที่การใช้งาน text editor และสั่งคอมไพล์ด้วย CLI เป็นหลัก

เปิด text editor ขึ้นมาจากนั้นพิมพ์ตามนี้ลงไป

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, world!")
  }
}

จากนั้นบันทึกและตั้งชื่อไฟล์ว่า HelloWorld.scala ทีนี้เราจะสั่งคอมไพล์และรันด้วยคำสั่ง

scala HelloWorld.scala

ตรงนี้เราไม่จำเป็นต้องระบุนามสกุลไฟล์​ (.scala) ในตอนสั่งคอมไพล์ก็ได้ครับ

ถ้าไม่มีอะไรผิดพลาดเราจะได้ผลลัพธ์ออกมาเป็นคำว่า "Hello, world!" ครับ


สำหรับตอนแรกถือว่าไม่ยากเลยใช่ไหมครับ ลองอ่านเพิ่มเติมทำความเข้าใจจากลิงค์อ้างอิงที่อยู่ด้านล่างเพิ่มเติมได้ครับ ในตอนต่อไปเราจะมาดูเรื่องของ data type กันว่ามีอะไรบ้างและแต่ละอย่างคืออะไรทำงานอย่างไร อย่าลืมติดตามน่ะครับ


อ้างอิง

Comments