Je suis un étudiant à l'université, mon expérience est donc limitée, d'où la question. p>
Si quelqu'un vous dit, voici une tâche de coder, que cherchez-vous afin de choisir la langue ou le paradigme dans lequel vous le ferez? P>
J'espère que la question a du sens? p>
10 Réponses :
Sauf si c'est une tâche qui crie essentiellement de vous dire quelle langue il est préférable de faire, vous devez choisir celui qui vous convient le mieux ... Je suppose. P>
Il y a beaucoup de facteurs qui seraient influents: p>
Cela suppose que vous avez le choix entre des langues, bien sûr. Une langue peut convoquer le meilleur problème, mais si vous n'en savez pas assez, il n'est pratiquement pas une option, à moins que vous n'ayez le temps d'apprendre. P>
Bonne liste! Peut-être que vous pourriez ajouter du matériel / de la plate-forme / du système d'exploitation car cela exclut généralement certains choix.
+1 - Quand j'ai fait des compilations de programmation il y a plusieurs années, connaître les capacités des langues autorisées a permis de gagner beaucoup plus facile à gagner. Certaines langues sont vraiment bonnes dans certaines choses. Pendant que nous parlons surtout de langues générales, il y a encore suffisamment de variables pour faire des choix intelligents.
Nice liste, j'ajouterais un coût / budget aussi. Le facteur limitant du choix de la langue peut très bien être ce que vous pouvez vous permettre. Certaines bibliothèques pouvant rendre le travail facile dans une langue peuvent être des bouchons d'obstacles en raison du prix.
Je ne suis pas sûr quand il serait pas i> être "acceptable d'écrire une solution lente rapidement". Même si j'écrivais un noyau OS aujourd'hui, je prototype dans quelque chose de lent à courir mais rapide à écrire. Je ne connais pas d'ingénieur qui ne construise pas d'abord des prototypes. Dans les logiciels, vous avez simplement le bonus que le prototype pourrait simplement être suffisamment bon pour ne pas avoir besoin de la construire à nouveau.
C'est tout sur votre intérêt et votre expertise. Si vous avez de bonnes connaissances en Java, vous voulez que vous envisagez de passer du temps à coder dans C / C ++ / C #? P>
En ce qui me concerne, je vais le prendre sur la faisabilité. Si la solution est réalisable dans .NET, j'irai avec .NET. P>
Aussi d'autres choses à considérer sont les plates-formes que les tâches seront mises en œuvre. Si les serveurs de destination peuvent être Linux / Mac / Windows, allez pour Java. Si la tâche nécessite une trop grande quantité de travail de niveau système, allez pour c. etc etc ... p>
La redondance est la clé. Je choisirais la langue que je connais le plus, parce que je serai beaucoup plus productif. P>
Essayez de choisir une langue et de le maîtriser. Bien sûr, c'est une bonne chose à connaître la plupart des langues, vous pouvez choisir celui qui correspond à votre meilleur. P>
Alors collez-vous avec votre préféré. P>
Pour moi, son ASP.NET C # / JQuery. P>
PHP est une belle communauté et c'est gratuit. Si vous nouveau, je commencerais avec cela. P>
Je regarde un problème et je pense à un très haut niveau comment je voudrais le mettre en œuvre dans certaines des langues que je connais. Dites par exemple, je savais que cela me faudrait deux fois plus de code pour implémenter une boîte de dialogue dans MFC / C ++, car il serait nécessaire de la mettre en œuvre dans C #, et que mon Java était un peu rouillé. Je choisirais de le programmer en C #. P>
Cependant, étant donné que vous êtes étudiant, vous voudrez peut-être choisir une langue que vous n'êtes pas connu avec et mettez en œuvre le projet dans cette langue. Mon raisonnement est que je suis arrivé au collège en sachant très bien C ++. Cela ne me fait pas beaucoup de plaisir à mettre en œuvre quelque chose en C ++ que je sais que je peux faire. Cependant, la mise en œuvre en C # dans laquelle je n'étais pas très familier me permettrait d'acquérir plus de connaissances du programme que ce que j'aurais obtenu autrement. Gardez ce concept à travers vos années à l'école et vous finirez par connaître beaucoup plus. P>
Donc, fondamentalement, vos choix se présentent si vous souhaitez la coder dans la langue la plus facile que vous connaissez ou si vous souhaitez le coder dans une langue que vous souhaitez apprendre. Chaque décision présente des avantages différents. P>
Je pense que la question est "Comment savez-vous quel est le bon outil pour le travail?" P>
une partie de cela dépend des exigences. S'ils parlent d'une interface Web ou d'une base de données, vous aurez probablement besoin d'une expérience SQL et d'une expérience HTML. S'ils mentionnent des affichages graphiques hautes performances, cela pourrait suggérer C / C ++ et OpenGL / DirectX. Si les exigences parlent de traitement numérique à grande vitesse, vous pourriez avoir besoin ... Umm ... quelque chose d'autre. ;) p>
La prochaine chose à choisir est ce qui est disponible pour vous. Si vous travaillez dans une équipe avec une expérience surtout Java, vous serez probablement coller avec Java, sauf si vous avez une très bonne raison de changer, ou si vous avez déjà une douzaine de licences pour Visual Studio, ce sera probablement une solution .NET. p>
La première chose que je regarderais est: Quelles langues / paradigmes je sais? Sur la base de cette réponse, je me demanderais que les forces de la langue / paradigme jouent dans le problème. Voici un exemple: P>
Je connais JavaScript, Java et Python (à des fins de cette conversation). Le problème est-il basé sur le Web? Énorme argument en faveur de JavaScript. Essayerais facilement de nouvelles idées être utiles pour ce problème? Gros argument en faveur de Python. Est-ce que cela est long et sensible à la performance? C'est un argument pour Java. P>
Je regarde toujours quelques aspects différents. La majeure partie de celle-ci revient aux bibliothèques de soutien Les langues ont, l'environnement et les facteurs humains ne sont pas la langue elle-même. Cela étant dit que différentes langues ont des forces différentes et qu'il est important de choisir la langue qui correspond à ce que vous devez faire. Vous trouverez ci-dessous certaines des choses que je considère lors du démarrage d'un nouveau projet. P>
Dans le monde réel, vous construisez presque toujours des bibliothèques et des cadres créés par d'autres personnes. Donc, la première question que je pose est souvent quelles sont les meilleures bibliothèques et cadres à utiliser, puis à les développer. Qui se décompose dans l'ordre approximatif de combien je les utilise: p>
C ++ pour un graphisme intensif et un traitement d'images, des interprètes numériques et des interprètes de haut niveau. P> li>
Java + XSLT pour le serveur Web (bien que je n'ai pas fait beaucoup de web pendant environ six ans et que vous pourriez utiliser pour utiliser Ruby pour quelques trucs là-bas ou .NET dans une boutique MS) P > li>
c # pour les formulaires d'affaires et des graphismes moins intensives p> li>
python pour de très petits scripts, d'occasion de petites applications d'interface graphique. p> li>
C99 Si je souhaite utiliser des bibliothèques de niveau inférieur, des interprètes de niveau inférieur et des systèmes occasionnels ou des systèmes embarqués. P> li> ul>
J'ai aussi fini par faire un peu de maintenance de la Fortrane, mais jamais initié un projet Fortran. P>
Ce ne sont en aucun cas définitifs, mais sont simplement ce que j'ai trouvé bien dans ces zones. Certaines d'entre elles est jugement - Est-ce que je veux échanger de longues périodes de compilation et une modularité simple pour obtenir une combinaison de performances et d'expressivité (C ++)? Est-ce que je veux créer très rapidement des Guis basées sur la forme modernes (C #)? Est-ce que je veux manipuler des pointeurs et écrire mes propres routines de collecte des ordures (C)? Pour que je veux essayer rapidement un algorithme de voir si cela fonctionne (python)? P>
Choisissez une langue bien documentée. p>
Le spectre des tâches est très large. Pouvez-vous au moins le réduire quelque peu?
Je suis d'accord sur le facteur de délai. Si vous avez une quantité de temps illimitée pour faire quelque chose de simple, passez un peu de temps à rechercher. Si c'est due hier, choisissez la langue et l'éditeur que vous savez comme le dos de votre main et obtenez de vous déplacer.
Peut-être une question de wiki communautaire?