Avec combien de langages de programmation travaillez-vous quotidiennement et comment gérez-vous efficacement les tâches spécifiques aux langues [fermé]

22

Modifier:

Comment gérez-vous les tâches individuelles lorsque vous travaillez sur plusieurs langues

Dans la gestion quotidienne des tâches, avec combien de langages de programmation différents travaillez-vous?

  • Faites-vous un changement mental lorsque vous travaillez sur chaque langue?
  • Les priorisez-vous et conservez-vous chaque tâche par langue séparément.
  • Codez-vous par étapes en fonction de la progression de chaque tâche en basculant de manière transparente entre les langues / IDE / Environnement
  • Appliquez-vous le même style de codage / conventions sur toutes les langues (pas la syntaxe)?

En relation:

Est-il normal que le programmeur travaille simultanément sur plusieurs projets

Aditya P
la source
1
Faire le changement mental est assez facile. Le principal problème mental que j'ai habituellement est lorsque j'essaie de comparer Strings avec .equalsen javascript. Au moins, je me trompe toujours de cette façon plutôt que d'utiliser ==en java.
WuHoUnited
J'écris 3/4 langues chaque jour pour le même projet. Comment est-ce que je gère? Connaissez les langues. Gardez les références à portée de main. Suivez les conventions linguistiques.
Rig
Payer le coût du basculement entre JavaScript et certains langages de programmation côté serveur ne vaut pas la peine de nos jours, alors que Node.js possède le plus grand écosystème de bibliothèques au monde , et quand vous pouvez écrire du code synchrone en utilisant async / wait . Le paradigme «Une langue partout» est également utilisé par Meteor (plus de 35 000 étoiles GitHub).
Dan Dascalescu

Réponses:

25

Aujourd'hui, j'ai écrit Java, Python, C ++ et SQL (si cela compte). Et je suis au travail depuis moins de 2 heures.

Si vous faites cela régulièrement, alors le changement mental devient négligeable. Cela n'a rien à voir avec le multitâche. C'est comme marcher pendant un certain temps, puis conduire une voiture, puis conduire un vélo, puis nager. Pas de problème, car ce sont des choses séquentielles.

Quoi qu'il en soit, il s'agit de terminer une tâche avant de passer à la suivante. J'ai tendance à définir les tâches en termes de fonctionnalité concrète, de correction ou autre. Souvent, cette tâche est accomplie avec une seule langue, mais elle peut en nécessiter plusieurs. Par exemple, lorsque vous travaillez avec JNI , vous apportez généralement des modifications aux côtés Java et natif en parallèle.

Quelques réponses:

Codez-vous par étapes en fonction de la progression de chaque tâche en basculant de manière transparente entre les langues / IDE / Environnement

Il est important de pouvoir basculer de manière transparente entre les IDE, les éditeurs et les environnements. Habituellement, je les garde tous ouverts tout le temps.

Appliquez-vous le même style de codage / conventions sur toutes les langues (pas de syntaxe)?

S'il s'agit d'une interface sur laquelle deux langues parlent, alors oui - les noms de variables et autres doivent être similaires. Sinon, j'essaie d'appliquer le style de codage typique de cette langue.

Joonas Pulakka
la source
8
sonne comme une course incroyable
setzamora
J'essaie généralement de terminer une tâche avant de passer à la suivante, mais une seule tâche peut bien nécessiter l'utilisation de plusieurs langues. Utiliser un IDE polyglotte tel que NetBeans et / ou garder tous les éditeurs et environnements nécessaires ouverts en tout temps est un must. Ensuite, vous n'avez pas besoin de vous soucier beaucoup du langage (qui n'est qu'un "détail d'implémentation"), et vous pouvez vous concentrer sur la tâche (qui fait partie de ce que vous êtes vraiment censé accomplir - un programme de travail).
Joonas Pulakka
Ce serait bien si vous pouvez ajouter ce qui précède à votre réponse et en ajoutant un peu sur la façon dont vous traitez les styles de programmation de codage / conventions.
Aditya P
@AdityaGameProgrammer: Ajout de quelques points.
Joonas Pulakka
18

Il y a un motif qui se forme ici:

  • Front-end: tout ce qui s'exécute sur un navigateur (javascript, html et css)
  • Business Logic: n'importe quelle pléthore de langages à usage général
  • Backend: SQL
  • Build Script: certains langages de script

Donc pour moi, c'est: javascript, HTML et CSS, C #, Transact-SQL et Windows Powershell.


Appliquez-vous le même style de codage / conventions sur toutes les langues (pas de syntaxe)?

