Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Porque Usar C# Y No C++

Iniciado por , 23 de Diciembre de 2004, 02:16:27 PM

« anterior - próximo »

Vicente

 Hola

Citar
C# es de Microsoft. (Esto mismo por si solo ya deberia ser un inconveniente, porque Microsoft es especialista en hacer APIs terrorificas, vease la infumable Win32 o DirectX que se tira a la basura en cada version para hacerse de nuevo).

.NET es de Microsoft, tienes razon, y tambien solo por eso casi seguro que nos lo vamos a comer hasta en la sopa, nos guste o no. Tendría que mirar si el SP2 te instala ya el framework de .NET. Pero vamos, en unos años cualquiera podrá mover una aplicación .NET en casa (cosa que ahora, como dice Colson, es poco común).

Citar
En cuanto a lo de la velocidad, no se como es en C#, pero mirando el ejemplo de Java (lenguaje en el cual C# está inspirado), los problemas de velocidad venian aparte de por lo de la maquina virtual, por el garbage colector, la forma en que se manejan los objetos y las inicializaciones que hace siempre en los miembros de una clase. Se pueden declarar objetos en la pila en C#? como es el manejo de memoria? incializa cosas sin que tu se po pidas?

Los problemas de velocidad en .NET no son tan reales como crees, te sorprenderías de ver su rendimiento. Y además, cada vez importan menos (los PCs y consolas cada vez son unas bestias mucho más impresionantes), primando mucho más la velocidad de desarrollo, no creo que sea un grave problema sacrificar un 10-20% de velocidad a cambio de ser bastante más productivo.

Citar
Por otra parte hay gente en este post que ha citado que C# es mas moderno que C++ y que tiene cosas que C++ no tiene, me gustaria ver ejemplos de esto, porque que yo sepa hasta hace poco no tenia ni templates.

De buenas a primeras tiene una librería de clases que es la leche. Me gustaría ver el soporte XML del ANSI C++ ;) O una libreria de interfaces gráficas ANSI C++ también. En temas de sintaxis, ya miraré algo, pero por ejemplo, se me ocurre: puedes usar un string en un switch? (que en C no se puede usar una cadena de texto si no recuerdo mal). Seguramente en el plano sintáctico no ofrezcan muchas diferencias uno del otro, pero es que un .NET 1.1 ofrece muchisima más funcionalidad de serie que el C++ a pelo.

Poco más, de todas formas, lo mejor es que lo pruebes (si no lo has hecho ya claro) y lo veas por ti mismo ;) Un saludo!

Vicente

deadLock++

 
Citar
Por otra parte hay gente en este post que ha citado que C# es mas moderno que C++ y que tiene cosas que C++ no tiene, me gustaria ver ejemplos de esto, porque que yo sepa hasta hace poco no tenia ni templates.

Algunas cosillas:

En C# no te preocupas por los "include", si está dentro del mismo namespace lo utilizas. Te aseguro que en proyectos grandes el manejo de los include no es un detalle y es muy frustrante compilar un programa y que a los 30 segundos lance un error porque te olvidaste un include.

El uso/creación de librerías dinámicas es mucho mas sencillo. Simplemente agregas la referencia, especificas la dependencia (si es que el proyecto de la lib está abierto en el mismo namespace) y agregas el "using" correspondiente. Nada más. Ni siquiera debes copiar la dll al directorio de uso, esto lo hace sólo el entorno. Te aseguro que crear una clase en otra dll o en el mismo proyecto es casi el mismo esfuerzo. Esto es genial.

No existen dos archivos al estilo C++ (h y cpp) sino, como en Java, sólo uno. Esto evita tener que estar declarando y definiendo. En C++ puedes hacerlo también pero cuando defines un método dentro del cuerpo de una clase es necesariamente un método "inline" y a veces uno no desea que esto sea así.

Puede dar valor por defecto a propiedades en el mismo sitio donde la declaras. En C++ esto sólo puedes hacerlo si la propiedad es estática (ojo, esto tiene sentido pero bien el compilador se podría encargar de situar la inicialización en el contructor si la variable no fuese estática).

