Scala เป็นภาษาใหม่ที่เพิ่งเกิดมาไม่นานนัก เป็นภาษาที่เป็นทั้ง Object-oriented และ Functional language ในตัวเดียวกัน
ความรู้สึกแรกที่ได้มาจับ Scala จะรู้สึกว่ามันเป็น Object-oriented ทั้งหมด
เพราะว่าไม่ว่าจะทำอะไร ก็จะเก็บเป็น Object ทั้งสิ้น
โดย Type (Attribute ใน Java) และ Behavior (Method ใน Java-โดยจะใช้ keyword ในการสร้าง Method ว่า def) จะถูกรวมกันอยู่ใน Class (Class ใน Scala นั้นจะใช้ keyword ว่า Object)
Scala มีความสามารถของ Inherit และพ่วงด้วยกลไกที่เรียกว่า Clean Replacement เพื่อช่วยในการทำ Multiple Inheritance ตัวอย่าง
object HelloWorld {
def main(args: Array[String]) =
Console.println("Hello, world!")
}
จากองค์ประกอบที่ผ่านมา เราก็ยังมองไม่เห็นว่ามันมีความเป็น Functional Languages ตรงไหน
แต่ถ้าลองเข้าไปใน Function ของ Scala แล้วจะรู้ว่าทุกๆ Function ของ Scala นั้นได้ถอดแบบมาจาก Functional Languages
ใน Function ของแต่ละ Function ของ Scala นั้นสามารถมี Function ที่ซ้อนเข้าไปด้านในได้ ซึ่งเราเรียกว่า Anonymous Functions และมีกลไกที่เรียกว่า Higher-Order Functions เพื่อช่วยจัดการในเรื่อง Nested Function
และอีกอย่างที่น่าสนใจมากของ Scala คือเป็น Platform Independence ซึ่งใช้หลักการ Hybrid แบบ Java คือแปลง Source code เป็น Byte code ก่อน
ซึ่ง Byte code ตัวนี้จะไปรันกับ Interpreter ใด ๆ ก็ได้
Highlight อยู่ตอนนี้ครับ คือ Byte code ของเจ้า Scala ที่ว่านี้สามารถนำไปรันกับ Interpreter ของ Java ได้ด้วย !
Feature ของภาษานี้อีกหลายอย่างนั้นก็ค่อนข้างที่จะคล้ายคลึง Java มาก ซึ่งจะคล้ายคลึงกันยังไงนั้นไว้วันหลังผมค่อยมาเล่าต่อหละครับ
ที่มา : http://www.scala-lang.org/index.htmlเกี่ยวข้อง: Scala: The Next Next Java
No comments:
Post a Comment