4 ภาษาโปรแกรม ที่ใช้เขียน Smart Contract บน Blockchain

Smart Contract เขียนด้วยภาษาอะไร ?

thip
thipwriteblog
3 min readJan 10, 2022

--

Background vector created by rawpixel.com — www.freepik.com

Smart Contract เป็นสิ่งที่นักพัฒนาโปรแกรมสามารถเขียนโค้ด เพื่อสร้างเงื่อนไขการทำงานบางอย่าง ให้รองรับ Business Model ใหม่ๆ โดยอาศัยคุณสมบัติของเทคโนโลยี Blockchain ได้

บทความนี้จึงอยากชวนทุกคนมารู้จัก 4 ภาษาโปรแกรมคอมพิวเตอร์ ที่นิยมใช้ในการเขียน Smart Contract มีอะไรบ้างไปอ่านกันค่ะ

1. Solidity

image from https://worldvectorlogo.com

Solidity เป็นภาษาโปรแกรมระดับสูง ถูกสร้างขึ้นมาเมื่อปี 2014 โดยได้รับแรงบันดาลใจมาจากภาษาพวก JavaScript, C++ และ Python มีโครงสร้างภาษาเป็นแบบ Object-oriented programming (OOP) และมีจุดเด่นคือสามารถรันบน Ethereum Virtual Machine (EVM) ที่อยู่บน Ethereum Blockchain ได้ นอกจากนี้ยังเป็นภาษาที่มีคุณสมบัติในการสืบทอด และ reuse ได้ ทำให้ง่ายต่อการสร้างสมาร์ทคอนแทรคได้อย่างรวดเร็ว

ตัวอย่าง Use Cases ของสมาร์ทคอนแทรคที่เขียนด้วยภาษา Solidity

  • Voting
  • Multi-signature wallets
  • Blind auctions
  • Crowdfunding

สำหรับผู้ที่สนใจสามารถเข้าไปเรียนรู้ ภาษา Solidity และดูตัวอย่าง source code “Hello World” ง่ายๆ ได้ที่เว็บไซต์ https://soliditylang.org

2. Vyper

image from https://vyper.readthedocs.io/en/stable

Vyper เป็นภาษาที่ได้รับแรงบันดาลใจมาจากภาษา Python สามารถรันบน Ethereum Virtual Machine (EVM) ที่อยู่บน Ethereum Blockchain ได้ จุดเด่นของ Vyper จะมี 3 ข้อหลักๆ คือ

  • Security : เป็นภาษาที่ออกแบบมาโดยเน้นเรื่องความปลอดภัย
  • Simplicity : ติดตั้งง่าย เขียนโค้ดง่าย อ่านโค้ดง่าย มีโครงสร้างภาษาไม่ซับซ้อน
  • Auditability : ตรวจสอบได้ง่าย เพราะคนทั่วไปสามารถอ่านโค้ดได้ (human-readable) โดยไม่ต้องอาศัยความรู้ทางด้านการเขียนโปรแกรมในระดับสูงๆเลย

ซึ่งความเรียบง่ายไม่ซับซ้อนที่กล่าวมานี้ ทำให้ภาษา Vyper จะไม่มีคุณสมบัติบางอย่าง เช่น การสืบทอดคลาส , Function overloading เป็นต้น แต่ก็มีคุณสมบัติอื่นๆที่เกี่ยวกับเรื่องความละเอียดของตัวเลขมาเป็นจุดเด่น

สำหรับผู้ที่สนใจสามารถเข้าไปเรียนรู้ ภาษา Vyper และดูตัวอย่าง source code ที่เป็น Use Cases ต่างๆ ได้ที่เว็บไซต์ https://vyper.readthedocs.io/en/stable

3. DAML

image from https://daml.com

