Qual è l'attività nello sviluppo di un linguaggio di programmazione? [chiuso]


24

Mi chiedevo se ci fosse un grosso guadagno diretto nel rilascio di un linguaggio di programmazione come Java o C #?

Vendere IDE, concedere in licenza il tuo marchio per i libri o guadagnare prestigio aziendale mi sembra un po 'marginale per i miei occhi rispetto allo sforzo che senza dubbio lo sviluppo ha preso (potrei sbagliarmi, ovviamente).


Il linguaggio D viene in mente. Digital Mars rilascia persino i suoi compilatori gratuitamente.
Max

Sun ha fatto soldi su Java vendendo hardware per eseguirlo.
Gaius,

Risposte:


17

In generale, non ci sono soldi per lo sviluppo di linguaggi di programmazione.

C # sicuramente fa soldi a Microsoft, ma essenzialmente fa soldi indirettamente promuovendo il framework .NET e altre tecnologie Microsoft.


1
... e questo porta alla domanda: ci sono soldi nel framework / piattaforma allora?
Vemv,

6
@Victor Il denaro nella piattaforma proviene dalla vendita di licenze. Qualcuno che vuole eseguire un programma .Net acquisterà spesso Windows. (Mono è disponibile, ma non è ampiamente usato.)
chrisaycock,

10
@svick: non è necessariamente vero nel mondo aziendale. Senza .NET, molte meno aziende utilizzerebbero Windows per i server.
Peter Alexander,

2
@svick .Net è stata una giocata piuttosto difensiva contro Java. Se le aziende fossero passate alla piattaforma Sun, ci sarebbe meno bisogno di Windows nell'azienda.
chrisaycock,

2
@svick: questo è il punto. Finché Microsoft ti mantiene nel suo ecosistema, non importa se lo acquisti nuovo o lo hai già.
Richard

17

È altamente improbabile che si possano guadagnare soldi dai linguaggi di programmazione, per la semplicissima ragione per cui la maggior parte dei progetti di linguaggi di programmazione falliscono miseramente - il linguaggio finisce per essere usato dal suo progettista (e talvolta nemmeno da loro) e da nessun altro. Per ogni C # o Java ci sono migliaia di lingue che non sono andate da nessuna parte.

Tuttavia, il design della lingua è divertente, quindi le persone continuano a collegarsi. E se lo fai fortunato, puoi guadagnare un bel po 'di soldi. Ad esempio, il libro di Stroustrup Il linguaggio di programmazione C ++ aveva venduto 500.000 copie al momento della pubblicazione del terzo editore, il che significa che immagino che le vendite ora dovrebbero essere più di un milione. Il mio terzo ed. mi è costato 27,95 GBP, e anche consentendo tagli agli editori e ai rivenditori, puoi vedere che deve aver apportato un bel cambiamento da esso!


È come fare soldi giocando a terremoto o mondo di warcraft in modo professionale .. Ci sono alcune persone che lo fanno e milioni che non lo fanno. Considerando l'enorme investimento di tempo e le probabilità prossime a 0 non è davvero un modo fattibile per fare soldi
Thomas Bonini,

11

Alcuni linguaggi proprietari rivolti a domini specifici finiscono per diventare grandi "stili di vita", come MATLAB ( MathWorks ) e Mathematica ( Wolfram Research ). Si può anche commercializzare un linguaggio come middleware, come ha fatto Kx Systems con q / kdb + (lo vendono come database piuttosto che come linguaggio).

Un modello di business alternativo è fornire hosting, come fa Heroku per Ruby on Rails . ( 37 I segnali cedettero effettivamente tale attività non perseguendola.)

E come altri hanno già detto, un linguaggio può essere usato come leader di perdita per bloccare gli sviluppatori di app su una piattaforma specifica, come ha fatto C # per .NET.

Per quanto riguarda la consulenza o i libri, questi sono modelli di entrate piuttosto limitati; la consulenza richiede molta manodopera per scalare e i libri hanno un punto di saturazione. I modelli migliori sono hosting o licenze aziendali.


