2010-02-12 8 views
7

C# è di proprietà di Microsoft e Java è di proprietà di Sun/Oracle. Quali pericoli si espongono realmente agli utenti di queste lingue? Qualcuno ha sentito che il loro codice era "di proprietà"? Progetti come Mono aiutano a mantenere i "proprietari" onesti?Quali sono i pericoli di un linguaggio che è "di proprietà"?

Si prega di non fare questo una guerra santa di lingue. Voglio solo sapere se è razionale evitare tali linguaggi o se è solo paranoia. Un interview con l'inventore di C++ mi ha fatto riflettere, ma voglio anche bilanciare i suoi pensieri con i pensieri della comunità nel suo insieme.

+6

Forse è meglio definire "di proprietà", C# è una specifica, puoi implementarla tu stesso (ad es. Mono) ... cosa intendi esattamente per proprietà? (Vedere: http://www.ecma-international.org/publications/standards/Ecma-334.htm per le specifiche come esempio) –

+3

Poiché questa "domanda" non ha una risposta esatta, dovrebbe essere wiki. –

+1

Penso che qui debba essere fatta una distinzione tra "il linguaggio C#" e "le librerie di classi .NET". –

risposta

4

Nessun pericolo per il linguaggio C#. È uno standard ISO. Formalmente è di proprietà di un comitato. Ma Java è un marchio commerciale

+0

Anche se Java è un marchio, quasi il 100% di Java è gratuito e open source sotto openjdk. Quindi non c'è pericolo nemmeno per Java. –

5

Java non è "di proprietà", è open source. Se trovi un bug che non puoi assolutamente gestire, puoi ripararlo. (Tuttavia esistono sia implementazioni open source che closed source)

Non so se è possibile ottenere il codice sorgente in C#, ma poiché Mono lo ha copiato, esiste anche una fonte aperta.

Non so se esiste una seconda fonte per le librerie .net.

Per quanto riguarda i "Dangers" effettivi (che era la tua vera domanda, dopotutto), sarebbe che la società decidesse di non rilasciare più gli aggiornamenti - se lo fanno, la lingua si spegnerà e morirà o lo farà decollare da solo? Java è in fase di transizione da uno di questi stati a un altro. Spiacente, non so di C#.

C'è anche il pericolo (percepito) di cui ho parlato prima - puoi aggiustarlo se la società da cento milioni di dollari ha assolutamente bisogno di essere riparata per continuare.

Questo era un problema più significativo vent'anni fa, al giorno d'oggi il fatto è che se si tratta di un linguaggio stabile, questo non è qualcosa di cui dovresti mai preoccuparti.

+4

Più precisamente, Mono _implementato_ C#, non copiato. –

+1

Questo non è proprio vero. Microsoft ha usato _ per creare un eccellente compilatore Java e ha fatto causa per farli smettere. –

+0

Un eccellente compilatore Java con estensioni Microsoft. Furono citati in giudizio perché non erano conformi allo standard. – duffymo

7

Rispetto a cosa? Dal momento che lo hai inserito in questi termini, le lingue C e C++ originali sono "di proprietà" di Bell Labs.

+0

+1 anche se non sono sicuro della parte C++. –

+0

Non capisco "Questi termini"? Di proprietà significherebbe semplicemente che se si stesse utilizzando un'implementazione del linguaggio e quella particolare implementazione fosse sparita, si potrebbe mantenere il sistema in esecuzione. C & C++ ha molte implementazioni e non sono in alcun modo possedute - Sono state create dai laboratori Bell, forse hai confuso i tuoi termini? –

+1

Inoltre, -1 non risponde in alcun modo alla domanda che è stata posta. –

1

Se non ci sono due implementazioni indipendenti, la lingua è "di proprietà" e si è in balia del venditore se dovesse aumentare i prezzi o il prodotto.

Non mi piace.

MODIFICA: il più delle volte, è possibile contare due codebase legalmente utilizzabili come due (il secondo è te stesso).

+0

Quanto stai pagando per Java? Quale commissione è stata prelevata dal tuo ultimo download? – duffymo

+0

Chiaramente Perl è "di proprietà" e siamo alla mercé del venditore. –

+1

E tutti gli utenti di Python sono sotto il pollice del BDFL. Può schiacciarti a suo capriccio. – duffymo

0

Non tutte le lingue sono di proprietà di una persona/azienda/ente normativo. L'unico modo in cui posso pensare a chi non è di proprietà di nessuno è se la persona che lo ha creato è anonimo e anche di dominio pubblico

+0

Molti sono di proprietà di un ente standard come ISO o ECMA. – vickirk

4

Alzarsi al mattino è rischioso, ma questo non tiene il mondo sotto le copertine.

Mi sembra che questo sia uno di quei rischi accettabili. Nel caso di Java, le aziende lo hanno utilizzato negli ultimi 15 anni circa a loro vantaggio.

Qual è l'alternativa? Sviluppare e mantenere la tua lingua in modo da possederla? Questo è ciò che SAP ha fatto. Sembra che abbia funzionato per loro, ma sarebbe interessante calcolare il costo sostenuto.

Bjarne Stroustrup è un uomo brillante, ma non dimentichiamoci che ha dei pregiudizi.Non è felice che Java abbia eclissato C++ come linguaggio primario orientato agli oggetti quando è uscito. Lo ha attribuito al marketing di Sun, non concedendo che avrebbe potuto migliorare su C++.

È una buona pratica cercare di individuare pregiudizi da parte di qualsiasi oratore per assicurarsi di non ingerire l'intera vista di qualcuno. Questo è uno di quei casi.

+0

I programmatori amano le mode, ma tornano sempre a ciò che amano. In realtà, quante persone sono passate in modo permanente da C++ a Java? Java e C++ sono lingue diverse per diversi domini problematici. Il successo di Java è venuto dalla sua applicabilità nel suo dominio specifico, oltre a cogliere la fine dell'onda degli anni '80 di hype OOP che è stata guidata da C++. –

+0

Molte persone sono passate in modo permanente da C++ a Java. Non sto seguendo il tuo punto qui. Personalmente, penso che Java abbia guidato lo tsunami di Internet più delle increspature di OOP. Applet e teiere danzanti nei browser erano la cosa che ha spinto Java in avanti all'inizio. Si è evoluto in un linguaggio lato server per le applicazioni Web dopo che le specifiche Java EE sono state annunciate nel 1999 su Java One. Niente di tutto ciò ha avuto molto a che fare con il C++. Era C++ che non aveva le librerie per tenere il passo. È stato aggiunto STL, ma non molto altro. – duffymo

0

hmm, beh Xbox supporta solo C# per i giochi indie e nessun'altra piattaforma lo supporta.

ovviamente il pericolo è che se si vuole fare codice multipiattaforma, si desidera la lingua supportata dalla maggior parte delle piattaforme, la lingua più "di proprietà" probabilmente sarà supportata da meno piattaforme.

l'unico problema che ho è il supporto per il linguaggio e quanto sia difficile convertire da uno all'altro, ad esempio direi che C++ to C# è più semplice dell'altro modo a causa della gestione della memoria.

+0

C# è supportato su Xbox360, Windows, Linux e MaxOS (e probabilmente non ne sono a conoscenza) e ci sono progetti che cercano di eseguire il porting XNA anche sulle piattaforme non MS (ad es. Http://code.google. com/p/monoxna /) –

Problemi correlati