Qual è il business nello sviluppo di un linguaggio di programmazione? [chiuso]

23

Mi stavo chiedendo se c'è un grande reddito diretto nel rilasciare 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 vantaggio marginale ai miei occhi rispetto allo sforzo che indubbiamente ha avuto lo sviluppo (potrei sbagliarmi, naturalmente).

    
posta vemv 12.06.2011 - 21:35
fonte

8 risposte

17

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

C # rende sicuramente i soldi Microsoft, ma è essenzialmente indirettamente facendo soldi promuovendo il framework .NET e altre tecnologie Microsoft.

    
risposta data 12.06.2011 - 21:52
fonte
17

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

Tuttavia, la progettazione della lingua è divertente, quindi la gente continua a disconnettersi. 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 dell'uscita del terzo editore, il che significa che suppongo che le vendite debbano essere oltre un milione. Il mio 3 ° ed. mi è costato 27,95 GBP, e anche tenendo conto di tagli di editori e dettaglianti, puoi vedere che deve aver apportato un bel cambiamento da questo!

    
risposta data 12.06.2011 - 21:41
fonte
11

Determinati linguaggi proprietari mirati a domini specifici vengono considerati come grandi attività di "stile di vita", come MATLAB ( MathWorks ) e Mathematica ( Wolfram Research ). Uno può anche commercializzare una lingua come middleware, come Kx Systems fatto con q / kdb + (lo vendono come < em> database piuttosto che una lingua).

