Berkenalan dengan F#

Y. H. Nugroho
3 min readJan 22, 2021

--

Sumber gambar : Wikipedia

F# (dibaca F Sharp) merupakan bahasa pemrograman bersifat fungsional, general-purpose(multiguna), multi-paradigma (Imperatif, Berorientasi objek dan Asinkron) dan strong type.

F# mengunakan .NET Core (Anak dari Microsoft .NET Framework yang sukses berdiri sendiri) sebagai backend (generator kode untuk menghasilkan kode mesin dari kodingan kita) kompilatornya seperti C#.

F# bisa berjalan pada sistem operasi Windows, Linux, MacOs serta ditambah kompilasi kedalam bentuk Javascript (untuk browser) dan GPU.

F# dipengaruhi oleh C#, OCaml, Python (ini dari opini penulis). Pencampuran dari Indentansi dari Python, Kosa Kata dan Idiom dari C# dan MLish dari OCaml semuanya bersatu dalam F#.

F# dikembangkan oleh Don Syme dan Tim Riset Microsoft kemudian muncul ke publik pada tahun 2005, versi terbaru dari F# yaitu 5.0.0 tercatat dari tanggal 20 November 2020. F# dikembangkan secara open source dengan kode sumber kompilator F# berlisensi MIT.

Yayasan F# didirikan pada tahun 2012 untuk mengajak pengembang mengunakan F# dan Yayasan ini terbuka untuk siapa saja yang ingin bergabung untuk bersama menyuarkan pengunaan F#, berikut pranala dibawah ini:

Factorial dengan F#

Kenapa kamu perlu mencoba F# ?

Ada hal menarik yang kamu bisa ketahui dengan mencoba F# selain dengan iming-iming fungsional dan juga hal yang perlu kamu pertimbangkan untuk mengunakan F# dalam produksi.

Pros

  • Ringkas dalam penulisan (Readability)
  • Terintegrasi dengan Ekosistem .NET (C# dan F# bisa saling komunikasi) dan Multiplatform
  • Tidak ada null
  • Paradigma Ganda
  • Mendukung konkuren secara bawaan

Cons

  • Kurva pembelajaraan terbilang menengah, karena penguasaan konsep dan fitur fungsional yang jarang ditemui seperti evaluasi malas dan semacamnya.
  • Kurangnya literatur khususnya dalama Bahasa Indonesia
  • Kecilnya komunitas F# di Indonesia (bila ini kurang tepat , mohon beri koreksi di kolom komentar ya)
  • Identansi (Ini opini pribadi)

Terlepas pro kontra diatas, Semuanya kembali kepada kebutuhan anda apakah F# mencukupi atau tidak untuk mengadopsi F#.

Namun jangan beranjak dulu, masih banyak yang akan saya bahas lebih lanjut.

Kasus Guna

Adopsi F# banyak digunakan pada platform enterprise namun tidak menutup kemungkinan untuk mengunkan untuk bidang lain, beberapa ekosistem F# mendukung bidang

  • Pengembangan Web
  • Pengembangan Mobile App
  • Data Sains
  • Pemrograman Cloud

Serta berikut referensi untuk berkenalan lebih lanjut dengan F# :

Saya sendiri mengunakan F# dalam bidang pengembangan game mengunakan Godot Engine.

Meskipun ada berapa fungsi dari Godot yang tidak bisa diterapkan dalam F# , masih bisa diatasi dengan kemampuan inter-operasi dengan C# yang menutup kekurangan tersebut.

Tata Tulis

Setelah saya bercerita tentang kegunaan saat kita terjun melihat seperti apa kodenya.

printfn "Hello World\n"

Berikut contoh sederhana logika permainan sederhana dengan F#

Operator |> ini disebut sebagai forward pipeline operator, hasil dari ekspresi operan kiri akan menjadi parameter masukan untuk ekspresi sebelah kanan.

Kode dapat dijalan secara mengunakan kompilator daring pada pranala berikut ini : https://try.fsharp.org/

Installasi

Bagian ini saya melimpahkan seluruhnya kepada panduan yang disusun oleh pengembang yang bisa ditemukan pada pranala ini :

Mono merupakan bentuk open source Microsoft .NET, didalamnya terdapat paket F# dan C# secara bawaan.

Untuk IDE (Intergrate Development Environment) dapat mengunakan MonoDevelop untuk memudahkan pengguna selain Windows.

Penutup

F# di anggap esklusif berjalan pada lingkungan Windows, namun anggapan ini sudah tidak berlaku lagi sejak .NET mendukung kemampuan multi platform untuk berjalan diberbagai macam sistem operasi.

F# disarankan untuk anda yang ingin mengenal pemrograman fungsional secara softcore(halus perlahan), terutama bila anda berasal dari pengembang C#, Java, Python.

Bila anda suka mengunakan F#, Saya sarankan untuk mencoba OCaml yaitu predesessor dari Bahasa F#.

Sekian dari tulisan ini, semoga bermanfaat.

--

--

No responses yet