JavaScript contre Ruby contre Python. Qui gagne?
Pendant des années, JavaScript a été relégué au développement frontal, mis en cage dans nos navigateurs clients. Avec l’introduction de Node, JavaScript et toute sa gloire asynchrone ont pu se déplacer librement dans le monde du développement back-end, faisant du langage une véritable menace double.
Si vous envisagez de créer votre startup entièrement en JavaScript, vous devez tenir compte de ces avantages et inconvénients.
Avantages:
Grâce au moteur V8 hautement optimisé de Google et à la conception asynchrone intrinsèquement non bloquante de JavaScript, certaines tâches gérées par Node sont, dans certains cas, 20 fois plus rapides que les tâches gérées par Rails. Il suffit de demander à LinkedIn, qui a supprimé Rails et l’a remplacé par Node pour de meilleures performances selon leur étude de cas.
Les développeurs JavaScript sont une équipe de destruction d’une femme / homme. Pourquoi paralyser votre startup en plein essor avec des frais généraux lorsque vous pouvez embaucher un développeur JavaScript qui peut écrire à la fois votre application Web principale et frontale en JavaScript. Une fois que vous êtes prêt à créer votre application mobile, le développeur JavaScript peut utiliser React Native pour créer une application pleinement fonctionnelle. Aucun Swift ou Java requis.
Node est l’avenir. Vous voulez être en mesure de vendre le VC de l’évolutivité de votre entreprise et la popularité croissante de Node fournit un modèle de croissance stable.
Les inconvénients:
JavaScript peut se transformer en monstre spaghetti s’il n’est pas utilisé correctement. Juste Google « enfer de rappel » et vous verrez à quel point JavaScript peut devenir illisible lorsque les programmeurs ne programment pas de manière fonctionnelle. Cela peut entraîner une base de code difficile à maintenir.
Le nœud vient de sortir de la presse. De nombreux développeurs sont encore en train de passer de l’idée que JavaScript fait que les choses s’amusent sur le Web à l’idée que JavaScript est suffisamment robuste pour être implémenté en back-end. Ensuite, vous devez prendre en considération que Node, contrairement à Rails et Django, est simplement une plate-forme qui permet à JavaScript de s’exécuter en dehors du client. Les dépendances comme Express, MongoDB et Mongoo se doivent également être apprises. Cela signifie une pénurie de développeurs Node-savvy qualifiés.
Ruby sur les stéroïdes
Avec la montée en puissance de la super équipe Node / Express / React, le framework Ruby on Rails semble avoir diminué aux yeux des développeurs. Cela n’aide pas que Ruby lui-même soit récemment tombé au 8e rang du classement linguistique de RedMonk, le plus bas jamais atteint. Ensuite, vous avez l’essor du Machine Learning, du Big Data et de l’A.I., seuls quelques-uns des nombreux mots clés futuristes ont été répétés ad nauseam lors des événements clés de Google. Python a monopolisé ce domaine de recherche axé sur les données, ce qui a à son tour nui à la popularité de Ruby.
Cela étant dit, examinons les avantages et les inconvénients de Ruby.
Avantages:
Ruby possède l’une des communautés de développeurs les plus actives, ce qui signifie une excellente documentation et des dépendances open source incroyables, ou «gemmes». Vous voulez utiliser une bibliothèque React dans votre application Rails? Il y a un petit bijou pour ça!
Le code Ruby est simple, mais expansif. La philosophie rubyiste «il y a plus d’une façon de résoudre un problème» peut être un peu écrasante au début, mais une fois que vous maîtriserez quelques méthodes, vous serez impressionné par les outils apparemment innombrables à votre disposition. Dites adieu aux polyfills.
Je le jure, Harry Potter a inventé Rails. Avec une seule commande d’échafaudage de rails g, Rails générera votre modèle, les migrations pour ce modèle, le contrôleur et une vue. Pas besoin de créer manuellement des fichiers. Le routeur de Rails est excellent en raison de son niveau d’abstraction. Par exemple, vous pouvez imbriquer des itinéraires à l’aide d’un pseudo-langage hautement sémantique sans avoir à taper une longue chaîne époustouflante. Une fois que vous aurez appris toutes les nuances de Rail, vous dimensionnerez rapidement les projets.
Les inconvénients:
Ruby a une kryptonite majeure: les performances lentes.
L’écran rouge de la mort de Rails peut vous faire arracher les cheveux. Souvent, le débogage d’une application Rails peut provoquer des cauchemars en raison de sa nature abstraite. Une fois que la magie s’est dissipée, il vous reste de longs appels de pile et des dossiers imbriqués à parcourir.
Tango de Python avec Django Unchained
Jeff Knupp, un programmeur Python, a publié un excellent article qui explique habilement pourquoi Python gagne en popularité. Bref, le langage est un outil pour les statisticiens et a donné lieu à la description de poste de «data scientist». Les développements récents de l’apprentissage en profondeur, une technique qui modèle l’apprentissage automatique des réseaux neuronaux du cerveau, a ouvert le domaine de l’IA. Si votre startup va présenter toute forme d’intelligence, avoir une base de code Python peut être la voie à suivre.
Voici quelques avantages et inconvénients de Python:
Avantages:
Comme Ruby, Python est lisible. Il est également typé dynamiquement afin que les exceptions soient déclenchées, ce qui conduit à des processus de débogage plus indolores.
Python est idéal pour les tâches de calcul en raison de son protocole tampon, qui permet de construire des extensions C à partir de Python, qui peuvent ensuite être utilisées pour créer de puissantes bibliothèques de calcul.
Le framework Django est similaire à Rails dans la mesure où un développeur obtient tout ce dont il a besoin pour mettre à l’échelle une application web prête à l’emploi. L’avantage, cependant, est que le principe de Python selon lequel «explicite vaut mieux qu’implicite» signifie qu’il y a moins d’abstractions dans Django que Rails.
Les inconvénients:
En raison de sa concentration sur le calcul, Python n’est pas un démon de la vitesse. En fait, c’est une fraction plus lente que Ruby… de 0,7%
Python est restrictif. La frappe dynamique est à double tranchant en ce qu’elle provoque plus d’erreurs, dont la plupart n’apparaissent qu’au moment de l’exécution. Cela signifie un processus de développement plus long. Le compilateur applique également son propre style aux programmeurs, les forçant à indenter et à espacer correctement de peur qu’ils ne soient frappés par des messages d’erreur forts.
Laisser un commentaire