Jaki jest interes w tworzeniu języka programowania? [Zamknięte]

24

Zastanawiałem się, czy istnieje duży, bezpośredni przychód z wydania języka programowania, takiego jak Java czy C #?

Sprzedawanie IDE, licencjonowanie twojej marki na książki lub zdobywanie prestiżu przedsiębiorstwa wydaje mi się trochę marginalną korzyścią w porównaniu z wysiłkiem, jaki niewątpliwie wymagał rozwój (oczywiście mogłem się mylić).

vemv
źródło
Język D przychodzi do głowy. Digital Mars wydaje nawet swoje kompilatory za darmo.
Maks.
Firma Sun zarabiała na Javie, sprzedając sprzęt, na którym można ją uruchomić.
Gajusz

Odpowiedzi:

17

Ogólnie rzecz biorąc, nie ma pieniędzy na rozwój języków programowania.

C # z pewnością zarabia pieniądze Microsoft, ale zasadniczo pośrednio zarabia pieniądze, promując platformę .NET i inne technologie Microsoft.

Peter Alexander
źródło
1
... i to prowadzi do pytania - czy są jakieś pieniądze w ramach / platformie?
vemv
6
@Victor Pieniądze na platformie pochodzą ze sprzedaży licencji. Ktoś, kto chce uruchomić program .Net, często kupuje system Windows. (Mono jest dostępne, ale nie jest powszechnie używane.)
chrisaycock
10
@svick: To niekoniecznie prawda w świecie korporacyjnym. Bez platformy .NET znacznie mniej firm używałoby systemu Windows do obsługi serwerów.
Peter Alexander
2
@svick .Net to dość defensywna gra przeciwko Javie. Gdyby firmy przeszły na platformę Sun, system Windows byłby mniej potrzebny w przedsiębiorstwie.
chrisaycock
2
@svick: Właśnie o to chodzi. Tak długo, jak Microsoft utrzymuje cię w ekosystemie, nie ma znaczenia, czy kupisz go nowy, czy już go masz.
richard
17

Jest bardzo mało prawdopodobne, aby ktoś zarabiał na językach programowania, z bardzo prostego powodu, że większość projektów w języku programowania kończy się niepowodzeniem - język ostatecznie jest używany przez jego projektanta (a czasem nawet przez nich) i przez nikogo innego. Na każde C # lub Javę istnieją tysiące języków, które nigdzie nie poszły.

Jednak projektowanie języka jest fajne, więc ludzie ciągle się podłączają. A jeśli trafisz na szczęście, możesz zarobić sporo pieniędzy. Na przykład książka Stroustrup The C ++ Programming language sprzedała 500 000 kopii, zanim ukazała się trzecia edycja, co oznacza, że ​​sądzę, że sprzedaż musi teraz przekroczyć milion. My 3rd ed. kosztowało mnie 27,95 GBP, a nawet uwzględniając cięcia wydawców i sprzedawców, widać, że musiał dokonać z tego niezłej zmiany!

Neil Butterworth
źródło
To jak zarabianie pieniędzy na profesjonalnym graniu w quake lub World of Warcraft. Jest kilku ludzi, którzy to robią, a miliony, którzy tego nie robią. Biorąc pod uwagę ogromną inwestycję czasową i prawie zerowe szanse, nie jest to naprawdę opłacalny sposób zarabiania pieniędzy
Thomas Bonini
11

Niektóre zastrzeżone języki, które są skierowane do konkretnych domen, kończą jako wielkie firmy prowadzące „styl życia”, takie jak MATLAB ( MathWorks ) i Mathematica ( Wolfram Research ). Można również sprzedawać język jako oprogramowanie pośrednie, tak jak Kx Systems zrobił to z q / kdb + (sprzedają go jako bazę danych, a nie język).

Alternatywnym modelem biznesowym jest zapewnienie hostingu, podobnie jak Heroku dla Ruby on Rails . (37 Signals skutecznie scedował ten biznes, nie prowadząc go).

