Was bringt es, eine Programmiersprache zu entwickeln? [geschlossen]


24

Ich habe mich gefragt, ob die Veröffentlichung einer Programmiersprache wie Java oder C # große direkte Einnahmen bringt.

Der Verkauf von IDEs, die Lizenzierung Ihrer Marke für Bücher oder die Erlangung von Unternehmensprestige scheinen für meine Augen kaum von Vorteil zu sein, verglichen mit dem Aufwand, der zweifellos für die Entwicklung erforderlich war (ich könnte mich natürlich irren).


Die D-Sprache fällt mir ein. Digital Mars stellt seine Compiler sogar kostenlos zur Verfügung.
Maxpm

Sun verdiente mit Java Geld, indem er Hardware verkaufte, auf der es ausgeführt werden sollte.
Gaius

Antworten:


17

Generell gibt es kein Geld für die Entwicklung von Programmiersprachen.

C # verdient sicherlich Geld mit Microsoft, aber es verdient im Wesentlichen indirekt Geld, indem es das .NET-Framework und andere Microsoft-Technologien fördert.


1
... und das führt zu der Frage - ist dann Geld in dem Framework / der Plattform?
12.

6
@ Victor Das Geld in der Plattform stammt aus dem Verkauf von Lizenzen. Jemand, der ein .Net-Programm ausführen möchte, kauft häufig Windows. (Mono ist verfügbar, aber es ist nicht weit verbreitet.)
Chrisaycock

10
@svick: Das muss in der Unternehmenswelt nicht so sein. Ohne .NET würden viel weniger Unternehmen Windows für Server verwenden.
Peter Alexander

2
@svick .Net war ein ziemlich defensives Spiel gegen Java. Wenn Unternehmen auf die Plattform von Sun umgestiegen wären, würde Windows im Unternehmen weniger benötigt.
Chrisaycock

2
@svick: Darum geht es. Solange Microsoft Sie in seinem Ökosystem hält, spielt es keine Rolle, ob Sie es neu kaufen oder bereits haben.
Richard

17

Es ist sehr unwahrscheinlich, dass man mit Programmiersprachen Geld verdienen würde, weil die meisten Projekte in Programmiersprachen kläglich scheitern - die Sprache wird letztendlich von ihrem Designer (und manchmal auch nicht von ihnen) und von niemand anderem verwendet. Für jedes C # oder Java gibt es Tausende von Sprachen, die nirgendwo hingegangen sind.

Sprachdesign macht jedoch Spaß, sodass sich die Leute immer wieder verstecken. Und wenn Sie Glück haben, können Sie eine Menge Geld verdienen. Zum Beispiel hatte Stroustrups Buch Die Programmiersprache C ++ bis zum Erscheinen der dritten Ausgabe bereits 500.000 Exemplare verkauft, was bedeutet, dass der Umsatz jetzt über eine Million betragen muss. Meine 3. Ausgabe Das hat mich 27,95 GBP gekostet, und selbst wenn man die Kürzungen für Verlage und Einzelhändler berücksichtigt, kann man sehen, dass er ein gutes Stück davon geändert hat!


Es ist, als würde man mit Quake oder World of Warcraft professionell Geld verdienen. Es gibt ein paar Leute, die das tun, und Millionen, die das nicht tun. Angesichts des enormen Zeitaufwands und der fast 0-Chancen ist es nicht wirklich eine Möglichkeit, Geld zu verdienen
Thomas Bonini,

11

Bestimmte proprietäre Sprachen, die auf bestimmte Domänen abzielen, werden zu hervorragenden "Lifestyle" -Unternehmen wie MATLAB ( MathWorks ) und Mathematica ( Wolfram Research ). Man kann eine Sprache auch als Middleware vermarkten, wie Kx Systems es mit q / kdb + getan hat (sie verkaufen sie eher als Datenbank als als Sprache).

Ein alternatives Geschäftsmodell besteht darin, Hosting bereitzustellen, wie es Heroku für Ruby on Rails tut . ( 37Signals trat dieses Geschäft effektiv ab, indem es es nicht weiterverfolgte .)

Und wie andere bereits gesagt haben, kann eine Sprache als Verlustbringer verwendet werden , um App-Entwickler an eine bestimmte Plattform zu binden, wie es C # für .NET getan hat.

