Indépendamment des preuves apparentes du contraire, les programmeurs sont des humains. Et, comme tous les humains, nous aimons profiter de notre liberté de choix. Que ce choix concerne prendre la pilule rouge ou la pilule bleue , porter une robe ou un pantalon, ou utiliser un environnement de développement plutôt qu'un autre, le choix que nous faisons nous place dans un groupe de personnes ou un autre. Le choix, inévitablement, vient après notre évaluation des options. Et après avoir fait un choix, nous avons tendance à croire que quiconque choisit différemment a fait une erreur.
Vous pouvez facilement rechercher sur Internet et trouver des centaines de débats sur Emacs vs Vim. Même si vous les lisez tous, il sera impossible de choisir objectivement un gagnant. Cependant, le choix de l'environnement de développement vous dit-il quelque chose sur la qualité du travail qu'un développeur peut fournir? Absolument pas!
À grand développeur pouvait écrire son code dans le Bloc-notes et toujours livrer des trucs formidables.
Il est certain que les professionnels tiennent compte de nombreux éléments lorsqu'ils choisissent des outils pour leur travail. Cela est vrai pour toutes les professions, y compris le développement de logiciels. Très souvent, cependant, la sélection est basée sur goût personnel , pas quelque chose de facilement tangible.
Les programmeurs passent la plupart de leur temps à regarder l'environnement de développement, il est donc naturel que nous voulions quelque chose de joli et de fonctionnel. Chaque environnement de développement a ses avantages et ses inconvénients. Dans l'ensemble, ils sont une force motrice de l'industrie du développement de logiciels.
les plus grands sites de rencontre aux etats unis
Quelles sont les choses qu'un développeur devrait évaluer lors du choix d'un ensemble d'outils de programmation comme un éditeur de programmation de choix? La réponse à cette question n'est pas aussi simple que cela puisse paraître. Le développement de logiciels est proche d'un art, et il y a assez peu de facteurs «flous» qui séparent un chef-d'œuvre d'un objet de collection trop cher.
Chaque langage de programmation, que ce soit Java, C #, PHP, Python, Ruby, JavaScript, etc., a ses propres pratiques de développement liées à la structure du projet, au débogage et au déploiement. Cependant, une chose qu'ils ont tous en commun est l'édition du code. Dans cet article, nous évaluerons différentes plates-formes de développement du point de vue de la tâche la plus courante du développement logiciel: l'écriture de code.
Une environnement de développement intégré (IDE) (ou environnement de développement interactif) est une application logicielle qui fournit des installations complètes aux programmeurs informatiques pour le développement de logiciels. Un IDE se compose normalement d'un éditeur de code source, d'outils d'automatisation de construction et d'un débogueur, et beaucoup prennent en charge de nombreux plugins et extensions supplémentaires.
Éditeurs de texte sont des applications plus simples. Par rapport aux IDE, ils correspondent généralement uniquement au segment de l'éditeur de code d'un IDE. Cependant, ils sont souvent bien plus que cela. Les IDE sont créés pour servir le développement de logiciels, tandis que de nombreux éditeurs de texte sont également conçus pour être utilisés par des non-développeurs.
combien de drones ont été vendus en 2017
Les langages de type statique peuvent tirer de nombreux avantages des IDE. En raison des règles de typage strictes, il est possible pour l'EDI de détecter les bogues et les incohérences de dénomination entre les classes et les modules, et même entre les fichiers, directement dans l'éditeur, avant la compilation. Cette fonctionnalité est fournie en standard avec de nombreux IDE, et pour cette raison, les IDE sont très populaires pour les langages de type statique.
Cependant, il est impossible de faire la même chose pour les langages typés dynamiquement. Par exemple, si un nom de méthode peut être généré par le code lui-même, construit à partir d'une série de chaînes concates, essayer de détecter les erreurs de dénomination dans les langages dynamiques ne nécessite rien de moins que d'exécuter le programme réel. Étant donné que l'un des principaux avantages des IDE ne s'applique pas aux programmeurs de langage dynamique, ils ont plus tendance à s'en tenir aux éditeurs de texte comme Sublime. En passant, c'est aussi une des principales raisons pour lesquelles le mouvement de développement piloté par les tests s'est développé autour de communautés linguistiques dynamiques et n'a pas eu autant de succès dans les langues statiques.
Outre un certain nombre de fonctionnalités différentes pour différents langages, chaque éditeur de programmation doit avoir une interface utilisateur bien organisée et propre. L'attrait esthétique global ne doit pas non plus être négligé. Il ne s'agit pas seulement de bien paraître, car un éditeur bien conçu avec le bon choix de polices et de couleurs vous aide à réduire la fatigue visuelle et vous permet d'être plus productif.
Dans l'environnement de développement actuel, une courbe d'apprentissage abrupte est un handicap, indépendamment de l'ensemble des fonctionnalités. Le temps est toujours précieux, donc un bon éditeur doit être facile à utiliser. Idéalement, le programmeur devrait être en mesure de commencer à travailler immédiatement, sans avoir à sauter par trop de cerceaux. Un couteau suisse est un outil pratique et utile, mais tout le monde peut le maîtriser en quelques minutes. De même, pour les éditeurs de programmation, la simplicité est une vertu.
Examinons de plus près l'interface utilisateur, les différentes fonctionnalités et capacités et les outils fréquemment utilisés qui devraient faire partie de tout éditeur de programmation.
Les numéros de ligne, bien sûr, doivent être activés par défaut et simples à activer ou désactiver.
Les extraits de code sont utiles pour insérer des blocs de texte standardisés dans une mise en page fixe. Cependant, la programmation consiste beaucoup à dire les choses une seule fois, alors soyez prudent avec les extraits de code car ils pourraient rendre votre code difficile à maintenir à l'avenir.
La possibilité de lint ou de vérifier la syntaxe du fichier actuel est utile, tout comme la possibilité de le lancer. Sans cette fonctionnalité, un programmeur doit basculer vers une fenêtre de ligne de commande externe, choisir et exécuter la commande correcte, puis parcourir les messages d'erreur pour trouver la source de l'erreur. Cependant, le peluchage doit être sous le contrôle du programmeur, car le retard encouru par le peluchage peut interrompre le codeur à un moment crucial.
La documentation en ligne est utile tant qu'elle ne gêne pas, mais avoir une page de navigateur ouverte sur les définitions de classe est parfois plus utile, surtout quand il y a beaucoup de classes liées qui ne s'étendent pas directement les unes les autres. Il est assez facile de couper et coller du code de la documentation du navigateur au code en cours d’écriture, de sorte que la complexité supplémentaire de la documentation en ligne devient souvent moins utile, voire plus ennuyeuse, à mesure que les connaissances du programmeur sur la documentation augmentent.
La complétion de mots est utile car elle est rapide et presque aussi fiable que la documentation en édition, tout en étant moins intrusive. Il est satisfaisant de saisir seulement quelques caractères d'un mot, puis d'appuyer sur Entrée pour obtenir le reste. Sinon, on travaille sous la pression d'un typage excessif, détesté par les programmeurs paresseux, qui veulent taper ee
plutôt que le plus long exponentialFunctionSquared
. La complétion de mots satisfait en minimisant la frappe, en imposant un nommage cohérent et en ne gênant pas.
Renommer les variables et les fonctions dans le programme est utile, mais vous devez être en mesure d'examiner les modifications et de vous assurer que votre code n'est pas rompu. Encore une fois, la complétion de mots est une maison intermédiaire utile, en ce sens qu'elle fonctionne pour toutes les langues; vous pouvez utiliser des noms longs pour les éléments qui ont une longue durée de vie, sans entraîner de surcharge de frappe. Vous pouvez utiliser des références à eux via un nom plus court localement, afin de raccourcir les expressions qui pourraient autrement s'étendre sur trop de lignes. Si vous devez renommer, les noms longs sont uniques, donc cette approche fonctionne dans toutes les langues et tous les fichiers.
meilleures pratiques de conception de bases de données relationnelles
Les fichiers sources peuvent parfois se développer beaucoup. Le pliage de code est une fonctionnalité intéressante qui simplifie la lecture de longs fichiers.
La recherche / modification avec limitation de la portée à local, incrémentiel ou global avec des méta-caractères et des expressions régulières fait partie de l'exigence minimale de nos jours, tout comme la coloration syntaxique.
Au fil des ans, je suis passé par un certain nombre d'éditeurs, et voici ce que je pense d'eux:
Emacs : L'un des éditeurs les plus populaires au monde. La plus grande caractéristique d'Emacs est son extensibilité, malgré la complexité de son langage d'extension (vous pouvez même jouer à Tetris avec M-x tetris
). Les fans d'Emacs considèrent son interface basée sur un terminal comme une fonctionnalité intéressante, tandis que d'autres pourraient débattre du fait que c'est un inconvénient. D'après mon expérience personnelle, je l'ai trouvé trop difficile à adopter et à apprendre. Je suis sûr que si vous savez utiliser Emacs, vous n'utiliserez jamais rien d'autre, mais affronter et apprendre toute la culture était plus que ce que je voulais faire. Néanmoins, sa popularité auprès des développeurs prouve qu'il est loin d'être une relique des temps anciens et qu'il fait également partie de notre avenir.
Vi / Vim : Vim est un autre puissant éditeur basé sur un terminal, et il est livré en standard avec la plupart des systèmes d'exploitation xNIX. En plus d'avoir une interface différente de celle d'Emacs, mon point de vue est pratiquement le même. Si vous y avez grandi, je suis sûr que vous n'utiliserez jamais rien d'autre. Avoir des compétences en Vi vous simplifiera la vie lorsque vous utilisez SSH et d'autres endroits difficiles, et vous n'aurez pas de problèmes de vitesse, une fois que vous vous serez familiarisé avec les frappes au clavier. Bien que pas aussi difficile à percer qu'Emacs, la courbe d'apprentissage est toujours assez raide et pourrait certainement utiliser quelques fonctionnalités intéressantes d'un éditeur fenêtré.
SublimeText : Fidèle à son nom, SublimeText est un bel éditeur de texte avec des tonnes de fonctionnalités. Contrairement à certains éditeurs similaires, SublimeText est une source fermée, il ne peut donc pas être modifié à un niveau bas. SublimeText offre la simplicité des éditeurs de texte traditionnels, avec une interface utilisateur simple et rapide. De nombreux développeurs le trouvent plus facile à utiliser que Vim, et cela est particulièrement vrai pour les nouveaux arrivants. La courbe d’apprentissage n’est tout simplement pas aussi raide. Bien que l'interface utilisateur soit minimale et simple, SublimeText offre quelques fonctionnalités intéressantes, telles qu'un code d'affichage réduit à droite de l'interface utilisateur, permettant aux utilisateurs de faire défiler rapidement leur code et de naviguer avec une relative facilité. Bien que ce ne soit pas entièrement gratuit, la version de démonstration limitée en fonctionnalités l'est. Le déverrouillage de toutes les fonctionnalités vous coûtera 70 $.
Atome est le résultat d'un effort de GitHub pour produire un éditeur de programmation pour une nouvelle génération de développeurs. Bien qu'il s'agisse encore d'un travail en cours, Atom est un éditeur très performant avec une communauté dynamique de développeurs passionnés par les nouvelles extensions, les bibliothèques JavaScript et plus encore. Ses inconvénients incluent certaines bizarreries de l'interface utilisateur, la possibilité que certains packages complémentaires puissent se comporter de manière incorrecte et des problèmes de performances signalés lors de l'utilisation de (très) gros fichiers. Mais le projet est en cours de développement actif et les lacunes actuelles devraient être améliorées. Atom est un projet open source, et il peut facilement être piraté pour répondre à vos besoins.
Nano : Excellent dans un virage serré, mais pas assez riche en fonctionnalités pour empêcher la pensée inévitable de s'insinuer dans l'esprit qu'il doit y avoir un moyen plus rapide de le faire alors que l'on lutte à travers les touches pour indenter un bloc de code, tout en gardant les commentaires alignés dans la colonne 80! Il n'a même pas de surlignage de texte et ne doit pas être utilisé pour autre chose que des modifications de fichiers de configuration.
éclipse vs bloc-notes++
TextMate2 : Le plus gros inconvénient de TextMate est qu'il ne fonctionne que sur Mac. Comme l’ont dit ses créateurs, «TextMate introduit l’approche d’Apple en matière de systèmes d’exploitation dans le monde des éditeurs de texte.» En reliant les fondements UNIX et l'interface graphique, TextMate sélectionne le meilleur des deux mondes, au profit des scripteurs experts et des utilisateurs novices. C'est l'éditeur de choix pour de nombreux développeurs Ruby, Python et JavaScript, avec un excellent support pour Bash ou Markdown. Au moment de la publication de cet article, TextMate 2 est toujours en version bêta, mais il dispose déjà d'un écosystème de plugins très mature qui promet de l'étendre même au-delà des extensions d'Emacs.
jEdit : Basé sur Java et considéré comme lent par certains. La configuration prête à l'emploi peut éloigner certaines personnes, mais jEdit peut être extrêmement rapide s'il est configuré correctement, ainsi que d'une apparence extrêmement agréable.
Éclipse : Un autre IDE largement utilisé, Eclipse est très populaire parmi les développeurs Java, mais a été adapté à de nombreuses plates-formes différentes. On pourrait soutenir que son architecture monolithique est un rocher qui le tirera sous l'eau, mais c'est toujours l'une des plates-formes les plus populaires parmi les développeurs.
Studio Aptana : Un IDE d'application Web open-source complet. Il est disponible en tant que plugin Eclipse, ce qui le rend populaire parmi certains développeurs Java. La version autonome est encore plus légère et offre une gamme de thèmes et d'options de personnalisation différents. Les capacités de gestion de projet d'Aptana peuvent également être utiles aux codeurs qui ont perfectionné leurs compétences dans Eclipse. Alors que les versions antérieures souffraient de problèmes de performances sur certaines plates-formes matérielles, ces problèmes ont été résolus dans Aptana Studio 3 et devraient appartenir au passé.
NetBeans : Un autre IDE open source relativement populaire avec un support multiplateforme. Il est un peu plus lent au démarrage que les éditeurs allégés comme SublimeText, et le choix des add-ons est limité par rapport à certaines alternatives. De nombreux développeurs Java ont appris à aimer NetBeans grâce à une intégration SCM transparente et à la prise en charge de HTML5. La prise en charge de NetBeans pour PHP s'est également améliorée dans les dernières versions.
JetBrains : Propose une famille d'IDE pour Java, Ruby, Python et PHP. Ils sont tous basés sur le même moteur central. Très performants en eux-mêmes, les IDE JetBrains gagnent en popularité. Cependant, ce ne sont pas des solutions open source gratuites, bien qu'un essai de 30 jours soit disponible et que le prix soit raisonnable.
Komodo Modifier : Komodo Edit a un grand potentiel, et pourtant il est plein de petits «pièges» et d'idiosyncrasies ennuyeux qui peuvent être frustrants par son manque d'orthogonalité. Komodo Edit se sent encombré, ce qui est dommage car il a clairement une capacité immense. Je continue à retourner à Komodo Edit dans l'espoir d'avoir raté un principe d'organisation, et à chaque fois, je suis repoussé par un tas de capacités désorganisées.
Geany : Geany n'est pas un acteur majeur comme la plupart des autres éditeurs de cette liste. Elle est définie davantage par «ce que ce n’est pas» que par «ce que c’est». Il n’est pas lent, il n’a pas beaucoup d’héritage de l’ancien temps, il n’a pas de capacité macro, ni beaucoup de multi-fenêtre sur la capacité de tampon. Pourtant, ce qu'il fait, il le fait assez bien. C'est peut-être le moins exigeant de tous les éditeurs que j'ai essayés et je peux toujours faire 90% de ce que vous attendez d'un éditeur de programmeur. Geany a l'air assez bien sur Ubuntu, ce qui est l'une des raisons pour lesquelles je l'ai choisi comme éditeur préféré.
Il serait présomptueux d'en déclarer un seul comme le meilleur éditeur de programmation parmi ces excellents outils. Et il y a pas mal d'éditeurs que je n'ai même pas essayés. Il n’existe pas de solution universelle. C'est ce qui m'a poussé à essayer plusieurs éditeurs différents; si vous êtes plus intéressé par la longévité des éditeurs, vous voudrez également lire Évaluation par Roben Kleene des éditeurs de code .
J'utilise actuellement Geany, mais c'est parce qu'il répond aux exigences que j'ai. Avec Geany, et beaucoup d'aide de Perl / Gimp / Audacity / Sox, je suis capable de développer et de maintenir la base de code Java pour le Applications Android Je les développe, les prépare pour la compilation dans différentes configurations pour de multiples distributeurs, source, lint, compile, dex et produit .apk
fichiers et livrez ces applications dans le monde entier.
comment effectuer un test d'utilisabilité
Votre ligne de développement pourrait prescrire un ensemble d'exigences différent, et j'espère vous avoir fait gagner du temps dans la recherche des éditeurs de programmation les plus appropriés.
En relation: Tutoriel Language Server Protocol: De VSCode à Vim