ภาษากรูวี
| กระบวนทัศน์ | Multi-paradigm: object-oriented, imperative, functional, aspect-oriented, scripting |
|---|---|
| ผู้ออกแบบ | James Strachan |
| ผู้พัฒนา | Guillaume Laforge (ประธาน PMC) Jochen Theodorou (หัวหน้าเทคนิค) Paul King Cedric Champeau |
| เริ่มเมื่อ | 2003 |
| รุ่นทดลอง | 4.0.0-beta-1
/ 6 กันยายน 2021[1] |
| ระบบชนิดตัวแปร | Dynamic, static, strong, duck |
| แพลตฟอร์ม | Java SE |
| สัญญาอนุญาต | Apache License 2.0 |
| นามสกุลของไฟล์ | .groovy, .gvy, .gy, .gsh[2] |
| เว็บไซต์ | groovy-lang |
| ตัวแปลภาษาหลัก | |
| 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]
คุณลักษณะของภาษา
[แก้]ภาษากรูวีมีคุณลักษณะหลายประการที่ไม่พบในภาษาจาวามาตรฐาน:
- static typing และ dynamic typing
- วากยสัมพันธ์สำหรับ list, map, array, และ regular expression
- closure
- operator overloading
เปรียบเทียบความสัมพันธ์
[แก้]ตัวอย่างต่อไปนี้จะเปรียบเทียบภาษากรูวีกับภาษาจาวา:
จาวามาตรฐาน (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>
ดูเพิ่ม
[แก้]อ้างอิง
[แก้]- ↑ อ้างอิงผิดพลาด: ป้ายระบุ
<ref>ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อgithub-releases - ↑ "Groovy Goodness: Default Groovy Script File Extensions".
- ↑ "Groovy 2.4 And Grails 3.0 To Be Last Major Releases Under Pivotal Sponsorship". 19 Jan 2015.
ข้อมูล
[แก้]- König, Dierk; Paul King; Guillaume Laforge; Hamlet D'Arcy; Cédric Champeau; Erik Pragt; Jon Skeet (2015). Groovy in Action, Second Edition. Manning. ISBN 978-1-935182-44-3.
- Barclay, Kenneth; John Savage (2007). Groovy Programming: An Introduction for Java Developers. ISBN 978-0-12-372507-3. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-01-12. สืบค้นเมื่อ 2007-07-19.
- Davis, Scott (2008). Groovy Recipes: Greasing the Wheels of Java. ISBN 978-0-9787392-9-4.
- Subramaniam, Venkat (2008). Programming Groovy: Dynamic Productivity for the Java Developer. ISBN 978-1-934356-09-8.
แหล่งข้อมูลอื่น
[แก้]- เว็บไซต์ทางการ

- Groovy ที่เว็บไซต์ Curlie