Boxing y unboxing es sencillamente genial. Al igual que los delegados. Estas características posee un costo, claro, en C++ habilitando RTTI y una estructura de clases con una clase base común (algo que C++ nunca tuvo) se podría obtener una funcionalidad similar, pero en C# está ahí lista para utilizar y con una sintáxis mucho mas clara.

Propiedades del tipo get y set. En C++:

obj.prop = 10;

"prop" es sin duda una variable del objeto "obj", en C# se podría estar invocando un método con parámetro 10, de modo que podríamos realizar verificación de rangos o si lo deseamos podríamos establecer que "prop" sea read-only o write-only (algo imposible en C++).

Algo más de los delegados: en C++ la manera de especificar un nuevo comportamiento en clases derivadas suele realizarse por medio de métodos virtuales o funciones callback. Los métodos virtuales poseen la contra de tener que crear la clase que los contenga (ej: comparaciones de tipos de datos especificados para, por ejemplo, mapas en la lib. STL), la opción de funciones callback es media engorrosa, ya que debemos "salir" de la clase para luego volver a "entrar". En C# se pueden especificar de manera muy sencilla un método como si fuese una función callback (algo que en C++ no se puede hacer pues la clase forma parte del prototipo de la función) y no sólo eso podríamos "colgar" más de un método a partir de dicho delegado. Un ejemplo clásico es el timer, cada n milisegundos se invoca una función. Un método de cualquiera de nuestras clases podría ser dicho método pero si lo deseamos podríamos especificar que cada n milisegundos se invoque no sólo un método sino 2 o 3 o los que queramos de modo multicast.

Bueno, estas son sólo algunas ventajas pero posee muchas más.


Pogacha

 
Citarpero cuando defines un método dentro del cuerpo de una clase es necesariamente un método "inline" y a veces uno no desea que esto sea así
Le agregas static y listo.
Citar"prop" es sin duda una variable del objeto "obj", en C# se podría estar invocando un método con parámetro 10, de modo que podríamos realizar verificación de rangos o si lo deseamos podríamos establecer que "prop" sea read-only o write-only (algo imposible en C++).
El c++ builder de borland lo permitia y lu usaba a lo sin gollete.

martiño

Cada uno en su campo, C++ y Java son superiores a C#.

Todas esas ventajas que habeis citado tambien las tiene Java, y es multiplataforma, de hecho Microsoft invento C# porque sun les denunció cuando los entornos para Java de Microsoft empezaban a añadir extensiones y a pervertir el lenguaje. Con lo cual me planteo 2 posibilidades:

a) Quiero hacer unha aplicacion empresarial, en la que la velocidad me da igual, y lo que me importa es el tiempo y coste de desarrollo.

Elijo Java. No le veo ninguna ventaja a C# sobre este. Java es mas abierto que C#, porque aunque es de Sun en principio, hay muchos mas fabricantes implicados y que tienen voz y voto. No me vendo a Microsoft, cosa que es importante si tengo una empresa, no estar dependiendo de un solo fabricante y puedo tener ordenadores diferentes SOs. Java es multiplataforma, se puede hasta programar para moviles.

b) Quiero hacer una aplicacion con gráficos en tiempo real, donde lo que importa es la velocidad.

Elijo C/C++. C# es mas lento y no es portable. Y a lo mejor quiero hacer un juego para PS2.

Teniendo Java y C++ no veo razon para usar C#, porque estos dos lenguajes son superiores en sus respectivos campos. Soy consciente de que siendo el buque insignia de Microsoft nos lo van a meter hasta en la sopa, pero se usará porque es de microsoft no porque el producto sea mejor, como ha pasado miles de veces.

- No me voy a poner a defender que se hacen interfaces graficas en C++ mejor que en C# o Java, porque no es cierto, aunque usando librerias como wxwindows se hacen de forma aceptablemente facil. Este es un campo en lo que prima es el tiempo y costes de desarrollo y C++ no es lo ideal, ya que es un lenguaje muy dificil que exige gente muy preparada, C# y Java son aptos para un abanico mucho mas grande de programadores.

