ภาษากรูวี

จากวิกิพีเดีย สารานุกรมเสรี
กรูวี
กระบวนทัศน์Multi-paradigm: object-oriented, imperative, functional, aspect-oriented, scripting
ผู้ออกแบบJames Strachan
ผู้พัฒนาGuillaume Laforge (ประธาน PMC)
Jochen Theodorou (หัวหน้าเทคนิค)
Paul King
Cedric Champeau
เริ่มเมื่อ2003; 21 ปีที่แล้ว (2003)
รุ่นทดลอง
4.0.0-beta-1 / 6 กันยายน 2021; 2 ปีก่อน (2021-09-06)[1]
ระบบชนิดตัวแปรDynamic, static, strong, duck
แพลตฟอร์มJava SE
สัญญาอนุญาตApache License 2.0
นามสกุลของไฟล์.groovy, .gvy, .gy, .gsh[2]
เว็บไซต์groovy-lang.org แก้ไขสิ่งนี้ที่วิกิสนเทศ
ตัวแปลภาษาหลัก
Gradle, Grails
ได้รับอิทธิพลจาก
Java, Python, Ruby, Smalltalk
ส่งอิทธิพลต่อ
Kotlin

ภาษากรูวี (Groovy) เป็นภาษาโปรแกรมเชิงวัตถุสำหรับแพลตฟอร์มจาวาอันหนึ่ง นอกเหนือจากภาษาจาวา เราอาจมองกรูวีเป็นเหมือนภาษาสคริปต์สำหรับแพลตฟอร์มจาวาก็ได้ เนื่องจากมันมีคุณลักษณะหลายอย่างเหมือนกับภาษาสคริปต์อย่าง ไพทอน (Python) รูบี้ (Ruby) เพิร์ล (Perl) และ สมอลทอล์ค (Smalltalk). ในบางบริบท, เราจะใช้ชื่อ JSR 241 เพื่อเรียกภาษากรูวี

โปรแกรมที่เขียนด้วยภาษากรูวี จะถูกคอมไพล์ เป็นจาวาไบต์โค้ด ซึ่งสามารถใช้งานได้บนจาวาเวอร์ชวลแมชีน (JVM) ปกติ

กรูวี 1.0 ได้รับการเผยแพร่ในวันที่ 2 มกราคม ค.ศ. 2007 จากนั้นจึงเผยแพร่กรูวี 2.0 ในเดือนกรกฎาคม ค.ศ. 2012 โดยรุ่นอัปเดตครั้งใหญ่ครั้งล่าสุดคือรุ่น 2.4 ภายใต้การสนับสนุนของ Pivotal Software ที่สิ้นสุดลงในเดือนมีนาคม ค.ศ. 2015[3]

คุณลักษณะของภาษา[แก้]

ภาษากรูวีมีคุณลักษณะหลายประการที่ไม่พบในภาษาจาวามาตรฐาน:

เปรียบเทียบความสัมพันธ์[แก้]

ตัวอย่างต่อไปนี้จะเปรียบเทียบภาษากรูวีกับภาษาจาวา:

จาวามาตรฐาน (Java 5 และสูงกว่า)

class Filter {
    public static void main (String[] args) {
        List<String> list = Arrays.asList ("Rod", "Carlos", "Chris") ;
        List<String> shorts = new ArrayList<String> () ;
        for (String item : list) {
            if (item.length () <= 4) { shorts.add (item) ; }
        }
        for (String item : shorts) { System.out.println (item) ; }
    }
}

Groovy

list = ["Rod", "Carlos", "Chris"]
shorts = list.findAll { it.size () <= 4 }
shorts.each { println it }

สนับสนุนภาษามาร์กอัป[แก้]

คุณลักษณะเด่นอันหนึ่งของกรูวีก็คือ การที่มันสนับสนุนภาษามาร์กอัป (markup language) อย่าง XML และ HTML จากในตัวมันเองเลย คุณลักษณะนี้ทำให้การสร้างและใช้งานข้อมูลจากหลายแหล่ง เป็นไปได้ในวากยสัมพันธ์ของภาษาและวิธีการเขียนโปรแกรมที่เหมือนกัน ตัวอย่างเช่น:

โค้ด Groovy ต่อไปนี้ ...

   import groovy.xml.MarkupBuilder
   def myXMLDoc = new MarkupBuilder ()
   myXMLDoc.workbook {
      worksheet (caption:"Employees") {
         row (fname:"John", lname:"McDoe")
         row (fname:"Nancy", lname:"Davolio")
      }
      worksheet (caption:"Products") {
         row (name:"Veeblefeetzer", id:"sku34510")
         row (name:"Prune Unit Zappa", id:"sku3a550")
      }
   }
   println myXMLDoc

... สร้างผลลัพธ์ XML:

   <workbook>
      <worksheet caption='Employees'>
         <row fname="John" lname="McDoe" />
         <row fname="Nancy" lname="Davolio" />
      </worksheet>
      <worksheet caption='Products'>
         <row name="Veeblefeetzer" id="sku34510" />
         <row name="Prune Unit Zappa" id="sku3a550" />
      </worksheet>
   </workbook>

ดูเพิ่ม[แก้]

  • Grails
  • Boo - ภาษาโปรแกรมที่มีจุดประสงค์เหมือนกัน แต่ใช้งานบน Common Language Runtime (CLI)
  • JRuby - ภาษารูบี้บนแพลตฟอร์มจาวา
  • Jython - ภาษาไพทอนบนแพลตฟอร์มจาวา
  • BeanShell - ตัวแปลภาษาขนาดเล็กสำหรับโค้ดจาวา

อ้างอิง[แก้]

  1. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ github-releases
  2. "Groovy Goodness: Default Groovy Script File Extensions".
  3. "Groovy 2.4 And Grails 3.0 To Be Last Major Releases Under Pivotal Sponsorship". 19 Jan 2015.

ข้อมูล[แก้]


แหล่งข้อมูลอื่น[แก้]