IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Stéphane le calme

30PARTAGES

7  0 
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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Traroth2
Membre émérite 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)
5  0 
Avatar de zaventem
Membre expérimenté https://www.developpez.com
Le 22/01/2014 à 17:41
En -9-
Arrêtez de courir continuellement derrière la dernière nouveauté et approfondir des bases solides dans des technologies éprouvées même si elles ne font pas le buzz.
5  1 
Avatar de DonQuiche
Expert confirmé https://www.developpez.com
Le 22/01/2014 à 22:55
Citation Envoyé par SylvainPV Voir le message
En -9-
Lâcher son langage/framework favori depuis dix ans et essayer une nouvelle techno qui fait le buzz le temps d'un week-end. On adoptera ou on mettra tout à la poubelle derrière, mais au moins cela permet de sortir de son champ d'expérience et de sa zone de confiance pour découvrir de nouveaux modèles de conception et paradigmes.
Justement je ne vois pas beaucoup de nouveauté : les technos d'aujourd'hui ressemblent fortement à celles d'hier et ce n'est pas un énième framework qui va me faire vibrer. Sans parler du fait que cette valse de technos jetables se déroule avant tout côté JS où trop souvent on reproduit péniblement ce qui a été fait ailleurs il y a dix ans, et notamment sur le desktop.

Les vraies innovations qui me viennent en tête c'est la vague NoSQL, les travaux de Duffy sur des sémantiques concurrentes, F# et sa mise en oeuvre du système Hindley-Miller, Ceylon, les calculs dans le nuage, le calcul hétérogène, asm.js et NaCl, Midori, le big data, la robotique, etc.

Mais un énième framework de plus ? Pfffffffffff ! La barbe !
4  0 
Avatar de Luckyluke34
Membre émérite 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
3  0 
Avatar de Philippe Bastiani
Membre éprouvé https://www.developpez.com
Le 22/01/2014 à 16:24
En -8- s'initier à la programmation fonctionnelle. Non pas comme un substitut à la programmation impérative mais comme un complément à celle-ci !
3  0 
Avatar de LSMetag
Expert confirmé 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.
2  0 
Avatar de souviron34
Expert éminent sénior https://www.developpez.com
Le 21/01/2014 à 18:19
Citation Envoyé par Luckyluke34 Voir le message
Celle-ci va sans doute faire grincer certaines dents
...
Et au final, c'est plus gratifiant qu'il n'y parait


Sur le reste, je reste coi, je n'ai pas la moindre idée de ce qui est mentionné dans le post initial

Donc ce ne serait certainement pas ce genre d'expériences que je recommanderais...

Et ce sont d'ailleurs des trucs assez stupides, puisque liées à des langages...

Les expériences que j'aurais tendance à privlégier aux fins de recommandations sont des expériences où soit on ne sait pas faire,, et il faut aller demander de l'aide, soit la solution miracle ne marche pas, et il faut trover pourquoi,, soit il faut mélanger beaucoup de choses, et en particulier des vieux codes avec des neufs...

Mais surtout ce serait des expériences dans des projets divers et variés, et des environnements divers et variés : petites ou grosses équipes, peits projets et gros projets, projets industriels ou projets "inhouse", etc..
3  1 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 22/01/2014 à 20:06
En -9-
Lâcher son langage/framework favori depuis dix ans et essayer une nouvelle techno qui fait le buzz le temps d'un week-end. On adoptera ou on mettra tout à la poubelle derrière, mais au moins cela permet de sortir de son champ d'expérience et de sa zone de confiance pour découvrir de nouveaux modèles de conception et paradigmes. Pour obtenir une techno éprouvée, il faut lui laisser une chance de faire ses preuves.
2  0 
Avatar de 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...
1  0 
Avatar de xelab
Membre expérimenté 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.
1  0