Seperti yang sudah kita lakukan tahun lalu, sekarang waktunya untuk melihat kembali kondisi dunia JavaScript di tahun 2017.

Mari kita lihat secara angka proyek-proyek apa saja yang mendapatkan perhatian di tahun 2017 dengan membandingkan jumlah bintang yang ditambahkan di GitHub selama 12 bulan lalu mencari tahu siapa JavaScript Rising Stars tahun 2017.


Grafik berikut membandingkan jumlah bintang yang diterima di GitHub selama 12 terakhir. Kami menganalisa proyek-proyek dari Best of JS, sebuah daftar proyek-proyek terbaik di dunia web. Ingat bahwa anda bisa mengklik salah satu proyek untuk mendapatkan informasi lebih lengkap.

Daftar Isi

  1. Proyek Paling Populer Secara Keseluruhan
    Vue.jsReactCreate React AppPuppeteerAxiosVS CodePrettierReact NativeElementElectron
  2. Front-end Frameworks
    Vue.jsReactAngularPreactHyperapp
  3. Node.js Frameworks
    ExpressKoaFastifyGunmicro
  4. React Ecosystem
    Create React AppAnt DesignNext.jsStorybookGatsby
  5. Vue Ecosystem
    ElementiViewVuexWeexNuxt
  6. Mobile
    React NativeWeexIonicQuasarNativeScript
  7. Compilers
    TypeScriptBabelFlowReasonPurescript
  8. Build Tools
    ParcelWebpackGulpRollupPoi
  9. Testing Frameworks
    JestAVAMochaJasmineTape
  10. IDEs & Editors
    VS CodeAtomReactideBracketsNuclide
  11. CSS in JavaScript
    Styled ComponentsCSS ModulesPolishedGlamorousEmotion
  12. Static Sites
    GatsbyHexoReact StaticPhenomicMetalsmith
  13. GraphQL
    GatsbyReact Starter KitApollo clientGraphQLGraphiQL
  14. Kesimpulan

Proyek Paling Populer Secara Keseluruhan

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+40.0k☆

Trends in 2017

3.0k
3.5k
3.9k
3.1k
3.2k
3.1k
3.6k
3.3k
3.6k
3.4k
3.1k
3.0k
J
F
M
A
M
J
J
A
S
O
N
D

GitHub data

Created
2013-07
Total stars
80.7k☆

Links

GitHub
vuejs/vue
Homepage
vuejs.org
Best of JS
bestofjs.org/projects/vuejs
2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+27.8k☆
3
Create React App

Create React App

Create React apps with no build configuration.
+22.5k☆
4
Puppeteer

Puppeteer

Headless Chrome Node API
+22.0k☆
5
Axios

Axios

Promise based HTTP client for the browser and node.js
+21.9k☆
6
VS Code

VS Code

Visual Studio Code
+20.2k☆
7
Prettier

Prettier

Prettier is an opinionated code formatter.
+17.7k☆
8
React Native

React Native

A framework for building native apps with React.
+15.6k☆
9
Element

Element

A Vue.js 2.0 UI Toolkit for Web
+14.9k☆
10
Electron

Electron

Build cross platform desktop apps with JavaScript, HTML, and CSS
+14.8k☆

Pendahuluan

Berikut ini proyek paling populer tahun 2017 dari semua kategori.

Vue.js kembali lagi

Sekali lagi, Vue.js menjadi proyek paling trendi tahun 2017 dengan lebih dari 40.000 bintang ditambahkan di GitHub sepanjang tahun.

Pencapaian jumlah bintang ini lebih tinggi dari tahun 2016 yang hanya 26.000 bintang dan jarak ke penantang berikutnya (React) menjadi lebih besar.

Jadi apa yang membuat Vue.js spesial?

  • Pertama, ia memiliki kurva belajar yang rendah dengan pendekatan penggunaan komponen yang mirip dengan React tapi menggunakan sintaks yang lebih familiar.
  • Ekosistemnya didefinisikan dengan baik dimana terdapat standar yang dipakai dimana router: vue-router, State management library: Vuex
  • Konsep penggunaan single-file component dimana ada template, logic dan styles di satu file .vue merupakan konsep yang menarik.
  • Dipakai oleh salah satu framework PHP paling populer, Laravel, sebagai view engine bawaannya.
  • Tidak didekengi oleh perusahaan besar di Internet seperti Facebook atau Google tapi dimaintain oleh Evan You sebagai proyek open-source yang disponsori oleh crowd-sourcing.

Poin ini mungkin mirip dengan point terakhir di atas, tapi Vue.js sangat populer diantara developer Tiongkok. Ia dipakai oleh platform e-commerce paling besar di Tiongkok (Alibaba), juga dipakai oleh perusahan lain seperti GitLab atau Adobe.

React, nomor 2, lagi!

Seperti di tahun 2016, React menjadi nomor 2, dengan lebih dari 27.000 bintang yang ditambahkan ke GitHub (catat bahwa kita hanya melihat bintang yang ditambahkan sepanjang tahun, bukan jumlah bintang keseluruhan).

Create React App, proyek yang ketiga, menjadi cara yang paling direkomendasikan untuk membuat proyek web baru dengan React dan sukses membuat banyak boilerplate React menjadi tidak relevan seperti sebelumnya.

Dan Abramov (pembuat Redux, sekarang bekerja untuk Facebook) melakukan kerja yang sangat bagus dalam mencari keseimbangan antara kesederhanaan dan fitur. Contoh tidak ada styling yang aneh-aneh (hanya CSS biasa), tidak ada server-side rendering, tapi semua dipaketkan dengan baik sehingga pengalaman developer menjadi sangat asik.

Axios

Pustaka Axios menjadi klien HTTP yang paling banyak dipakai.

Ia dapat bekerja baik di sisi klien (rikues AJAX dari klien) atau di server-side (rikues HTTP di lingkungan Node.js).

Kesuksesannya mungkin berhubungan dengan Vue.js juga karena banyak tutorial Vue.js menggunakannya untuk mengakses API melalui HTTP.

Puppeteer

Puppeteer adalah cerita paling akbar tahun 2017. Dibuat oleh tim Google Chrome, ia adalah sebuah peramban headless Chrome alias perambah yang berjalan di belakang layar dan dapat diakses lewat kode.

Ia dapat dipakai untuk melakukan:

  • Pengujian antarmuka aplikasi web secara otomatis di peramban web asli (bukan virtual).
  • Mengambil snapshots halaman web untuk melakukan server-side rendering.
  • Membuat file PDF dengan kelebihan Chrome untuk menyimpan halaman web sebagai file PDF.

Front-end Frameworks

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+40.0k☆
2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+27.8k☆
3
Angular

Angular

One framework. Mobile & desktop.
+12.2k☆
4
Preact

Preact

⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.
+10.4k☆
5
Hyperapp

Hyperapp

1 KB JavaScript library for building web applications.
+8.1k☆

Kategori "front-end framework" sudah menjadi medan perang dalam beberapa waktu terakhir, namun akhirnya medan perang ini lambat laun mulai mendingin dimana kita dapat melihat dengan jelas 3 pemain paling dominan.

The Big-3: Vue, React dan Angular

Bukan sebuah kejutan bahwa tiga framework UI paling populer adalah Vue.js, React dan Angular

Meski secara umum ketiganya bisa dipanggil sebagai frameworks, namun akan lebih akurat jika hanya Angular saja yang mendapat sebutan itu, dan kita harus menyebut Vue.js dan React sebagai libraries alias pustaka.

Sebelumnya kita sudah membahas kesuksesan Vue.js dan pendekatan terintegrasinya.

Sementara itu, dunia React masih terpecah belah dan developer harus membuat menentukan sendiri hal-hal yang akan ada di view layer:

  • Routing antar halaman.
  • Bagaimana mengambil data.
  • Bagaimana menautkan form ke data.
  • Bagaimana menyimpan state aplikasi.

Sebaliknya, ekosistem Angular sudah lebih terkontrol dan lebih stabil. Selalu ada Angular Way (atau cara yang Angular banget) untuk melakukan sesuatu.

