Mengapa Developer Menyukai Node.js?

Takagi Fujimaru 16 Februari 2018

Mengapa Developer Menyukai Node.js?

Beberapa bulan yang lalu, RisingStack mengadakan survei untuk mencari tahu untuk apa Node.js dipakai dan mengapa developer masih memakainya. Tujuan lain dari survei ini ialah untuk mengetahui masalah apa yang paling sering dihadapi developer saat memakai Node, topik yang cukup jarang dibahas. Mereka juga menanyakan dimana tempat men-deploy aplikasi Node, apa teknologi front-end pilihan mereka, juga database apa yang dipakai sebagai tandem Node. Berikut ini daftar pertanyaan yang diajukan:

  1. What do you like most about developing with Node.js?
  2. What are you using Node.js for?
  3. What difficulties do you face with your production environment?
  4. What's the hardest thing for you to get right with Node.js at the moment?
  5. What Node.js topics are criminally underexplained in your opinion?
  6. Where do you deploy your Node.js applications?
  7. Which front-end technology do you plan to use in 2018?
  8. Which kind of databases do you plan to use in 2018?
  9. Which flavor of JavaScript do you use?

Hasilnya, ada 539 developer yang membagikan pengalaman mereka melalui survei ini.

Yang Paling Disukai Dari Node.js

Berikut ini beberapa jawaban yang diberikan oleh developer atas pertanyaan apa yang paling disukai saat mengembangkan aplikasi dengan Node.js?

  • Node.js memiliki performa yang sangat baik sehingga membuat saya menjadi sangat produktif.
  • Ringan untuk melakukan development dilingkungan enterprise, ditambah 400.000 lebih paket npm yang sudah tersedia.
  • Front-end, back-end, dan tester menggunakan bahasa yang sama.
  • Bisa melakukan pengembangan dengan produktif baik di backend maupun di frontend tanpa harus pusing karena sintaks yang berbeda. Semua menggunakan JavaScript dan cepat untuk membuat prototipe.
  • Bahasa yang sama di klien dan server; JavaScript kondusif untuk melakukan functional programming; TypeScript bisa bekerja dengan baik bersama node; memiliki i/o non blocking.
  • Menyenangkan, membawa angin segar dibandingkan php.
  • Mudah sekali menulis kode di Node.js. Kita bahkan bisa membacanya seperti bahasa manusia.

API, Backend/Server dan Aplikasi Web

Saat menanyakan developer apa yang mereka buat dengan Node, jawabannya bisa memberikan gambaran yang cukup jelas.

Image

Jawaban yang diberikan sebetulnya cukup beragam, tapi sebagian besar menulis bahwa mereka membuat REST API atau backend service dengan Node.js. Selain itu, aplikasi web, microservices dan website juga cukup sering di sebut.

Kasus lain yang juga disebut:

  • Membuat aplikasi CLI dan build tools,
  • Menulis aplikasi mobile & backends aplikasi tersebut,
  • Membangun sistem manajemen,
  • Scripting & Automation,
  • Rendering React Apps,
  • Internet of Things,
  • Remote Systems Monitoring,
  • Writing Middlewares,
  • Authentication,
  • Creating Workers

Kebanyakan Developer Node.js Mengalami Masalah Performa dan Keamanan di Production

RisingStack menanyakan kesulitan yang dialami di lingkungan production. Kali ini ada beberapa kategori yang bisa dipilih.

Dari jawaban yang diberikan, kesulitan yang banyak dipilih adalah performance monitoring, security, dan improving performance. Deployment, scaling dan maintenance juga banyak dipilih. Sepertinya downtimes & networking tidak menyulitkan.

Image

Asynchronous Programming dan Security, Hal yang Paling Sulit Dilakukan

RisingStack juga menanyakan apa yang yang paling sulit dilakukan dengan benar di Node.js saat ini?

Image
  • Asynchronous: Asynchronous Programming & Behaviour, Async/Await, Async Patterns, Async Hooks.
  • Clean Coding: Code Quality, Code Maintenance / Organization / Management
  • Performance yang dimaksud adalah performance monitoring and improving.
  • Module: mencari modul yang cocok, menjaga dependensi tetap up-to-date, package security & sedikitnya pustaka yang dimaintain dan tidak buggy.
  • Testing: termasuk unit testing & end-to-end testing.
  • Monitoring: masalah-masalah yang menyangkut performance monitoring, tracing & logging.
  • Structuring: umumnya terdapat jawaban seputar planning & structuring complex, scalable architectures.
  • Processes: multithreading, parallel-processing, multiprocessing & handling child processes.
  • Promises: promise patterns, promise driven development, proper use of promises.
  • Dependency: umumnya tentang upgrading, mengurangi jumlah dependensi dan mengelolanya.

Keamanan, Topik yang Paling Underexplained

Underexplained disini maksudnya adalah topik-topik yang jarang dibahas padahal memiliki kepentingan yang krusial.

Image

AWS Menjadi Juara di Node.js

Mayoritas developer menjawab AWS sebagai sistem pilihan mereka untuk men-deploy aplikasi Node.js. Mengungguli hampir dua kali lipat dari posisi kedua, Heroku.

Image

React Menjadi Teknologi Frontend Pilihan

Sepertinya React memenangkan pertempuran front-end framework dikalangan developer Node. Sama seperti AWS, React mengungguli posisi kedua (Angular) dengan cukup telak.

Image

MongoDB Menjadi Database Pilihan

Untuk database, MongoDB menjadi pilihan utama. Disini, MongoDB pun mengguli lawan-lawannya dengan cukup telak. Sementara itu, untuk posisi dua sampai empat hanya memiliki perbedaan 5% yang diperebutkan antara Redis, PostgreSQL, dan MySQL.

Image

ES Next Paling Banyak Dipakai

Diantara beberapa varian JavaScript, ES Next (ES2015+) menjadi nomor satu diikuti oleh ES5, TypeScript, Flow, baru ES6.

Image

Sumber: RisingStack

Sumber gambar: ReadWrite