Je suis partie d'un petit (lire: deux programmeur) de démarrage, et nous sommes sur le point de commencer à développer une grande (nous estimons qu'il en sera d'environ un an avant que les clients vont voir quoi que ce soit) de l'application web... Et il est venu le temps de choisir une langue.
La plupart de l'expérience que j'ai est avec Python, la plupart de mes co-travailleur de l'expérience en Java et C++, mais qu'ils aimeraient apprendre Python.
Mais, si c'était tout ce qu'il y avait à elle, je ne serais pas à poster ici :)
Mon patron s'inquiète de ce que, si nous nous engageons à développer en Python, nous allons augmenter le risque que ça va être dur de trouver de nouveaux programmeurs ou nous remplacer si on se fait frapper par un autobus.
J'ai des opinions sur cette question, mais je n'ai pas d'expérience pour les sauvegarder... Donc je voudrais savoir:
- Sont ses préoccupations valide?
- Avez-vous des preuves que c'est difficile/facile d'apporter un nouveau programmeur à bord, s'ils n'ont pas d'expérience avec le langage/framework que vous utilisez?
- Avez-vous été dans une situation similaire, et avoir un peu de sagesse que vous pourriez partager?
Merci!
Modifications
- Grâce à dmckee pour souligner une question similaire, http://stackoverflow.com/questions/954164/choosing-between-java-and-python
- Il serait plus facile pour mon collègue d'apprendre le langage Python que mon remplacement, parce que mon collègue m'aurez assis à côté d'elle (ne pas faire moi-même être quelque chose de particulièrement spécial – mais il est plus facile d'apprendre quelque chose si vous avez un enseignant avec expérience)
- Certains ont suggéré que mon patron est de poser une question idiote... Mais la raison pour laquelle je pose la question ici, c'est que j'ai beaucoup de respect pour lui et son sens des affaires (quelque chose que j'ai, en tant que programmeur, ont de moins en moins), donc je veux prendre sa au sérieux les préoccupations et lui donner une bonne (lire: "et fiable dépourvue de la superstition") réponse.
- Je ne veux pas suggérer que nous souhaitons engager le côté idiot développeur Java... Mais je crois qu'il y a plus de "bon" (lire: "peut-être pas une superstar, mais solide et compétente") Java programmeurs dans le monde qu'il y a de Python pour les programmeurs.
- Quelques personnes ont suggéré que les langages statiquement typés sont plus faciles à entretenir. Je suis disposé à croire que, mais seulement si quelqu'un peut m'indiquer des éléments de preuve qui le prend en charge (j'ai conservé une grande (25k LOC) application en Python, et je ne pense pas que ma tâche aurait été beaucoup plus simple si elle avait été statiquement typé)
Accepté
Merci à tous pour vos réponses, elles sont très appréciées.
Après avoir lu toutes les réponses et les articles liés, je suis arrivé à ces conclusions:
- Lors de l'affaire avec une langue, le facteur le plus important devrait être de l'expérience (comme l'apprentissage d'une nouvelle boîte à outils va vous coûter beaucoup de temps, quelle que soit la langue).
- Sans exception, tout le monde a dit que tout programmeur compétent peut ramasser Python (ou tout autre sane langue) en relativement peu de temps, nous n'avons donc pas à trop se soucier d'être frappé par un autobus.
- En supposant l'égalité de l'expérience en Java et Python, Python semble être le choix préféré pour toutes les raisons que vous attendez: le temps de marché, programmeur moyen de la qualité et syntaxique de la clarté/de l'expressivité.
- Quelques bons arguments ont également été réalisés pour Java, en qui il a le plus de "trucs", en particulier de l'entreprise "trucs", disponible (Python personnes: si vous ne pouvez pas l'admettre, vous êtes dans le déni), il y a plus expérimentés (et compétent) les programmeurs Java et Java peut être plus rapide.
- Le typage statique, cependant, n'est pas une bonne raison d'envisager l'une ou l'autre langue, comme pour chaque personne qui dit qu'ils pensent que c'est utile il y a un autre (ou même les deux autres) pour dire que vous êtes très bien sans elle.
- Python (ou toute autre langue qui peut s'exécuter sur la machine JVM) est un bon choix, car il laisse ouverte la possibilité d'interagir avec du code Java en bas de la route.
Encore une fois, merci pour les réponses, elles sont très appréciés.