Può sopravvivere un linguaggio di programmazione a sorgente chiuso? [chiuso]


12

Un amico ha scritto un linguaggio di programmazione. Ha una sintassi che ricorda SGML. Per questo ha scritto un interprete e un IDE. Lui e i suoi colleghi lo usano internamente come lingua lato server. Può anche essere usato per scrivere strumenti da riga di comando.

Vuole renderlo disponibile al pubblico, nella speranza che le persone acquistino una licenza per usarlo. Vuole mantenere il codice che esprima l'implementazione del linguaggio a se stesso, in quanto contiene un bel po 'di proprietà intellettuale.

Continuo a dirgli che il giorno dei linguaggi di programmazione a sorgente chiuso è finito. Dico: "Guarda tutte le principali lingue: la stragrande maggioranza sono open source. Dovrai diventare open source anche se vuoi che qualcuno al di fuori dell'azienda presti attenzione a ciò che hai costruito".

Gli sto dando un buon consiglio o c'è ancora spazio per le lingue proprietarie per cui paghi?

DOPO

Den ha chiesto, "... potresti per favore spiegare anche come una lingua può essere chiusa?"

Ho detto: "@Den hai ragione. Ciò che il mio amico vuole evitare, suppongo, è la situazione in cui Microsoft cucina un linguaggio simile a Java, lo chiama J ++ e poi entra in controversia con Sun sulla sua Java-ness Come proteggere una sintassi e una metodologia di programmazione dall'essere dirottato da una società la cui implementazione potrebbe metterti fuori servizio? "


Gli stai dando un buon consiglio.
Basile Starynkevitch,

14
Non è una questione di fonte chiusa, è una questione di soldi - nessuno paga per i linguaggi di programmazione.
Pharap,

8
Se la lingua è abbastanza buona da valere i soldi, le persone saranno disposte a pagare. Scommetto che la lingua non è abbastanza buona per valere qualsiasi somma di denaro, soprattutto rispetto alle alternative gratuite.
user253751

1
Dubito che il tuo amico possa tutelare il diritto d'autore nella lingua corrente - guarda la sentenza UE su SAS .
Colin Pickard,

7
"nessuno paga per i linguaggi di programmazione", tranne in settori specializzati o casi d'uso. Quello che mi viene in mente è Wolfram ( wolfram.com/language ). Un elenco di lingue a pagamento evidenzierebbe altri casi d'uso in cui ne vale la pena.
Freiheit,

Risposte:


10

La risposta è sì e no. Dipende dalle motivazioni commerciali dei potenziali clienti e dagli attributi della lingua e dai problemi che risolve.

No, il mondo non ha bisogno di un altro linguaggio informatico generico creato da un individuo o da un piccolo team. Quando Perl, Python, Ruby, Java e Javascript e furono creati, c'era un vuoto da riempire, i linguaggi proprietari erano costosi e la barriera all'ingresso era bassa. Rebol è uno che è iniziato a pagamento ed è ora gratuito. Guarda C # e vai a vedere quanto è più difficile ora e quanto più grandi sono le squadre, anche per le lingue più o meno gratuite.

Ma sì, il mondo ha molto bisogno di lingue di nicchia per ricoprire tutta una serie di ruoli specifici e pagherà bene per loro. Non posso citarti esempi perché né tu né io abbiamo mai sentito parlare della maggior parte di essi, ma vengono utilizzati abitualmente in situazioni altamente specializzate e fanno soldi per i loro creatori. Risolvi un problema e verrai pagato.

Quindi per far guadagnare soldi al tuo amico ha bisogno di una o più di tre cose.

  1. Una nicchia tecnica identificabile per la quale la sua lingua è la migliore soluzione disponibile, preferibilmente con una barriera ragionevolmente elevata all'ingresso per rallentare i concorrenti.
  2. Un segmento di clienti identificabile con un problema che la sua lingua può risolvere, nonché la capacità di pagare per risolverlo.
  3. Un insieme di codice, documentazione, esercitazioni e competenze pre-scritte che consentiranno ai clienti di metterlo immediatamente in funzione e iniziare a risolvere immediatamente i problemi.

