Erlang-RED: Membawa Keserentakan Sebenar kepada Node-RED dengan Backend Erlang

BigGo Editorial Team
Erlang-RED: Membawa Keserentakan Sebenar kepada Node-RED dengan Backend Erlang

Dalam dunia pengaturcaraan visual dan pembangunan berasaskan aliran, satu projek baru sedang mendapat perhatian kerana pendekatannya yang inovatif dalam menyelesaikan batasan keserentakan. Erlang-RED, yang dibangunkan oleh ahli komuniti Towaway69, bertujuan untuk menggantikan backend JavaScript Node-RED dengan Erlang, bahasa yang direka khusus untuk keserentakan dan penghantaran mesej.

Menggabungkan Pengaturcaraan Visual dengan Model Keserentakan Erlang

Erlang-RED memanfaatkan antara muka visual intuitif Node-RED sambil menggantikan backendnya dengan keupayaan keserentakan Erlang yang berkuasa. Projek ini menangani salah satu batasan asas Node-RED: sifat satu-bebenang JavaScript. Dengan melaksanakan backend Erlang yang serasi dengan aliran Node-RED sedia ada, pembangun berpotensi mendapatkan keserentakan sebenar tanpa mengorbankan kesederhanaan pengaturcaraan visual.

Ideanya adalah untuk memanfaatkan penghantaran mesej Erlang dan proses overhed rendah untuk mendapatkan keserentakan sebenar dalam aliran Node-RED. Selain itu juga untuk membawa pengaturcaraan berasaskan aliran visual kod-rendah kepada Erlang.

Pendekatan ini boleh menjadi sangat bernilai untuk aplikasi yang memerlukan keserentakan tinggi, seperti sistem IoT, saluran data, atau aplikasi teragih. Pembangun telah melaksanakan sejumlah besar nod teras Node-RED, termasuk http in/out, MQTT, operasi fail, dan nod kawalan aliran seperti switch, join, dan split.

Nod-nod yang Disokong dalam Erlang-RED (Senarai Separa)

Nod Status
catch Menangkap pengecualian nod terpilih dan keseluruhan aliran
change Menyokong pelbagai operasi, sokongan asas untuk JSONata
debug Menyokong proses nyahpepijat untuk keseluruhan mesej
delay Sokongan lengah statik
exec Pelaksanaan arahan dalam mod spawn dengan sokongan masa tamat
http in Berfungsi untuk permintaan GET dan POST
http request Sokongan asas permintaan
mqtt in/out Sepatutnya berfungsi
split Pemisahan tatasusunan disokong
switch Berfungsi
template Templat Mustache berfungsi

Batasan:

  • Konteks (aliran, nod, global) tidak disokong
  • Implementasi JSONata yang terhad
  • Nod fungsi JavaScript tidak disokong
Tangkapan skrin antara muka Node-RED untuk mengeksport nod, menyerlahkan persekitaran pengaturcaraan visual yang menjadi asas pembangunan Erlang-RED
Tangkapan skrin antara muka Node-RED untuk mengeksport nod, menyerlahkan persekitaran pengaturcaraan visual yang menjadi asas pembangunan Erlang-RED

Cabaran dalam Penggunaan Pengaturcaraan Visual

Perbincangan komuniti menyoroti beberapa cabaran yang dihadapi oleh pendekatan pengaturcaraan visual seperti Erlang-RED. Satu isu penting adalah kekurangan alat untuk kawalan versi visual dan perbandingan. Tidak seperti kod berasaskan teks di mana alat seperti Git boleh menunjukkan perubahan tepat, aliran visual biasanya disimpan sebagai JSON dengan koordinat yang menyukarkan perbandingan bermakna.

Seperti yang dinyatakan oleh seorang pengomen, ini mewujudkan halangan untuk pembangunan kolaboratif dalam persekitaran visual. Apabila koordinat nod berubah (yang tidak memberi kesan kepada logik), ini muncul sebagai perubahan kod dalam sistem kawalan versi. Ini mencampurkan perubahan semantik dengan perubahan visual semata-mata, menjadikan semakan kod dan kolaborasi lebih mencabar berbanding dengan pengaturcaraan berasaskan teks tradisional.

Walaupun menghadapi cabaran-cabaran ini, pembangun menunjukkan kematangan Node-RED dalam menangani penyelenggaraan program besar melalui ciri-ciri seperti nod pautan dan subaliran, yang membolehkan penggunaan semula kod dan organisasi aplikasi kompleks yang lebih baik.

Persilangan antara Sumber Terbuka dan Falsafah Pelesenan

Perbincangan sampingan yang menarik muncul mengenai lesen DON'T DO EVIL projek yang tidak konvensional. Lesen ini, yang diilhamkan oleh lesen JSONlint Douglas Crockford, mencetuskan perdebatan tentang kepraktisan dan implikasi menambah pernyataan falsafah kepada lesen perisian.

Beberapa pengomen menunjukkan bahawa lesen bukan standard boleh menghalang penggunaan korporat dan mengehadkan sumbangan, kerana ia sering mencetuskan semakan undang-undang dalam persekitaran perusahaan. Yang lain menghargai pendirian pembangun untuk memastikan kerja mereka tidak dieksploitasi tanpa pampasan.

Perbincangan lesen mendedahkan ketegangan antara ideal sumber terbuka dan realiti komersial, terutamanya bagi pembangun bebas yang ingin berkongsi kerja mereka sambil mengekalkan beberapa kawalan terhadap bagaimana ia digunakan secara komersial.

Arah Masa Depan dan Projek Serupa

Komuniti menunjukkan minat dalam pendekatan serupa untuk bahasa lain, dengan sebutan Py-RED untuk Python dan pertanyaan tentang persekitaran pengaturcaraan visual lain. Pembangun juga mencatat rancangan untuk meningkatkan dokumentasi dengan lebih banyak contoh dunia nyata dan berpotensi mencipta penjelasan video tentang projek tersebut.

Bagi mereka yang berminat untuk meneroka Erlang-RED, projek ini menawarkan suite ujian komprehensif dan keupayaan ujian unit visual yang dibina terus ke dalam antara muka Node-RED. Ini membolehkan pembangun memastikan keserasian dengan fungsi Node-RED asal sambil memperluaskan keupayaan melalui model keserentakan Erlang.

Sementara pengaturcaraan visual terus berkembang, projek seperti Erlang-RED menunjukkan bagaimana menggabungkan kekuatan paradigma berbeza berpotensi mengatasi batasan dalam alat sedia ada, membuka kemungkinan baru untuk pembangun yang bekerja pada sistem serentak.

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