Un meilleur job mieux payé ?

Deviens chef de projet, développeur, ingénieur, informaticien

Mets à jour ton profil pro

ça m'intéresse

Quelles expériences en programmation recommanderiez-vous ?
Partagez votre avis sur celles qui vous ont le plus passionné

Le , par Stéphane le calme, Chroniqueur Actualités
Le nouvel an. L'occasion pour certains de prendre un second départ, pour d'autres de faire un rapide tour d'horizon sur les évènements qui les ont marqués au courant de l'année qui s'est achevée. Et si nous essayions quelque chose de plus innovant ? Par exemple de partager les expériences les plus intéressantes en programmation que nous ayons eu. Donnons une autre dimension à notre jeu et faisons fi des limites temporelles et ne nous attardons pas sur une année en particulier.

Pour vous donner le la, prenons en considération la liste ci-dessous :

  1. Erlang pour son paradigme concurrent : Erlang est devenu populaire dans la communauté des développeurs parce qu'il propose des structures efficaces pour minimiser la difficulté d'exécuter des threads simultanés. Les serveurs web, qui jonglent avec de nombreux utilisateurs en même temps, sont plus susceptibles de se comporter correctement s'ils sont écrits en Erlang, parce que le langage a été conçu pour aider les développeurs à prendre de bonnes décisions en limitant la façon dont leur programme est écrit. Erlang offre un ensemble de rails de sécurité dans sa conception pour éviter que les threads ne s'emmêlent. Le langage simplifie la création d'un cluster entreprise pour la gestion de nombreux utilisateurs ;
  2. la pile Web Node.js : de nombreux services de l'entreprise sont jugés sur la rapidité avec laquelle ils fournissent des données. Certains outils de pointe sont conçus pour leur vitesse. C'est l'une des caractéristiques qui a contribué à la popularité de Node.js. Associé à une base de données NoSQL, sa vitesse est décuplée. La paire rend possible la construction d'infrastructures web rapides sur de petites plateformes. Le problème avec node.js n'émane pas de sa performance mais du poids mis sur les épaules des développeurs. Les développeurs intelligents se doivent d'être prudents car l'ensemble du paquet va dans un processus. Si un utilisateur effectue une manipulation qui génère un bug dans votre code, l'ensemble du serveur Web pourrait planter. De bons programmeurs et des tests intensifs pourraient toutefois éviter cela ;
  3. les applications mobiles et web avec HTML5 : il existe des dizaines de nouveaux projets HTML5 qui gèrent de nombreux détails de base de la création d'un site Web ou d'une application de téléphonie mobile. Le code organise le contenu dans les pages et propose un mécanisme de transition dirigé par menus. Parmi les plus populaires on trouve jQuery Mobile, Sencha Touch et Titanium. Il faut noter qu'un certain nombre d'autres outils font également leur apparition. Parmi les CMS les plus populaires, nombreux sont ceux qui, comme WordPress ou Drupal, arborent des thèmes qui s'adaptent à l'environnement mobile et utilisent souvent une partie du même code. Il devient plus simple d'écrire du code ; les développeurs n'ont plus à se soucier des anciens hardware ou des anciennes versions d'un système d'exploitation donné. Les problèmes avec les frameworks HTML5 surviendront avec l'utilisation d'un navigateur ancien ou non conforme aux normes ;
  4. l'analyse des données avec R : les modèles statistiques à l'intérieur de grands logiciels d'analyse de données, par exemple, peuvent indiquer des modèles complexes qui profiteront de toute la puissance qu'un cluster d'ordinateurs modernes puisse offrir. Travailler avec la pointe des logiciels de statistiques signifie que vous pouvez faire une analyse plus approfondie et trouver des signaux où l'ancien code a juste vu un bruit. Partout où il y a des données, il y a une chance de trouver des idées significatives. Le langage R, distribué à travers un projet open source, est consacré à entretenir le noyau de ces logiciels. De nombreux développeurs commencent avec des IDE plus complets, comme R studio, qui regroupent des éditeurs et des fenêtres de sortie avec le moteur d'exécution ;
  5. exploiter la vitesse de NoSQL : à moins que cela ne soit un impératif, les programmeurs n'apprécieront probablement pas de commencer un projet de zéro. Raison pour laquelle de nouveaux outils offrant un certain nombre de fonctionnalités sont mis à leur disposition. De nombreuses bases de données NoSQL glissent sans effort dans le Cloud. La capacité à réagir à la vitesse de l'éclair et à grande échelle est une fonctionnalité à expérimenter. Cassandra, MongoDB, CouchDB et Riak peuvent être cités parmi les plus populaires de la vaste collection de projets NoSQL ;
  6. trouver des connexions à l'aide de graphes de bases de données : à l'instar de Neo4j, les graphes de bases de données sont une approche quelque peu déformée du concept des bases de données traditionnel. Ils permettent plus de flexibilité que la base de données classique puisqu'en plus des chiffres et des lettres qui peuvent être enregistrés dans les colonnes, vous avez la possibilité de créer des pointeurs entre les lignes qui formeront des réseaux. Si vous y stockez par exemple un réseau social, la base de données est prête à enregistrer qui est ami avec qui. Bien sûr après quelques manipulations il est possible de reproduire la même chose sur une base de données régulière. La puissance de la base de données graphique se fera ressentir lors de l'exécution des requêtes ;
  7. simplifier des structures avec Go : le langage mis au point par Google a une syntaxe qui semblera très familière aux développeurs C et Java, bien que relativement plus simple. Le code est compilé en utilisant des types définis mais peut être modifié lors de l'exécution. Il y a également un mécanisme très léger pour l'organisation des méthodes concurrentes, de sorte que vous pouvez écrire du code qui pourrait fonctionner en parallèle. Simplifier la structure facilite le travail d'équipe puisqu'il y a moins de temps passé à essayer de comprendre et plus de temps passé à la réalisation.