I problemi menzionati nel fare affidamento su piccole aziende non sono specifici dei linguaggi di programmazione e possono essere facilmente risolti con mezzi commerciali.

Divulgazione: sono l'autore di un sistema di linguaggio di programmazione commerciale (Powerflex) che ha aiutato molte persone a costruire attività di software. Quella finestra si chiuse quando si aprì la finestra di Internet.


20

Una lingua non è open source o chiusa come tale. Ad esempio, G ++ è open source mentre MSVC ++ è chiuso. ISO C ++ non è nessuno dei due, è uno standard non proprietario non libero.

Il tuo amico potrebbe rilasciare un'implementazione non ottimizzante Open-Source e vendere il compilatore di ottimizzazione fantasia. L'interessante proprietà intellettuale non sarà necessaria per un'implementazione diretta.

Una lingua esistente che funziona con questo modello è PHP / Zend Server


17

La sua lingua fa qualcosa per cui abbastanza persone pagheranno?

Questa è davvero l'unica cosa che decide se un modello di business funzionerà. Hai un vasto mercato di utenti abbastanza grandi da non preoccuparti dei costi delle licenze? La lingua supporta dispositivi o standard senza i quali i clienti non possono vivere e che nient'altro supporta? È così follemente grande che i clienti saranno in grado di assumere i programmatori più grandi e brillanti e ottenere enormi aumenti di produttività semplicemente usando questo linguaggio, e il management lo capisce ?

Se uno di questi o qualcosa di simile è il caso, probabilmente il modello di business funzionerà. Altrimenti, probabilmente non lo farà: prima o poi qualcuno troverà una misura di riduzione dei costi che prevede il passaggio a un'alternativa più economica.


3
Belle domande, ma visto che è una NUOVA lingua, la stragrande maggioranza di quelle domande deve avere una risposta negativa. Un po 'come un giovane che cerca di trovare un lavoro: come soddisfare il requisito di avere esperienza quando sei troppo giovane per averlo avuto.
bugmagnet,

1
Dato che la tua risposta ha ricevuto così tanti voti positivi, potresti spiegare anche come una lingua può essere chiusa ?
Den

@Poi hai un buon punto. Ciò che il mio amico vuole evitare, suppongo, è la situazione in cui Microsoft elabora un linguaggio simile a Java, lo chiama J ++ e quindi entra in controversia con Sun sulla sua Java-ness. Come si protegge una sintassi e una metodologia di programmazione dall'essere dirottato da un'azienda la cui implementazione potrebbe metterti fuori servizio?
bugmagnet,

14

Credo che no, non ci sia spazio per un nuovo linguaggio con un'implementazione proprietaria venduta da una piccola azienda.

In primo luogo, gli sviluppatori hanno molte altre implementazioni linguistiche gratuite (almeno come "nella birra" e spesso come "nel parlato") e non si preoccuperanno di provare un linguaggio (costoso).

In secondo luogo, ogni manager si opporrebbe immediatamente: cosa succederebbe se la nostra base di codice fosse codificata nella nuova lingua se la piccola azienda che fornisce l'implementazione della lingua fallisse? Questo argomento probabilmente vieterebbe a chiunque di acquistare l'implementazione del linguaggio!

Al contrario, un'implementazione del linguaggio del software libero può essere valutata grossolanamente dai clienti, che potrebbero sempre gestire il suo servizio a un altro fornitore, se la società originale che lo ha scritto fallisce.

Dal punto di vista del cliente, il costo dell'adozione di una nuova lingua non è nella licenza dell'implementazione, ma nelle competenze richieste per usarlo.

E ci sono molte implementazioni del linguaggio del software libero che sono quasi inutilizzate.


5
Sebbene facciano parte di pacchetti più grandi, le persone pagano per usare Matlab, Maple, Mathematica e UnrealScript.
Trillian,

7
Ma questi non provengono da una piccola azienda sconosciuta, e la società che li vendeva iniziò nel secolo precedente.
Basile Starynkevitch,