Standar yang dimilikinya merupakan salah satu alasan mengapa Angular lebih memiliki imej sebuah "corporate" (atau "enterprise" gitu lah ya). Imej ini sudah diperlihatkan dengan penggunaan static type oleh TypeScript dimana sintaksnya mirip dengan bahasa C# atau Java yang biasa dipakai backend developer.

Less is more

Dibelakang Big-3, sangat menarik untuk melihat bahwa Preact menduduki posisi 4. Preact adalah alternatif yang lebih kecil dari React: dengan API yang sama tapi ukuran kurang dari 3KB.

Penantang lain di kategori ini sebagin besar mengambil kelebihan dengan memperkecil ukuran untuk mendapatkan performa yang lebih baik dibandingkan tiga framework di atas.

Contoh terbaik untuk moto di atas adalah Hyperapp, sebuah proyek yang masih berumur minggu. Ia merupakan pendekatan campuran antara sintaks JSX dari React dan sebuah sistem manajemen state yang terinspirasi oleh Redux dalam ukurang kurang dari 1KB!

Node.js Frameworks

1
Express

Express

Fast, unopinionated, minimalist web framework for node.
+6.7k☆
2
Koa

Koa

Expressive middleware for node.js using ES2017 async functions
+5.8k☆
3
Fastify

Fastify

Fast and low overhead web framework, for Node.js
+5.8k☆
4
Gun

Gun

A realtime, decentralized, offline-first, graph database engine.
+3.2k☆
5
micro

micro

Asynchronous HTTP microservices
+3.2k☆

JavaScript tentu saja tidak terbatas di sisi front-end sebuah aplikasi web saja, JavaScript juga dapat dipakai di backend, dan Mikeal Rogers, seorang member komunitas node.js yang cukup berpengaruh memprediksi bahwa Node.js Akan Mengalahkan Java dalam Satu Tahun.

Namun tidak seperti bahasa lain yang sudah memiliki standar de-facto selama bertahun-tahun (pikirkan Ruby on Rails untuk Ruby, Django untuk Python atau Laravel untuk PHP), tidak ada aturan khusus atau arsitektur yang direkomendasikan saat akan membuat sebuah server node.js baru.

Meskpun sudah cukup tua, Express masih tidak hanya masih menjadi framework paling trendi untuk node.js di tahun 2017, tapi ia juga measih menjadi tulang punggung banyak framework atau CMS lain, termasuk Feathers, Keystone atau Nest.

Sepertinya pendekatan minimalis ala Express cocok untuk tren micro-service yang mempromosikan pembuatan beberapa aplikasi yang lebih kecil daripada membuat satu aplikasi yang super besar.

Dibandingkan tahun lalu, 3 pendatang baru bergabung di TOP 10 framework node.js:

  • Fastify dibuat sebagai web framework general-purpose, terinspirasi oleh hapi, tapi lebih cocok untuk membangun API HTTP berbasis JSON.
  • Server.js bertujuan untuk memberikan pengalaman ‘everything works out of the box’.
  • Nest memberikan arsitektur yang cukup familiar bagi developer Angular, terdiri atas module dan controller, ditulis dalam TypeScript.

React Ecosystem

1
Create React App

Create React App

Create React apps with no build configuration.
+22.5k☆
2
Ant Design

Ant Design

🐜 A UI Design Language
+13.3k☆
3
Next.js

Next.js

Framework for server-rendered or statically-exported React apps
+12.7k☆
4
Storybook

Storybook

Interactive UI component dev & test: React, React Native, Vue, Angular
+9.7k☆
5
Gatsby

Gatsby

⚛️📄🚀 Blazing fast static site generator for React
+9.7k☆

Pustaka React hanya memiliki layer view, memberiakn ruang bagi keseluruhan ekosistemnya yang bergerak dengan sangat cepat. Dalam kategori ini, kami mengikutsertakan proyek ayng dibuat di atas pustaka React dan React Native.

Tahun 2016 Create React App menyelesaikan permasalahan untuk mulai membuat sebuah aplikasi React yang baru dengan template yang sudah diatur dengan baik. Facebook terus merilis versi baru dan sampai hari ini menjadi proyek paling populer di tahun 2017.