In Bezug auf Beratung oder Bücher handelt es sich hierbei um recht begrenzte Einnahmemodelle. Beratung erfordert viel Personal, um zu skalieren, und Bücher haben einen Sättigungspunkt. Bessere Modelle sind Hosting- oder Unternehmenslizenzen.


3
Beste Antwort hier IMHO. MATLAB und Mathematica sind gute Beispiele. Sie sind sicherlich das Modell, dem ich folgen würde, wenn ich "mit einer Sprache Geld verdienen" müsste: Wählen Sie eine Nische und entwickeln Sie etwas dafür, das eindeutig besser ist (für die Zielbenutzer zum Zeitpunkt der Einführung) als das, was es gibt. allgemeinere Werkzeuge. Bedenken Sie, dass Matlab mit FORTRAN & C konkurrierte, als es zum ersten Mal auf den Markt kam. Numpy / Scipy mag viel "moderner" sein, aber Matlab hat jetzt eine enorme Basis an Benutzern, Code und Trägheit.
13.

4

Nehmen wir also an, Sie wollen davon leben , die nächste populäre Sprache zu schreiben. Angenommen, "den Lebensunterhalt verdienen" bedeutet das Äquivalent eines angemessenen Entgelts für einen Vollzeitjob (jeder Job - nicht unbedingt ein technischer). Wenn Sie das, was Sie tun, wirklich lieben, werden Sie wahrscheinlich ein bisschen weniger dafür in Kauf nehmen. Sagen wir also 12,50 USD pro Stunde oder 2000 USD pro Monat .

Während Sie einen festen Arbeitsplatz haben, geben Sie Ihre erste Version frei und richten eine Einrichtung für Spenden ein. Anschließend entwickeln Sie sich kontinuierlich weiter und vermarkten in einem Maß, das proportional zur Anzahl der Benutzer Ihrer Sprache ist. Lassen Sie uns konservativ schätzen, dass 1% Ihrer Benutzer spenden und jeder von ihnen durchschnittlich 1 US-Dollar pro Jahr spendet .

Das bedeutet, dass Sie 2000 spendende Benutzer für jeden der 12 Monate im Jahr haben müssen, um Ihr Gehalt von 2000 USD / Monat zu erhalten . Das sind insgesamt 2,4 Millionen Nutzer . Nehmen wir nun an, dass es 10 Jahre dauert, bis eine Sprache so populär wird: Sie müssen daher durchschnittlich 240 000 Benutzer pro Jahr oder 20 000 Benutzer pro Monat erwerben .

Wenn Sie in Vollzeit arbeiten ( 160 Stunden / Monat ), müssen Ihre Werbestrategie und Implementierungsqualität ausreichen, um durchschnittlich 125 Benutzer pro Stunde zu gewinnen . Und das sind natürlich wiederkehrende Nutzer: Wenn 20% der Personen, die Ihre Sprache testen, wiederkehrende Nutzer sind, benötigen Sie eine Conversion-Rate von 625 Personen / Stunde .

Selbst wenn jeder der Personen, die Sie überzeugen, vier weitere Personen direkt davon überzeugt , Ihre Sprache zu testen - und der Einfachheit halber davon ausgegangen, dass sie nicht weiter versuchen, andere zu überzeugen -, sind Sie immer noch bei der 125 Benutzer / Stundenzahl .

Nun, das mag völlig unvernünftig erscheinen, aber ob Sie es glauben oder nicht, es kann immer noch funktionieren: Sagen Sie, Ihre Marketingstrategie führt über den Zeitraum von 10 Jahren, in dem Ihre Sprache an Boden gewinnt, zu einem ungefähr linearen Wachstum und dann zu einem Hochplateau. Das bedeutet, dass Sie zu Beginn durchschnittlich 0 Nutzer pro Stunde konvertieren und 10 Jahre später 250 Nutzer gewinnen werden . (Wieder stündlich . Perspektive hier.)

Das ist eine durchschnittliche Steigerung von 25 Benutzern pro Stunde und Jahr : Am Ende eines jeden Jahres konvertieren Sie 25 mehr Menschen pro Stunde - oder 4000 mehr Menschen pro Monat - als zu Beginn des Jahres.