3
@Trillian: anche se Turing è completo, quelle lingue che hai menzionato non sono lingue di uso generale, sono create appositamente per l'uso in una piattaforma specifica, una piattaforma matematica e grafica sul primo e un motore di gioco ha ottenuto l'ultimo. Queste piattaforme sono ciò che ha reso queste lingue degne di denaro e il fastidio di imparare una nuova lingua per le persone che avevano bisogno delle funzionalità della piattaforma. Probabilmente, non stanno vendendo solo la lingua ma un'intera piattaforma.
Lie Ryan,

5

Una lingua non può essere chiusa. Il suo compilatore e le librerie di runtime possono essere a sorgente chiuso. Una grammatica formale di una lingua può essere mantenuta segreta e protetta legalmente (NDA, ecc.) E le tasse raccolte per l'uso.

Il tuo amico potrebbe rivendicare la proprietà intellettuale o il brevetto se la lingua è così nuova e nuova. Personalmente dubito fortemente che questo varrebbe la pena.

Al giorno d'oggi, la maggior parte delle aziende sceglie prima le tecnologie disponibili al pubblico, indipendentemente da quanto faticoso lavoro sia ottenere lo stesso effetto che farebbe un approccio a fonte chiusa. Successivamente, se l'overhead è super grande, vanno a una soluzione standard del settore : linguaggi proprietari standardizzati (ad esempio Matlab), con una buona penetrazione e supporto.

Le lingue interne sono generalmente costruite come DSL (lingue specifiche del dominio) e in questi giorni lo sforzo è inferiore rispetto all'acquisto di una DSL di qualcun altro e l'adattamento. Inoltre, i DSL sono molto specifici per il dominio problematico.

Ora, non scoraggiamo il tuo amico dal monetizzare la sua lingua. Ci sono modi per farlo - vendendolo a una grande azienda consolidata o convincendo alcuni investitori ad acquistare l'idea e ad investirci - ma il suo principale problema di approccio è che ha sviluppato una soluzione senza ricercare il problema dello sviluppo. E questo non è il problema quello che considera il problema, è quello che i suoi potenziali clienti considerano il problema. Quindi potrebbe uscire e parlare con questi compagni senza fornire dettagli sulla sua soluzione e far pagare quei ragazzi - questo non è impossibile ma non è molto probabile.


4
"Una grammatica formale di una lingua può essere mantenuta segreta" - come chiunque sarebbe in grado di usare una lingua senza conoscerne la grammatica?
el.pescado,

2
@ el.pascado: assicurandosi che chiunque voglia usare i segni del linguaggio come un accordo di non divulgazione, fa schifo ma alcuni manager senza idea potrebbero aver pensato che fosse una buona idea.
Lie Ryan,

3

Ho avuto questa discussione da solo quando uno dei miei clienti ha preso in considerazione lo sviluppo di applicazioni importanti utilizzando ColdFusion. Personalmente non riesco a pensare a nessun motivo per usare CF (e pagarlo) quando posso usare PHP (e non pagarlo). Tuttavia, CF ha alle spalle una grande azienda che pacifica i fobici OSS (gestisci abbastanza gestori IT e alla fine ne incontrerai alcuni) ed è abbastanza buono che abbastanza sviluppatori lo preferiscono.

Tuttavia, il trucco è, ovviamente, che il tuo amico deve inventare qualcosa di abbastanza buono e con abbastanza sostegno dietro di esso. Il primo non è un inganno in questi giorni con tutte le piattaforme open source completamente mature in circolazione, e il secondo richiede il supporto di una parte almeno delle dimensioni, ad esempio di Adobe.

Per non parlare del fatto che anche CF ha una quota di mercato marginale in questi giorni rispetto all'OSS.

In sintesi, se il tuo amico è abbastanza brillante da inventare qualcosa che supera PHP, Python e gli amici e gli imprenditori abbastanza esperti da venderlo a uno dei giocatori più grandi e affidabili sul mercato, la risposta è "forse". Altrimenti, è un clamoroso "no".


2

Penso che la risposta sia decisamente no in questo caso. Avere un nuovo linguaggio guidato da una piccola entità comporta un alto rischio di bug critici o caratteristiche chiave mancanti.

