L'année 2017 s'est terminée avec une nouvelle fois beaucoup de changements dans l'univers JavaScript.

Revenons sur les tendances de l'année en choisissant comme indicateur le nombre d'étoiles ajoutées sur GitHub.

Quelles sont les étoiles montantes JavaScript de l'année ?


Les chiffres présentés sont les nombres d'étoiles ajoutées sur GitHub au cours de l'année 2017. Les projets présentés proviennent de Best of JS, une application web qui rassemble toutes les tendances liées au développement web.

Sommaire

  1. Projets les plus populaires en 2017
    Vue.jsReactCreate React AppPuppeteerAxiosVS CodePrettierReact NativeElementElectron
  2. Frameworks côté client
    Vue.jsReactAngularPreactHyperapp
  3. Frameworks node.js
    ExpressKoaFastifyGunmicro
  4. Eco-système React
    Create React AppAnt DesignNext.jsStorybookGatsby
  5. Eco-système Vue
    ElementiViewVuexWeexNuxt
  6. Mobile
    React NativeWeexIonicQuasarNativeScript
  7. Compilateurs JavaScript
    TypeScriptBabelFlowReasonPurescript
  8. Outils de construction
    ParcelWebpackGulpRollupPoi
  9. Frameworks de test
    JestAVAMochaJasmineTape
  10. Editeurs de texte
    VS CodeAtomReactideBracketsNuclide
  11. Feuilles de style en JavaScript
    Styled ComponentsCSS ModulesPolishedGlamorousEmotion
  12. Générateurs de Site Statique
    GatsbyHexoReact StaticPhenomicMetalsmith
  13. GraphQL
    GatsbyReact Starter KitApollo clientGraphQLGraphiQL
  14. Conclusion

Projets les plus populaires en 2017

1
Vue.js

Vue.js

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

Tendances en 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

Données GitHub

Créé
2013-07
Total stars
80.7k☆

Liens

GitHub
vuejs/vue
Site web
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☆

Et le grand vainqueur de l'année 2017 est une nouvelle fois Vue.js avec plus de 40 000 étoiles ajoutées sur GitHub.

C'est beaucoup plus qu'en 2016 et l'écart avec le poursuivant React s'est accentué.

Nul ne pourra ignorer le succès de Vue en 2018 !

Mais quelles sont les raisons du succès de ce framework "côté client" ?

  • Tout d'abord un accès facile pour les nouveaux venus, une approche "composant" comme avec React mais avec une syntaxe facile à appréhender pour les débutants.
  • Un éco-système bien étudié avec des solutions claires pour des tâches telles que:
    • Le routing entre les pages avec vue-router
    • Le contrôle de l'état de l'application (State management) avec Vuex
  • Le concept de fichier unique .vue: un fichier unique pour décrire un composant réutilisable: les balises HTML, le code JavaScript associé et leurs styles.
  • Inclus par défaut dans l'un des frameworks PHP les plus populaires Laravel
  • Ce n'est pas le produit d'un géant de l'internet tel que Facebook ou Google, mais c'est un projet maintenu par Evan You, avec une forte communauté "open source", en particulier du côté de la Chine.

Vue est utilisé par la plus grande plateforme de commerce électronique en Chine (Alibaba) mais aussi par des sociétés telles que Adobe ou GitLab.

Frameworks côté client

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☆

La catégorie des "Frameworks côté client" est traditionnellement la catégorie reine, cette année aussi la bataille fut intense entre les prétendants.

3 grands acteurs se disputent les faveurs des développeurs dans cette catégorie: Vue.js, React et Angular

Nous avons vu précédemment ce qui faisait le succès de Vue.js.

React a un éco-système beaucoup plus fragmenté, laissant au développeur la liberté de créer une solution "à la carte" pour les questions suivantes: routing entre les pages, accès aux données depuis des API distantes, contrôle de l'état de l'application...

A l'opposé Angular propose une approche beaucoup plus systématique, car c'est un framework complet, on dit souvent qu'il y existe une "manière Angular" de faire les choses.

C'est la raison pour laquelle Angular remporte un grand succès dans le monde de l'entreprise. Ce succès est renforcé par l'utilisation par le framework du langage TypeScript, qui introduit dans le langage les "types" chers aux développeurs Java et C#.

Frameworks node.js

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☆

Côté serveur également, JavaScript a une place de plus en plus importante.

Mikeal Rogers, un membre influent de la communauté Node.js, prédit que Node.js va dépasser Java dans 1 an.

Mais contrairement à des langages tels que PHP (avec Laravel), Ruby (avec Ruby on Rails) ou Python (avec Django), il n'existe pas de réel framework Node.js dominant ou d'architecture recommandée au moment de créer une nouvelle application serveur.

Malgré son âge, Express est resté en 2017 le framework Node.js le plus populaire. Qui plus est, il est utilisé en interne par de très nombreux projets tels que Feathers, Keystone or Nest.

Remarquons l'arrivée de 3 nouveaux venus dans le classement cette année:

  • Fastify inspiré by hapi, propose une approche complète et convient très bien au développment d'API au format JSON, API dont sont friandes les applications web modernes.
  • Server.js est une solution qui propose d'emblée toutes les fonctionnalités d'un serveur web
  • Nest se différentie en proposant une architecture familière aux développeurs Angular, faite de "modules" et de "contrôleurs" écrits dans le langage TypeScript.

Eco-système React

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☆

Comme le domaine de React est limité à la partie visuelle des applications (la partie "vue" mais ce mot prête à confusion à cause du projet Vue.js !), cela libère de la place pour tout un éco-système de projets qui fonctionnent avec React.

En 2016, Create React App a résolu un problème récurrent: quel point de départ pour créer une nouvelle application avec React ?

Ce projet est très fréquemment mis à jour par Facebook et s'impose comme la manière quasi officielle de démarrer un nouveau projet. Comme une preuve supplémentaire de son succès, StackBlitz est un éditeur de texte en ligne qui permet de créer instantanément une application à partir de Create React App.

Pour les développeurs qui recherchent plus de fonctionnalités, une solution telle que React boilerplate offre toutes les joyeusetés d'une application moderne, y compris une couche "GraphQL" et la possibilité de fonctionner en local, en mode offline.

Parmi les autres projets du classement, on trouve des jeux de composants déjà stylés tels que Ant Design, Ant Design Pro ou Material UI qui permettent aux développeurs d'obtenir aisément une application web avec un joli rendu, qui donne une allure professionnelle (à défaut d'être originale sans doute !).

Le projet Recompose nous montre l'importance des motifs de programmation fonctionnelle (Functional Programming), motifs qui font une partie du succès de React. Tout peut se traduire par une simple fonction et Recompose propose un ensemble d'outils pour prolonger le voyage dans cette direction.

Eco-système Vue

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☆

L'invité spécial: Evan You

Nous sommes admiratifs devant le succès rencontré par Vue.js mais il faut confesser que nous n'étions pas assez familiers avec son éco-système pour nous permettre d'écrire à ce sujet.

C'est la raison pour laquelle nous avons demandé l'avis à un expert... Qui d'autre que le créateur de Vue.js en personne est plus qualifié pour donner son avis ?

Guest Writer evan

De nombreux projets ont profité de la popularité grandissante de Vue.js pour construire un véritable éco-système en pleine croissance.

Element et iView sont les ensembles de composants UI (UI Toolkits) les plus populaires, ils permettent de réaliser rapidement des applications web classiques. De leut côté, Mint UI et vux misent sur les applications mobiles.

