10 poin oleh GN⁺ 2025-11-27 | Belum ada komentar. | Bagikan ke WhatsApp
  • Unison adalah bahasa pemrograman fungsional yang dibangun di atas struktur yang mengidentifikasi definisi kode berdasarkan isi (hash), bukan nama, sehingga menyusun ulang secara menyeluruh cara penyimpanan kode, kontrol versi, dan deployment
  • Semua kode disimpan di codebase (DB), bukan file teks, dan nama hanya diperlakukan sebagai label, sehingga masalah seperti bentrok nama/file yang sama dan konflik refactor secara struktural hilang
  • Melalui UCM (Unison Codebase Manager), pengguna dapat menambah, menghapus, memindahkan, mengganti nama, menguji, dan menjalankan definisi, dengan ekosistem alat kolaborasi yang terhubung ke LSP, UCM Desktop, dan Unison Share
  • Selain fitur bahasa seperti sistem efek berbasis Abilities, komputasi tertunda, dan structural pattern matching, Unison juga berkembang menjadi model terpadu yang mendefinisikan logika aplikasi dan deployment cloud (Cloud/BYOC) dalam program yang sama
  • Berkat struktur berbasis hash, hal-hal seperti eliminasi kompilasi duplikat, pengurangan konflik versi, dan penelusuran referensi statis menjadi sifat bawaan, serta menghadirkan pengalaman pengembangan terdistribusi yang konsisten dengan sistem Share, Cloud, Projects, dan Branch

Gambaran umum bahasa Unison

  • Definisi dikelola dengan struktur content-addressable code, sehingga meski namanya sama, bila isinya berbeda maka dianggap sebagai definisi yang sepenuhnya terpisah
    • Tidak perlu kompilasi ulang, konflik evolusi API diminimalkan, stabilitas referensi sepenuhnya terjaga
  • Codebase dipelihara sebagai DB berbasis SQLite, dan kode, nama, serta dokumentasi semuanya disimpan sebagai data
    • Struktur dapat dijelajahi dengan perintah UCM seperti ls dan view
  • File teks hanya antarmuka untuk mengedit; satu-satunya sumber kebenaran untuk source yang sebenarnya adalah DB
    • Bentrok nama, konflik merge file, dan pengelolaan struktur repo semuanya direduksi menjadi konsep usang

Fitur bahasa

  • Abilities: fitur untuk mengendalikan efek seperti IO dan Exception melalui sistem tipe
  • Structural pattern matching: menyusun alur kontrol dengan mengurai tipe secara struktural
  • Komputasi tertunda (Delayed computations): mengekspresikan evaluasi non-strict secara eksplisit
  • Menyediakan static typing yang kuat + inferensi tipe yang kaya + kind-checking

Lingkungan pengembangan dan toolchain

  • UCM (Unison Codebase Manager)
    • Membuat, menghapus, mengganti nama, menguji, dan menjalankan definisi
    • Menanamkan kontrol versi mirip Git ke dalam bahasa, seperti project, branch, clone, dan merge
  • UCM Desktop
    • Menjelajahi struktur codebase, berpindah definisi dengan klik, merender dokumentasi
  • Dukungan LSP
    • Fitur IDE dapat digunakan di sebagian besar editor populer
  • Unison Share
    • Hub kode terpusat: hosting project, pencarian, review, kontribusi (=Pull Request), pencarian berbasis tipe
    • Karena semua definisi berbasis hash, referensi selalu bisa ditelusuri seperti hyperlink

Model deployment: Unison Cloud & BYOC

  • Menulis logika aplikasi + definisi infrastruktur dalam bahasa yang sama, lalu langsung men-deploy-nya
  • Menyusun sistem terdistribusi hanya dengan “kode”, tanpa YAML, Helm, atau aturan RPC yang rumit
  • Dengan BYOC (Bring Your Own Cloud), stack Cloud juga dapat dijalankan di atas infrastruktur kontainer milik sendiri
  • Mencakup penyimpanan type-safe seperti OrderedTable, dukungan Daemon, dan orkestrasi otomatis

Contoh: Guessing Game

  • Contoh CLI sederhana yang memanfaatkan Abilities (IO, Exception)
  • Menunjukkan perpaduan alami unsur bahasa seperti Random, console IO, pattern matching, dan komputasi tertunda

Ekosistem dan komunitas

  • Mendukung kontribusi, review, dan akun organisasi melalui Share
  • Menyediakan pencarian seluruh ekosistem berbasis tipe dan server MCP untuk agen AI
  • Pengerjaan C FFI sedang berlangsung secara bertahap
  • Fitur produktivitas kolaborasi terus diperluas, termasuk Git-style diff viewer dan anotasi branch

Sejarah utama (ringkasan)

  • 2018: Unison Computing didirikan
  • 2019: rilis alpha pertama
  • 2021: codebase dialihkan ke SQLite (menyusut 100x)
  • 2021: Unison Share diperkenalkan
  • 2022~2024: LSP, Projects, Kind-checking, Pull Request, Cloud GA
  • 2025: Desktop App, optimisasi runtime skala besar, server MCP, dukungan BYOC
  • Nov 2025: rilis resmi Unison 1.0

FAQ

  • Mengapa bahasa baru?
    • Model kode berbasis hash nyaris mustahil diporting sebagai add-on ke bahasa yang sudah ada
    • Karena cara penyimpanan kode, kontrol versi, deployment, dan kolaborasi semuanya diturunkan secara alami dari ide ini, maka perlu dirancang sebagai bahasa baru sejak awal
  • Contoh penggunaan nyata?
    • Seluruh Unison Cloud ditulis dan dijalankan menggunakan Unison sendiri
    • Sudah membentuk workflow tingkat komersial untuk kolaborasi organisasi/tim dan pengembangan aplikasi terdistribusi
  • Kekhawatiran vendor lock-in: bahasa ini open source, dapat di-deploy bebas dengan Docker dan lain-lain, serta mendukung BYOC
  • Cara kolaborasi: mendukung organisasi, tiket, code review, PR, dan konflik hanya terjadi pada tingkat definisi
  • Kontrol versi: menyediakan project, branch, push, pull, dan merge sendiri tanpa Git
  • Tidak ada batasan IDE: menyediakan server LSP sehingga bisa digunakan dengan berbagai editor
  • Interoperabilitas dengan bahasa lain: C FFI sedang dikembangkan
  • Akses ke codebase tanpa file: struktur dapat dijelajahi lewat perintah CLI (UCM) atau aplikasi Desktop

Belum ada komentar.

Belum ada komentar.