DAML (Digital Asset Modelling Language) เป็นภาษาโปรแกรมที่ใช้เขียน DApps (Distributed Applications) และเป็น open-source ที่ใช้งานง่าย ปลอดภัย และมีประสิทธิภาพสูง มาพร้อม Developer Tools หลายตัว เช่น IDE , CLI , Sandbox ซึ่งจะว่าไป DAML ก็เหมือนเป็น Framework ตัวหนึ่งที่ provide สิ่งที่จำเป็นต้องใช้ในการสร้าง Distributed Applications มาให้แล้ว ที่เหลือก็เพียงแค่ต้องใส่ Business Logic เข้าไปนั่นเอง

สำหรับผู้ที่สนใจสามารถเข้าไปเรียนรู้การใช้งาน ภาษา DAML และดูตัวอย่าง source code ได้ที่เว็บไซต์ https://daml.com ที่เดียวมีครบเหมือนเป็น Training Center เลย

4. JavaScript

image from https://worldvectorlogo.com

JavaScript เป็นภาษาที่นักพัฒนาโปรแกรมคุ้นเคยเป็นอย่างดี โดยเฉพาะสาย Web Development แต่คำถามคือ “JavaScript เป็นภาษาที่ใช้เขียน Smart Contract ได้ด้วยเหรอ?”

JavaScript จะเข้ามามีบทบาทเกี่ยวข้องกับสมาร์ทคอนแทรคในแง่ของการเขียนโค้ดที่เป็นการทำงานเสริมอื่นๆ โดยอาศัยคอนเซ็ปต์ Decentralized Network ของ Web 3.0 ที่สอดคล้องกับบล็อกเชนนั่นเอง

ปัจจุบันมี web3.js ที่เป็น JavaScript library ไว้สำหรับเชื่อมต่อกับ Ethereum blockchain ได้ สามารถเข้าไปศึกษา web3.js Documents ของเวอร์ชัน 1.5.2 ได้ที่เว็บไซต์ https://web3js.readthedocs.io/en/v1.5.2

Conclusion

ปัจจุบันนี้ เทคโนโลยี Blockchain ดูเหมือนจะไม่ใช่แค่เทรนด์ในอนาคตอีกต่อไป เพราะมันใกล้ตัวเรามากขึ้นทุกที ทั่วโลกมีการนำเทคโนโลยีบล็อกเชนมาใช้ประโยชน์เพิ่มมากขึ้นเรื่อยๆ และไม่ใช่แค่ในต่างประเทศเท่านั้น ประเทศไทยเองก็มีการนำบล็อกเชนมาใช้งานทั้งภาครัฐและภาคธุรกิจเพิ่มมากขึ้นเช่นเดียวกัน

นั่นหมายความว่า ภาษาโปรแกรมทั้งหมดที่กล่าวมานี้ รวมถึงภาษาอื่นๆที่สามารถเขียน Smart Contract ได้ ก็จัดเป็น Programming Languages ที่โปรแกรมเมอร์ควรทำความรู้จักและเรียนรู้ในปี 2022 แม้ว่าภาษาเหล่านี้จะยังไม่ได้ติด Top 50 ของ TIOBE Index ในตอนนี้ก็ตาม

นอกจากนี้ ยังรวมไปถึงทักษะอื่นๆ ที่เกี่ยวข้องกับ Blockchain เช่น Web3 , dApps , P2P , DiFi , Ethereum standards เป็นต้น เหล่านี้ก็ถือเป็นอีกหลายทักษะที่จำเป็นในโลกยุคปัจจุบันแล้วค่ะ ไม่ใช่ในอนาคต!

อ้างอิงข้อมูล ณ วันที่ 6 มกราคม 2565 ผู้เขียนได้ลองค้นหาตำแหน่งงาน Blockchain Developer พบว่ามีหลายบริษัทในไทยกำลังเปิดรับสมัครอยู่ อย่างเช่น KBTG , Omise โดยหนึ่งในคุณสมบัติที่ระบุไว้ใน JD (Job Description) ก็คือ ภาษา Solidity ที่กล่าวถึงไปแล้วในบทความนี้

อ้างอิง:
https://101blockchains.com/smart-contract-programming-languages/

✉️ ติดต่องาน: thipwriteblog@gmail.com

☕️ เลี้ยงกาแฟผู้เขียน 👉🏻 Buy me a Coffee!

--

--