Quel est votre langage préféré en 2015?

Quelles technologies préconisez-vous pour 2015?

a marqué ce sujet comme résolu.
  • Quelle technologie/langage (et éventuellement Framework)?

En pro : Javascript (AngularJS)/Python (Turbogears)

En perso, Python, pour du dev sur Raspberry

  • Les plus/avantage moins/inconvénients?

Le gros moins, c'est la courbe d'apprentissage de SQLAlchemy en python que je suis contraint d'utiliser. Le gros plus c'est la puissance du tout.

  • Quel EDI utilisez-vous?

Le couple SublimeText/Eclipse, avec en prime des plugins chrome pour le débugage Angular (Batarang). J'utilise un IDE par langage, parce que l'IDE est nécessaire et que je suis très habitué à eclipse, mais je n'ai pas trouvé de plugin satisfaisant pour Angular dans Eclipse (Javascript d'une manière générale)

Coté perso, j'ai pas encore vraiment cherché d'IDE à faire tourner sur le raspberry…

  • autre

Je vais peut-être me remettre au C++ pour arduino et faire des mélanges Raspberry/Arduino (je vous tiendrai au courant si jamais ils font des petits

+0 -0

Coté perso, j'ai pas encore vraiment cherché d'IDE à faire tourner sur le raspberry…

A titre perso, quand je dev, je monte sur mon pc de bureau le filesysteme du RPI via ssh. Du coup j'ai accès à la puissance, et l'écran, de mon pc fixe pour developper. Et comme ça se passe via ssh, je peux avoir une autre console ssh a coté pour tester.

Coté perso, j'ai pas encore vraiment cherché d'IDE à faire tourner sur le raspberry…

A titre perso, quand je dev, je monte sur mon pc de bureau le filesysteme du RPI via ssh. Du coup j'ai accès à la puissance, et l'écran, de mon pc fixe pour developper. Et comme ça se passe via ssh, je peux avoir une autre console ssh a coté pour tester.

Kje

Comment tu fais ça? Parce que au boulot je travaille pas mal avec du ssh -X pour afficher sur mon poste les applications ouvertes sur une machine distante (Eclipse, très souvent) mais l'inverse je ne vois pas comment faire…

+1 -0

Tu n'a pas pensé à tester Kivy ?

Si je l'ai testé, et je n'ai pas apprécié… Question de goût, pourtant python et moi c'est une grande histoire d'amour, mais sur ce coup java m'a semblé bien plus intuitif, va savoir pourquoi, c'est un ressenti.

Je ne vais que répéter ce que j'avais mis sur le doublon, mais bon, perso c'est C#+python :

Ca fait longtemps que je n'ai plus fait de PHP, mais je me souviens qu'il évoluait bien.

Néanmoins, ces derniers temps je prends vraiment mon pied sur :

  • C#
  • python

Je n'arriverai pas à "classer" les deux, il font vraiment partie de mon workflow de développement aujourd'hui et les dernières nouvelles concernant C# ne vont pas en sens inverse de ma pensée !

Disclaimer

Cette réponse est donnée par un développeur inconditionnel des IDE, le seul éditeur de texte non graphique que j'utilise, c'est nano, je vomis vim, vi, emacs.

Python

Alors j'utilise du python aussi bien vanilla que django (zds <3), puisque j'ai décidé de me mettre à blender pour les montages vidéo, le python "vanilla" va sûrement rapidement me servir.

Pour ce qui est de django, c'est surtout pour zds, ou bien si je dois faire un petit prototype d'API REST et que je n'ai pour tester qu'une archi linux qui m'empêche d'utiliser ASP.NET API. Même si le couple CBV + Django REST Framework est vraiment génial, le boulot qu'a fait Microsoft sur ASP.NET MVC et REST API me rend ce système encore plus agréable.

Bien évidemment, j'utilise python dès qu'il faut scripter. J'utilisais php avant, mais python est plus rapide à mettre en place, surtout je n'ai pas besoin d'utiliser une convention de nommage (PSR-0) pour que le package manager (pip pour python vs composer pour php) fonctionne.

Un simple New-Virtualenv monfuturscript python=python3.4 et je commence à jouir sur mon script (oui, il est rare que j'ai besoin de scripter quand je suis sous linux, je suis un être étrange oO).

python devient de plus en plus pour moi une technologie (parce qu'avec pip on a accès à plus qu'un langage) qui est vraiment capable de m'amener à la réussite lorsque je fais des projets de courte durée ou que j'ai besoin de faire quelque chose pour dans 1h max. La documentation extrêmement bien fournie est un réel plus et sur Stackoverflow tu as énormément de personnes qui répondent.

C#

Pour moi, c'est la forme aboutie des langages objets et verbeux tel que Java a voulu initier le peuple.

Le C# possède de vraies forces à commencer par .NET, qui est le framework le plus complet que je connaisse et qui a le bon goût de proposer par défaut deux environnements graphiques efficaces et prédictibles. Face aux très connus et forcément fournis par défaut Swing et Awt de Java, c'est vraiment le pied de faire du WinForm (pour les projets simples ou pour des personnes coincées dans le passé) ou du WPF.

Autre aspect : Tout est intégré. Mon projet WPF a besoin d'un WebService pour communiquer? Clic droit, ajouter une référence de service et… on n'a plus qu'à appeler les méthodes du service.

Néanmoins, j'utilise aujourd'hui beaucoup C# pour deux choses :

  • faire des libs pour des projets perso
  • faire des appli web avec une API REST

Comme je l'ai dit, ASP.NET MVC (je coécris d'ailleurs un tuto à ce propos) est vraiment un framework incroyablement efficace pour créer des applications web proprement, de manière souple et y ajouter en trois lignes :

  • une API REST
  • une authentification OAuth
  • une authentification par FB/Google.......).