I jak powiedzieli inni, język może być używany jako lider strat do blokowania twórców aplikacji na określonej platformie, tak jak C # zrobił dla .NET.

Jeśli chodzi o doradztwo lub książki, są to dość ograniczone modele dochodów; konsultacje wymagają dużej siły roboczej, a książki mają punkt nasycenia. Lepszymi modelami są licencje hostingowe lub korporacyjne.

chrisaycock
źródło
3
Najlepsza odpowiedź tutaj IMHO. MATLAB i Mathematica są świetnymi przykładami; to z pewnością model, który starałbym się zastosować, gdybym musiał „zarabiać pieniądze z języka”: wybrać niszę i opracować dla niej coś, co jest wyraźnie lepsze (dla docelowych użytkowników w momencie wprowadzenia) niż istniejące, bardziej ogólne narzędzia. Pamiętaj, że Matlab konkurował z FORTRAN & C, kiedy pojawił się po raz pierwszy; Numpy / Scipy może być o wiele bardziej „nowoczesny”, ale Matlab ma teraz ogromną bazę użytkowników, kodu i bezwładności.
dnia
4

Więc powiedzmy, że chcesz zarobić na życie off pisać następny język popularny. Załóżmy, że „utrzymanie się” oznacza równowartość rozsądnego wynagrodzenia za pracę w pełnym wymiarze godzin (każda praca - niekoniecznie techniczna). Jeśli naprawdę kochasz to, co robisz, prawdopodobnie akceptujesz trochę mniej, więc powiedzmy 12,50 USD za godzinę lub 2000 USD / miesiąc .

Pracując stabilną pracą, wypuszczasz pierwszą wersję i konfigurujesz darowizny. Następnie angażujesz się w ciągły rozwój i marketing, w stopniu proporcjonalnym do liczby użytkowników Twojego języka. Oszacujmy ostrożnie, że 1% Twoich użytkowników przekaże darowiznę , a każdy z nich przekaże średnio 1 USD rocznie .

Oznacza to, że aby otrzymać pensję w wysokości 2000 USD miesięcznie , musisz mieć 2000 użytkowników przekazujących darowiznę za każdy z 12 miesięcy w roku. To łącznie 2,4 miliona użytkowników . Załóżmy teraz, że potrzeba 10 lat, aby język stał się tak popularny: dlatego musisz pozyskać średnio 240 000 użytkowników rocznie lub 20 000 użytkowników miesięcznie .

Jeśli pracujesz w ekwiwalencie pełnego czasu pracy ( 160 godzin / miesiąc ), Twoja strategia promocji i jakość wdrożenia muszą być wystarczające, aby zyskać średnio 125 użytkowników na godzinę . I to oczywiście powtarzający się użytkownicy: jeśli 20% osób, które wypróbują Twój język, stają się powtarzającymi się użytkownikami, faktycznie potrzebujesz współczynnika konwersji wynoszącego 625 osób / godzinę .

Nawet jeśli każda z osób, które przekonasz, bezpośrednio przekonuje cztery kolejne osoby do wypróbowania twojego języka - i dla uproszczenia, zakładając, że nie próbują przekonać innych - to wciąż wracasz do 125 liczba użytkowników / godzinę .

Teraz może się to wydawać całkowicie nieuzasadnione, ale wierzcie lub nie, to może nadal działać: powiedzcie, że wasza strategia marketingowa przynosi mniej więcej liniowy wzrost w okresie 10 lat, w którym Twój język zyskuje na popularności, a następnie na płaskowyżu. Oznacza to, że na początku konwertujesz średnio 0 użytkowników na godzinę , a 10 lat później zyskujesz 250 użytkowników . (Znowu co godzinę . Perspektywa tutaj.)

To średni wzrost o 25 użytkowników na godzinę rocznie : pod koniec każdego roku konwertujesz o 25 osób więcej na godzinę - lub 4000 osób więcej na miesiąc - niż na początku roku.