Kommen wir also noch einmal auf die Basis von 2,4 Millionen Nutzern zurück : Ist es machbar, dass in 10 Jahren so viele Nutzer hinzukommen ? Wenn wir die von Langpop angebotenen (inhärent fehlerhaften, aber dennoch verwendbaren) Statistiken als genau akzeptieren , erhalten wir die folgenden Informationen zu den Top-7-Sprachen, die derzeit über die Yahoo-Suche gesucht werden. Wenn ein Ergebnis als Vertreter eines Benutzers akzeptiert wird (ich weiß, trage es mit mir), geben diese Zahlen die gerundete durchschnittliche Anzahl der Benutzer an, die pro Jahr seit dem ersten Erscheinen der Sprache gewonnen wurden.

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

Dies versetzt die Dinge wieder in den Bereich des Möglichen: Wenn Sie eine Sprache erstellen, die so populär ist wie beispielsweise Python, werden Sie in 20 Jahren genügend Benutzer haben, um die Entwicklung und Unterstützung (und Vermarktung!) Dieser Sprache zu Ihrer vollwertigen Sprache zu machen. Zeitjob.

Machen Sie eine so beliebt wie C # , und Sie können es in 10 tun . Cool!

… Außer natürlich, dass das so ausdrückt, was das äußerst unwahrscheinliche und schwierige Unterfangen, das eine Sprache so populär macht , trivialisiert . Aber hey, wenn Sie eine gute Idee haben und es ganz alleine schaffen, ganz nach oben zu kommen, ohne die Beiträge anderer Entwickler, die einen Teil Ihres Spendengeldes kassieren würden, dann sind Sie ein Genie. und du verdienst es.


3

Um genau zu sein, was @Peter gesagt hat: Es ist üblich, dass Software erstellt wird, um etwas anderes zu unterstützen. So ziemlich alles, was kostenlos verschenkt wird, wird verwendet, um für etwas anderes zu werben, sei es für Werbung, eine Plattform, ein Gerät oder eine Dienstleistung.

Bei Programmiersprachen geht es darum, eine Plattform zu fördern, indem Entwickler angezogen werden. Wenn Sie Entwickler ansprechen, wird mehr Software für Ihre Plattform geschrieben, und die Plattform wird dadurch stärker. Die Art und Weise, wie Sie Entwickler anziehen, besteht darin, ihnen großartige Tools zur Verfügung zu stellen, und die Sprache ist eines dieser Tools. In der Tat ist eine der stärksten Karten von Microsoft in ihrem harten Kampf, ihren Platz auf dem Smartphone-Markt wiederzugewinnen, das Entwicklertool. "Es ist einfach, die für iPhone und Android für Windows Phone 7 erstellten Apps wiederherzustellen", "Apps, die für Windows Phone 7 geschrieben wurden, lassen sich einfach für andere Bildschirme vorbereiten" usw. usw.

Manchmal erstellen Sie auch nur eine Programmiersprache für Ihren eigenen Gebrauch, weil Sie das Tool selbst benötigen.


Ich gehe davon aus, dass Microsoft sehr viel von der Lizenzierung des Windows Phone-Betriebssystems an Hersteller leistet ... oder?
12.

@ Victor .... Ich nehme an ..... Nicht sicher, was Sie hier bekommen.
EpsilonVector

3

Mit der Entwicklung domänenspezifischer "kleiner" Sprachen können Sie etwas mehr Gewinn erzielen. Allerdings nicht vom Verkauf. Es gibt ein paar DSLs, die mit Gewinn verkaufen, aber noch viel mehr Open-Source-Erfolge und noch mehr Ausfälle (sowohl offene als auch geschlossene).

Profitieren Sie von den Produktivitätsgewinnen, die Sie daraus ziehen können. Es gibt eine Art Entwicklungsparadigma, das auf dieser Idee basiert.

Die Vor- und Nachteile ähneln denen der vorlagenbasierten Programmierung in C ++, sind jedoch größer. Zum Beispiel erfordert ein DSL mehr Vorarbeit als eine normale Bibliothek, kann jedoch nach dem Schreiben viel mehr Flexibilität, Robustheit und "Beweglichkeit" bieten. Es ist unwahrscheinlich, dass Sie dies überhaupt tun, es sei denn, die Leistung ist ein großes Problem. Andernfalls ist es wahrscheinlich einfacher, die Arbeit bis zur Laufzeit zu verzögern. Verwenden Sie beispielsweise eine auf regulären Ausdrücken basierende Scan-Engine zur Laufzeit anstelle eines Scanner-Codegenerators.