Non, je mets un point d'honneur à programmer selon la convention de la langue. Un exemple simple:

   // C#
   int MyFunction() 
   {
       return 0;
   }

   // Javascript
   function myFunction() {
      return 0;
   }

L'utilisation de conventions de codage visuellement différentes m'aide à faire le changement mental entre les langues. Inversement, si mon code est le même dans chaque langue, je vais faire des erreurs de syntaxe en oubliant la langue dans laquelle je code.

Andrew Shepherd
la source
1
+1 Bonne réponse: il est excellent que vous puissiez conserver les conventions et le style de codage spécifiques à la langue.
Aditya P
Eh bien .. dans certains cas, Javascript vous oblige à travailler de cette façon en raison du mauvais point-virgule implicite. Mais sinon, je ne verrais aucune raison de le faire ...
Billy ONeal
Autre que le style de codage, une autre façon de faciliter le changement mental entre les langues est de configurer des schémas de couleurs différents pour chaque langue dans vos éditeurs / IDE.
Spoike
5

Comme indiqué par SK-logic, le changement mental ne devrait pas être un problème si vous utilisez des langues spécifiques au domaine bien choisies. Mais souvent, vous ne pouvez pas choisir la langue, donc cela prend parfois un moment pour changer. D'après mon expérience, la difficulté réside plus dans le changement de syntaxe que dans le changement de style de programmation. Le seul changement ennuyeux que je ressens toujours est le changement de style de commentaire : si j'ouvre simplement un fichier pour changer rapidement une ligne de code, cela va souvent:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?
Jakob
la source
4

Dans mon dernier travail: Java, C ++, C #, JavaScript et VBScript.

Mais heureusement, tout cela était dans des contextes très différents (et à travers quelques produits) - donc une fois que vous connaissiez suffisamment chaque base de code, le passage mental à différents contextes était en fait assez facile et logique.

En vérité, ce qui me dérangeait le plus était l'interruption par des problèmes de support client. Passer en interne à une tâche dans une autre langue n'a jamais été un problème en soi.

Tables Bobby
la source
2

Je travaille avec 2 langages: c # et python.

Je les utilise tous les deux dans le même projet, mais évidemment pour des tâches différentes.

Lorsque je travaille sur une tâche, je travaille sur cette tâche jusqu'à ce qu'elle soit dans un état complet, ou jusqu'à ce que je ne puisse plus me concentrer dessus. Cela signifie que si je dois basculer entre les langues, il y a peu ou pas de dissonance cognitive car je serai déjà sorti de la pensée dans l'une ou l'autre langue lorsque j'aurai terminé la dernière tâche.

Certes, je prendrai une courte pause quand je sors d'une tâche, ce qui aide probablement beaucoup.

Matt Ellen
la source
2

Le moins possible. Cela implique généralement 1. Python, plus 2. Modèles HTML, 3. HTML + CSS et parfois 4. Javascript. Passer de Python à JS nécessite définitivement un changement mental, également parce que j'ai besoin d'utiliser différents outils.

J'ajoute HTML + CSS séparément des modèles HTML, même si les langues ne sont peut-être pas en soi (ou elles peuvent dépendre de votre religion), car cela nécessite également un changement mental et l'utilisation d'autres outils, mais pas si mal que de passer à Javascript. Jouer avec HTML + CSS du point de vue de la conception, pour que la page ressemble à la maquette requise, est un état d'esprit différent de la création de modèles HTML. Mais c'est plus orthogonal à Python qu'à Javascript, ce qui signifie que je dois changer mon état d'esprit de programmation pour un autre. :)

Lennart Regebro
la source
2

J'utilise quotidiennement:

  1. HTML / CSS
  2. Javascript / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

J'utilise également Python, Java et XML (cela compte-t-il?) À l'occasion. Mon travail consiste à éditer divers sites Web, qui pourraient être construits dans n'importe quel langage Web (même un Perl) et à utiliser des paradigmes / modèles extrêmement différents (procéduraux, MVC, OOP, etc.).

Pour répondre à la question - j'utilise principalement Notepad ++ comme mon IDE pour les 5 premiers répertoriés, puis Visual Studio pour Asp.Net.

Il peut être difficile de basculer rapidement entre chaque langue - en vous rappelant si vous avez besoin ou non de points-virgules à la fin des lignes, ou si les boucles ont des accolades ou non. Le passage de VBScript à JScript est le pire absolu pour cela - les fichiers se terminent tous les deux par .asp et semblent assez similaires à première vue, il faut donc un certain temps pour comprendre pourquoi je reçois des erreurs.