Wróćmy więc do tego, że 2,4 miliona użytkowników gra w piłkę: czy jest możliwe zdobycie tak wielu użytkowników w ciągu 10 lat ? Jeśli zaakceptujemy (z natury błędne, ale użyteczne) statystyki oferowane przez Langpop jako dokładne, otrzymamy następujące informacje o 7 najpopularniejszych językach, które są obecnie popularne w wyszukiwaniu Yahoo. Jeśli jeden wynik zostanie zaakceptowany jako reprezentatywny dla jednego użytkownika (wiem, proszę o mnie), liczby te wskazują zaokrągloną przybliżoną średnią liczbę użytkowników pozyskanych rocznie od pierwszego pojawienia się języka.

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

To przywraca możliwości: jeśli stworzysz język tak popularny jak, powiedzmy, Python, to za 20 lat będziesz mieć wystarczającą liczbę użytkowników, aby rozwinąć i wesprzeć (i marketing!) Tego języka w swoim pełnym- praca na czas.

Zrób jeden tak popularny jak C # , a możesz to zrobić w 10 . Fajne!

… Poza tym, że w ten sposób trywializuje się niezwykle mało prawdopodobne i trudne przedsięwzięcie, które sprawia, że ​​język jest tak popularny. Ale hej, jeśli masz dobry pomysł i potrafisz samodzielnie dotrzeć na sam szczyt, bez wkładu innych programistów, którzy zdecydowaliby się na cięcie pieniędzy z darowizny, to jesteś geniuszem, i zasługujesz na to.

Jon Purdy
źródło
3

Aby rozwinąć to, co powiedział @Peter: bardzo często tworzone jest oprogramowanie wspierające coś innego. Prawie wszystko, co jest rozdawane za darmo, służy do promowania czegoś innego, czy to reklamy, platformy, urządzenia lub usługi.

W przypadku języków programowania chodzi o promowanie platformy poprzez przyciąganie programistów. Jeśli przyciągniesz programistów, otrzymasz więcej oprogramowania napisanego na twoją platformę, co czyni platformę silniejszą. Przyciągasz programistów, udostępniając im niesamowite narzędzia, a język jest jednym z nich. W rzeczywistości jedną z najsilniejszych kart Microsoftu w ich trudnej walce o odzyskanie miejsca na rynku smartfonów są ich narzędzia programistyczne. „Łatwo jest odtworzyć apki wykonane dla iPhone'a i Androida dla Windows Phone 7”, „łatwo jest przygotować aplikacje napisane dla Windows Phone 7 na inne ekrany” itp. Itp.

Czasami tworzysz język programowania na własny użytek, ponieważ sam potrzebujesz tego narzędzia.

EpsilonVector
źródło
Wydaje mi się, że Microsoft robi wiele, licencjonując system operacyjny Windows Phone producentom ... prawda?
vemv
@Victor .... Chyba ... Nie jestem pewien, o co tu chodzi.
EpsilonVector
3

Możesz uzyskać nieco większy zysk dzięki opracowaniu „małych” języków specyficznych dla domeny. Ale nie ze sprzedaży. Istnieje kilka DSL-ów, które sprzedają się z zyskiem, ale o wiele więcej sukcesów typu open source i jeszcze więcej awarii (zarówno otwartych, jak i zamkniętych).

Możesz czerpać zyski z przyrostów wydajności, które możesz z nich uzyskać. Istnieje pewien paradygmat rozwoju oparty na tym pomyśle.

Zalety i wady są podobne do programowania opartego na szablonach w C ++, ale bardziej. Na przykład DSL wymaga więcej pracy z góry niż normalna biblioteka, ale po napisaniu może dać znacznie większą elastyczność, odporność i „zwinność”. Jest mało prawdopodobne, aby to zrobić w ogóle, chyba że wydajność stanowi poważny problem, w przeciwnym razie łatwiej jest opóźnić pracę związaną z wykonaniem - np. Zastosować silnik skanujący oparty na wyrażeniach regularnych w czasie wykonywania zamiast generatora kodu skanera.