3
La migliore risposta qui IMHO. MATLAB e Mathematica sono ottimi esempi; sono certamente il modello che tenterei di seguire se dovessi "fare soldi da una lingua": scegliere una nicchia e sviluppare qualcosa per essa che è chiaramente migliore (per gli utenti target, al momento dell'introduzione) rispetto a quelli esistenti, strumenti più generici. Ricorda che Matlab era in competizione con FORTRAN & C quando è apparso per la prima volta; Numpy / Scipy potrebbe essere molto più "moderno", ma Matlab ha un'enorme base di utenti, codice e pura inerzia ora.
martedì

4

Quindi supponiamo che tu voglia guadagnarti da vivere scrivendo la prossima lingua popolare. Supponiamo che "guadagnarsi da vivere" significhi l'equivalente di una retribuzione ragionevole in un lavoro a tempo pieno (qualsiasi lavoro, non necessariamente tecnico). Se ami davvero quello che fai, probabilmente accetti un po 'meno per farlo, quindi diciamo $ 12,50 l'ora , o $ 2000 / mese .

Mentre lavori in modo stabile, rilasci la tua prima versione e crei una struttura per le donazioni. Quindi ti dedichi allo sviluppo e al marketing continui, in misura proporzionale al numero di utenti della tua lingua. Stimiamo prudentemente che l' 1% dei tuoi utenti donerà e ciascuno di loro donerà in media $ 1 / anno .

Ciò significa che per ottenere il tuo stipendio di $ 2000 / mese , devi avere 2000 donatori di utenti per ciascuno dei 12 mesi dell'anno. Sono 2,4 milioni di utenti in totale. Supponiamo ora che ci vogliono 10 anni affinché una lingua diventi così popolare: è quindi necessario acquisire una media di 240.000 utenti all'anno o 20.000 utenti al mese .

Se lavori a tempo pieno ( 160 ore al mese ), la tua strategia di promozione e la qualità dell'implementazione devono essere sufficienti per ottenere una media di 125 utenti l'ora . E questo è ovviamente un utente ripetuto: se il 20% delle persone che provano la tua lingua diventa un utente ripetuto, in realtà hai bisogno di un tasso di conversione di 625 persone / ora .

Anche se ognuna delle persone che convinci convince direttamente altre quattro persone a provare la tua lingua - e per semplicità, supponendo che non continuino a cercare di convincere gli altri - allora sei ancora tornato alla 125 cifra utenti / ora .

Ora, questo può sembrare del tutto irragionevole, ma che ci crediate o no, può ancora funzionare: affermate che la vostra strategia di marketing produce una crescita approssimativamente lineare nel periodo di 10 anni durante il quale la vostra lingua sta guadagnando terreno, e quindi plateau. Ciò significa che all'inizio convertirai in media 0 utenti / ora e 10 anni dopo guadagnerai 250 utenti . (Ancora una volta, ogni ora . Prospettiva, qui.)

Si tratta di un aumento medio di 25 utenti l'ora ogni anno : alla fine di ogni anno, stai convertendo 25 persone in più all'ora - o 4000 in più al mese - rispetto a quando eri all'inizio dell'anno.

Quindi rivisitiamo quel 2.4 milioni di utenti ballpark: è possibile guadagnare così tanti utenti in 10 anni ? Se accettiamo le statistiche (intrinsecamente imperfette, ma comunque utilizzabili) offerte da Langpop come accurate, otteniamo le seguenti informazioni sulle prime 7 lingue attualmente in trend nella ricerca di Yahoo. Se un risultato viene accettato come rappresentante di un utente (lo so, abbi pazienza con me), questi numeri indicano il numero medio approssimativo arrotondato di utenti guadagnati all'anno dalla prima apparizione della lingua.

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

Questo rimette le cose nel regno delle possibilità: se crei un linguaggio così popolare come, diciamo, Python, allora in 20 anni avrai abbastanza utenti per rendere lo sviluppo e il supporto (e il marketing!) Di quel linguaggio nel tuo pieno- lavoro a tempo.

Rendine uno popolare come C # e puoi farlo in 10 . Freddo!

... Tranne ovviamente che metterlo in questo modo banalizza l' impegno enormemente improbabile e difficile che sta rendendo una lingua così popolare. Ma hey, se hai una buona idea e riesci ad arrivare al vertice del tutto da solo, senza il contributo di altri sviluppatori che potrebbero tagliare i tuoi soldi per le donazioni, allora sei un genio, e te lo meriti.


3

Per approfondire ciò che ha detto @Peter: è molto comune creare software per supportare qualcos'altro. Praticamente tutto ciò che viene regalato gratuitamente viene utilizzato per promuovere qualcos'altro, che si tratti di pubblicità, una piattaforma, un dispositivo o un servizio.

Nel caso dei linguaggi di programmazione si tratta di promuovere una piattaforma attirando gli sviluppatori. Se attiri gli sviluppatori ottieni più software scritto per la tua piattaforma e questo rende la piattaforma più forte. Il modo in cui attiri gli sviluppatori è fornendo loro strumenti fantastici e la lingua è uno di quegli strumenti. In effetti, una delle carte più forti di Microsoft nella loro battaglia in salita per riconquistare il loro posto nel mercato degli smartphone sono i loro strumenti di sviluppo. "È facile ricreare le aps create per iPhone e Android per Windows Phone 7", "è facile creare app scritte per Windows Phone 7 pronte per altre schermate", ecc. Ecc.

Inoltre, a volte stai solo creando un linguaggio di programmazione per il tuo uso personale perché hai bisogno dello strumento da solo.


Suppongo che Microsoft faccia molto dalla licenza del sistema operativo Windows Phone ai produttori ... vero?
Vemv,

@Victor .... Suppongo ..... Non sono sicuro di cosa stai arrivando qui.
Epsilon,

3

Puoi ottenere un po 'più di profitto dallo sviluppo di "piccoli" linguaggi specifici del dominio. Non dal venderli, però. Ci sono alcuni DSL che vendono per un profitto, ma molti più successi open source e ancora più fallimenti (sia aperti che chiusi).

Dove puoi trarre profitto è dai guadagni di produttività che puoi ottenere da loro. C'è una sorta di paradigma di sviluppo basato su questa idea.

I vantaggi e gli svantaggi sono simili alla programmazione basata su template in C ++, ma ancora di più. Ad esempio, una DSL richiede più lavoro iniziale rispetto a una normale libreria, ma può offrire una maggiore flessibilità, robustezza e "agilità" una volta scritta. È improbabile che tu lo faccia affatto a meno che le prestazioni non siano una grande preoccupazione, altrimenti è probabilmente più facile ritardare il lavoro coinvolto fino al runtime, ad esempio utilizzare un motore di scansione basato su espressioni regolari di runtime anziché un generatore di codice scanner.

"Agilità" ottiene citazioni di paura perché essere troppo desiderosi di scrivere un DSL è una chiara violazione dei principi agili. Anche in un ambiente pesante come DSL, è estremamente improbabile che tu lavori allo sviluppo di una DSL come parte della tua routine quotidiana.

Un motivo per utilizzare un DSL potrebbe essere la codifica di alcune regole aziendali (una sorta di specifica di sistema esperto) e la generazione di codice che funziona con tali regole. Poiché la traduzione dalle regole aziendali dichiarative al codice risultante può essere piuttosto sofisticata, è possibile gestire enormi modifiche al codice generato apportando modifiche piuttosto semplici alla specifica delle regole aziendali. Ad esempio, il DSL può generare alberi decisionali o tracciare le dipendenze attraverso un digraph per garantire automaticamente che tutto ciò che necessita di rivalutazione sia rivalutato e che non vi siano cicli ("foglio di calcolo" compilato).

Una versione estrema di questo potrebbe essere l'uso di un linguaggio logico come Prolog per alcune parti del sistema, anche se questo è solo estremo in un certo senso - è anche solo una selezione della lingua di cavalli per corsi piuttosto che un build-your-own-DSL paradigma.


2

Sviluppare un linguaggio di programmazione e standardizzarlo non è realmente fatto con una sola persona. Anche Stroustrup è l'inventore del C ++, ci sono molti altri esperti industriali che partecipano in tutto il mondo. È più come un servizio di volontariato. Persone che hanno davvero talento nel scrivere libri come Scott Mayers che ne fanno soldi. Altre persone lavorano come consulenti indipendenti o consulenti per grandi organizzazioni.

Il miglior esempio è la standardizzazione C ++ 0x. È in ritardo da anni ormai. Il motivo per cui i membri del comitato o sono impegnati con il loro lavoro principale e hanno difficoltà a formulare un quorum per finalizzare le specifiche.

Aziende come Microsoft Sun (Oracle) hanno sviluppato i propri linguaggi di programmazione e guadagnato denaro da IDE e anche fornendo supporto continuo attraverso le loro piattaforme. È più come una soluzione chiusa per i problemi. Ma le cose buone che questi linguaggi di programmazione sono standardizzati / approvati da ISO o comitati simili. Sembra che Java stia vendendo il proprio IP per le aziende che usano il loro linguaggio di programmazione. Recentemente Oracle ha citato in giudizio file su Google Infrazioni su Java.

In una sola frase, è più un servizio di volontariato che un business per coloro che lavorano per standard aperti.


1

Se riesci (suppongo che intendi un individuo e non una società) a creare un linguaggio di programmazione di successo è certamente nel regno della possibilità di guadagnarsi da vivere decentemente vendendo libri, parlando a conferenze per non parlare di consulenza o essere acquisito o assunto . Potresti anche guadagnare denaro concedendo licenze al tuo linguaggio di programmazione a diverse aziende, il che renderà comunque meno probabile il successo.

Inoltre, ci sono modi molto più semplici per fare soldi e la maggior parte degli individui (società come Sun e Microsoft escluse) lo fanno di più per la sfida e, eventualmente, il credito geek.

Le probabilità che una piccola azienda / persona crei un linguaggio di programmazione tradizionale sono estremamente piccole, probabilmente è più facile provare a riempire una nicchia di qualche tipo. Inoltre, non è certamente impossibile farlo e quelli che dicono che non posso farlo sono spesso interrotti da quelli che lo fanno :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.