- Del mismo modo no acepto que C# o Java son mejores que C++ para aplicaciones de tiempo real, porque la velocidad es crucial aqui y es evidente que C++ es sustancialmente mas rápido y esto no va a cambiar en un futuro, porque cuando haya mejores maquinas con estas los programas C++ iran aún mas rapido y hay cosas para las que jamas habrá potencia suficiente, vease la fisica y aspectos de la IA como por ejemplo la busqueda de caminos. C++ es un lenguaje que permite el manejo de memoria a muy bajo nivel y esto es fundamental para la velocidad.

Saludos.

deadLock++

 No creo que C# reemplace a C++ ni a Java. En mi opinión si creo que C# tendrá su lugar en ciertas áreas y que es idóneo para un montón de tareas. No veremos a Id Software realizar un Doom4 ni 5 ni 6 en C# pero comparto la opinión de muchos usuarios de aquí en cuanto a que es una opción ideal para ciertas circunstancias (grupos de desarrollos pequeños o con escasos presupuestos). De hecho, recientemente ha salido al mercado un juego AAA de estrategia en tiempo real creado en C#.

Un juego como The Sims podría estar creado en C# y estamos hablando de uno de los juegos más exitosos de todos los tiempos.

El hecho de ser multiplataforma para el caso de juegos es muy relativo, si hago mi juego en C++ para Windows (con OpenGL si quieres) no compilará en PS2 ni en GameCube ni en XBOX porque ninguna de ellas posee OpenGL. En todo caso necesitaré de una librería tipo RenderWare.

Y si respecto a multiplataforma te refieres a otros sistemas operativos ¿Para que quisiera que mi juego corriese en Linux, Solaris, Digital Unix y Mac? Son plataformas prácticamente inexistentes en el ámbito gamers.

Por otro lado, aunque hagas tu juego en Java el mismo no podrá ejecutarse en ninguna consola, ya que no cuentan con JVMs y aunque encuentres el modo de hacerlo ¿a que velocidad piensas que lo hará? ¿porqué no intentas hacer algo similar a Haddd pero en Java para que comparemos velocidades?   O_O

martiño

 
CitarEl hecho de ser multiplataforma para el caso de juegos es muy relativo, si hago mi juego en C++ para Windows (con OpenGL si quieres) no compilará en PS2 ni en GameCube ni en XBOX porque ninguna de ellas posee OpenGL. En todo caso necesitaré de una librería tipo RenderWare.

Hacer que un juego renderice con 2 APIs es facil, todas son lo mismo. No tiene nada que ver con portar TODO el codigo.

CitarDe hecho, recientemente ha salido al mercado un juego AAA de estrategia en tiempo real creado en C#.

Por que no lo nombras?

Citar
Y si respecto a multiplataforma te refieres a otros sistemas operativos ¿Para que quisiera que mi juego corriese en Linux, Solaris, Digital Unix y Mac? Son plataformas prácticamente inexistentes en el ámbito gamers.

Juegos no, pero otras apicacions de tiempo real si.

Citar
Por otro lado, aunque hagas tu juego en Java el mismo no podrá ejecutarse en ninguna consola, ya que no cuentan con JVMs y aunque encuentres el modo de hacerlo ¿a que velocidad piensas que lo hará? ¿porqué no intentas hacer algo similar a Haddd pero en Java para que comparemos velocidades? ses.gif
Citar

Nadie ha propuesto hacer juegos en java para consolas. En mi post anterior ponia Java como lenguaje ideal patra hacer aplicaciones empresariales sobre todo relacionadas con la web.

Zaelsius

 Sobre el juego profesional desarrollado con C#, creo que es Arena Wars, que no sé si será AAA jeje, pero mala pinta no tiene.

De todas maneras, el título del hilo es "porqué C# y no C++", así que Java estaba descartado desde un principio ¿no?.

deadLock++

 
Citar
Por que no lo nombras?

Como no: "Tin Soldiers: Alexander The Great". No es en "tiempo real" como había mencionado sino basado en turnos (perdón pero no lo recordaba).