Se quella lingua è proprietaria, allora come utente sei assolutamente fregato se la lingua non si evolve nella direzione in cui ne hai bisogno al ritmo che ti serve. Se la lingua è gratuita, puoi lanciare denaro o potere umano sul problema (che almeno per le aziende più grandi è un'opzione).

Il tuo amico starebbe molto meglio vendendo servizi o prodotti complementari. Fornire supporto, formazione, consulenza. Fatti pagare per l'aggiunta di funzioni specificamente richieste. Fornire strumenti (ad esempio sotto forma di plug-in commerciali per IDE popolari). Fornire alcune biblioteche secondo un modello di licenza commerciale (ma sempre con la fonte inclusa in opportune restrizioni).


1

Mentre odio scoraggiare il tuo amico, penso che sia improbabile che riuscirà a convincere le persone a pagare per gli strumenti di sviluppo in questi giorni a meno che questo strumento non fornisca un guadagno incredibilmente enorme nella produttività (come in "produce software funzionante facendo in modo che i manager sembrino strabici allo schermo pensando a buoni pensieri !!! "). Nel bene e nel male, al giorno d'oggi c'è ben poco mercato per gli strumenti di sviluppo "pay-for-play" dato che la quantità e la qualità degli strumenti gratuiti sono eccellenti. (Linguaggi testimoni come Java, Ruby, Python, Clojure - IDE come Eclipse e LightTable - database come MySQL e PostgreSQL - l'elenco potrebbe continuare all'infinito e all'infinito ...). Gli auguro buona fortuna con questo sforzo.


Per quanto riguarda le lingue, potresti avere un punto. Tuttavia, esiste ancora un mercato per gli strumenti di sviluppo a pagamento. MS, Adobe, JetBrains, ecc. Non fanno esattamente male ai soldi, l'ultima volta che ho sentito. Sembra che ci sia un argomento lì dentro da qualche parte per "lite" gratuito o versioni di prova.
cHao,

1

Può. Se è:

  • buono e / o abbastanza utile
  • se è applicabile abbastanza facile e
  • se non è troppo costoso

In realtà - per cominciare dovrebbe essere davvero forte su 2 primi oggetti e molto scontato rispetto al suo valore reale.

Vedo che la maggior parte delle persone si lamenta dei gestori malvagi a cui non piace pagare un sacco di soldi per questo - non hai mai detto che il tuo amico sta chiedendo una fortuna per la licenza. E se chiede $ 500 all'anno e fa risparmiare un paio di centinaia di ore lavorative all'anno? Qualsiasi manager intelligente lo afferrerebbe.


0

Ciò dipende dal fatto che la lingua offra o meno qualcosa di abbastanza ingegnoso da consentire a me (in rappresentanza del cliente) di pagarlo.

Come project manager devo prendere in considerazione:

  • Il tempo necessario per apprendere / padroneggiare quella nuova lingua.
  • Il guadagno di efficienza (tempo fino alla consegna) rispetto ad altre lingue. E supera il tempo di impararlo?
  • Questa lingua risolve un problema che difficilmente può essere risolto con altre lingue?
  • Questa lingua sarà ancora supportata tra 5 anni, il cliente dovrebbe fare un'altra richiesta?

I primi 3 punti si applicano ad ogni lingua e in particolare il primo è difficile da superare per ogni nuova lingua, perché devo ragionare sul tempo di produttività molto bassa con qualcosa, e che meglio essere una buona.

Il quarto punto è quello che si applica solo alle lingue di origine chiusa, come quelle che dipendo da terze parti, che potrebbero esistere o meno tra 5 anni. 5 anni prima, le app mobili non erano così grandi come oggi, la lingua da allora si adatterà alla situazione attuale e mi permetterà di scrivere anche app mobili? Sarà persino compatibile con i nuovi requisiti? Se esiste un requisito del genere per il mio cliente, posso contattare lo sviluppatore di quella lingua e presentare una richiesta di aggiornamento?

Se a una di queste domande viene risposto "no", allora può essere la migliore lingua del mondo, non posso usarla. E se sentissi che c'è una sola persona che ha inventato questa lingua nel suo "tempo libero" e ora lavora come una sola persona, sarei molto sospettoso al riguardo e preferirei non usare la lingua, a meno che non avessi promesse molto solide e la lingua offre qualcosa che nessun altro mi permette di fare.

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.