Erlang-RED: Membawa Konkurensi Sejati ke Node-RED dengan Backend Erlang

BigGo Editorial Team
Erlang-RED: Membawa Konkurensi Sejati ke Node-RED dengan Backend Erlang

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
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.

Referensi: Erlang-RED - A Node-RED backend coded in Erlang