Une nouvelle fois, les package NuGet permettent vraiment d'accéder à un univers qui est vraiment étendu. Et comme derrière on a MSDN, qui est certes très inégale côté contenu, vous avez forcément soit la documentation explicite qui t'explique comment faire à peu près tout, soit un poste sur les forum MSDN qui répond à ta question.

+4 -0

Je sens que je vais me faire taper en disant ça, mais perso je suis principalement sur du JavaScript (JS pour les intimes) et un peu de PHP pour les trucs classiques (ça va souvent plus vite de développer un truc basique avec du PHP et c'est surtout plus simple à héberger sur du mutualisé).

Je touche donc pas mal à Node.js (back-end), à du JS Web classique également (front-end) mais aussi un peu à des trucs plus marrants comme PhoneGap (pour du mobile) ou — encore plus cool — Node-WebKit (pour du desktop).

Niveau logiciels, j'utilise principalement Sublime Text 3 sur Mac avec quelques plugins et des Build Systems adaptés pour chaque projets (compilateur LESS, lancement automatique d'appli Node.js, FTP, etc.). Et Git (via le soft GitHub Mac en général, et un peu de ligne de commande quand je suis motivé ou bloqué), forcément, pour mieux gérer tout ça.

J'aimerais bien trouver un moyen de développer de le même manière sur mon Chromebook pour pouvoir bosser de partout, mais aucun éditeur n'est vraiment à la hauteur jusqu'ici (il serait temps qu'ils mettent en place un éditeur complet avec de bons plugins), du coup j'utilise un Ubuntu via crouton en attendant (et puis ça me permet d'avoir VLC, Spotify et plein d'autres trucs sympas).

Quelle technologie/langage (et éventuellement Framework) ?

Common Lisp.

Par «Framework», je suppose que tu entends «Framework Web», donc dans mon cas Hunchentoot couplé avec cl-who.

Les plus/avantage moins/inconvénients ?

