Quel est l'intérêt de développer un langage de programmation? [fermé]

24

Je me demandais s'il y avait un gros revenu direct à libérer un langage de programmation tel que Java ou C #?

Vendre des IDE, octroyer des licences à votre marque pour des livres ou gagner du prestige d'entreprise me semble un avantage marginal par rapport aux efforts que le développement a indubitablement pris (je pourrais me tromper bien sûr).

vemv
la source
Le langage D me vient à l'esprit. Digital Mars publie même gratuitement ses compilateurs.
Maxpm
Sun a fait de l'argent sur Java en vendant du matériel pour le faire fonctionner.
Gaius

Réponses:

17

D'une manière générale, il n'y a pas d'argent pour développer des langages de programmation.

C # fait certainement de l'argent à Microsoft, mais il fait essentiellement de l'argent indirectement en faisant la promotion du framework .NET et d'autres technologies Microsoft.

Peter Alexander
la source
1
... et cela mène à la question - y a-t-il alors de l'argent dans le cadre / la plateforme?
vemv
6
@Victor L'argent de la plateforme provient de la vente de licences. Quelqu'un qui veut exécuter un programme .Net achètera souvent Windows. (Mono est disponible, mais il n'est pas largement utilisé.)
chrisaycock
10
@svick: Ce n'est pas nécessairement vrai dans le monde de l'entreprise. Sans .NET, beaucoup moins d'entreprises utiliseraient Windows pour les serveurs.
Peter Alexander
2
@svick .Net était un jeu assez défensif contre Java. Si les entreprises étaient passées à la plate-forme de Sun, Windows aurait moins besoin de Windows.
chrisaycock
2
@svick: C'est le point. Tant que Microsoft vous maintient dans son écosystème, peu importe que vous l'achetiez neuf ou l'ayez déjà.
richard
17

Il est très peu probable que l'on gagne de l'argent avec les langages de programmation, pour la raison très simple que la plupart des projets de langage de programmation échouent lamentablement - le langage finit par être utilisé par son concepteur (et parfois même pas eux) et par personne d'autre. Pour chaque C # ou Java, il y a des milliers de langages qui ne sont allés nulle part.

Cependant, la conception du langage est amusante, donc les gens continuent de se brancher. Et si vous réussissez, vous pouvez gagner pas mal d'argent. Par exemple, le livre de Stroustrup, Le langage de programmation C ++, avait vendu 500 000 exemplaires au moment de la sortie de la 3e édition, ce qui signifie que je suppose que les ventes doivent maintenant dépasser le million. Mon 3e éd. m'a coûté 27,95 GBP, et même en tenant compte des réductions des éditeurs et des détaillants, vous pouvez voir qu'il a dû y faire un bon changement!

Neil Butterworth
la source
C'est comme gagner de l'argent en jouant à Quake ou World of Warcraft professionnellement. Il y a quelques personnes qui le font et des millions qui ne le font pas. Compte tenu de l'énorme investissement en temps et des près de 0 chances, ce n'est pas vraiment un moyen viable de gagner de l'argent
Thomas Bonini
11

Certains langages propriétaires destinés à des domaines spécifiques deviennent de grandes entreprises de «style de vie», comme MATLAB ( MathWorks ) et Mathematica ( Wolfram Research ). On peut également commercialiser un langage comme middleware, comme Kx Systems l'a fait avec q / kdb + (ils le vendent comme une base de données plutôt que comme un langage).

Un autre modèle commercial consiste à fournir un hébergement, comme Heroku le fait pour Ruby on Rails . ( 37Signals a effectivement cédé cette entreprise en ne la poursuivant pas.)

Et comme d'autres l'ont dit, un langage peut être utilisé comme leader de perte pour verrouiller les développeurs d'applications sur une plate-forme spécifique, comme C # l'a fait pour .NET.

En ce qui concerne la consultation ou les livres, ce sont des modèles de revenus assez limités; la consultation nécessite beaucoup de main-d'œuvre à l'échelle et les livres ont un point de saturation. Les meilleurs modèles sont les licences d'hébergement ou d'entreprise.

chrisaycock
la source
3
Meilleure réponse ici à mon humble avis. MATLAB et Mathematica sont de bons exemples; ils sont certainement le modèle que j'essaierais de suivre si je devais "gagner de l'argent avec un langage": choisir un créneau et développer quelque chose pour celui-ci qui est clairement meilleur (pour les utilisateurs cibles, au moment de l'introduction) qu'existant, des outils plus généraux. Gardez à l'esprit que Matlab était en concurrence avec FORTRAN & C lors de sa première apparition; Numpy / Scipy est peut-être beaucoup plus "moderne", mais Matlab a maintenant une énorme base d'utilisateurs, de code et d'inertie.
2011
4

Alors disons que vous voulez faire vivre de l' écriture de la prochaine langue populaire. Supposons que «gagner sa vie» signifie l'équivalent d'un salaire raisonnable à un emploi à temps plein (tout emploi - pas nécessairement technique). Si vous aimez vraiment ce que vous faites, vous en accepterez probablement un peu moins, alors disons 12,50 $ de l'heure , ou 2000 $ / mois .

Tout en effectuant un travail stable, vous publiez votre première version et installez une installation pour les dons. Vous vous engagez ensuite dans un développement et un marketing continus, dans une mesure proportionnelle au nombre d'utilisateurs de votre langue. Estimons prudemment que 1% de vos utilisateurs feront un don , et chacun d'entre eux fera un don moyen de 1 $ / an .

Cela signifie que pour obtenir votre salaire de 2000 $ / mois , vous devez avoir 2000 utilisateurs donateurs pour chacun des 12 mois de l'année. Cela représente 2,4 millions d'utilisateurs au total. Supposons maintenant qu'il faille 10 ans pour qu'une langue devienne si populaire: il faut donc acquérir en moyenne 240 000 utilisateurs par an , soit 20 000 utilisateurs par mois .

Si vous travaillez l'équivalent du temps plein ( 160 heures / mois ), votre stratégie de promotion et la qualité de mise en œuvre doivent être suffisantes pour gagner en moyenne 125 utilisateurs par heure . Et ce sont des utilisateurs réguliers, bien sûr: si 20% des personnes qui essaient votre langue deviennent des utilisateurs réguliers, vous avez en fait besoin d'un taux de conversion de 625 personnes / heure .

Même si chacune des personnes que vous convainquez convainc directement quatre autres personnes d'essayer votre langue - et par souci de simplicité, en supposant qu'elles n'essaient pas de convaincre les autres - alors vous êtes toujours de retour au 125 nombre d'utilisateurs / heure .

Maintenant, cela peut sembler totalement déraisonnable, mais croyez-le ou non, cela peut toujours fonctionner: dites que votre stratégie marketing produit une croissance à peu près linéaire sur la période de 10 ans pendant laquelle votre langue gagne du terrain, puis des plateaux. Cela signifie qu'au début, vous convertirez en moyenne 0 utilisateurs / heure , et 10 ans plus tard, vous gagnerez 250 utilisateurs . (Encore une fois, toutes les heures . Perspective, ici.)

C'est une augmentation moyenne de 25 utilisateurs par heure et par an : à la fin de chaque année, vous convertissez 25 personnes de plus par heure - ou 4000 personnes de plus par mois - que vous étiez au début de l'année.

Revoyons donc les 2,4 millions d'utilisateurs : est-il possible de gagner autant d'utilisateurs en 10 ans ? Si nous acceptons les statistiques (intrinsèquement erronées, mais néanmoins utilisables) proposées par Langpop comme exactes, nous obtenons les informations suivantes sur les 7 principales langues actuellement en vogue grâce à la recherche Yahoo. Si un résultat est accepté comme représentatif d'un utilisateur (je sais, soyez indulgent), ces chiffres indiquent le nombre moyen approximatif arrondi d'utilisateurs gagnés par an depuis la première apparition de la langue.

  1. C ++: 500k
  2. C: 400k
  3. Java: 700k
  4. PHP: 400k
  5. Perl: 150k
  6. C #: 300k
  7. Python: 150k

Cela remet les choses dans le domaine des possibilités: si vous créez un langage aussi populaire que, par exemple, Python, alors dans 20 ans, vous aurez suffisamment d'utilisateurs pour faire du développement et du support (et du marketing!) De ce langage dans votre pleine- travail à temps.

Faites-en un aussi populaire que C # , et vous pouvez le faire en 10 . Cool!

… Sauf bien sûr que le dire ainsi banalise l'entreprise très improbable et difficile qui rend une langue si populaire. Mais bon, si vous avez une bonne idée et que vous pouvez réussir à atteindre le sommet entièrement par vous-même, sans la contribution d'autres développeurs qui prendraient une part de votre argent de don, alors vous êtes un génie, et vous le méritez.

Jon Purdy
la source
3

Pour développer ce que @Peter a dit: il est très courant qu'un logiciel soit créé pour prendre en charge autre chose. Presque tout ce qui est donné gratuitement est utilisé pour promouvoir autre chose, que ce soit de la publicité, une plate-forme, un appareil ou un service.

Dans le cas des langages de programmation, il s'agit de promouvoir une plateforme en attirant des développeurs. Si vous attirez des développeurs, vous obtenez davantage de logiciels écrits pour votre plate-forme, ce qui renforce la plate-forme. La façon d'attirer les développeurs est de leur donner des outils impressionnants, et le langage est l'un de ces outils. En fait, l'une des cartes les plus puissantes de Microsoft dans sa lutte acharnée pour regagner sa place sur le marché des smartphones est ses outils de développement. "Il est facile de recréer les amplis que vous avez créés pour iPhone et Android pour Windows Phone 7", "il est facile de préparer des applications écrites pour Windows Phone 7 pour d'autres écrans", etc. etc.

De plus, vous créez parfois un langage de programmation pour votre propre usage, car vous avez besoin de l'outil vous-même.

EpsilonVector
la source
Je pense que Microsoft fait beaucoup de licence pour le système d'exploitation Windows Phone aux fabricants ... n'est-ce pas?
vemv
@Victor .... Je suppose ..... Je ne sais pas ce que vous voulez en venir ici.
EpsilonVector
3

Vous pouvez obtenir un peu plus de profit en développant des "petits" langages spécifiques au domaine. Mais pas en les vendant. Il y a quelques DSL qui se vendent pour un profit, mais beaucoup plus de succès open source et encore plus d'échecs (ouverts et fermés).

Là où vous pouvez profiter, c'est des gains de productivité que vous pouvez en retirer. Il existe une sorte de paradigme de développement basé sur cette idée.

Les avantages et les inconvénients sont similaires à la programmation basée sur des modèles en C ++, mais plus encore. Par exemple, une DSL nécessite plus de travail initial qu'une bibliothèque normale, mais peut donner beaucoup plus de flexibilité, de robustesse et d '"agilité" une fois écrite. Il est peu probable que vous le fassiez du tout, sauf si les performances sont un gros problème, sinon il est probablement plus facile de retarder le travail impliqué jusqu'à l'exécution - par exemple, utilisez un moteur d'analyse basé sur des expressions régulières au lieu d'un générateur de code de scanner.

"L'agilité" obtient des citations effrayantes parce qu'être trop désireux d'écrire une DSL est une violation claire des principes agiles. Même dans un environnement lourd en DSL, il est très peu probable que vous développiez une DSL dans le cadre de votre routine quotidienne.

Une raison d'utiliser un DSL pourrait être de coder certaines règles métier (une sorte de spécification de système expert) et de générer du code qui fonctionne avec ces règles. Étant donné que la traduction des règles métier déclaratives vers le code résultant peut être assez sophistiquée, d'énormes modifications du code généré peuvent être gérées en apportant des modifications assez simples à la spécification des règles métier. Par exemple, la DSL peut générer des arbres de décision, ou peut tracer des dépendances à travers un digraphe pour garantir automatiquement que tout ce qui a besoin d'une réévaluation est réévalué et qu'il n'y a pas de cycles ("feuille de calcul" compilée).

Une version extrême de ceci pourrait être d'utiliser un langage logique comme Prolog pour une partie de votre système, bien que ce soit seulement extrême dans un sens - c'est aussi juste une sélection de langue chevaux-pour-cours plutôt qu'une build-your-own-DSL paradigme.

Steve314
la source
2

Développer un langage de programmation et les normaliser ne se fait pas vraiment avec une seule personne. Même Stroustrup est l'inventeur du C ++, de nombreux autres experts industriels participent à travers le monde. Cela ressemble plus à un service bénévole. Des gens vraiment talentueux pour écrire des livres comme Scott Mayers qui en tirent de l'argent. D'autres personnes travaillent comme consultants indépendants ou consultants pour de grandes organisations.

Le meilleur exemple est la normalisation C ++ 0x. Il est retardé depuis des années maintenant. La raison en est que les membres du comité étaient soit occupés par leur travail principal et difficiles à réunir pour établir le cahier des charges.

Des entreprises comme Microsoft Sun (Oracle) ont développé leurs propres langages de programmation et ont gagné de l'argent grâce à l'IDE et également en fournissant un support transparent via leurs plateformes. Cela ressemble plus à une solution fermée aux problèmes. Mais les bonnes choses que ces langages de programmation sont normalisés / approuvés par l'ISO ou des comités similaires. Java semble vendre son IP aux entreprises pour l'utilisation de leur langage de programmation. Récemment, Oracle a intenté un procès à Google sur des infractions à IP sur Java.

En une seule phrase, cela ressemble plus à un service volontaire qu'à une entreprise pour ceux qui travaillent pour des normes ouvertes.

Sarat
la source
1

Si vous parvenez (je suppose que vous voulez dire un individu et non une entreprise) à créer un langage de programmation réussi, il est certainement possible de gagner décemment sa vie en vendant des livres, en prenant la parole lors de conférences sans parler du conseil ou de l'acquisition ou de l'embauche . Vous pourriez même gagner de l'argent en accordant des licences à votre langage de programmation à différentes entreprises, ce qui rendra cependant moins probable la réussite.

Là encore, il existe des moyens beaucoup plus faciles de gagner de l'argent et la plupart des individus (sociétés comme Sun et Microsoft exclues) le font davantage pour le défi et peut-être pour le geek.

Les chances qu'une petite entreprise / personne crée un langage de programmation grand public sont extrêmement faibles, il est probablement plus facile d'essayer de combler un niché quelconque. Là encore, ce n'est certainement pas impossible et ceux qui disent que je ne peux pas être fait sont souvent interrompus par ceux qui le font :)

Homde
la source