whostolemyhat
la source
Hé, tu dois travailler ici aussi! (j / k) Nous réécrivons la base de code ASP et .NET en PHP, nous exposant à la même sélection de langues.
greyfade
2

En ce moment, j'écris Ruby, PHP, Java, C et JavaScript et j'écrirai pendant au moins 1 heure dans chacun d'eux chaque jour. Le problème principal est vraiment de trouver le temps car ils sont tous pour des projets sans rapport.

Déplacement mental

Mon style de travail est tel que j'aime travailler pendant de longues périodes. Malheureusement, cela signifie que si je n'ai qu'une seule chose, lorsque je rencontre un blocage mental avec un morceau de code, il me faudra beaucoup de temps pour m'en remettre. Je ne trouve pas non plus que prendre une pause aide. En ayant d'autres projets, et en particulier d'autres langues, pour passer à chaque fois que je suis bloqué, au moment où je reviens à la langue d'origine, j'ai immédiatement une solution.

Par conséquent, oui, il y a un changement mental et je pense que cela me rend beaucoup plus productif.

Hiérarchiser les tâches

J'utilise un gestionnaire de tâches (gTasks pour Android) et j'ai une liste de tâches distincte pour chaque projet. Si un projet nécessite plusieurs langues, je ne les sépare pas. C'est généralement parce qu'ils seront fortement liés d'une manière ou d'une autre. Par exemple, JavaScript et Ruby pour faire des trucs AJAX. Si les langues sont techniquement pour le même projet mais que le projet est si grand qu'elles sont essentiellement indépendantes, je les compterai probablement comme des projets distincts.

Généralement, ma priorité est "quelle que soit la liste qui a le plus de tâches" mais je changerai toujours si je suis bloqué sur un problème.

Conventions de codage

C'est un peu un mélange:

  • Si le projet est développé avec d'autres, je me conformerai évidemment aux conventions qui auront été décidées pour ce projet.
  • Si le projet est personnel, j'aime que mon code semble cohérent avec le style dominant dans la bibliothèque communautaire / standard pour une langue donnée. J'ai du mal à lire le code Java si toutes les fonctions des utilisateurs sont dans snake_case, par exemple. De même, les méthodes camelCase dans Ruby semblent étranges et hors de propos.
  • Pour les conventions qui ne sont pas rendues évidentes en utilisant simplement une langue, comme l'indentation, j'ai tendance à adopter mes propres normes et à les utiliser dans toutes les langues que j'utilise. Dans le cas d'une indentation, j'utilise toujours 2 espaces. Pour le style d'accolade, j'utilise toujours ce que Wikipedia décide actuellement d'appeler le style de lisibilité du contrôle compact .

En plus: Le plus grand défi pour moi est en fait de basculer entre les langages de style. Il est très difficile de courir le long lors du codage de SASS aux côtés de Ruby, puis de devoir revenir en CSS pour tout le reste. Dans une moindre mesure, j'ai le même problème avec HAML / HTML et JSON / XML.

Rupert Madden-Abbott
la source
2

J'écris des applications pour le côté FAI des choses, il y a aussi une culture du "faites ce que vous êtes à l'aise", souvent écrite par beaucoup d'ingénieurs réseau qui se familiarisent avec la programmation. Je dois faire face chaque semaine à des programmes assez bien écrits, vraiment horribles. Ce que je vais souvent rencontrer et travailler ...

  • Perl , souvent des scripts ponctuels rapides, ou souvent utilisés par des gens qui ne connaissent (ou aiment) que Perl. Je trouve plus de choses héritées en Perl. Certaines des pires choses sont écrites en Perl, non pas parce que le langage est mauvais, mais parce qu'il est facilement mal utilisé par les programmeurs débutants. Je l'utilise toujours moi-même pour certains types de programmes ponctuels. Je l'utilise rarement pour quelque chose de plus grand.
  • PHP , Beaucoup de cela autour, souvent un langage de démarrage pour les amateurs. Certains programmes très bien écrits, certains schlock. Pour certains types d'applications Web, je choisirai PHP car je pourrai le mettre à la terre plus rapidement.
  • Script Shell , utilisez-le principalement pour exécuter d'autres programmes ou tâches comme la lecture de journaux.
  • Attendez - vous , rencontrez toujours cela (et des fanatiques qui insistent sur le fait qu'il s'agit de nirvana pour exécuter des commandes sur des périphériques réseau). J'y travaille quand je le dois, mais un bébé chaton est tué quelque part dans le monde lorsque je rencontre l'un de ces milliers de programmes longs sans aucune fonction en vue, juste une longue ferme de pâtes itérative.
  • C , rarement utilisé en raison de problèmes de portabilité, mais je vais l'utiliser pour effectuer des tâches spécifiques.
  • Java , je l'utilise souvent en raison du support étendu de la bibliothèque et du déploiement facile. Nous avons un réseau très hétérogène et un personnel informatique qui a un agenda différent du mien. Avec Java, je peux inclure des bibliothèques et ne pas craindre que l'informatique doive «mettre à niveau» quelque chose sur le système dont j'ai besoin pour déployer le programme. Le plus souvent, c'est mon langage de programmation de choix.

Il existe également d'autres langues (.net, VB, Phyton, Rails, etc.) dans l'entreprise, mais je n'ai pas encore eu à travailler dessus ...

Modifier, pour le modifier ...

Vous devez changer mentalement lorsque vous travaillez entre les langues. Le plus souvent, je vais perdre de vue la syntaxe. Je garde une collection de livres de référence à portée de main. Je trouverai qu'il faut environ une demi-heure pour revenir dans l'état d'esprit de l'autre langue. Plus la syntaxe du langage est obtuse, plus le décalage est long. Je trouve que passer de Java à Perl prend probablement plus de temps si je n'ai pas touché Perl depuis un certain temps. Plus vous faites cela, plus c'est facile.

loi
la source
1

J'utilise souvent six langues ou plus dans un même projet. La plupart d'entre eux sont généralement spécifiques à ce projet uniquement.

Le déplacement mental n'est requis que si vous utilisez une langue qui n'est pas appropriée pour une tâche. Sinon, il est naturel d'utiliser le meilleur ajustement. Différents ensembles de langues sont utilisés pour différentes étapes d'un projet.

SK-logic
la source
Êtes-vous chef de projet ou codez-vous en eux?
Aditya P
@AdityaGameProgrammer, je les code.
SK-logic
Vous voulez expliquer un downvote?
SK-logic
1

J'utilise C (embarqué), C ++ (bureau), Python, Matlab et VHDL (une sorte de langage de programmation matérielle) sur une base fréquente, souvent tous dans la même journée. Dans mon environnement, cette sorte de dextérité langagière est essentielle à mes yeux.

Souvent, je ne parviens pas à obtenir tout ce dont j'ai besoin pour un projet particulier dans une seule langue efficacement. Par exemple, les deux C et VHDL intégrés sont assez bas niveau, donc j'utilise souvent Python pour analyser leurs résultats (ou même générer du code).

Commuter rapidement entre eux n'est pas un problème après un certain temps, c'est comme passer d'un marteau à un tournevis - l'outil idéal pour le travail.

Martin Thompson
la source
1

Cela dépend vraiment de la façon dont le travail est défini ... J'utilise C # pour développer des applications Microsoft Surface tous les jours. Java J'utilise également tous les jours pour mes applications Android. Mais j'essaie de m'instruire et j'ai commencé à utiliser R, Ruby et Objective-C. Parfois, j'ai aussi besoin de SQL et si vous incluez des langages de script et d'autres langages dans votre question, alors aussi JavaScipt, SPARQL et BeanShell.

Appliquez-vous le même style de codage / conventions sur toutes les langues (pas de syntaxe)?

J'essaie de suivre les conventions de codage de chaque langage mais surtout entre Java et C # J'ai quelques difficultés à cause des accolades et du nommage de la méthode majuscule en C #:

public void test() {
   ...
}

contre.

public void Test()
{
   ...
}
RoflcoptrException
la source
Les deux styles d'accolades sont acceptables en C #. Ne passez pas trop de temps à taxer votre cerveau à ce sujet. :-)
Cody Gray
0

Je crée des applications Web. Alors actuellement, c'est:

  • XHTML
  • Javascript
  • C # dans le cadre du
  • ASP.Net Framework (ce type de langage est aussi un langage)
  • T-SQL pour la communication de base de données
  • Anglais pour communiquer avec les humains.

Editeurs: Sublime Text (hors choix), Visual Studio 2010 (aucun autre choix possible en ce qui concerne ASP.Net)

5arx
la source
0

Dans mon travail, j'utilise Java, C, Python, Django et de petits morceaux de PHP. J'ai également travaillé sur un très petit projet en C ++ de Microsoft.

Je ne les utilise pas tous les jours, mais certains jours, je les utilise tous sans problème. Un jour typique, j'en utilise seulement un ou deux. La programmation que je fais à la maison implique généralement de travailler avec des technologies différentes de celles que j'utilise au travail comme Qt ou Ruby on Rails.

jonescb
la source