Sitio web oficial: http://www.koiosworks.com/



Citar
Nadie ha propuesto hacer juegos en java para consolas. En mi post anterior ponia Java como lenguaje ideal patra hacer aplicaciones empresariales sobre todo relacionadas con la web.

Ok, pero dentro del contexto en el que estamos hablando, en un foro de desarrolladores de juegos creo que desarrollar juegos es el aspecto mas relevante.

Vicente

Cita de: "martiño"Cada uno en su campo, C++ y Java son superiores a C#.

Todas esas ventajas que habeis citado tambien las tiene Java, y es multiplataforma, de hecho Microsoft invento C# porque sun les denunció cuando los entornos para Java de Microsoft empezaban a añadir extensiones y a pervertir el lenguaje. Con lo cual me planteo 2 posibilidades:

a) Quiero hacer unha aplicacion empresarial, en la que la velocidad me da igual, y lo que me importa es el tiempo y coste de desarrollo.

Elijo Java. No le veo ninguna ventaja a C# sobre este. Java es mas abierto que C#, porque aunque es de Sun en principio, hay muchos mas fabricantes implicados y que tienen voz y voto. No me vendo a Microsoft, cosa que es importante si tengo una empresa, no estar dependiendo de un solo fabricante y puedo tener ordenadores diferentes SOs. Java es multiplataforma, se puede hasta programar para moviles.

B) Quiero hacer una aplicacion con gráficos en tiempo real, donde lo que importa es la velocidad.

Elijo C/C++. C# es mas lento y no es portable. Y a lo mejor quiero hacer un juego para PS2.

Teniendo Java y C++ no veo razon para usar C#, porque estos dos lenguajes son superiores en sus respectivos campos. Soy consciente de que siendo el buque insignia de Microsoft nos lo van a meter hasta en la sopa, pero se usará porque es de microsoft no porque el producto sea mejor, como ha pasado miles de veces.

- No me voy a poner a defender que se hacen interfaces graficas en C++ mejor que en C# o Java, porque no es cierto, aunque usando librerias como wxwindows se hacen de forma aceptablemente facil. Este es un campo en lo que prima es el tiempo y costes de desarrollo y C++ no es lo ideal, ya que es un lenguaje muy dificil que exige gente muy preparada, C# y Java son aptos para un abanico mucho mas grande de programadores.

- Del mismo modo no acepto que C# o Java son mejores que C++ para aplicaciones de tiempo real, porque la velocidad es crucial aqui y es evidente que C++ es sustancialmente mas rápido y esto no va a cambiar en un futuro, porque cuando haya mejores maquinas con estas los programas C++ iran aún mas rapido y hay cosas para las que jamas habrá potencia suficiente, vease la fisica y aspectos de la IA como por ejemplo la busqueda de caminos. C++ es un lenguaje que permite el manejo de memoria a muy bajo nivel y esto es fundamental para la velocidad.

Saludos.
Hola,

no comparto para nada tu opinión de Java y C# la verdad, yo he usado los dos (vengo a .NET desde Java) y si no le ves ventajas a .NET sobre Java, no se, me da que no lo has usado mucho (oye, lo mismo me equivoco).

Citar
Todas esas ventajas que habeis citado tambien las tiene Java, y es multiplataforma, de hecho Microsoft invento C# porque sun les denunció cuando los entornos para Java de Microsoft empezaban a añadir extensiones y a pervertir el lenguaje. Con lo cual me planteo 2 posibilidades:

Java no permite sobrecarga de operadores por ejemplo,del rendimiento de las interfaces en Swing ni hablo, que es de risa comparado con Windows.Forms (otra cosa sería que comparemos SWT, pero eso es harina de otro costal), no tiene propiedades, no hay delegados,... Y eso es lo que se ve a simple vista, cuando te metes en faena .NET tiene ciertos detallitos que no veas como se echan de menos en Java (al reves también me ha pasado alguna vez, hay que reconocerlo, pero es bastante menos común). Y yo no conozco ASP.NET, pero conozco la tira de programadores web que se han ido de JSP a ASP.NET (en el mundo empresarial).