"Agility" wird in Angst und Schrecken versetzt, weil es eindeutig gegen agile Prinzipien verstößt, wenn man zu sehr darauf aus ist, eine DSL zu schreiben. Selbst in einer DSL-belasteten Umgebung ist es äußerst unwahrscheinlich, dass Sie an der Entwicklung eines DSL als Teil Ihrer täglichen Routine arbeiten.

Ein Grund für die Verwendung eines DSL könnte darin bestehen, einige Geschäftsregeln (eine Art Expertensystemspezifikation) zu codieren und Code zu generieren, der mit diesen Regeln funktioniert. Da die Übersetzung der deklarativen Geschäftsregeln in den resultierenden Code sehr komplex sein kann, können umfangreiche Änderungen am generierten Code vorgenommen werden, indem die Geschäftsregelspezifikation relativ einfach geändert wird. Zum Beispiel kann die DSL Entscheidungsbäume erzeugen oder Abhängigkeiten durch einen Digraphen verfolgen, um automatisch sicherzustellen, dass alles, was neu bewertet werden muss, neu bewertet wird und dass es keine Zyklen gibt (kompilierte "Tabelle").

Eine extreme Version davon könnte darin bestehen, eine Logiksprache wie Prolog für einen Teil Ihres Systems zu verwenden, obwohl dies in gewisser Hinsicht nur extrem ist - es ist auch nur die Sprachauswahl für die Kurse und nicht die Erstellung Ihres eigenen DSL Paradigma.


2

Eine Programmiersprache zu entwickeln und zu standardisieren ist nicht wirklich eine Sache für sich. Auch wenn Stroustrup der Erfinder von C ++ ist, sind weltweit viele andere Industrieexperten beteiligt. Es ist eher ein Freiwilligendienst. Leute, die wirklich talentiert sind, Bücher wie Scott Mayers zu schreiben und damit Geld zu verdienen. Andere arbeiten als unabhängige Berater oder Berater für große Organisationen.

Das beste Beispiel ist die C ++ 0x-Standardisierung. Es ist seit Jahren verzögert. Der Grund warum, weil die Komiteemitglieder entweder mit ihrer Hauptarbeit beschäftigt sind und es schwierig ist, ein Quorum zu bilden, um die Spezifikationen zu finalisieren.

Unternehmen wie Microsoft Sun (Oracle) haben ihre eigenen Programmiersprachen entwickelt und verdienen Geld mit IDE. Außerdem bieten sie nahtlosen Support über ihre Plattformen. Es ist eher eine geschlossene Lösung für die Probleme. Aber das Gute daran, dass diese Programmiersprachen von ISO oder ähnlichen Komitees standardisiert / genehmigt sind. Java scheint seine IP für Unternehmen zu verkaufen, die ihre Programmiersprache verwenden. Kürzlich hat Oracle Google über IP-Verstöße auf Java verklagt.

In einem Satz ist es eher ein Freiwilligendienst als ein Geschäft für diejenigen, die für offene Standards arbeiten.


1

Wenn Sie es schaffen (ich gehe davon aus, dass Sie eine Einzelperson und kein Unternehmen meinen), eine erfolgreiche Programmiersprache zu entwickeln, dann liegt es sicherlich im Bereich der Möglichkeiten, einen angemessenen Lebensunterhalt durch den Verkauf von Büchern, Vorträge auf Konferenzen oder durch Beratung, Erwerb oder Anstellung zu verdienen . Möglicherweise verdienen Sie sogar Geld, wenn Sie Ihre Programmiersprache an verschiedene Unternehmen lizenzieren, was den Erfolg jedoch verringert.

Andererseits gibt es viel einfachere Möglichkeiten, um Geld zu verdienen, und die meisten Einzelpersonen (Unternehmen wie Sun und Microsoft ausgenommen) tun dies eher für die Herausforderung und möglicherweise für das Ansehen von Geeks.

Die Chancen, dass ein kleines Unternehmen / eine Einzelperson eine Standard-Programmiersprache erstellt, sind außerordentlich gering. Es ist wahrscheinlich einfacher, zu versuchen, eine Nische zu füllen. Andererseits ist es sicherlich nicht unmöglich , und diejenigen, die sagen, dass ich nicht fertig bin, werden oft von denjenigen unterbrochen, die es tun :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.