Commençons par les moins : ce sont à peu près les mêmes que ceux du langage C (en dehors des bibliothèques). Je suppose que c'est une question d'époque…

  • Tu passes pour un fou quand tu expliques aux gens que tu codes avec ça
  • Possibilité d'écrire du code très, très crade si on ne fait pas attention
  • Le langage se traîne quelques bizarreries/incohérences historiques (notamment l'ordre des arguments des fonctions dans la bibliothèque standard)
  • Le standard ne couvre pas tout et il y a de nombreux compilateurs différents, écrire du code portable est parfois une plaie
  • Les bibliothèques sont de qualité inégale et moins nombreuses que d'autres langages plus mainstream
  • Galère à déployer dans certains contextes (si l'exécutable doit être de petite taille et/ou tourner sur téléphone mobile, notamment) ; de bons outils pour le faire existent, mais ils coûtent cher

Maintenant, les plus :

  • Les outils de développement sont gé-niaux
  • Le langage de base est plutôt simple à comprendre
  • Le système de POO est surpuissant (héritage multiple + multimethods + method combination), mais son utilisation est facultative
  • Le système d'exceptions (appelées conditions en vocable Common Lisp) est aussi très puissant (on peut reprendre l'exécution à n'importe quel point du code après la levée d'une exception)
  • On peut modifier le langage à la volée pour lui rajouter des features selon nos besoins
  • Le compilateur est accessible durant l'exécution du programme
  • Malgré le faible nombre de bibliothèques et les problèmes de portabilité, il y a un «noyau dur» de libs excellentes qui permettent de faire plein de choses de façon portable

Les points qui sont des plus ou des moins, en fonction de votre goût :

  • Le langage est vieux et standarisé, il est donc très stable (il ne change pas au cours du temps)
  • Il y a de très nombreux compilateurs disponibles
  • Typage fort (pas de conversions sauvages) et dynamique (vérifié à l'exécution)

Et enfin, les faux problèmes/non-problèmes :

  • Les performances. Le langage est plus rapide que Python mais plus lent que Java, c'est donc tout à fait honorable pour 99% des applications.
  • Les parenthèses. Un code Lisp bien indenté est parfaitement lisible en ignorant les parenthèses, et tous les IDE disponibles aident à les placer correctement.

Quel EDI utilisez-vous?

  • Emacs
  • SLIME (Superior Lisp Interaction Mode for Emacs, le plug-in Emacs pour Comon Lisp)
  • Paredit (un plug-in Emacs pour gérer les parenthèses facilement)

Et, pour info, j'utilise le compilateur SBCL, le build system ASDF et le package manager QuickLisp.

Entendons-nous bien : Emacs est à Common Lisp ce qu'Eclipse est à Java, ou encore ce que Visual Studio est à C#. C'est LE numéro 1 pour écrire du CL. Il a pratiquement été conçu pour ça.

Si vous voulez vous mettre au Common Lisp, je vous conseille très fortement Emacs, même si vous l'avez déjà essayé pour d'autres langages et que vous l'avez détesté. La configuration initiale est un peu galère, mais une fois SLIME installé, c'est la folie.

Quel type de projet ?

Des compilateurs, de minuscules sites Web, et diverses expérimentations d'algorithmes (je fais de la recherche en algorithmes du texte).

Basiquement, je fais en Common Lisp tout ce qui n'est pas du scripting pur (j'utilise alors du Bash ou du Perl), ou de la manipulation mémoire bas niveau (j'utilise alors du C).

Quel point de vue avez-vous? (utilisation/formation : projet perso, projet professionnel, autre)

Utilisation : projets perso et professionnels. Toutefois, mes projets pro sont plutôt des benchmarks d'algorithmes, pas des trucs qui tournent en production.

Formation : avec des bouquins. On en trouve de nombreux en ligne, je conseille Practical Common Lisp et Successful Lisp pour débuter. Une fois que vous arrivez à écrire quelques programmes, commencez On Lisp et Let Over Lambda pour comprendre comment coder de façon vraiment Lispy (et pas juste écrire du python avec une syntaxe bourrée de parenthèses). Si vous avez besoin de références, le Common Lisp Cookbook donne plein de «recettes» pour faire des choses et le Common Lisp HyperSpec est (pratiquement) le standard du langage.

Pensez-vous évoluer vers un(e) autre?

J'ai essayé Scheme et il ne me plaît pas vraiment. J'irai voir du côté de Clojure Un Jour, Peut-Être™.

Autres

Si vous avez essayé le langage pendant quelques jours et que vous n'en avez pas vu l'intérêt, je vous conseille le livre Let Over Lambda. Les trois quarts du livre sont disponibles en ligne gratuitement, et c'est ce qui m'a déclanché le déclic.

+1 -0

Ah, un autre adepte de Common Lisp :)

J'ai pas grand chose à ajouter si ce n'est qu'il est possible d'utiliser vim pour ceux allergiques à emacs. Pour une utilisation pro il vaut mieux se tourner vers Clojure qui bénéficie de l'omniprésence de la JVM (même si c'est assez différent de CL).