Sebagai contoh kesuksesannya, kami dapat menyebut StackBlitz, sebuah IDE online yang memungkinkan kita menjalankan aplikasi yagn dibuat dari Create React App, langsung dari browser dalam hitungan detik.

Namun meskipun Create React App sering disebut sebagai "starter kit" bawaan untuk React, developer mungkin masih memerlukan starter kit lain seperti: React boilerplate yang juga menjadi proyek paling populer dikategori inidengan memberikan banyak fitur seperti integrasi dengan GraphQL.

Ant Design, Ant Design Pro dan Material UI merupakan kumpulan komponen React yang telah diatur style-nya sehingga membantu developer yang ingin membuat aplikasi web yang repot memikirkan styling aplikasinya.

Popularitas Recompose memberikan salah satu fitur yang paling diinginkan developer dari React: pendekatan "functional"-nya, semua hanyalah sebuah fungsi dan Recompose memberikan kumpulan helper untuk melakukan hal ini.

Vue Ecosystem

1
Element

Element

A Vue.js 2.0 UI Toolkit for Web
+14.9k☆
2
iView

iView

A high quality UI Toolkit built on Vue.js 2.0
+9.5k☆
3
Vuex

Vuex

🗃️ Centralized State Management for Vue.js.
+7.2k☆
4
Weex

Weex

A framework for building Mobile cross-platform UI.
+6.5k☆
5
Nuxt

Nuxt

Versatile Vue.js Framework
+6.3k☆
6
Vuetify

Vuetify

Material Component Framework for Vue.js 2
+6.3k☆
7
Mint UI

Mint UI

Mobile UI elements for Vue.js
+5.5k☆
8
vux

vux

Mobile UI Components based on Vue & WeUI
+4.6k☆
9
vue-router

vue-router

🚦 The official router for Vue.js.
+4.6k☆
10
Vue material

Vue material

Material design for Vue.js
+3.7k☆

Guest Writer: Evan You

Meski begitu mengagumi Vue.js, kami harus akui bahwa kami belum begitu familiar dengan ekosistemnya.

Oleh karena itu lah kami mencari seorang ahli untuk memberiakn opini mereka tentang statistik tahun ini dan siapa yang lebih baik dari pembuat Vue.js itu sendiri?

Guest Writer evan

Dengan popularitas yang meningkat dari Vue itu sendiri, banyak proyek di ekosistem Vue juga memperoleh perkembangan yang cepat di tahun 2017.

Element dan iView adalah dua component UI kit yang paling populer. Mint UI dan vux, disisi lain adalah dua UI kit yang fokus di ranah mobile dan paling populer.

Vuetify adalah framework komponen Material Design yang dapat dipakai baik untuk mobile maupun aplikasi web desktop dan mungkin menjadi fitur paling kaya dengan server-side rendering, PWA dan dukungan CLI template. Ada juga Vue material yang fokus lebih untuk memberikan kumpulan komponen yang secara ketat mengikuti aturan Material Design.

Nuxt adalah sebuah higher-level framework dibuat di atas Vue, memberikan pengalaman development yang sangat halus untuk membuat aplikasi server-rendering Vue universal. Ia juga sangat serbaguna - kodenya bisa dipakai untuk membuat SPA biasa atau malah membuat static site.

Weex adalah framework yang memungkinkan pengguna untuk membuat aplikasi native-rendering mobile menggunakan sintaks dan API Vue yang sudah cukup familiar. Dikembangkan oleh Alibaba dan dipakai di production di beberapa aplikasi mobile yang cukup besar didunia dengan fokus pada performa.

Mobile

1
React Native

React Native

A framework for building native apps with React.
+15.6k☆
2
Weex

Weex

A framework for building Mobile cross-platform UI.
+6.5k☆
3
Ionic

Ionic

Build amazing native and progressive web apps with open web technologies. One app running on everyth
+5.5k☆
4
Quasar

Quasar

Quasar Framework
+3.7k☆
5
NativeScript

NativeScript

NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use
+2.9k☆