Citar
Elijo Java. No le veo ninguna ventaja a C# sobre este. Java es mas abierto que C#, porque aunque es de Sun en principio, hay muchos mas fabricantes implicados y que tienen voz y voto. No me vendo a Microsoft, cosa que es importante si tengo una empresa, no estar dependiendo de un solo fabricante y puedo tener ordenadores diferentes SOs. Java es multiplataforma, se puede hasta programar para moviles.

Mientras que .NET es un estandar de la ECMA, liberado por Microsoft desde un principio (por eso existe Mono), Java es propietario de Sun. Y muchas empresas de esas con voz y voto llevan pidiendole a Sun que lo libere desde hace mucho tiempo, y ni caso. .NET ahora mismo, además de ser portable a Win y Linux, acepta bastantes lenguajes, cosa que no ocurre en Java, y eso es muy comodo, porque mucha gente está hecha a su lenguaje, y así es mucho más fácil moverlos a .NET. Cuando compilen Java a ILM ya verás...  (y creo que ya hay un proyecto para hacer eso).

Y .NET también vale para móviles, para eso tiene el Compact Framework (su versión de J2ME).

No se, parece un poco que no te gusta .NET porque es de Microsoft más que por sus características reales...

Citar
Elijo C/C++. C# es mas lento y no es portable. Y a lo mejor quiero hacer un juego para PS2.

Nadie dice que no sean más rápidos que C#, solo que la diferencia de velocidad es insignificante comparada con el incremento en la velocidad de desarrollo.

Si no de todas formas, puedes buscarnos un motor 3D en Java más potente que Haddd o un motor C++ con las mismas características que se haya desarrollado en condiciones similares igual de rápido ;)

CitarC++ es un lenguaje que permite el manejo de memoria a muy bajo nivel y esto es fundamental para la velocidad.

Ya, y ASM a más bajo nivel todavía, pero nadie hace un juego entero en ASM, porque es el equivalente al suicidio ritual. Yo lo veo como una evolución: antes su usaba ASM, luego C, luego C++, y algún día le tocará palmar al C++, como a todos. Que Microsoft tenga más o menos prisa por palmarlo ya es otra cosa... ;)

Un saludo!

Vicente

martiño

 
Citarno comparto para nada tu opinión de Java y C# la verdad, yo he usado los dos (vengo a .NET desde Java) y si no le ves ventajas a .NET sobre Java, no se, me da que no lo has usado mucho (oye, lo mismo me equivoco).

Yo he usado mucho Java, de C# hablo por lo que he leido y por los posts de la gente en este topic. Por eso no me he centrado nunca comparar "features" de ambos.

- Cierto que las interfaces con swing son lentas, pero tambien estan AWT y SWT. Para gustos hay colores. Ademas si estamos hablando de una aplicación web la interfaz ya es otra historia.

- Java tiene a favor la multiplataforma, que es un hecho. Hay implementaciones de J2SE, J2EE y J2ME para multitud de plataformas y de mas de un fabricante. Hay programas serios, grandes y comerciales hechos en Java que son multiplataforma (el Matlab o el MagicDraw por poner ejemplos que he usado), nombradme alguno en C#. Me parece muy bien que .NET sea todo lo abierto que quieras pero los hechos son lo que cuentan. Java es mutiplataforma de hecho y .NET no, y esto me parece que no tiene discusion. La vida fuera del mundo Microsoft existe y C# no tiene cabida ahí.

- No he usado C# para discutir si tiene mas cosas que Java, pero personalmente me he encontrado muy a gusto en Java y no he echado de menos nada importante. Los temas que comentais me parecen detalles menores mucho menos importantes que lo comentado previemente y me da la sensacion que Java y C# son muy similares.

CitarYa, y ASM a más bajo nivel todavía, pero nadie hace un juego entero en ASM, porque es el equivalente al suicidio ritual. Yo lo veo como una evolución: antes su usaba ASM, luego C, luego C++, y algún día le tocará palmar al C++, como a todos. Que Microsoft tenga más o menos prisa por palmarlo ya es otra cosa... wink2.gif

