Kenapa Cardano Menggunakan Haskell?

Jonas Sunandar
4 min readNov 16, 2020

--

Dari semua bahasa pemrograman, mengapa Cardano memilih untuk menerapkan bahasa Haskell untuk systemnya? Apakah kalian pernah bertanya hal serupa? Padahal sangat banyak bahasa pemrograman terkenal lain yang bisa dipakai untuk dijadikan base language dari sebuah project seperti Cardano.

TLDR;

Haskell dibentuk untuk kepastian tingkat tinggi dari sebuah kode. Dengan begitu akan mengurangi kesalahan dalam implementasi kode yang benar

Apa itu Haskell?

Pertama kita harus memahami terlebih dahulu mengenai Haskell itu sendiri. Haskel adalah bahasa pemrograman fungsional. Setiap langkah yang dilakukan dikemas di dalam fungsi-fungsi yang nanti dapat dipakai ketika dibutuhkan.

Design dari bahasa Haskell pun mengarah ke pure functions dan immutable data. Kedua fitur tersebut adalah fitur penting agar para developer bisa menulis kode perangkat lunak yang benar dan sempurna.

  • Pure functions artinya fungsi harus selalu deterministik, yaitu input yang sama akan selalu mengeluarkan output yang sama pula.
  • Immutable data adalah fitur agar data yang sudah masuk tidak bisa diubah lagi sehingga meningkatkan transparansi dan meminimalisir kesalahan pada kode.

Haskell juga memiliki keamanan memori, tipe statik, dan juga menyelesaikan masalah konkurensi untuk menghindari permasalahan konkurensi yang selalu ada di bahasa pemrograman saat ini.

Kebanyakan bahasa pemrograman yang terkenal seperti C++, Java, Javascript, dan PHP adalah bahasa pemrograman imperatif. Jadi apa perbedaan Haskell yang merupakan bahasa fungsional dengan bahasa pemrograman imperatif lainnya? Untuk lebih jelasnya bisa cek blog di sini ya.

Lalu mengapa Haskell?

Haskell is built for high assurance code and gives gives a high degree of certainty in implementing the correct code — Charles Hoskinson

Kata-kata tersebut diungkapkan Charles Hoskinson ketika di interview oleh Forkast.

Di situ beliau mengatakan Haskell dibentuk memang untuk keamanan tingkat tinggi dari sebuah kode atau program sehingga sangat mengurangi ketidakpastian dalam kode. Karena Haskell adalah pure functional programming tentu akan meningkatkan kepastian dari sebuah kode. Jauh lebih mudah untuk melakukan sistem testing yang terstruktur agar programmer tahu apa yang dilakukan oleh kode, ekspektasi, hasil, dan jalan kode tersebut.

Kita sudah sering melihat banyak kejadian hacking dikarenakan penulisan kode yang tidak bagus sehingga menyebabkan kehilangan jutaan dolar. Padahal kita bisa mencegah hal-hal yang tidak diinginkan tersebut jika mendesain kode yang sesuai dengan yang kita inginkan. Permasalahannya adalah jika menggunakan bahasa pemrograman imperatif, developer akan menemukan banyak ketidakpastian saat melakukan testing dan proses pembuat kode tersebut.

Maka dari itu diperlukan sebuah bahasa pemrograman memberikan kepastian lebih, lebih banyak tools, dan lebih presisi.

Haskell dibentuk memang untuk memberikan presisi kode yang tinggi. Haskell juga dibentuk oleh para akademisi yang bergerak di bidang keamanan kode. Orang-orang dari sektor finansial seperti Standard Chartered, Barclays, Wall Street sangat membutuhkan kode yang memang mengimplementasi ide yang benar. Apalagi di dunia cryptocurrency yang lebih transparan, terdesentralisasi, dan immutable.

Plutus vs Solidity

Plutus adalah bahasa pemrograman yang basis bahasanya adalah Haskell dan berada di atas blockchain Cardano. Sedangkan Solidity adalah bahasa yang sangat populer di pengembangan smart contract karena sudah dipakai di banyak proyek terkenal di jaringan Ethereum. Jadi, bedanya apa dong?

Plutus

Cardano memilih Haskell dan Plutus sebagai bahasa pemrograman pilihan mereka. Haskell akan digunakan untuk kode pada blockchain Cardano, sementara Plutus akan digunakan untuk pembuatan smart contract dan keduanya adalah bahasa pemrograman fungsional. Tertarik untuk mencoba Plutus? Bisa cek Plutus Playground untuk langsung merasakan pengalaman menulis dalam Plutus yang base code-nya merupakan Haskell.

Solidity

Sedangkan kalau Solidity dibuat secara khusus untuk smart contract dan merupakan bahasa pemrograman imperatif. Ada banyak fitur dalam bahasa pemrograman ini untuk membuat eksekusi smart contract menjadi lebih mudah. Solidity adalah bahasa smart contract yang paling populer dan sangat mirip dengan bahasa C++ dalam penulisan sintaksnya. Jika anda familiar dengan bahasa pemrograman C++, pasti tidak akan menemukan kesulitan untuk menulis Solidity. Jika tertarik menulis dalam Solidity, bisa mengunjungi situs Remix IDE.

Perbedaan dari kedua bahasa akan lebih dijelaskan lagi di blog Plutus vs Solidity ya.

Kesimpulan

Dikarenakan pada sektor finansial dan sektor pada umumnya memerlukan high assurance code, Cardano menetapkan untuk menggunakan Haskell sebagai base code. Hal ini ditujukan agar para pengembang di Cardano dapat meminimalisir ketidakpastian dan meningkatkan keamanan dari kode yang dibuat; untuk menghindari hal-hal yang tidak diinginkan.

Tentang EMURGO

EMURGO adalah perusahaan blockchain global yang menghadirkan solusi untuk developers, startups, enterprise, dan pemerintah. EMURGO mengembangkan aplikasi dengan standard enterprise, tools untuk developer, berinvestasi di startup, dan memberikan edukasi tentang teknologi blockchain. EMURGO memiliki kantor dan menangani proyek di Singapura, Jepang, Amerika Serikat, India, dan Indonesia. EMURGO juga adalah salah satu pendiri dari Cardano protocol.

Program Sertifikasi Blockchain: Foundations of Blockchain, Ethereum Developer Class

Pelajari lebih lanjut tentang EMURGO dengan mengunjungi website resmi kami di sini

Follow akun media sosial EMURGO Indonesia:

Twitter : http://bit.ly/EmurgotwitterId

Facebook :bit.ly/Emurgo_id

Instagram : http://bit.ly/EmurgoInstaId

Linkedin: http://bit.ly/emurgoidLinkedin

--

--