Un modello di business alternativo è quello di fornire hosting, come Heroku per Ruby on Rails . ( 37Signals ha ceduto efficacemente quell'attività non perseguendola.)

Come altri hanno già detto, una lingua può essere utilizzata come leader della perdita per bloccare gli sviluppatori di app su una piattaforma specifica, come C # per .NET.

Per quanto riguarda la consulenza oi 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.

    
risposta data 12.06.2011 - 22:16
fonte
4

Quindi diciamo che vuoi guadagnarti da vivere off scrivendo la prossima lingua popolare. Assumere "guadagnarsi da vivere" significa l'equivalente di una retribuzione ragionevole a 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 un lavoro stabile, rilasci la tua prima versione e crei una struttura per le donazioni. Successivamente, ti occupi di sviluppo e marketing continui, in misura proporzionale al numero di utenti della tua lingua. Stimiamo in modo prudente che l'1% dei tuoi utenti donerà e ciascuno di essi donerà una media di $ 1 / anno .

Ciò significa che per ottenere lo stipendio $ 2000 / mese , devi 2000 donare utenti per ciascuno dei 12 mesi nell'anno. Questo è 2,4 milioni di utenti totale. Supponiamo ora che occorra 10 anni affinché una lingua diventi così popolare: devi quindi acquisire una media di 240 000 utenti all'anno o 20 000 utenti al mese .

Se lavori l'equivalente di tempo pieno ( 160 ore / mese ), la strategia di promozione e la qualità dell'implementazione devono essere sufficienti per ottenere una media di 125 utenti per ora . Ovviamente, gli utenti ripetuti: se 20% delle persone che provano la tua lingua diventano utenti ripetuti, hai effettivamente bisogno di un tasso di conversione 625 persone / ora .

Anche se ognuno delle persone che convinzioni convince direttamente altre quattro persone a provare la tua lingua, e per semplicità, assumendo che non vadano per cercare di convincere gli altri, quindi sei ancora indietro fino alla figura 125 utenti / ora .

Ora, questo può sembrare del tutto irragionevole, ma ci crediate o non può ancora funzionare: 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 poi altipiani. Ciò significa che all'inizio convertirai una media di 0 utenti / ora e 10 anni dopo guadagnerai 250 utenti . (Ancora, ogni ora . Prospettiva, qui.)

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

Quindi rivisitiamo che 2,4 milioni di utenti campo da baseball: è fattibile ottenere molti utenti in 10 anni ? Se accettiamo le statistiche (intrinsecamente imperfette, ma utilizzabili comunque) offerte da Langpop come accurate, otteniamo le seguenti informazioni su top 7 lingue attualmente di tendenza tramite la ricerca di Yahoo. Se un risultato è accettato come rappresentante di un utente (lo so, sopporta me), questi numeri indicano il numero medio approssimativo arrotondato di utenti guadagnati all'anno da quando la lingua è comparsa per la prima volta.

  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 popolare come, ad esempio, Python, in 20 anni avrai abbastanza utenti per sviluppare e supportare (e marketing!) di quella lingua nel tuo lavoro a tempo pieno.

Crea uno popolare come C # e puoi farlo in 10 . Cool!

... Tranne naturalmente che metterla in questo modo banalizza l'impresa improbabile e difficile ampiamente che sta rendendo così popolare una lingua. Ma hey, se hai una buona idea, e puoi riuscire ad arrivare in cima completamente da solo, senza il contributo di altri sviluppatori che farebbero un taglio del tuo denaro per le donazioni, allora sei un genio, e te lo meriti.

    
risposta data 13.06.2011 - 00:32
fonte
3

Per approfondire ciò che @Peter ha detto: è molto comune che il software sia creato per supportare qualcos'altro. Praticamente tutto ciò che viene distribuito gratuitamente è usato 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ù strong. Il modo in cui attiri gli sviluppatori è dando loro strumenti fantastici e il linguaggio è uno di quegli strumenti. Infatti, una delle carte più forti di Microsoft nella loro dura battaglia per riconquistare il loro posto nel mercato degli smartphone è il loro strumento di sviluppo. "È facile ricreare gli aps creati per iPhone e Android per Windows Phone 7", "è facile rendere le app scritte per Windows Phone 7 pronte per altri schermi", ecc. Ecc.

Inoltre, a volte stai solo facendo un linguaggio di programmazione per uso personale perché hai bisogno dello strumento tu stesso.

    
risposta data 12.06.2011 - 22:09
fonte
3

Puoi guadagnare un po 'di più dallo sviluppo di "piccole" lingue specifiche del dominio. Non dalla vendita di loro, però. Ci sono alcuni DSL che vendono a scopo di lucro, ma molti altri successi open source e ancora più errori (sia aperti che chiusi).

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

I vantaggi e gli svantaggi sono simili alla programmazione basata su modelli in C ++, ma molto di più. Ad esempio, una DSL richiede un lavoro più immediato di una normale libreria, ma può offrire una maggiore flessibilità, robustezza e "agilità" una volta scritta. È improbabile che lo faccia a meno che le prestazioni non siano un problema, altrimenti è probabilmente più facile ritardare il lavoro fino all'ora di esecuzione, ad es. utilizzare un motore di scansione basato su espressioni regolari in fase di esecuzione anziché un generatore di codice dello scanner.

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

Un motivo per utilizzare una DSL potrebbe essere quello di codificare alcune regole di business (una sorta di specifica di sistema esperto) e generare codice che funzioni con tali regole. Poiché la traduzione dalle regole aziendali dichiarative al codice risultante può essere abbastanza sofisticata, enormi modifiche al codice generato possono essere gestite apportando modifiche abbastanza semplici alle specifiche delle business rules. Ad esempio, il DSL può generare alberi decisionali o tracciare dipendenze attraverso un digramma per garantire automaticamente che tutto ciò che ha bisogno di rivalutazione venga rivalutato e che non ci 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 tuo sistema, anche se questo è solo estremo in un certo senso - è anche solo selezione della lingua "cavalli per gioco" piuttosto che una build-your- paradigma own-DSL.

    
risposta data 12.06.2011 - 22:46
fonte
2

Sviluppare un linguaggio di programmazione e standardizzarli non è realmente fatto con una singola persona. Persino 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 per scrivere libri come Scott Mayers, ricavandone guadagni. Altre persone lavorano come consulenti o consulenti indipendenti per grandi organizzazioni.

L'esempio migliore è la standardizzazione C ++ 0x. È in ritardo da anni ormai. Il motivo per cui i membri del comitato sono impegnati con il loro lavoro principale e sono difficili da raggiungere in quorum per finalizzare le specifiche.

Aziende come Microsoft Sun (Oracle) hanno sviluppato i propri linguaggi di programmazione e ottenuto profitti dall'IDE e anche fornendo un supporto continuo attraverso le loro piattaforme. È più simile a una soluzione chiusa per i problemi. Ma le cose buone che questi linguaggi di programmazione sono standardizzati / approvati da ISO o commissioni simili. Sembra che Java stia vendendo il proprio IP alle aziende per l'utilizzo del loro linguaggio di programmazione. Recentemente Oracle ha citato in giudizio Google over IP Infrazioni su Java.

In una singola frase, è più simile a un servizio di volontariato che a un'attività per coloro che lavorano per standard aperti.

    
risposta data 13.06.2011 - 14:02
fonte
1

Se gestisci (presumo che tu intenda un individuo e non una società) per creare un linguaggio di programmazione di successo è certamente nel regno della possibilità di guadagnare una vita decente vendendo libri, parlando a conferenze per non parlare di consulenza o ottenere acquisito o assunto. Potresti anche guadagnare denaro dalla licenza del tuo linguaggio di programmazione a diverse società, il che renderà meno probabile comunque riuscire.

Poi di nuovo, ci sono modi molto più semplici per fare soldi e la maggior parte delle persone (aziende come Sun e Microsoft escluse) lo fanno più per la sfida e probabilmente per il credulone.

Le probabilità di una piccola azienda / persona che crea un linguaggio di programmazione mainstream sono estremamente piccole, probabilmente è più facile provare a riempire un niché di qualche tipo. Poi di nuovo, non è certamente impossibile farlo e quelli che dicono che non si può fare sono spesso interrotti da quelli che lo fanno:)

    
risposta data 13.06.2011 - 13:56
fonte

Leggi altre domande sui tag