Yo odio el ASM tanto como tu pero creo que es evidente que la diferencia entre ASM y C++ es infinitamente mayor que entre C++ y C#/Java. Comparando Java y C++ es cierto que en Java se desarrolla mas rapido, no mucho mas rapido si se sabe programar bien en C++, y desde luego no brutalmente mas rapido, cosa que si ocurre en C++ con respecto a ASM. Si en ASM se desarrolla a velocidad 1 en C++ se hace a 10 y en Java a 12 (suponiendo programadores capaces en los 3 campos y en aplicaciones que se puedan hacer con los 3).

Otra caracteristica de C++ es que permite programar a muy bajo y muy alto nivel a la vez.

Cierto que amaestrar a un programador de C++ es mucho mas dificil que a uno de C#/Java. Desde luego si yo tuviese una empresa no haría mis aplicaciones de contabilidad en C++.

C++ es el estandar para graficos en tiempo real hoy en dia, y no veo cerca el dia que C# lo reemplace en este ambito. Cierto que hubo un dia en que C++ se usaba para todo y esto está cambiando, pero este es un reducto en que veo dificil que C++ desaparezca a corto plazo, recordemos que el quake3 aun estaba en C.

Saludos.

Haddd

 Bien, entonces utiliza Managed C++. Tendrás C++y .NET. :D  

Vicente

Cita de: "martiño"
Citarno comparto para nada tu opinión de Java y C# la verdad, yo he usado los dos (vengo a .NET desde Java) y si no le ves ventajas a .NET sobre Java, no se, me da que no lo has usado mucho (oye, lo mismo me equivoco).

Yo he usado mucho Java, de C# hablo por lo que he leido y por los posts de la gente en este topic. Por eso no me he centrado nunca comparar "features" de ambos.

- Cierto que las interfaces con swing son lentas, pero tambien estan AWT y SWT. Para gustos hay colores. Ademas si estamos hablando de una aplicación web la interfaz ya es otra historia.

- Java tiene a favor la multiplataforma, que es un hecho. Hay implementaciones de J2SE, J2EE y J2ME para multitud de plataformas y de mas de un fabricante. Hay programas serios, grandes y comerciales hechos en Java que son multiplataforma (el Matlab o el MagicDraw por poner ejemplos que he usado), nombradme alguno en C#. Me parece muy bien que .NET sea todo lo abierto que quieras pero los hechos son lo que cuentan. Java es mutiplataforma de hecho y .NET no, y esto me parece que no tiene discusion. La vida fuera del mundo Microsoft existe y C# no tiene cabida ahí.

- No he usado C# para discutir si tiene mas cosas que Java, pero personalmente me he encontrado muy a gusto en Java y no he echado de menos nada importante. Los temas que comentais me parecen detalles menores mucho menos importantes que lo comentado previemente y me da la sensacion que Java y C# son muy similares.

CitarYa, y ASM a más bajo nivel todavía, pero nadie hace un juego entero en ASM, porque es el equivalente al suicidio ritual. Yo lo veo como una evolución: antes su usaba ASM, luego C, luego C++, y algún día le tocará palmar al C++, como a todos. Que Microsoft tenga más o menos prisa por palmarlo ya es otra cosa... wink2.gif

Yo odio el ASM tanto como tu pero creo que es evidente que la diferencia entre ASM y C++ es infinitamente mayor que entre C++ y C#/Java. Comparando Java y C++ es cierto que en Java se desarrolla mas rapido, no mucho mas rapido si se sabe programar bien en C++, y desde luego no brutalmente mas rapido, cosa que si ocurre en C++ con respecto a ASM. Si en ASM se desarrolla a velocidad 1 en C++ se hace a 10 y en Java a 12 (suponiendo programadores capaces en los 3 campos y en aplicaciones que se puedan hacer con los 3).

Otra caracteristica de C++ es que permite programar a muy bajo y muy alto nivel a la vez.

Cierto que amaestrar a un programador de C++ es mucho mas dificil que a uno de C#/Java. Desde luego si yo tuviese una empresa no haría mis aplicaciones de contabilidad en C++.

