2010-02-12 21 views
7

C# es propiedad de Microsoft y Java es propiedad de Sun/Oracle. ¿Qué peligros realmente expone a los usuarios de estos idiomas? ¿Alguien ha sentido que su código era "propiedad"? ¿Los proyectos como Mono ayudan a mantener a los "dueños" honestos?¿Cuáles son los peligros de un idioma que es "propiedad"?

Por favor, no hagas de esto una guerra santa de idiomas. Solo quiero saber si es racional evitar esos idiomas o si eso es solo paranoia. Un interview con el inventor de C++ me hizo pensar, pero también quiero equilibrar sus pensamientos con los pensamientos de la comunidad en general.

+6

Quizás sea mejor definir "propiedad", C# es una especificación, puede implementarlo usted mismo (por ejemplo, Mono) ... ¿qué quiere decir exactamente por poseer? (Ver: http://www.ecma-international.org/publications/standards/Ecma-334.htm para la especificación como ejemplo) –

+3

Como esta 'pregunta' no tiene una respuesta exacta, debería ser wiki. –

+1

Creo que se debe hacer una distinción aquí entre "el lenguaje C#" y "las bibliotecas de clases .NET". –

Respuesta

4

No existe tal peligro para el lenguaje C#. Es un estándar ISO. Formalmente es propiedad de un comité. Pero Java es una marca comercial

+0

Incluso si Java es una marca registrada, cerca del 100% de Java es libre y de código abierto en openjdk. Entonces, ese peligro tampoco para Java. –

5

Java no es "Propiedad", es de código abierto. Si encuentra un error que no puede tratar, PUEDE solucionarlo. (Sin embargo, existen implementaciones de código abierto y de código cerrado)

No sé si puede obtener el código fuente en C#, pero desde que Mono lo copió, también hay una fuente abierta para eso.

No sé si hay una segunda fuente para las bibliotecas de .net.

En cuanto a los "Peligros" reales (que era su verdadera pregunta, después de todo), sería que la compañía decide no lanzar las actualizaciones por más tiempo - si lo hacen, ¿el idioma se marchitará y morirá o lo hará? despegar por sí mismo? Java se encuentra en el proceso de transición de uno de estos estados a otro. Lo siento, no sé sobre C#.

También existe la (aparente) de peligro he mencionado anteriormente sobre - se podría solucionar esto, si una empresa que cientos de millones de dólares que tiene absoluta necesidad se fija con el fin de continuar.

Esto era un problema más importante, hace veinte años, en estos días el hecho es que si se trata de un buen lenguaje estable, esto no es algo alguna vez tiene que preocuparse.

+4

Más precisamente, Mono _implemented_ C#, no copiado. –

+1

Esto no es realmente cierto. Microsoft _uso_ para hacer un excelente compilador de Java y fue demandado para que se detengan. –

+0

Un excelente compilador de Java con extensiones de Microsoft. Fueron demandados porque no se ajustaban al estándar. – duffymo

7

¿En comparación con qué? Desde que lo pones en estos términos, los lenguajes originales C y C++ son "propiedad" de los Bell Labs.

+0

+1 aunque no estoy seguro acerca de la parte de C++. –

+0

No entiendo "estos términos"? Propiedad significaría simplemente que si estuviera usando una implementación del lenguaje y esa implementación en particular desapareciera, ¿podría mantener su sistema funcionando? C & C++ tiene muchas implementaciones y de ninguna manera son de su propiedad. Fueron CREADOS por los laboratorios Bell, ¿tal vez usted confundió sus términos? –

+1

Además, -1 no responde de ninguna manera la pregunta que se hizo. –

1

Si no hay dos implementaciones independientes, el lenguaje es "propiedad" y que están a merced del vendedor en caso de que subir los precios o puede el producto.

No me gusta eso.

EDIT: Tan a menudo como no, puede contar con bases de código legalmente forkable como dos (el segundo es usted mismo).

+0

¿Cuánto está pagando por Java? ¿Qué tarifa se extrajo de su última descarga? – duffymo

+0

Claramente, Perl es "propiedad" y estamos a merced del proveedor. –

+1

Y todos los usuarios de Python están bajo el control de la BDFL. Él puede aplastarte a su antojo. – duffymo

0

No todos los idiomas son propiedad de una persona/empresa/organismo de normas. La única forma en que puedo pensar que no es propiedad de nadie es si la persona que lo creó es anónima y también de dominio público

+0

Muchos son propiedad de un organismo de estándares como ISO o ECMA. – vickirk

4

Levantarse por la mañana es arriesgado, pero eso no mantiene al mundo bajo las cubiertas.

Siento que este es uno de esos riesgos aceptables. En el caso de Java, las empresas lo han usado durante los últimos 15 años para su beneficio.

¿Cuál es la alternativa? ¿Desarrolla y mantiene su propio idioma para que lo tenga? Eso es lo que hizo SAP. Parece haber funcionado para ellos, pero sería interesante calcular el costo que han incurrido.

Bjarne Stroustrup es un hombre brillante, pero no olvidemos que tiene sesgos.No está contento de que Java eclipsara C++ como el lenguaje primario orientado a objetos cuando salió. Lo atribuyó al marketing de Sun, sin reconocer que podría haber mejorado en C++.

Es una buena práctica tratar de detectar los sesgos de parte de cualquier orador para asegurarse de que no se está tragando la vista de alguien entera. Este es uno de esos casos.

+0

A los programadores les gustan las modas, pero siempre vuelven a lo que aman. Realmente, ¿cuántas personas han cambiado permanentemente de C++ a Java? Java y C++ son idiomas diferentes para diferentes dominios problemáticos. El éxito de Java proviene de su aplicabilidad en su dominio específico, además de atrapar el final de la oleada de Oops de Oops impulsada por C++. –

+0

Mucha gente cambió permanentemente de C++ a Java. No estoy siguiendo tu punto aquí. Personalmente, creo que Java montó el tsunami de Internet más que las ondas de OOP. Los applets y las teteras danzantes en los navegadores fueron lo que impulsó a Java al principio. Se convirtió en un lenguaje de servidor para aplicaciones web después de que se anunciara la especificación Java EE en 1999 en Java One. Nada de eso tenía mucho que ver con C++. Fue C++ que no tenía las bibliotecas para mantenerse al día. Se agregó STL, pero no mucho más. – duffymo

0

hmm, bien Xbox solo es compatible con C# para juegos indie, y ninguna otra plataforma lo admite.

obviamente, el peligro es que si quiere hacer código multiplataforma, quiere el lenguaje admitido por la mayoría de las plataformas, el lenguaje más "propietario" probablemente será soportado por menos plataformas.

el único problema que tengo es compatibilidad con el idioma y lo difícil que es convertirlo de uno a otro, por ejemplo, diría que C++ to C# es más fácil que a la inversa debido a la administración de la memoria.

+0

C# es compatible con Xbox360, Windows, Linux y MaxOS (y probablemente no conozco más) y hay proyectos que buscan también portar XNA a plataformas que no sean MS (por ejemplo, http://code.google. com/p/monoxna /) –

Cuestiones relacionadas