Vuetify est un framework qui adhère aux principes du "Material Design", il peut être utilisé aussi bien pour des applications mobiles que pour des applications web classiques. C'est sans doute le framework qui couvre le plus grand nombre de fonctionnalités: rendu côté serveur, applications web dites progressives (PWA), support pour ligne de commande (CLI)... Vue material est un autre framework qui suit rigoureusement les principes du "Material Design".

Nuxt est un framework de plus haut niveau qui permet de créer des applications dites universelles, produisant du code capable de s'executer tant côté serveur que côté client.

Weex est un framework qui permet de créer de véritables applications mobiles natives à partir d'une syntaxe et d'une API familières aux developpeurs Vue.js. Développé par Alibaba, le géant du e-commerce chinois, avec une priorité accordée aux performances, il a permis de construire certaines des applications les plus utilisées dans le monde.

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☆

La polyvalence de JavaScript est telle que l'on peut construire de réelles applications mobiles avec des technologies web.

On retrouve dans cette catégorie le clivage entre les 3 acteurs dominants des frameworks côté client:

Comme en 2016, React Native s'impose comme la solution la plus populaire pour construire une application mobile pour toutes les plateformes (iOS, Android et Windows Mobile), à partir de JavaScript.

Comme le montre cette video très complète intitulée Cross platform apps with React Native, le slogan: "Un seul code pour toutes les plateformes" est devenu une réalité !

Compilateurs JavaScript

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☆

Les "compilateurs" de cette catégorie sont des outils qui transforment du code dans un langage donné en code JavaScript standard, capable de s'exécuter dans n'importe quel navigateur Web, ou tout environnement supportant JavaScript.

On peut avoir besoin d'un tel compilateuur pour 2 raisons:

  • Pour profiter des dernières avancées du langage JavaScript (spécifications ES6 et ES7) tout en produisant du code compatible avec la majorité des navigateurs web. C'est ce qui fait le succès de Babel, utilisé par un très grand nombre de projets Web.
  • Pour ajouter de nouvelles fonctionnalités au langage, en particulier les "types statiques" qui existent dans des langages institutionnels tels que Java ou C#.

Le langage JavaScript ne propose que des types "dynamiques", cette flexibilité peut poser problème, en particulier dans le cadre de gros projets.

Dans le but d'offrir aux développeurs web le confort et la sécurité des "types statiques", 2 concurrents s'opposent farouchement: TypeScript, créé par Microsoft et Flow, créé par Facebook, et utilisé en interne par Facebook sur de nombreux projets.

TypeScript, largement en tête en 2016, conserve l'avantage sur son rival en 2017. De nombreux projets utilisent TypeScript, à commencer par Angular et l'intégration facile avec l'éditeur de texte VS Code joue en sa faveur.

Pour mieux comprendre les différences, nous vous recommandons cet article de James Kyle: A Comparison Between Adopting Flow or TypeScript

Loading
Loading
Loading
Loading
Loading
Loading

Conclusion

Nous avons donc vu que Vue.js reste au sommet de la hiérarchie des projets JavaScript, son succès s'étant accéléré en 2017.

L'eco-système React reste extrêmement populaire malgré les doutes et les craintes engendrés par un problème autour de la licence utilisée par Facebook pour ses projets open-source.

S'il fallait sélectionner un projet parmi les étoiles montantes de l'année, notre choix se porterait sur Prettier, c'est tellement pratique d'écrire du code sans plus se soucier du formatage !


Pour une approche plus qualitative sur l'univers JavaScript, lisez les résultats de l'enquête State of JavaScript 2017, nous avons collecté et analysé les réponses de plus de 23 000 développeurs.


Projetons-nous dans le futur, quels seront les grands projets de l'année 2018 ?

  • Un nouveau framework basé sur GraphQL ?
  • Une solution qui utilise le nouveau standard WebAssembly pour créer une expérience unique dans le navigateur web ?

Merci pour votre attention, rejoignez-nous sur GitHub... et rendez-vous dans un an !

Authors

Sacha Greif

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

Available Translations

English

中文

日本語

Español

Indonesia