Edit: J'insisterais encore plus sur les défauts de CL. Surtout sur l'hostilité face à toute tentative d'évolution du langage où il n'est pas rare de lire encore des propos comme quoi Lisp est toujours en avance sur son temps, etc.

+0 -0

Pour ma part, aucun changement, cette année encore sera farcie de C++. Que ce soit pour mon moteur, ou ma bibliothèque en domaine public, je n'ai pas encore fini de repousser les limites de la conception dans ce langage. Le C++ n'est pas franchement une panacée, bien au contraire, mais c'est encore le meilleur langage à ma disposition. Sauf pour le web côté serveur, et c'est bien là son défaut majeur.

Un peu de GLSL semble de rigueur cette année encore, il y aura des shaders à coder, d'autant que le développement graphique ne se fait quasiment plus que sur le GPU.

Je vais continuer à suivre avec attention l'aventure de Jonathan Blow, développeur JV qui s'est mis en tête de créer un langage pour remplacer le C++ selon les besoins du développement JV. Ma façon de coder est similaire à la sienne (à savoir l'approche par scopes itérative), et il semble vouloir orienter son langage dans cette direction.

+1 -0

Quelle technologie/langage (et éventuellement Framework)?

Python avec Django et du JS.

Quel EDI utilisez-vous?

J'aime pas trop les gros IDE, enfin, c'est peut-être plus la flemme d'apprendre à les utiliser. :D Donc j'utilise Kate (par défaut sur KDE) que j'aile assez bien !

Quel type de projet ?

Bah en ce moment c'est principalement ZdS, même si je cherche d'autres projets auxquels contribuer.

Quel point de vue avez-vous? (utilisation/formation : projet perso, projet professionnel, autre)

Projet perso pour moi.

Pensez-vous évoluer vers un(e) autre ?

Pas pour tout de suite.

+0 -0

Bonsoir,

  • Quelle technologie/langage (et éventuellement Framework)?

La techno de l'année C++14 (officiellement publié par l'ISO en janvier 2015) avec les premières implémentations du TS Concept-lite qui devraient arriver en 2015 (en tout cas j'y crois!). Avec un peu de chance on devrait également voir pointer du bout du nez les coroutines en C++ avec l'introduction du mot clé "await" emprunté au C#. "Comme tout le monde" j'attends également des avancés du côté de la gestion de modules en C++ (à la Python, le rêve). Mais de ce côté là, je ne pense pas qu'il faille espérer 2015 ou même 2016 malheureusement.

  • Les plus/avantage moins/inconvénients?

Le plus : un langage qui a beaucoup évolué ces dernières années (C++11 puis C++14) : beaucoup de fonctionnalités qui rendent ce fantastique langage largement plus abordable au débutant et plus plaisant pour les développeurs expérimentés.

Les moins : un langage qui évolue malgré tout beaucoup trop lentement au niveau du standard, au niveau de l'implémentation par les principaux compilateurs et enfin et surtout dans le milieu professionnel. 95% (d'après mes estimations) des développeurs C++ dans le milieu pro n'ont jamais entendu parler du C++11 (sans parler du C++14) et 99% des projets sont encore développés/maintenus en mauvais C++03. Au boulot, quand je parle de C++14 ou C++17 aux quelques dev qui ont vaguement entendu parler du C++11, je passe pour un extra-terrestre. :p

  • Quel EDI utilisez-vous?

Vim avec le plugin YouCompleteMe sous Linux : je me suis enfin mis à vim fin décembre 2014. Ça a été un peu dur au début comme avec une première cigarette, c'est pas bon. J'ai finalement appris a l'utiliser correctement pour la plupart de mes utilisations et le plugin YouCompleteMe basé sur Clang me permet d'avoir une auto-complétion largement au niveau de IntelliSense de Visual Studio. J'en suis vraiment très très content. Le fait d'avoir un EDI complètement épuré, un terminal transparent en plein écran, me convient vraiment. Quand je fatigue, je peux toujours me perdre dans mon superbe paysage en fond d'écran! C'est de loin l'EDI qui me correspond le mieux.