C++ es el estandar para graficos en tiempo real hoy en dia, y no veo cerca el dia que C# lo reemplace en este ambito. Cierto que hubo un dia en que C++ se usaba para todo y esto está cambiando, pero este es un reducto en que veo dificil que C++ desaparezca a corto plazo, recordemos que el quake3 aun estaba en C.

Saludos.
Hola,

Citar
- Cierto que las interfaces con swing son lentas, pero tambien estan AWT y SWT. Para gustos hay colores. Ademas si estamos hablando de una aplicación web la interfaz ya es otra historia.

las interfaces AWT son feisimas (y eso aunque parece una tonteria es importante), y SWT no viene con la JDK y no es "multiplataforma". Si cogemos lo que nos da de serie la JDK frente al SDK.NET, no hay color. En interfaces web no lo se, lo ASP.NET frente a JSP ya lo he oido muchisimo, y yo desarrollo servicios web en .NET, y poca diferencia entre escribir eso o un método normal, me puedo abstraer de casi todo (en Java no lo se, nunca lo he hecho).

Citar
Java es mutiplataforma de hecho y .NET no, y esto me parece que no tiene discusion.

Java es multiplataforma y .NET es multilenguaje. Y ahora con Mono multiplataforma tambien ;)

Citar
No he usado C# para discutir si tiene mas cosas que Java, pero personalmente me he encontrado muy a gusto en Java y no he echado de menos nada importante.

Yo tampoco hecho muchas cosas de menos, pero es que casi todo es más sencillo, o mejor simplemente. Y no me costó casi nada moverme de Java a C#.

Citar
y me da la sensacion que Java y C# son muy similares.

Si, es verdad, son muy similares. Microsoft se ha inspirado en Java y C++ para hacer C# (puede poner copiado en vez de inspirado tambien ;)). Y lo bueno es que han podido copiar todas las cosas buenas, y cambiar todas las malas.

Citar
Comparando Java y C++ es cierto que en Java se desarrolla mas rapido, no mucho mas rapido si se sabe programar bien en C++

Si los dos programadores son buenos, se desarrolla muucho más rapido en Java, aunque solo sea porque ya la JDK te lo da todo (idem con .NET).

Citar
Hay programas serios, grandes y comerciales hechos en Java que son multiplataforma (el Matlab o el MagicDraw por poner ejemplos que he usado), nombradme alguno en C#

Se me viene a la cabeza RealmForge (no es comercial, pero es de juegos, open source, y multiplataforma). De todas formas Java lleva bastante más tiempo en el mercado que .NET, dale tiempo.

Fijate este parrafo de RealmForge (en overview):

Citar
The RealmForge GDK runs on any operating system that the .NET Framework can be installed on: these include Windows 98, ME, 2000, NT, and XP. The RealmForge GDK can also be run on nearly all popular operating systems including Windows, Linux, Solaris, FreeBSD, HP-UX, and MacOS X when Mono is installed. Mono allows applications written in any of the countless .NET languages including C#, J#, and VB.NET to run on any platform. Similar to Java, the same build can be distributed to an run on any of these operating systems making it cross-platform interoperable. This is as opposed to the hacked support for different platforms that is accomplished in projects written in native languages like C++. This requires the maintenance of different builds and distributions for each platform specific considerations for each and every targeted platform by way of countless ifdef statements. Alternatively, .NET languages adhere to the philosophy of write once, run anywhere.

Pero bueno, creo que hasta que no lo pruebes no te va a convencer nadie ;) Un saludo!

Vicente



Vicente

 Hola,

me parece lógico también poner esto sobre RealmForge:

Citar
At the moment there are a couple extra steps that are required to use OpenGL and SDL instead of DirectX. Also the current version of RealmForge has not been tested on non-windows platforms yet, though Axiom has been successfully run on Linux.

Un saludo!

Vicente

donald

 se basan en Axiom , un motor c#

realmforge...hacer juegos de rol sin programar...jeje ...no sé yo...

estaría muy bien ;) ...pero suena a sci-fi...

Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.