Je lisais l'essai de Paul Graham - Battre les moyennes (2003) et voici ce qu'il avait à dire:
Plus les descriptions de poste avaient une saveur informatique, moins l'entreprise était dangereuse. Les types les plus sûrs étaient ceux qui voulaient une expérience Oracle. Vous n'avez jamais eu à vous en préoccuper. Vous étiez également en sécurité s'ils disaient qu'ils voulaient des développeurs C ++ ou Java. S'ils voulaient des programmeurs Perl ou Python, ce serait un peu effrayant - cela commence à ressembler à une entreprise où le côté technique, au moins, est géré par de vrais hackers
Maintenant, ceci est un essai daté. Cependant, je ne vois pas comment l'utilisation d'un langage non courant (C / C ++ / Java, C #) serait «moins dangereuse» . Si les programmeurs d'une organisation maîtrisent très bien le langage de développement, ils devraient également être capables de lancer du code à un rythme décent. En fait, si vous utilisez un langage non courant, les problèmes de maintenance / amélioration ne vous frapperont-ils pas au visage, car pas trop de programmeurs seraient disponibles, à long terme?
Pour faire des systèmes rapides, je suis d'accord, que certaines langues vous permettent de décoller relativement plus tôt que d'autres. Mais l'essai / commentaire de Paul Graham est-il logique en 2012 et au-delà? Si une startup devait utiliser des langages informatiques typiques pour le développement, pourquoi sa concurrence devrait-elle être moins inquiète?
Je ne vois pas comment la langue elle-même fait la différence. À mon humble avis, c'est l'expérience des développeurs avec le langage qui compte et la disponibilité des frameworks pour que vous SÉCHAGE (ne vous répétez pas) et pas seulement le codage dans un langage particulier.
Qu'est-ce qui me manque? Cela implique-t-il que les startups choisissent mieux les langues non informatisées (même si les développeurs peuvent être extrêmement habiles à les utiliser)? Quelles sont les forces économiques / de marché (de programmation) derrière cette affirmation?
PS: 'lingua obscura' n'est pas censé blesser les sentiments de quiconque :)
Réponses:
La chaîne d'outils est un symptôme.
Lorsqu'une entreprise choisit Oracle, cela indique:
Lorsqu'une entreprise choisit Python, c'est un signe de:
Lorsque ces deux-là se rencontrent, la stratégie de la grande entreprise est d'éviter les risques, d'utiliser leur élan et de surpasser le concurrent. La stratégie de la petite concurrence est d'abord de battre la concurrence sur le marché, puis de continuer à être le produit supérieur. Si la petite entreprise choisit les bonnes batailles, elle peut facilement surpasser la grande entreprise simplement en étant plus rapide et plus réactive, et en profitant de la tendance de la grande entreprise à éviter les risques.
la source
Le choix d'un langage obscur indiquerait une confiance technique rare dans une startup. Une entreprise désireuse d'abandonner la sagesse commune pourrait savoir quelque chose sur le développement de logiciels que la plupart des entreprises ne connaissent pas. Là encore, ils pourraient juste être des branleurs.
la source
Je vois les commentaires de PG plus sur l'attitude que sur les spécificités de la langue. Les personnes ayant une mentalité informatique interne jouent la sécurité. Ils utilisent des technologies à faible risque, ont des processus pour minimiser les risques et adoptent la stratégie à faible risque. Ils sont trop occupés à s'inquiéter de leur propre déjeuner pour manger le vôtre.
Les gens à la pointe du progrès (python 2003) sont ceux dont il faut s'inquiéter. Ils ont faim. Ils prennent des risques. Ils sont curieux intellectuellement. Le même type de personne qui se lève tard pour apprendre une nouvelle langue passionnante est le type qui pourrait bouleverser votre industrie avant vous.
la source
Graham signifie moins dangereux pour lui en tant que concurrent, pas seulement moins dangereux. Son point n'est pas que Java (ou C ++ en 2003, ou COBOL en 1980) est moins dangereux, mais plutôt que c'est normal , et qu'il y a de fortes chances que les entreprises à la recherche de telles compétences ne soient que des concurrents moyens. Mais les entreprises qui recherchent des talents forts dans des langues obscures (ou, plus exactement, plus puissantes et moins connues) sont des entreprises à surveiller.
Et oui, cela est parfaitement logique aujourd'hui. C'était parfaitement logique bien avant que Graham ne l'écrive, nous ne parlions tout simplement pas de Java à cette époque.
la source
Voyons quelles langues ont été utilisées pour la première fois par des startups performantes. Une liste non scientifique, du haut de ma tête. Une recherche randomisée appropriée serait préférable si quelqu'un avait l'énergie.
Donc, probablement, nous concluons que Facebook et Stackexchange ne représentaient aucune menace pour leurs concurrents. Pas très convaincant.
Voyons si Paul Graham y croit de nos jours. Il a cofondé YCominator qui finance des startups. La page d'accueil répertorie certaines de leurs startups réussies. Je les ai parcourus dans l'ordre, essayant très rapidement de rechercher les langues qu'ils utilisaient au début.
Eh bien, il y a certains signes d'une préférence pour les langues relativement obscures et sans doute puissantes. Mais Flash, PHP et ASP classique sont également répertoriés.
C'est un essai . C'est un coup de pouce hyperbolique pour un langage relativement obscur qu'il aime, avec des conseils sous-jacents selon lesquels les startups devraient aimer leur technologie et aller aussi vite qu'elles le peuvent. C'est suffisant.
la source
Un développeur moyen utilise des outils moyens, car il ne voit pas la valeur des outils plus puissants:
(Je souligne.)
Plus le langage est puissant, moins les développeurs vont l'utiliser et moins il sera courant. La popularité est donc une bonne mesure de la distance entre la puissance d'une langue et la moyenne. Plus le langage est obscur, meilleure est la chance que le développeur qui l'utilise sache ce qu'il fait et l'a choisi pour une bonne raison par rapport à ses pairs habituels - et un concurrent avisé est dangereux.
la source
Le choix de la langue est difficile pour une startup. Beaucoup de très bonnes startups choisissent des langues "communes" pour la rapidité de mise sur le marché, la familiarité du fondateur et la facilité de recrutement futur.
Choisir la langue la moins utilisée envoie de bons signes. Cela signifie que vous êtes prêt à prendre le développement au sérieux et à vous efforcer d'embaucher des programmeurs spécialisés. Ce ne sont que des signaux, une start-up est plus que son choix dans la langue.
En fin de compte, votre choix de langue doit être évalué correctement dans votre contexte. Facebook, par exemple, a bien utilisé php qui n'est généralement pas considéré comme un langage très évolutif
la source
Allez demander aux meilleurs et aux pires programmeurs que vous connaissez, selon les critères que vous aimez, quelles autres langues ils connaissent. Maintenant, écrivez une offre d'emploi pour attirer la première et vous avez votre réponse. Même si votre application est en C ++, vous obtiendrez une meilleure classe de programmeurs si vous embauchez ceux qui connaissent des langues qui ne sont pas enseignées à l'école.
la source
Il y a deux choses différentes qui devraient vous inquiéter si un concurrent utilise un langage inhabituel:
Ces deux avantages peuvent ne pas s'appliquer dans une situation donnée. Par exemple, une startup pourrait facilement adopter un langage «parce que c'est cool» sans vraiment se demander si c'est le bon choix. Ils peuvent facilement faire des erreurs d'embauche. Ils peuvent facilement se tirer une balle dans le pied en abusant d'un langage "puissant".
Mais si un concurrent choisit une langue inhabituelle et l'utilise bien, alors oui, vous pourriez bien avoir une menace importante sur vos mains.
Je pense que ce principe est assez intemporel et est aussi vrai maintenant qu'il l'était en 2003 - des langages et des paradigmes spécifiques peuvent aller et venir, mais l'idée de choisir un langage puissant et expressif qui convient à votre domaine de problème plutôt qu'un langage générique, sûr et à usage général méritera probablement toujours un examen sérieux.
la source
Si vos clients ne sont pas enfermés, alors oui . Vous devriez vous inquiéter des concurrents utilisant des langages puissants.
Java, C #, C ++, sont relativement verbeux et ont des cycles d'édition / test relativement lents. Cela limite la vitesse à laquelle même les développeurs les plus rapides peuvent fournir des fonctionnalités. Des langages plus expressifs, avec une puissante méta-programmation intégrée et un temps de compilation nul, permettent aux développeurs experts de créer des fonctionnalités aussi rapidement que possible. Si vous êtes dans une course pour la part de marché, avec une énorme récompense pour le gagnant, il est logique d'embaucher les meilleurs développeurs que vous pouvez trouver et d'utiliser la langue qui les laissera aller le plus vite. Vous pouvez vous soucier de l'évolutivité plus tard.
la source