„Agility” jest przerażające, ponieważ nadmierna chęć pisania DSL jest wyraźnym pogwałceniem zwinnych zasad. Nawet w środowisku obciążonym DSL jest bardzo mało prawdopodobne, aby pracować nad opracowaniem DSL w ramach codziennej rutyny.

Jednym z powodów korzystania z DSL może być kodowanie niektórych reguł biznesowych (rodzaj specyfikacji systemu eksperckiego) i generowanie kodu, który działa z tymi regułami. Ponieważ tłumaczenie deklaratywnych reguł biznesowych na wynikowy kod może być dość skomplikowane, ogromne zmiany w generowanym kodzie można obsłużyć, wprowadzając dość proste zmiany w specyfikacji reguł biznesowych. Na przykład DSL może generować drzewa decyzyjne lub może śledzić zależności za pomocą digrafa, aby automatycznie zapewnić, że wszystko, co wymaga ponownej oceny, zostanie ponownie ocenione i że nie będzie żadnych cykli (skompilowany „arkusz kalkulacyjny”).

Skrajną wersją tego może być użycie języka logicznego, takiego jak Prolog, dla pewnej części twojego systemu, chociaż jest to tylko ekstremalne w pewnym sensie - jest to również wybór języka dla koni na kursy, a nie budowanie własnego DSL paradygmat.

Steve314
źródło
2

Opracowanie i ujednolicenie języka programowania nie jest tak naprawdę realizowane przez jedną osobę. Nawet Stroustrup jest wynalazcą C ++, na świecie bierze udział wielu innych ekspertów przemysłowych. To bardziej jak wolontariat. Ludzie, którzy są naprawdę zdolni do pisania książek, takich jak Scott Mayers, zarabiając na tym. Inne osoby pracują jako niezależni konsultanci lub konsultanci dla dużych organizacji.

Najlepszym przykładem jest standaryzacja C ++ 0x. Opóźnia się od lat. Powodem, dla którego członkowie komitetu są zajęci swoją główną pracą i trudno jest uzyskać kworum w celu sfinalizowania specyfikacji.

Firmy takie jak Microsoft Sun (Oracle) opracowały własne języki programowania i zarabiają na IDE, a także zapewniają płynne wsparcie za pośrednictwem swoich platform. To bardziej jak zamknięte rozwiązanie problemów. Ale dobre jest to, że te języki programowania są znormalizowane / zatwierdzone przez ISO lub podobne komitety. Wydaje się, że Java sprzedaje swoje adresy IP firmom za korzystanie z języka programowania. Ostatnio Oracle pozwała Google o naruszenie praw własności intelektualnej w Javie.

W jednym zdaniu bardziej przypomina wolontariat niż biznes dla tych, którzy pracują dla otwartych standardów.

sarat
źródło
1

Jeśli uda Ci się (zakładam, że masz na myśli osobę, a nie firmę) stworzyć udany język programowania, to z pewnością istnieje możliwość zarabiania na życie poprzez sprzedaż książek, mówienie na konferencjach, nie wspominając o konsultacjach, nabyciu lub zatrudnieniu . Możesz nawet zarabiać pieniądze na licencjonowaniu języka programowania w różnych firmach, co zmniejszy prawdopodobieństwo sukcesu.

Z drugiej strony istnieją znacznie łatwiejsze sposoby zarabiania pieniędzy, a większość osób (z wyłączeniem korporacji takich jak Sun i Microsoft) robi to więcej dla wyzwania i być może maniaków.

Szanse, że mała firma / osoba utworzy główny język programowania są wyjątkowo małe, prawdopodobnie łatwiej jest spróbować wypełnić jakiś niché. Z drugiej strony z pewnością nie jest to niemożliwe , a ci, którzy twierdzą, że nie mogę tego zrobić, często przeszkadzają tym, którzy to robią :)

Homde
źródło