Sous Windows : la version de Visual Studio qui va bien (au bureau on oscille entre VS2005 2008 et 2010).

  • Quel type de projet?

Au bureau : Développement de programmes pour divers projets temps-réel-mou (oui oui ;) )

Perso : J'essaye de m'intéresser un peu à des projets communautaires comme SFTtech/openage un moteur de jeu libre pour Age of Empire II. Le projet est vraiment sympa et l'équipe de dev a une bonne dose d'humour à revendre. J'ai vaguement dû faire une pull request pour leur système de log sur lequel je me suis fait plaisir en faisant du code que je n'aurais jamais pu mettre en production au boulot (template-abuse & loling-comments) par contre ils ont pas l'air pressés de l'accepter :o ! Un jour il faudrait quand même que je leur demande pourquoi ils sont à ce point atteint par le NIH sur ce projet. Ils ont très peu de dépendance (pas de boost par exemple), et ils prévoient de développer un parser de fichier de configuration "nyan" car JSON et YAML ne répondent pas à leur besoin (ce que je peux comprendre en soit) mais de là à re-développer un parser… En tout cas, si il y en a que ça intéresse ici…

  • Quel point de vue avez-vous? (utilisation/formation : projet perso, projet professionnel, autre)

Utilisation perso et pro. L'utilisation que j'en fais est totalement différentes dans les deux cas cependant.

  • Pensez-vous évoluer vers un(e) autre?

J'adore vraiment ce langage (le C++) mais je pense que dans le monde d'aujourd'hui il est trop complexe et on ne s'y intéresse vraiment que si l'on a réellement des contraintes de performances. De nos jour ces de plus en plus rare. Par exemple, j'ai été surpris d'apprendre que les personnes travaillant dans le "big-data" utilisaient beaucoup Python et R mais peu ou pas du tout C++. La raison: pourquoi se compliquer la vie avec du C++ si le Python est suffisamment rapide, full-stop. Le Python est de très loin mon second langage préféré. On le retrouve un peu partout dans toute sorte de projets. Même si souvent développer en Python serait plus rapide je préfère développer en C++ car je le trouve plus élégant. Maintenant je conçois que ce ne soit pas le cas de tout le monde. Le C++ a une réputation de ne pas être très abordable et restera toujours moins abordable que le Python quoi qu'on fasse. De plus en plus, je me dis qu'un jour ou l'autre je passerai également entièrement au Python. Pas nécessairement par choix mais plutôt par contrainte, le C++ et la recherche de la performances (throughput importante et/ou temps-réel) reste un marché de niche. A côté de ça il faut avouer que le Python c'est quand même bien sympa et a un cadre d'utilisation beaucoup plus large.

Pour te donner du grain a moudre, dans ma boite, l'équipe c++ qui développe un client lourd est depuis un moment passé au c++11 et le support du reste ne dépend que de visual.

Pour la fin, je suis dans ce cas. J'ai longtemps fais du c++ pour du calcul scientifique lourd. Aujourd'hui on se rend compte que la majorité des algos complexes sont déjà développé ou peuvent être implémentés simplement en collant des boites. Du coup mon équipe, la partie recherche, on bosse sur python car c'est radicalement plus rapide et efficace de faire la glu en python. Et dans les rares cas ou je n'ai pas une lib native qui le fait, je le refais en python, par exemple avec numpy. Si les temps de traitement deviennent critique, je passe un coup de cython sur la fonction qui prend du temps et en général ça suffit.

En pratique je fais aujourd'hui 99% de python et c'est pas prêt de changer. Il y a déjà de bonnes libs de deeplearning dispo en python par exemple.

Allez, à mon tour. Ça sera pas original mais ça fera bloc. :)

  • Quelle technologie/langage (et éventuellement Framework)?

Python 3. Les 90% du temps, Python 3.

Le reste du temps, un peu de C et de C++ suivant les besoins, mais concrètement, le reste du temps, ça signifie "quand je dois coder un peu en natif en vue de faire un binding avec Cython".

  • Les plus/avantage moins/inconvénients?

Côté plus :