Source : infoword

Et vous ?

Quelles expériences de programmation recommanderiez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de atha2 atha2 - Membre éprouvé https://www.developpez.com
le 21/01/2014 à 0:26
Citation Envoyé par Stéphane le calme  Voir le message

  1. la pile Web Node.js : de nombreux services de l'entreprise sont jugés sur la rapidité avec laquelle ils fournissent des données. Certains outils de pointe sont conçus pour leur vitesse. C'est l'une des caractéristiques qui a contribué à la popularité de Node.js. Associé à une base de données NoSQL, sa vitesse est décuplée. La paire rend possible la construction d'infrastructures web rapides sur de petites plateformes. Le problème avec node.js n'émane pas de sa performance mais du poids mis sur les épaules des développeurs. Les développeurs intelligents se doivent d'être prudents car l'ensemble du paquet va dans un processus. Si un utilisateur effectue une manipulation qui génère un bug dans votre code, l'ensemble du serveur Web pourrait planter. De bons programmeurs et des tests intensifs pourraient toutefois éviter cela ;

Quelles expériences de programmation recommanderiez-vous ?

Je déconseille très fortement (ou alors après s'être sérieusement informé). De ce que j'ai compris, Node.js est basé (architecturalement parlant) sur EventMachine, une API Ruby. Node en soit n'apporte pas grand chose (à part une meilleur visibilité de ce type d’architecture) mais aujourd'hui, EventMachine est obsolète (d'un point de vue performance, montée en charge...). Et si en Ruby, on peut remplacer EventMachine (il y a une couche d'abstraction intermédiaire entre le code de l'application et EventMachine), en Node.js, c'est tout simplement impossible !

Bon après, ce conseille n'est à prendre en compte que si la performance est un point critique du projet. Node.js est assez rapide à prendre en main, permet de développer très rapidement et peut répondre à certaines contraintes (équipe de développeur JS, deadline courte...).
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 21/01/2014 à 0:56
Si Node.js est à éviter question performance, pourquoi cet article ?
http://www.developpez.com/actu/65013...-l-entreprise/

J'imagine qu'on peut toujours mieux faire en performance, mais de là à déconseiller très fortement...
Avatar de atha2 atha2 - Membre éprouvé https://www.developpez.com
le 21/01/2014 à 2:06
Citation Envoyé par SylvainPV  Voir le message
Si Node.js est à éviter question performance, pourquoi cet article ?
http://www.developpez.com/actu/65013...-l-entreprise/

Citation Envoyé par Hinault Romaric  Voir le message
PayPal abandonne Java pour JavaScript
Pour surmonter cette situation, PayPal s’est tourné vers Node.js, qui a permis à la fois d’écrire les applications devant s’exécuter dans le navigateur et les applications serveurs en JavaScript. « Il [N.D.L.R : Node.js] unifie nos spécialités pour nous permettre de créer une équipe qui comprend et réagit rapidement aux besoins des utilisateurs à n’importe quel niveau dans la pile de technologie », justifie Jeffe Harrell.

Dans leur contexte particulier, ça avait l'avantage d'unifier leurs équipes de développement de client et de serveur. Ils pouvaient probablement obtenir de meilleur performance en Ruby mais il faut croire que ce n'était pas suffisant un comparaison de l'unification de leurs équipes.
Aussi leur graphe de comparaison (même s'ils peuvent donnée une idée) ne sont valable que par rapport à leurs architectures matérielles (il me semble qu'une des raisons de la dépréciation d'EventMachine est sa moins bonne gestion de la scalabilité) .

Citation Envoyé par SylvainPV  Voir le message
J'imagine qu'on peut toujours mieux faire en performance, mais de là à déconseiller très fortement...

Sur la fin de ma précédente intervention, je relativise cela. Le but était surtout de soulever que Node.js n'est pas forcément la solution miracle annoncé partout. Elle peut avoir de sérieuse limite dans certain cas ; il faut en être conscient en choisissant Node.js. Tiens, je viens de trouver une présentation qui montre rapidement en quoi Node.js n'est pas forcément aussi génial qu'on voudrais nous le faire croire : https://speakerdeck.com/felixge/the-...alability-myth
Avatar de xelab xelab - Membre éprouvé https://www.developpez.com
le 21/01/2014 à 9:50
Citation Envoyé par atha2  Voir le message
Je déconseille très fortement (ou alors après s'être sérieusement informé). De ce que j'ai compris, Node.js est basé (architecturalement parlant) sur EventMachine, une API Ruby. Node en soit n'apporte pas grand chose (à part une meilleur visibilité de ce type d’architecture) mais aujourd'hui, EventMachine est obsolète (d'un point de vue performance, montée en charge...). Et si en Ruby, on peut remplacer EventMachine (il y a une couche d'abstraction intermédiaire entre le code de l'application et EventMachine), en Node.js, c'est tout simplement impossible !

D'où tu sors ce "NodeJs basé sur EventMachine"? NodeJS n'a absolument pas besoin de Ruby pour tourner, et si j'en crois les benchmark, question performances mieux vaut faire tourner une appli écrite avec NodeJS qu'avec un framework comme Ruby On Rails ou Sinatra.
Avatar de Xinu2010 Xinu2010 - Membre averti https://www.developpez.com
le 21/01/2014 à 10:45
Citation Envoyé par atha2  Voir le message
De ce que j'ai compris, Node.js est basé (architecturalement parlant) sur EventMachine, une API Ruby

Et bien laisse moi te dire que tu as mal compris

Node.js est basé sur libev (qui est écrit en C) et n'a rien à envier à Ruby en terme de performances.

Ta confusion doit venir du fait que EventMachine est l'équivalent Ruby ce que Node.js est à javascript, c'est à dire un framework d'entrée/sortie asynchrone.

Mais la grosse différence entre ces 2 projets, est que Ruby possède à la fois une API synchrone et asynchrone, ce qui rend difficile l'écriture d'un programme totalement asynchrone sans rajouter des appels synchrone au milieu qui nuiront à la scalabilité.

De son coté node.js et tout l'eco-système qui gravite autour ont été conçut spécifiquement pour faire de l'asynchrone. De plus node.js utilise le moteur javascript de google chrome (V8) qui est très performant.
Avatar de Traroth2 Traroth2 - Expert éminent sénior https://www.developpez.com
le 21/01/2014 à 10:58
Les trucs à tenter pour enrichir votre expérience pour 2014 :

  • Vert.x, un framework assez similaire à Node.js, mais écrit en Java. On peut écrire des applications en Java, mais aussi en Javascript, Python, Ruby, et CoffeeScript. Scala, Clojure, Ceylon et PHP, c'est pour bientôt. En fait, le framework est tellement polyglotte qu'on peut facilement mélanger différents langages dans une même application. Et il y a de nombreux autres avantages, en matière de montée en charge, par exemple
  • Javascript... Ca peut paraitre idiot, je sais. J'ai détesté ce langage pendant des années, comme beaucoup de gens. Essentiellement pour deux raisons : je le connaissais très mal, et il a énormément évolué depuis 10 ans. C'est aujourd'hui un langage d'une puissance et d'une richesse insoupçonnées.
  • Ca va, les conseils de lecture ? Bon, je vais faire comme si... Si vous vous intéressez à Javascript, lisez "Secrets of the Javascript Ninja", de John Resig, le créateur de JQuery, QUnit et Processing.js. Il part du constat que Javascript est un des langages les plus mal connus, et il fait un tour exhaustif de toutes les finesses qu'on peut y trouver. Et c'est super.
  • La gamme "seven in seven" chez Pragmatic Bookshelf. "Seven languages in seven weeks" et "Seven databases in seven weeks". Il y en a 2 autres qui sont disponibles en early access, que je ne connais pas, "Seven web frameworks in seven weeks" et "Seven concurrency models in seven weeks". Alors attention, c'est du lourd. Pas de présentation générale des technologies, pas de baratin, on entre directement dans le vif du sujet. C'est ardu et mieux vaut s'accrocher. Mais on en sort en ayant vraiment appris quelque chose. D'autant que les technologies étudiées ne sont pas ou pas encore trop mainstream (7 langages en 7 semaines avec Java, Javascript, PHP, C, C#, Objective C et C++, ça serait un peu... banal. C'est pourquoi l'auteur a privilégié des langages émergents pour ne pas dire décalés, avec un choix riche de paradigmes différents : Ruby, Io, Clojure, Scala, Prolog, Haskell, Erlang)
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 21/01/2014 à 11:33
Merci pour les propositions de bouquins Traroth2, ça reste un des meilleurs supports existants pour le partage d'expérience
Avatar de Traroth2 Traroth2 - Expert éminent sénior https://www.developpez.com
le 21/01/2014 à 14:50
Tiens, je viens de voir que "Seven web frameworks in seven weeks" vient de sortir en version finale. Va falloir que je vois ça ce soir...
Avatar de LSMetag LSMetag - Membre expert https://www.developpez.com
le 21/01/2014 à 14:56
Je rejoins assez Traroth2 :

Javascript ou Dart seraient d'excellentes expériences pour beaucoup de développeurs.

Le fait est que Javascript est très mal maîtrisé par l'essentiel des développeurs. Acquérir une certaine maîtrise de cette techno pourrait ouvrir pas mal de portes, tant au niveau qualité/diversité des projets que des emplois. Car question web, c'est incontournable (aussi important que HTML) et ça commence à fleurir niveau développement serveur (avec node.js par ex). Javascript est un langage qui ne cesse de s'étoffer (j'attends quand même la version 2.0 qui risque de changer bien des choses). L'utilisation de Frameworks comme AngularJS ou Polymer devient ensuite intéressante pour structurer le code JS, sans pour autant le "simplifier". Une fois les (innombrables) subtilités comprises, je pense que le développement et le débuggage ne seront plus aussi "prise de tête".

Pour les accrocs de la POO, je conseille Dart en alternative. Ce n'est pas un Framework, donc on en apprend tout autant. On garde des concepts similaires au Javascript mais adaptés à la POO style Java/C#. C'est un langage compilé, ce qui peut aider les gens qui peinent à débugger Javascript à l'exécution. Avec la VM Dart les performances sont très élevées (reste à voir où et comment elle sera supportée dans les navigateurs Web), le Javascript généré est de très bonne qualité (contrairement aux divers Frameworks JS, la perte de performances par rapport au natif peut être totalement inexistante voire se transformer en gain selon les circonstances), et enfin, c'est également prévu pour être utilisé côté serveur, façon Node.JS. Angular et Polymer ont été portés pour Dart ce qui permet le même type de structuration.
L'inconvénient, c'est que la techno est très jeune, que vous allez sûrement essuyer quelques plâtres et que ça va être à vous de l'imposer aux entreprises. Mais heureusement, l'équipe et la communautés sont très réactives et les mises à jour du SDK et de l'IDE sont très fréquentes.

Les entreprises sont assez accrocs à des frameworks de "productivité" style JQuery et JQueryUI. Mais ne faites pas l'erreur de vous focaliser sur ces frameworks et de laisser de côté le langage. Vous aurez alors beaucoup de difficultés quand il faudra sortir du cadre d'utilisation prévu par ces Frameworks, résoudre des bugs, ou développer des solutions spécifiques où les performances et la réactivité seront primordiales.

_________________________________________________________________
En deuxième expérience, des bases de données NOSQL (MongoDB, RavenDB, BrightStarDB,...) peuvent être intéressantes quand le nombre de tables et de relations entre elles sont réduits, mais que le volume de données est très important. Les performances et la scalabilité deviennent alors supérieures à du relationnel.
Avatar de Luckyluke34 Luckyluke34 - Membre chevronné https://www.developpez.com
le 21/01/2014 à 15:17
Citation Envoyé par Stéphane le calme  Voir le message
Quelles expériences en programmation recommanderiez-vous ?

Celle-ci va sans doute faire grincer certaines dents

Balayer devant sa porte. Donner une deuxième chance à une application legacy pourrie (on en a tous) en essayant juste d'améliorer le code et les pratiques : tests, builds, livraisons... au lieu de vouloir tout redévelopper dans le dernier langage/framework comme si ça allait tout résoudre. Nouvelle techno n'est pas magiquement synonyme de meilleure qualité/maintenabilité, surtout si on répète les mêmes erreurs qu'avec la techno précédente.

Et au final, c'est plus gratifiant qu'il n'y parait
Offres d'emploi IT
Responsable protection des données H/F
Safran - Ile de France - Magny-les-Hameaux (78114)
Ingénieur intégration, validation, qualification du système de drone H/F
Safran - Ile de France - Éragny (95610)
Ingénieur H/F
Safran - Ile de France - Moissy-Cramayel (77550)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil