10 poin oleh GN⁺ 2025-11-27 | 1 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
Iklan

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
    Iklan
  • 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
Iklan

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

1 komentar

 
GN⁺ 2025-11-27
Komentar Hacker News
  • Saya sudah mengikuti Unison sejak lama sekali. Sejak masa blog pribadi Paul, jadi sudah lebih dari 10 tahun. Rilis 1.0 ini jelas tonggak besar, tapi sejujurnya saya agak kecewa
    Saya sangat suka bahasa pemrograman, jadi saya juga mengikuti pertumbuhan bahasa seperti Rust, Go, dan Zig, tetapi menurut saya Unison kurang punya daya sebar ekosistem dibanding tingkat kematangannya
    Saya rasa alasannya adalah model bisnis yang sebagian besar fiturnya dirancang bergantung pada cloud. Memang ada opsi BYOC, tapi belum cukup. Rasanya ada sesuatu yang tidak pas

    • Saya tidak setuju membandingkannya dengan Zig, Rust, atau Go. Unison terlalu cepat menghabiskan konsep-konsep yang “baru dan aneh” seperti Abilities atau struktur kode berbasis database
      Proyek Share bersifat open source, dan GitHub pun punya ketergantungan yang praktis nyata tetapi tetap populer.
      Bukan berarti saya ingin menyangkal hal-hal itu, saya hanya berharap orang-orang mencobanya langsung dan merasakan bagian-bagian yang bisa membantu desain bahasa lain juga
    • Menurut saya masalah Unison adalah tidak adanya FFI. Justru fokus pada bisnis adalah strategi yang bagus. Mereka harus menghasilkan uang agar bisa fokus pada fitur yang penting bagi pengguna, dan tidak terjebak dalam perdebatan remeh
    • Saya juga setuju. Saya ingin membuat sistem yang memungkinkan kolaborasi lokal bahkan saat internet terputus, dan struktur fungsi berbasis hash sangat cocok untuk itu.
      Tapi sebagian besar materi pembelajaran mengasumsikan penggunaan infrastruktur cloud, jadi di lingkungan offline jalannya buntu.
      Mungkin ada pendekatan ala Unison untuk itu, tetapi lapisan marketing menutupi jalur tersebut
    • Saya justru senang ada arah komersial. Kalau dijalankan dengan baik, mereka bisa mencurahkan lebih banyak waktu untuk pengembangan yang berkelanjutan.
      Jika ada pengguna berbayar, akan ada dorongan untuk menjaga teknologinya tetap realistis dan praktis.
      Tanpa unsur komersial, ini mungkin hanya akan terasa seperti esolang lain. Sekarang saya jadi ingin mencobanya di proyek sampingan
    • Ide intinya keren, tetapi kalau distribusi atau pengambilan kode hanya bisa dilakukan lewat platform cloud, saya rasa saya tidak akan memakainya.
      Dokumentasinya menyebut Unison Share, dan itu juga di-host di unison-lang.org.
      Memang ada opsi BYOC, tapi tetap butuh akun dan langganan unison.cloud. Bagian seperti ini sebaiknya dijelaskan dengan jelas dalam marketing dan dokumentasi
  • Halo, saya salah satu pembuat bersama bahasa Unison. Kalau ada yang ingin ditanyakan, silakan tanya apa saja

    • Saya sudah lama mengikuti Unison, selamat atas rilisnya!
      Unison adalah salah satu bahasa pertama yang menonjolkan algebraic effects (Abilities) sebagai fitur utama.
      Saya ingat dulu Anda belum yakin apakah fitur ini akan diterima dengan baik, jadi saya penasaran apakah sekarang Anda puas dengan hasilnya.
      Saya juga ingin tahu apakah sistem efeknya menyatu dengan baik dengan bagian lain bahasa ini, apakah sintaksnya memuaskan, dan kalau ada cerita menarik tentang implementasi internalnya
      Dokumen terkait: Unison Abilities
    • Saya penasaran data apa sebenarnya yang disimpan saat melakukan caching hasil eksekusi test.
      Apakah hanya hash dari ekspresi dan nilai “passed” yang disimpan, atau apakah hash dari semua nilai juga bisa dihitung.
      Jika yang kedua, rasanya ini bisa memperluas reproducible build seperti Nix atau Trustix.
      Mungkin sekarang caching-nya hanya menangani ekspresi yang terikat, tetapi sepertinya ini juga bisa menjadi jembatan yang menghubungkan runtime dengan dunia luar
    • Selamat atas rilisnya! Konsep definisi berbasis hash di Unison benar-benar inovatif.
      Hanya saja, saat ini rasanya seperti solusi yang sedang mencari masalah.
      Saya penasaran bahasa ini ditujukan untuk siapa, dan apakah ada penggunaan nyata di production selain Unison Cloud
    • Ini proyek yang sangat keren. Tapi saya masih belum sepenuhnya paham konsep content-addressed language.
      Awalnya saya kira ini bahasa berbasis BEAM, tetapi ternyata berjalan di atas VM sendiri.
      Dibandingkan dengan bahasa BEAM, saya penasaran apa perbedaannya dari sisi fault tolerance, dan use case apa yang lebih cocok untuk Unison
    • Saya penasaran bagaimana primitif persistensi seperti OrderedTable dan Table diimplementasikan secara internal.
      Apakah mereka memanggil database eksternal, atau diimplementasikan di Unison itu sendiri.
      Jika dilihat bersama abstraksi Database, ini kombinasi yang sangat menarik, tetapi konsepnya tidak mudah dipahami sepenuhnya
  • Saya menganggap Unison sebagai salah satu bahasa paling menarik.
    algebraic effects menurut saya akan menjadi konsep inti generasi berikutnya.
    Selain itu, Unison juga punya banyak ide keren lain.
    Secara pribadi, saya rasa ini juga cocok untuk pengembangan mod game.
    Kita perlu menjalankan kode yang tidak tepercaya di sisi klien, dan dengan sistem ability Unison, sepertinya akan mudah membuat lingkungan sandbox.
    Ini juga bisa berguna untuk implementasi ECS(Entity Component System).
    Jika kemampuan yang dibutuhkan suatu fungsi bisa diinferensikan, maka keamanan eksekusi paralel bisa dijamin secara otomatis

    • Sebenarnya kami sudah melakukan validasi sandbox seperti itu di Unison Cloud.
      Di Cloud, IO ability tidak bisa digunakan secara langsung, dan hanya ability yang dikendalikan dengan aman seperti Http ability yang diizinkan.
      Dengan begitu, pengguna tidak bisa mengakses file system.
      Saya juga sedang membayangkan memanfaatkan fitur ini untuk pengembangan game.
      Pengguna lain juga bisa berkontribusi ke game dengan mengimplementasikan ability sebagai native service.
      Tautan referensi: Unison Cloud, kode validateSandboxed, contoh ECS
  • Saat pertama kali melihat proyek ini, saya berpikir, “bagaimana ya lima tahun lagi,” dan ternyata waktu sebanyak itu benar-benar sudah berlalu.
    Saya sangat senang akhirnya melihat rilis 1.0

  • Menjadikan bahasa yang radikal seperti ini bisa dipakai di lingkungan industri nyata adalah pencapaian luar biasa. Selamat

  • Saya rasa sistem seperti Unison adalah masa depan komputasi.
    Tapi saya tidak tahu kapan masa depan itu akan tiba.
    Keindahan sistem seperti ini adalah infrastruktur, data, dan lapisan layanan berada dalam satu sistem yang terintegrasi.
    Mungkin ini juga bisa menjadi fondasi yang lebih baik untuk agen coding AI.
    Namun saya rasa pengembangan independen yang berkelanjutan lebih cocok daripada model VC.
    Tim yang terus melanjutkan proyek jangka panjang seperti ini benar-benar keren

  • Saya ingat hari ketika Rúnar berkata akan memulai Unison.
    Saya pikir ini proyek yang membuka paradigma yang sepenuhnya baru, dan melihat rilis 1.0 sekarang membuat saya benar-benar bangga.
    Saya berharap suatu hari Unison menjadi bahasa utama saya

  • Saya berharap situs web Unison punya benchmark.
    Kita perlu tahu karakteristik performanya agar bisa memperkirakan cocok untuk penggunaan seperti apa.
    Akan bagus jika ada angka sederhana seperti perbandingan kecepatan pemrosesan request dengan Django, Express.js, dan ASP.NET.
    Idenya menarik, tetapi saya juga berharap ada target runtime selain web.
    Secara pribadi, lebih mudah bagi saya mencoba bahasa baru untuk hal seperti alat CLI daripada proyek web besar

  • Saya merujuk ke artikel ulasan Unison yang diposting pada 2023, dan itu cukup membantu

  • Idenya menarik, tetapi Unison adalah struktur all-in-one yang mengharuskan kita mengadopsi bahasa + manajemen source + hosting sekaligus.
    Jika satu bagian saja dari stack-nya tidak cocok, seluruhnya jadi sulit dipakai.
    Karena itu saya rasa ide seperti ini akan sulit menyebar luas secara langsung

    • Unison bisa diadopsi secara bertahap.
      Kualitas tooling bahasa itu sendiri sangat tinggi, dan integrasi dengan sistem yang ada juga memungkinkan.
      Misalnya, Unison Cloud sebagian besar ditulis dengan Unison, tetapi sebagian menggunakan Haskell.
      Diskusi terkait: thread HN1, thread HN2
      Saya rasa ada nilai besar dalam merancang banyak teknologi secara organik agar bekerja baik bersama-sama
    • Dibandingkan apakah sukses secara komersial atau tidak, saya rasa tolok ukur yang lebih menarik adalah nilai riset ilmu komputer yang ditunjukkan proyek ini sendiri