Dalam dunia pemrograman visual dan pengembangan berbasis alur, sebuah proyek baru mendapat perhatian karena pendekatan inovatifnya dalam menyelesaikan keterbatasan konkurensi. Erlang-RED, yang dikembangkan oleh anggota komunitas Towaway69, bertujuan untuk menggantikan backend JavaScript pada Node-RED dengan Erlang, sebuah bahasa yang dirancang khusus untuk konkurensi dan pengiriman pesan.
Menggabungkan Pemrograman Visual dengan Model Konkurensi Erlang
Erlang-RED memanfaatkan antarmuka visual intuitif Node-RED sambil menggantikan backend-nya dengan kemampuan konkurensi Erlang yang tangguh. Proyek ini mengatasi salah satu keterbatasan mendasar Node-RED: sifat JavaScript yang single-threaded. Dengan mengimplementasikan backend Erlang yang kompatibel dengan alur Node-RED yang sudah ada, pengembang berpotensi mendapatkan konkurensi sejati tanpa mengorbankan kesederhanaan pemrograman visual.
Idenya adalah untuk memanfaatkan pengiriman pesan Erlang dan proses dengan overhead rendah untuk memiliki konkurensi sejati dalam alur Node-RED. Selain itu juga untuk membawa pemrograman berbasis alur visual dengan kode rendah ke Erlang.
Pendekatan ini bisa sangat berharga untuk aplikasi yang membutuhkan konkurensi tinggi, seperti sistem IoT, pipeline data, atau aplikasi terdistribusi. Pengembang telah mengimplementasikan sejumlah besar node inti Node-RED, termasuk http in/out, MQTT, operasi file, dan node kontrol alur seperti switch, join, dan split.
Node yang Didukung dalam Erlang-RED (Daftar Sebagian)
Node | Status |
---|---|
catch | Menangkap pengecualian dari node yang dipilih dan seluruh aliran |
change | Mendukung banyak operasi, dukungan dasar JSONata |
debug | Mendukung debugging seluruh pesan |
delay | Penundaan statis didukung |
exec | Eksekusi perintah dalam mode spawn dengan dukungan batas waktu |
http in | Berfungsi untuk permintaan GET dan POST |
http request | Dukungan permintaan dasar |
mqtt in/out | Seharusnya berfungsi |
split | Pemisahan array didukung |
switch | Berfungsi |
template | Templating Mustache berfungsi |
Keterbatasan:
- Konteks (flow, node, global) tidak didukung
- Implementasi JSONata terbatas
- Node fungsi JavaScript tidak didukung
![]() |
---|
Tangkapan layar antarmuka Node-RED untuk mengekspor node, menyoroti lingkungan pemrograman visual yang menjadi dasar Erlang-RED |
Tantangan dalam Adopsi Pemrograman Visual
Diskusi komunitas menyoroti beberapa tantangan yang dihadapi pendekatan pemrograman visual seperti Erlang-RED. Salah satu masalah signifikan adalah kurangnya alat untuk kontrol versi visual dan perbandingan. Tidak seperti kode berbasis teks di mana alat seperti Git dapat menunjukkan perubahan yang tepat, alur visual biasanya disimpan sebagai JSON dengan koordinat yang membuat perbandingan bermakna menjadi sulit.
Seperti yang dicatat oleh seorang komentator, ini menciptakan hambatan untuk pengembangan kolaboratif dalam lingkungan visual. Ketika koordinat node berubah (yang tidak berdampak pada logika), perubahan ini muncul sebagai perubahan kode dalam sistem kontrol versi. Hal ini mencampurkan perubahan semantik dengan perubahan yang murni visual, membuat peninjauan kode dan kolaborasi lebih menantang dibandingkan dengan pemrograman berbasis teks tradisional.
Meskipun ada tantangan ini, pengembang menunjukkan kematangan Node-RED dalam menangani pemeliharaan program besar melalui fitur seperti node tautan dan subflow, yang memungkinkan penggunaan kembali kode dan pengorganisasian aplikasi kompleks yang lebih baik.
Persinggungan Filosofi Open Source dan Lisensi
Diskusi sampingan yang menarik muncul seputar lisensi DON'T DO EVIL yang tidak konvensional dari proyek ini. Lisensi ini, terinspirasi oleh lisensi JSONlint dari Douglas Crockford, memicu perdebatan tentang kepraktisan dan implikasi menambahkan pernyataan filosofis ke lisensi perangkat lunak.
Beberapa komentator menunjukkan bahwa lisensi non-standar dapat mencegah adopsi perusahaan dan membatasi kontribusi, karena sering memicu peninjauan hukum di lingkungan perusahaan. Yang lain menghargai sikap pengembang tentang memastikan karya mereka tidak dieksploitasi tanpa kompensasi.
Diskusi lisensi mengungkapkan ketegangan antara cita-cita open source dan realitas komersial, terutama bagi pengembang independen yang ingin berbagi karya mereka sambil mempertahankan beberapa kontrol atas bagaimana karya tersebut digunakan secara komersial.
Arah Masa Depan dan Proyek Serupa
Komunitas menunjukkan minat pada pendekatan serupa untuk bahasa lain, dengan menyebutkan Py-RED untuk Python dan pertanyaan tentang lingkungan pemrograman visual lainnya. Pengembang juga mencatat rencana untuk meningkatkan dokumentasi dengan lebih banyak contoh dunia nyata dan berpotensi membuat penjelasan video tentang proyek tersebut.
Bagi mereka yang tertarik untuk mengeksplorasi Erlang-RED, proyek ini menawarkan rangkaian pengujian komprehensif dan kemampuan pengujian unit visual yang dibangun langsung ke dalam antarmuka Node-RED. Ini memungkinkan pengembang untuk memastikan kompatibilitas dengan fungsionalitas Node-RED asli sambil memperluas kemampuan melalui model konkurensi Erlang.
Seiring evolusi pemrograman visual, proyek seperti Erlang-RED menunjukkan bagaimana menggabungkan kekuatan paradigma yang berbeda dapat berpotensi mengatasi keterbatasan dalam alat yang ada, membuka kemungkinan baru bagi pengembang yang bekerja pada sistem konkuren.