Le support d'Unicode. La simplicité. La rapidité de développement. La facilité de maintenir les softs. La doc. Le support d'Unicode (oui ça fait deux fois, mais c'est un GROS plus). La possibilité de l'utiliser à plein de niveaux d'abstraction différents quand on le couple avec Cython. Et enfin, son écosystème : entre la bibliothèque standard et le PyPI, il n'y a que très peu de fois où je me suis retrouvé frustré.

Côté moins :

Certaines bibliothèques traînent vraiment la patte à passer de Python 2 vers Python 3. Elles sont de plus en plus rares, certes, et ces 6 derniers mois je n'ai qu'un seul cas dans lequel j'ai dû me résigner à repasser sur Python 2.7 (Scapy), mais si je devais citer un point négatif, ce serait celui-ci, parce que c'est le seul qui me limite dans les faits.

  • Quel EDI utilisez-vous?

Aucun. Un bon Vim des familles, une console en plein écran, screen, l'interpréteur standard, et roulez.

… et quand il s'agit de faire du C ou du C++ : make, voire CMake si le code commence à grossir.

  • Quel type de projet?

Principalement au boulot, où il s'agit de traiter/transformer/présenter des tonnes de données en temps réel.

Pour des petits challenges à droite à gauche aussi (ces derniers temps sur http://root-me.org et parfois sur http://codingame.com).

  • Pensez-vous évoluer vers un(e) autre?

Pas prévu pour le moment.

+1 -0

Pour moi, le langage que je conseillerais ça sera swift.

Swift est le nouveau langage d'apple il bien moins verbeux qu'objective-c (mais on si à habitue). Pour ceux, qui ont jamais fait joujoux avec Swift, c'est un mélange de python (les listes, les dicos et les tuples ce déclarent presque pareil), de javascript (on déclare une variable avec 'var') en incluant la compilation. Il est très simple à apprendre et à comprendre. On retrouve l'ordre de python : en python, on idente son code, en Swift il suffit d'un espace en moins pour que la déclaration d'une variable fasse planter tout le programme (ex : 'var i=0;' ne fonctionne pas mais 'var i = 0' fonctionne très bien). On peux mélanger Swift et objective-c, donc utiliser le meilleure frameworks pour les interfaces graphiques pour mac, cocoa. Ce qui est gênant c'est que ce langage est très jeune et que le binaire est instable. Il change tout le temps. Pour coder avec Swift, le seule IDE est xCode.

Pour le framework pour Swift/Objective-c qui n'a pas été créé par Apple, ça serai Sparkle. C'est un frameworks très utile pour mettre à jour son application sans passer par l'AppStore, il permet de télécharger la nouvelle application et de l'installer sans que ça soit très compliqué pour l'utilisateur. D'ailleurs il est très facile à implémenter. Et il est assez sécuritaire car il faut une clé pour installer la mise à jour.

Le framework télécharge un fichier contenant une clé préalablement créé. Plus d'infos ?

Mon langage pour 2015 ?

Le C.

Pourquoi ?

  • Parce que c'est le langage supporté par le plus de machines au monde.
  • Parce qu'il est stable, il n'y a pas 2 versions du langage qui sortent avant même que le projet ne soit terminé.
  • Parce qu'il est léger. Ce n'est pas un amoncellement de 36 paradigmes de programmation différents.
  • Parce qu'il est facile à traduire en assembleur, ce qui facilite énormément le débug.
  • Parce qu'il existe une quantité incroyable de bibliothèques disponibles en C
  • Parce que POSIX prévoit des API en C.

*Quel IDE j'utilise ? *

Vim fait très bien le boulot, avec les extensions existantes (cscope et fugitive notamment), en plus, quand on sait utiliser vim, on n'a pas de problème pour utiliser vi quand il n'y a que ça.

Quel Framework?

La plupart du temps, aucun. Ah, si, CMSIS, on doit pouvoir voir ça comme un Framework, et puis il y a le Framework de drivers de Linux aussi.

C'est du troll ?

De défendre un langage d'il y a 40 ans, dont le typage est tellement faible qu'il ne protège pas des erreurs, où pour ré-inventer la roue, il faut redéfinir la géométrie, où une faute de frappe provoque de manière invisible fuites mémoires, des corruptions de stack, et autres saletés ? Oui, un peu. Mais c'était l'occasion de rappeler que tout ce qui est nouveau n'est pas forcément extraordinaire.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte