- Mendukung pemrosesan data berskala besar dan analisis ilmiah yang dibutuhkan dalam riset berskala besar seperti fisika energi tinggi, dan saat ini lebih dari 2 eksabita data tersimpan dalam file ROOT
- ROOT juga digunakan dalam penemuan Higgs, menjadikannya alat dengan contoh penggunaan nyata yang telah teruji dalam analisis data eksperimen
- Dapat digunakan dan dimodifikasi secara bebas sebagai open source, serta menerima kontribusi pengguna melalui proses pengembangan terbuka
- Interpreter C++ yang disertakan cocok untuk prototyping cepat, dan semua komponennya dapat diakses melalui dynamic binding Python
- Juga mendukung Jupyter Notebook, sehingga analisis berbasis C++ dan Python dapat diperluas ke lingkungan notebook; kabar rilis, pelatihan, dan hackathon juga terus dipublikasikan
Peran ROOT dalam Analisis Data
- ROOT adalah alat yang memungkinkan pemrosesan data dalam jumlah besar dan analisis ilmiah
- Saat ini lebih dari 2 eksabita data tersimpan dalam file ROOT
- Higgs ditemukan dengan ROOT
Pengembangan Open Source dan Kontribusi
- ROOT tersedia sebagai open source
- Dapat digunakan secara bebas
- Dapat dibangun dari source dan dimodifikasi
- Mengadopsi proses pengembangan terbuka yang menerima kontribusi pengguna
Cara Penggunaan Berbasis C++·Python·Notebook
- Antarmuka pengembangannya mendukung C++ dan Python
- Menyediakan interpreter C++ sehingga cocok untuk prototyping cepat
- Semua komponen ROOT dapat diakses melalui dynamic binding Python
- Juga mendukung Jupyter Notebook
Blog dan Kabar Rilis
- Entri blog terbaru mencakup undangan perilisan dokumenter C++ di YouTube, trailer dokumenter ROOT dan C++, ROOT Advanced Course 2026, serta tulisan terkait 3rd ROOT Hackathon
- Daftar rilis terbaru mencakup versi berikut
- Release 6.40.02 - 11 Juni 2026
- Release 6.40.00 - 20 Mei 2026
- Release 6.40.00-rc1 - 23 April 2026
- Release 6.38.06 - 12 Juni 2026
- Release 6.38.04 - 12 Maret 2026
1 komentar
Komentar Hacker News
Jadi teringat masa lalu. Saat bekerja di bidang fisika partikel, saya banyak memakai ROOT, dan punya hubungan benci tapi sayang dengannya
Di satu sisi ada banyak utang teknis dan inersia yang aneh, tetapi di sisi lain ada cukup banyak hal yang lebih mudah dilakukan di ROOT dibanding pilihan yang lebih “modern” seperti matplotlib. Misalnya histogram, data yang sangat terstruktur dengan objek berisi field yang disimpan dalam “kolom”, menggambar fungsi secara langsung tanpa mengalokasikan array x/y secara terpisah, dan sebagainya
API berorientasi objek yang intuitif juga menyenangkan. Rasanya lebih dekat ke C++ atau Java gaya lama dibanding method chaining di pandas/matplotlib, penyalahgunaan sintaks
[], dan berbagai perilaku ajaib. Tidak elegan dan bertele-tele, tetapi dalam analisis ilmiah itu justru bisa menjadi kelebihanKetika saya keluar sekitar 5 tahun lalu, ROOT sedang berubah; interpreter CINT lama sudah disingkirkan dan basis kodenya sudah dipindahkan ke berbasis clang. Setahu saya sekarang analisis bisa dijalankan di Jupyter dengan C++ atau Python, dan saya dengar kualitas kodenya juga jauh membaik
Tidak banyak alasan bagi analisis baru untuk memakai ROOT sebagai default. Lebih baik memakai pilihan yang lebih ramah pengguna dan lebih waras seperti uproot
Mungkin ada workflow legacy, atau eksperimen tertentu yang menumpuk banyak patch kustom di atas ROOT, tetapi kalau hanya untuk analisis fisika, itu bisa jadi pilihan yang menyiksa diri sendiri
Saya juga suka halaman 404-nya. Dan ini bukan soal room 404
https://github.com/scikit-hep/uproot5
https://root.cern/404/
fordi Python terlalu lambatDalam kasus seperti ini bisa memakai Numba, atau, jika kebetulan berjalan baik; kalau tidak, izinkan promosi tanpa malu: bisa memakai Julia: https://github.com/JuliaHEP/UnROOT.jl
Diskusi HN sebelumnya tentang penggunaan Julia dalam fisika partikel: https://news.ycombinator.com/item?id=38512793
Melihat proyek perangkat lunak berskala besar yang dipakai untuk penemuan ilmiah itu keren
Contoh lain, LIGO menggunakan GStreamer untuk mencari gelombang gravitasi: https://lscsoft.docs.ligo.org/gstlal/
Namun saya tidak tahu apakah benar-benar ide bagus bagi orang luar untuk memakainya. Pengalaman saya mungkin sudah agak lama, tetapi dulu cukup kasar dan usang. Keuntungan besar dalam pekerjaan di CERN atau fisika partikel adalah bahwa ini secara de facto standar, sehingga kolaborasi internal jadi mudah
Sebaliknya GStreamer adalah platform dengan desain yang indah, dan karena arsitekturnya bagus, ia dapat dengan mudah diabstraksikan dan digunakan ulang untuk skenario yang sama sekali berbeda, yang mungkin tidak pernah dibayangkan oleh pembuat awalnya
Jejaknya terlihat di mana-mana. Ia monolit raksasa, jadi begitu mencoba melakukan sesuatu yang sedikit tidak biasa, Anda harus terus berkelahi dengannya. Untung saya tidak perlu sering memakainya, tetapi saya masih cukup sering bersentuhan dengannya
Secara pribadi, ROOT mencoba melakukan terlalu banyak hal, desain API-nya buruk, dan yang terpenting, ROOT sebagai library dan ROOT sebagai program tidak dipisahkan
Ada banyak global state, dan ada asumsi bahwa orang harus memakainya dengan cara program ROOT. ROOT 6 mulai memperbaiki sebagian, tetapi butuh waktu, dan menurut saya pribadi, karena terlalu dalam bergantung pada llvm dan clang, waktu build makin panjang dan proyeknya makin sulit diperbaiki
Selama lama, dokumentasi format input/output juga buruk dan implementasinya hanya satu
Sekarang, berkat groot, uproot, freehep, openscientist, dan lainnya, data ROOT bisa dibaca dan ditulis tanpa menarik seluruh ROOT. Menurut saya interoperabilitas data sangat penting. Itu wajib jika ingin punya harapan bahwa 20 atau 30 tahun lagi data unik itu masih bisa dibaca kembali
https://go-hep.org/x/hep/groot
Saya pengembang utama go-hep
Ah, root… membuat saya bersyukur bahwa saya tidak perlu memakai versi sebelum 6 setiap hari
Saya teringat malam-malam larut saat men-debug kode yang ditulis para fisikawan hebat tetapi tanpa latar belakang ilmu komputer
Mereka memakai ROOT untuk pemodelan dan membuat interface dengan Ruby, dan dari sudut pandang rekayasa perangkat lunak itu seperti monster. Namun dari sudut pandang statistik, hasilnya cukup bagus
Itu jauh sebelum ekosistem Python naik daun, dan paket machine learning di R juga baru mulai muncul
main()sepanjang 2000 barisRoot memang tulang punggung dari pekerjaan yang sangat besar dalam fisika partikel eksperimental, tetapi juga mimpi buruk bagi mahasiswa pascasarjana baru
Ia sudah praktis tertanam dalam di fisika partikel, jadi sepertinya tidak akan berubah dalam waktu dekat
Masalahnya biasanya ada pada kode legacy yang harus dipelihara sebagai bagian dari layanan eksperimen
Bagian Root yang saya pakai adalah Cling, interpreter C++, dan Xeus untuk notebook Jupyter
Suatu malam saya membandingkan n-body tercepat dari benchmarkgames di Xeus dan Python 3. Pada instance Binder yang sama, Xeus butuh 15,58 detik, sementara saat menjalankan kode Python tercepat dengan kernel Python3 butuh 5 menit. Output dari kedua eksekusi persis sama
Bahkan jika overhead eksekusi C++ dinamis pada program ini diasumsikan sekitar 300%, Cling tetap sangat cepat. Saya tidak memakai SIMD atau vektorisasi, hanya kode dari benchmarkgames. Cling terutama saya pakai sebagai pengganti JIT cepat untuk bahasa yang dikompilasi ke C++
Ini upaya untuk membawa C++ ke dunia Clojure, dan membawa Clojure serta pemrograman interaktif ke dunia C++
Kode sumber: https://github.com/root-project
“Men-debug skrip CERN ROOT dan program berbasis ROOT di Eclipse IDE”
Astaga, saya jadi teringat mimpi buruk. Ini jelas menunjukkan bahwa hal-hal luar biasa bisa dibuat bahkan di lingkungan yang mengerikan