JavaScript sangat serbaguna sehingga ia juga bisa dipakai untuk membuat aplikasi mobile, artinya kita bisa menggunakan kompoenen yang sama antara aplikasi web dengan aplikasi mobile.

Di kategori ini, kita kembali menemukan tiga pemain utama dari kategori "Front-end frameworks":

Seperti di tahun 2016, React Native menjadi solusi paling trendi yang berbasis JavaScript untuk membangun aplikasi mobile yang native baik itu untuk iOS, Android atau Windows systems.

Seperti yang dibahas di video ini Cross platform apps with React Native, janji untuk "Write Once, Run Everywhere" dapat dipenuhi!

Compilers

1
TypeScript

TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
+11.6k☆
2
Babel

Babel

:tropical_fish: Babel is a compiler for writing next generation JavaScript.
+5.7k☆
3
Flow

Flow

Adds static typing to JavaScript to improve developer productivity and code quality.
+5.1k☆
4
Reason

Reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
+2.1k☆
5
Purescript

Purescript

A strongly-typed language that compiles to Javascript
+1.2k☆

Disini kita membahas bahasa yang dikompilasi menjadi kode JavaScript biasa.

Pembaca mungkin membutuhkan sebuah compiler untuk building workflow kita karena dua alasan berikut:

  • Pembaca ingin mendapatkan semua fitur dari bahasa JavaScript paling baru (ES7) sembari membuat kode yang ditulis dapat berjalan dari mayoritas peramban web yang ada. Fitur ini yang membuat Babel begitu sukses dimana banyak proyek bergantung padanya.
  • Pembaca ingin menambah fitur baru ke bahasa tersebut misalnya sebuah "type checking".

Satu pertanyaan masa kini yang membagi developer menjadi dua kubu: menggunakan type atau tidak menggunakan type?

JavaScript memiliki tipe yang dinamis (dynamic type) tapi bukan tipe statik (static type). Banyak developer merasa mereka membutuhkan sebuah type di kodenya, terutama di code base yang besar untuk membuat code base tersebut menjadi lebih lebih kokoh dan mudah dibaca/dipahami.

Sehingga, jika merasa membutuhkan type, ada dua solusi utama yaitu: TypeScript, dari Microsoft dan Flow, dari Facebook (dan dipakai di proyek mereka yang lain: React, React Native, Jest...)

Baca darikel ini dari James Kyle untuk memahami perbedaannya: A Comparison Between Adopting Flow or TypeScript

Loading
Loading
Loading
Loading
Loading
Loading

Kesimpulan

Kami harap pembaca menikmati kajian dunia JavaScript tahun 2017.

Kita dapat melihat secara angkat bahwa Vue.js sekali lagi menjadi pemenang dan kesuksesannya sama sekali tidak melambat.

Ekosistem React masih terus berkembang setelah mengakhiri permasalahan seputar lisensi yang beberapa waktu lalu sempat gempar.

Namun jika kita harus memilih salah satu proyek diantara Rising Stars 2017 maka proyek tersebut haruslah Prettier. Proyek ini sangat berguna untuk membantu menulis kode tanpa perlu memikirkan kerapihan penulisan!

Dan untuk melihat analisis lain dari sudut pandang yang berbeda, pastikan pula pembaca mengunjungi State of JavaScript 2017 survey, dimana kami menerima dan menganalisis respon lebih dari 23.000 developer.

Jadi, proyek manakah yang menurut pembaca akan menjadi the next JavaScript Rising Stars tahun 2018?

  • Sebuah framework baru berbasis GraphQL?
  • Sebuah pustaka yang memanfaatkan standar WebAssembly untuk membuat pengalaman unik di peramban web?

Beri tahu kami apa pendapat pembaca! Untuk sementara ini, terimakasih atas perhatiannya dan jangan sungkan untuk membagikan artikel ini atau hubungi kami di GitHub jika ada kritik atau saran... terakhir sampai jumpa tahun depan!


Bahasa Indonesia

Authors

Sacha Greif

Author of Discover Meteor and creator of Vulcan, a React+GraphQL open-source framework.

Available Translations

English

中文

日本語

Français

Español