Foros - Stratos

Proyectos => Jad Engine => Mensaje iniciado por: en 23 de Diciembre de 2004, 02:16:27 PM

Título: Porque Usar C# Y No C++
Publicado por: en 23 de Diciembre de 2004, 02:16:27 PM
 Buenas,
 
  Yo tb soy programador, pero pienso q a lahora de seleccionar un motor gráfico
  es verdaderamente impotante la respuesta que ese motor , es decir, la rapidez
  de ejecución y que no consuma mucha maquina, es decir que no riquiera un PV
  por todo esto creo que el c# va ir a pedales y va a requerir mucha maquina
  q por ejem. si se hace en C++.
  Estoy haciendo cosas con la libreria SDL.
Saludos
_Willa
Título: Porque Usar C# Y No C++
Publicado por: _Grey en 23 de Diciembre de 2004, 03:27:12 PM
 Yo dije lo mismo (mas o menos) hace algun tiempo, Haddd insinuo ciertos quebraderos de cabeza con C++, que no ocurren en C#, ademas de comentar que este se compila antes de ejecutarse.....

.... y que demonios, seguro que estaban empezando a darle y esto influyo lo suyo :P.

Saludos.
Título: Porque Usar C# Y No C++
Publicado por: Haddd en 23 de Diciembre de 2004, 04:18:39 PM
 C++ es más rápido que C#, sin duda, aunque hay algunas cosas que en C# pueden ser más rápidas. Pero C# es muucho más productivo. Y si tienes dudas de velocidad, coge el engine que hemos hecho, a ver que te parece su rendimiento.


Título: Porque Usar C# Y No C++
Publicado por: Vicente en 23 de Diciembre de 2004, 05:19:22 PM
 Hola,

la ganancia que te da el c++ en velocidad frente al c# (que es poca), no justifica la ganancia de velocidad de desarrollo de c# sobre c++ (que es mucha ;)). Es un lenguaje mucho más moderno, con características que lo hacen bastante más cómodo a la hora de usarlo. Y además, es lo que se va a terminar imponiendo en un futuro (a lo mejor para juegos le cuesta, pero para todo lo demás casi seguro que si). Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: Buffon en 23 de Diciembre de 2004, 06:11:12 PM
Cita de: "Vicente"Hola,

la ganancia que te da el c++ en velocidad frente al c# (que es poca), no justifica la ganancia de velocidad de desarrollo de c# sobre c++ (que es mucha ;)). Es un lenguaje mucho más moderno, con características que lo hacen bastante más cómodo a la hora de usarlo. Y además, es lo que se va a terminar imponiendo en un futuro (a lo mejor para juegos le cuesta, pero para todo lo demás casi seguro que si). Un saludo!

Vicente
en esto tiene toda la razon.

piensa que hay empresas que aún programan con VB6 jajajajajaaj
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 23 de Diciembre de 2004, 06:54:31 PM
 Por esa regla de 3 todos deberíamos usar C# y cualquier empresa un poco lista lo usaría y no es así. Cada lenguaje tiene su campo de aplicación y es cada uno quien debe saber qué lenguaje aplicar dependiendo de qué vaya a programar.

saludos
Título: Porque Usar C# Y No C++
Publicado por: seryu en 23 de Diciembre de 2004, 08:50:01 PM
Cita de: "_Willa"Buenas,
 
  Yo tb soy programador, pero pienso q a lahora de seleccionar un motor gráfico
  es verdaderamente impotante la respuesta que ese motor , es decir, la rapidez
  de ejecución y que no consuma mucha maquina, es decir que no riquiera un PV
  por todo esto creo que el c# va ir a pedales y va a requerir mucha maquina
  q por ejem. si se hace en C++.
  Estoy haciendo cosas con la libreria SDL.
Saludos
_Willa
dices qe te importa la rapidez del motor y luego dices qe estas usando SDL? eso como se come?  :blink:  
Título: Porque Usar C# Y No C++
Publicado por: ALRAZ en 23 de Diciembre de 2004, 10:13:03 PM
 habrá SDL para C#?  :D

Título: Porque Usar C# Y No C++
Publicado por: Vicente en 23 de Diciembre de 2004, 11:05:49 PM
Cita de: "ethernet"Por esa regla de 3 todos deberíamos usar C# y cualquier empresa un poco lista lo usaría y no es así. Cada lenguaje tiene su campo de aplicación y es cada uno quien debe saber qué lenguaje aplicar dependiendo de qué vaya a programar.

saludos
Veo que vas cogiendo la estrategia de M$ ;)

No se, puede que sea porque me encanta el la plataforma .NET, pero creo que se va a comer muchas cosas, y los juegos no van a ser una excepcion. Se ve que Microsoft está haciendo un esfuerzo con Managed DirectX, y de XNA no se nada de nada, pero no me extrañaría que también trabaje sobre .NET. Su próximo SO es sobre .NET, etc etc.

En el mundo de las empresas, en españa todavía no está implantado, pero ya empieza a entrar, conozco de empresas grandes que para sus CRMs y cosas así, ya no aceptan VB6 y se piensan usar un SAP o un desarrollo en .NET a medida. Dadle tiempo a que aparezcan buenos profesionales del tema, y se empezará a implantar seguro. Pero vamos, que esto es algo totalmente personal, y quizás el currar en el plano tanto profesional como de hobby en .NET no me hagan el más adecuado para opinar ;)

Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: Pogacha en 23 de Diciembre de 2004, 11:16:02 PM
 c++ vs c-sharp
c++:
Mas usado, mucha info, muchos ejemplos, mas portabilidad, desde bajo a alto nivel, muchos años de experiencia en todas las formas, no saturado ( sus capacidades alcanzan para hacer todo, y por varios años será así)

c-sharp:
Mas nuevo (o sea mas adaptado a las necesidades actuales), poco portable, no sirve para hacer drivers ni sistemas operativos ni cosas a nivel hardware, lo que separa la programación definitivamente en tres : dependiente del hardware ( c, c++  y asm)- intermedios - ( java - c-sharp ) - interpretados ( javascript - flash).

Supuestamente el c++ es menos optimo que escribir todo en asm, pero se sacrifica eficiencia (casí la mitad) para poder programar mas facilmente. Entonces donde el tiempo no importe se programa en C++ y cuando tenes un innerloop o función critica lo haces en asm.
Bien ... ahora los nuevos compiladores aprovechan mucho mas las nuevas tecnologias, y aparte de eso, en nuestro caso, la placa de video hace todo el trabajo pesado, por lo que perder un 10 % de eficiencia entre c++ y c-sharp no seria problema.

No obstante, a mi, particularmente, no me termina de convencer, pues las aguas estan turbias aun.
Cuando sepa mas sobre sharp y su futuro veré que hago.

Saludos
Título: Porque Usar C# Y No C++
Publicado por: martiño en 23 de Diciembre de 2004, 11:44:51 PM
 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). Pero dejando los precedentes a parte, esto quiere decir que solo se puede trabajar en PC/Windows (y no me valen los ports raros de .NET). En el mundo hay otras plataformas  (Linux/Unix/Mac/Consolas). C++ es un estandar de la ISO en el que se programa para cuelquier cosa.

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?

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.

Un saludo.

Martiño.
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 23 de Diciembre de 2004, 11:49:54 PM
 Vicente: para mi la estrategia de MS es muy buena (y no hablo sólamente de marketing). Recuerdo cuando se hizo la primera conferencia para hablar de .NET que fueron 15000 personas especializadas (no hablamos de frikis o gente que no tiene nada que hacer, hablamos de gente que se gasta un pastón en ir).  Me da igual los que digan que no es un estandar abierto, que no tiene código libre, que es de Microsoft... viendo las soluciones de CORBA y Sun (j2ee) me quedo con .NET (solo creo en los standar de facto) porque ni CORBA consigue lo que .NET con la misma facilidad ni j2ee es capaz de interactuar con otros lenguajes a pesar de los esfuerzos de OMG (llegaron tarde).

Volviendo al tema empresarial si me hablas de aplicaciones puramente empresariales que interesa  muchísimo la velocidad de desarrollo y la facilidad de apredizaje está de PM, pero no todo en este planeta son grandes máquinas, tb existen máquinas pequeñas (y no tan pequeñas) que necesitan lenguajes como C y C++ (dsp's... incluso FPGA's XD)

un saludo :**
Título: Porque Usar C# Y No C++
Publicado por: Zaelsius en 23 de Diciembre de 2004, 11:57:53 PM
 
Cita de: "martiño"Pero dejando los precedentes a parte, esto quiere decir que solo se puede trabajar en PC/Windows (y no me valen los ports raros de .NET).
:blink:  De raro nada, Mono rules.

Ya hay empresas desarrollando software multiplataforma bajo .Net: enlace

Y vamos, que yo he probado a compilar con Mono, y funciona. Sólo les falta terminar la implementación de las Windows.Forms, que seguramente esté lista para el primer trimestre del año que viene.
Título: Porque Usar C# Y No C++
Publicado por: deadLock++ en 24 de Diciembre de 2004, 01:12:34 AM
 
QUOTE (ALRAZ)
habrá SDL para C#?  :D [/quote]
http://cs-sdl.sourceforge.net/


QUOTE (martino)
C# es de Microsoft.(Esto mismo por si solo ya deberia ser un inconveniente... [/quote]

El tipo que está atrás del C# en MS es el mismo que creó el mítico compilador Turbo Pascal y quien diseñó el Delphi. Quedate tranquilo que está en buenas manos.

QUOTE (martiño)
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...
[/quote]

C# es mucho más veloz que Java o mejor dicho es mucho más veloz que las versiones no tan nuevas de Java (actualmente está mejorando un poco en este aspecto).

Según Tom Miller (quien estuvo a cargo de Managed DirectX en MS) la eficiencia de una aplicación C# con MDX es cercana al 95% de una aplicación C++ con DX, según lo que vi yo esta afirmación es demasiado optimista pero en muchos casos ronda el 90%.

Claro que C# no reemplazará al C++ en todo, pero si muchas de las aplicaciones que ahora usan C++ utilizarán en el futuro C#. Yo realmente estoy muy entusiasmado con este nueva solución, me encanta poder utilizar lo mejor de los dos mundos según requiera y no me extrañaría, como ya comentaron, que XBOX 2 se puedan programa en C#/MDX.
Título: Porque Usar C# Y No C++
Publicado por: CoLSoN2 en 24 de Diciembre de 2004, 01:29:16 AM
 Yo he hecho cosas en C#, aplicaciones típicas con interfaz windows, y ME ENCANTA. Tanto el lenguaje como el IDE (VC# Express), y si no lo uso para juegos es en un 95% por que no todo el mundo (mas bien pocos) tienen el .NET Framework instalado, en ningún caso por la velocidad o cualquier otra cosa. En un par de años cuando esté tan extendido como .. (no, la JVM es igual de cacosa en este aspecto XD) .. no se, ¿winzip? XD ya veremos
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 24 de Diciembre de 2004, 10:08:12 AM
 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
Título: Porque Usar C# Y No C++
Publicado por: deadLock++ en 24 de Diciembre de 2004, 03:11:03 PM
 
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.

Título: Porque Usar C# Y No C++
Publicado por: Pogacha en 24 de Diciembre de 2004, 05:16:50 PM
 
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.
Título: Porque Usar C# Y No C++
Publicado por: martiño en 24 de Diciembre de 2004, 06:42:27 PM
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.
Título: Porque Usar C# Y No C++
Publicado por: deadLock++ en 24 de Diciembre de 2004, 07:34:57 PM
 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
Título: Porque Usar C# Y No C++
Publicado por: martiño en 24 de Diciembre de 2004, 07:40:06 PM
 
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.
Título: Porque Usar C# Y No C++
Publicado por: Zaelsius en 24 de Diciembre de 2004, 07:50:39 PM
 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?.
Título: Porque Usar C# Y No C++
Publicado por: deadLock++ en 24 de Diciembre de 2004, 07:59:30 PM
 
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/

(http://www.koiosworks.com/images/boxart_large.jpg)

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.
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 01:03:10 AM
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
Título: Porque Usar C# Y No C++
Publicado por: martiño en 25 de Diciembre de 2004, 03:09:30 AM
 
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.
Título: Porque Usar C# Y No C++
Publicado por: Haddd en 25 de Diciembre de 2004, 12:34:36 PM
 Bien, entonces utiliza Managed C++. Tendrás C++y .NET. :D  
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 02:53:02 PM
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

Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 02:53:46 PM
 Perdón, siempre quoteo mal...
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 03:01:43 PM
 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
Título: Porque Usar C# Y No C++
Publicado por: donald en 25 de Diciembre de 2004, 03:52:44 PM
 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...

Título: Porque Usar C# Y No C++
Publicado por: StraT en 25 de Diciembre de 2004, 04:22:39 PM
 No veo un post mas indicado para poner una pruebilla que he hecho, la cosa se trata de dibujar un triangulo en OpenGl, sobre una ventana SDL, usando C# con la libreria Tao:

RenderContext.cs:



#region using

using Tao.Sdl;
using Tao.OpenGl;

#endregion

namespace Render

{

   public class RenderContext

   {

       public RenderContext(int width, int height, int bbp, int flags)

       {

           Sdl.SDL_Init(Sdl.SDL_INIT_VIDEO);
           Sdl.SDL_SetVideoMode(width, height, bbp, flags);
           Sdl.SDL_WM_SetCaption("SSE Engine", null);

           Gl.glViewport(0, 0, width, height);
           Gl.glMatrixMode(Gl.GL_PROJECTION);
           Gl.glLoadIdentity();

           Glu.gluPerspective(45.0f, width /
               height, 0.1f, 100.0f);

           Gl.glMatrixMode(Gl.GL_MODELVIEW);
           Gl.glLoadIdentity();

       }

   }

}



Viewer.cs:



#region using

using Tao.Sdl;
using Tao.OpenGl;
using Render;

#endregion

public class Viewer
{

   static int Renderiza()

   {

       Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);

       Gl.glLoadIdentity();

       Gl.glBegin(Gl.GL_TRIANGLES);                    

           Gl.glColor3f(1.0f,0.0f,0.0f);            
     Gl.glVertex3f( 0.0f, 1.0f, -3.0f);
 
     Gl.glColor3f(0.0f,1.0f,0.0f);  
     Gl.glVertex3f(-1.0f,-1.0f, -3.0f);
 
     Gl.glColor3f(0.0f,0.0f,1.0f);
           Gl.glVertex3f( 1.0f,-1.0f, -3.0f);
   
       Gl.glEnd();

    return 1;

   }

   static void Main()

   {

       RenderContext rContext = new RenderContext(800, 600, 32,
           Sdl.SDL_OPENGL);

       bool AplicacionFinalizada = false;

    Sdl.SDL_Event evento;

    while ( ! AplicacionFinalizada )
   
       {
 
           if (Sdl.SDL_PollEvent(out evento) > 0)
 
           {
 
               if ( evento.type == Sdl.SDL_QUIT )
 
               {
   
                   AplicacionFinalizada = true;
 
               }
 
               if ( evento.type == Sdl.SDL_KEYDOWN )
 
               {
   
                   if ( evento.key.keysym.sym == Sdl.SDLK_ESCAPE )
   
                   {
   
                       AplicacionFinalizada = true;
   
                   }
 
               }
 
           }
 
           else
 
           {

               Renderiza();
               Sdl.SDL_GL_SwapBuffers();

           }

       }
 
Sdl.SDL_Quit();

   }

}



Y punto, funciona bien, si tengo tiempo ya pondre una captura. Sin ánimo de caldear la discusion, podriamos comparar el numero de lineas en c++ y de archivos...

Saludos
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 04:40:37 PM
Cita de: "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...
Hola,

ya, yo me refería más a igual que pongo que los tios quieren hacer RealmForge multiplataforma, pues que todavía no lo han logrado. Aunque parece más cosa de DirectX vs OpenGL que de .NET en si. La verdad es que el SDK que quieren hacer es muy ambicioso... A ver que sale ;) Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: en 25 de Diciembre de 2004, 05:23:00 PM
 
Citarya, yo me refería más a igual que pongo que los tios quieren hacer RealmForge multiplataforma, pues que todavía no lo han logrado. Aunque parece más cosa de DirectX vs OpenGL que de .NET en si. La verdad es que el SDK que quieren hacer es muy ambicioso... A ver que sale wink2.gif Un saludo!

Me alegro que hayas sacado el tema de DirectX, nadie en su sano juicio haria nada en DirectX con vistas a rularlo en linux.
Título: Porque Usar C# Y No C++
Publicado por: martiño en 25 de Diciembre de 2004, 05:24:38 PM
 Ese era yo.
Título: Porque Usar C# Y No C++
Publicado por: Pogacha en 25 de Diciembre de 2004, 06:08:54 PM
 Me parece que el numero de lineas no importa, uno cutea y pastea, lo importante es la potencia (capacidad * simplesa), el c-sharp una vez entendido su mecanizmo es mucho mas claro y casi igual de capáz, sino el basic seria mejor pues usa menos lineas  :P .

Entre DX y OpenGL, Ogl es mejor sin duda (mismas capacidades, esta mas actualizado y es multiplataforma), pero para windows especificamente es mejor DX (pues esta hecho a medida) y entre c# y c++, no se pueden comparar pues tienen target distintos, c++ tiene todas las ventajas, pero para windows y cierto tipo de programas c# tiene las de ganar efectivamente, mayor simplesa, mas potencia y hecho a medida.
Con lo que a mi respeta, tengo cierto reselo con microsoft y sus intentos de monopolización encubiertos y trato de escapar todo lo que puedo de él (inutilmente  :angry: ), me parece que usar tanto DX como C# seria rendirse ante el opresor que inpone su mercado y esta es la unica razon para negarse a usar c# (cuando corresponde) que yo veo.

Saludos.
Título: Porque Usar C# Y No C++
Publicado por: Grugnorr en 25 de Diciembre de 2004, 06:26:36 PM
 Cansa leer tantas paparruchadas.

Primero y fundamental: Si han escogido hacer el motor en C#, será porque les motiva, y siendo un proyecto de hobby, como si lo han hecho en cobol.

Segundo: Yo diría que bastante bien les está yendo en tan poco tiempo con un lenguaje nuevo ;)

Tercero: Mucho leo de Java, pero nunca he visto nada decente de Java en 3d. Para los que dicen que C# es exactamente lo mismo que Java, que se culturicen un poco.

Cuarto: C# es un lenguaje standard ECMA, Java es propiedad de SUN. Eso es totalmente irrefutable, sí que el framework tiene mucha parte propiedad de Microsoft, si os pasáis por la web de MONO lo veréis muy clarito, simplemente se implementan esos módulos con APIs multiplataforma(GTK para WinForms, por ejemplo).

Quinto: Id a al web de AxiomEngine y los zelotes de la multiplataforma( a ver cuántos usáis otro SO ) os bajáis Axiom corriendo en Linux con TaoGl y C# en mono

Sexto: Os puedo asegurar que integrar distintas tecnologías en un proyecto, como usar una dll escrita en C++, objetos COM, otros lenguajes, etc etc es trivial en C#, un infierno en Java

Septimo, volviendo al tema de Java y C#... quien quiere comparar cosas tan básicas en eficiencia como colecciones genéricas, templates en c++ ?

PD: Algún profesional, que dé por favor su versión de cómo hoy en día los juegos descargan todo el código que pueden de C++ a script, editores y demás capas sobre C++... Creéis que UnrealScript es más rápido que C#?  ;)
Título: Porque Usar C# Y No C++
Publicado por: martiño en 25 de Diciembre de 2004, 07:46:52 PM
 Hola,

CitarCansa leer tantas paparruchadas.

La gente estaba dando su punto de vista de forma civilizada hasta tu post, hasta que llegaste tu en plan de avatar de la verdad y la justicia.

CitarPrimero y fundamental: Si han escogido hacer el motor en C#, será porque les motiva, y siendo un proyecto de hobby, como si lo han hecho en cobol.

Yo no me he metido con esto, cada uno programa en lo que le da la gana, y no voy a ser yo el que quiera imponer nada a nadie.

CitarMucho leo de Java, pero nunca he visto nada decente de Java en 3d. Para los que dicen que C# es exactamente lo mismo que Java, que se culturicen un poco.

Hay bindings de OpenGL para Java, perfectamente acelerado por hardware. Culturizate tu.

CitarC# es un lenguaje standard ECMA, Java es propiedad de SUN. Eso es totalmente irrefutable, sí que el framework tiene mucha parte propiedad de Microsoft, si os pasáis por la web de MONO lo veréis muy clarito, simplemente se implementan esos módulos con APIs multiplataforma(GTK para WinForms, por ejemplo).

Pretender vendernos la moto de que C# es abierto es algo que no merece comentarios. Usar .NET para desarrollar en linux tampoco. Los hechos son que en java estan metidos varios grandes fabricantes (Sun, Intel, HP, IBM por ejemplo) y en C# no. Lo de la ECMA es propaganda. Los hechos son lo que cuentan.

CitarId a al web de AxiomEngine y los zelotes de la multiplataforma( a ver cuántos usáis otro SO ) os bajáis Axiom corriendo en Linux con TaoGl y C# en mono

Hay gente que ha visto el explorer rulando en Solaris, y que? Estoy hablando de soporte multiplataforma serio en el que una empresa pueda confiar. Cosa que es muy importante si tienes una empresa, y no quieres estar vendido a un fabricante. Con respecto a los insultos no voy a comentar nada.

CitarOs puedo asegurar que integrar distintas tecnologías en un proyecto, como usar una dll escrita en C++, objetos COM, otros lenguajes, etc etc es trivial en C#, un infierno en Java

Si tienes que integrar todas estas tecnologias en tus proyectos es porque microsoft ha hecho tropecientas APIs y lenguajes para lo mismo, cada cual mas lamentable. Todo eso que citas esta hecho por Microsoft, lo que faltaba es que no se pudiesen integrar. Como ejemplo me remito a cuantas formas radicalmente diferentes de hacer una interfaz para windows hay, todas de Microsoft, o cuantos lenguajes se ha inventado Microsoft, muchos en desuso.

CitarSeptimo, volviendo al tema de Java y C#... quien quiere comparar cosas tan básicas en eficiencia como colecciones genéricas, templates en c++ ?

Explicate un poco mas en este punto, porque no se entiende lo que quieres decir. Al menos no lo entiendo yo.

CitarPD: Algún profesional, que dé por favor su versión de cómo hoy en día los juegos descargan todo el código que pueden de C++ a script, editores y demás capas sobre C++... Creéis que UnrealScript es más rápido que C#? wink2.gif

Esto es mezclar el tocino con la velocidad. Cada cosa es para lo que es. En el World of Warcraft por ejemplo se puede modificar la UI con lua y XML, para que cualquiera pueda modificarla facilmente.

Saludos.
Título: Porque Usar C# Y No C++
Publicado por: seryu en 25 de Diciembre de 2004, 08:01:12 PM
Cita de: "Pogacha"Me parece que el numero de lineas no importa, uno cutea y pastea, lo importante es la potencia (capacidad * simplesa), el c-sharp una vez entendido su mecanizmo es mucho mas claro y casi igual de capáz, sino el basic seria mejor pues usa menos lineas  :P .

Entre DX y OpenGL, Ogl es mejor sin duda (mismas capacidades, esta mas actualizado y es multiplataforma), pero para windows especificamente es mejor DX (pues esta hecho a medida) y entre c# y c++, no se pueden comparar pues tienen target distintos, c++ tiene todas las ventajas, pero para windows y cierto tipo de programas c# tiene las de ganar efectivamente, mayor simplesa, mas potencia y hecho a medida.
Con lo que a mi respeta, tengo cierto reselo con microsoft y sus intentos de monopolización encubiertos y trato de escapar todo lo que puedo de él (inutilmente  :angry: ), me parece que usar tanto DX como C# seria rendirse ante el opresor que inpone su mercado y esta es la unica razon para negarse a usar c# (cuando corresponde) que yo veo.

Saludos.
pogacha lo ha resumido perfectamente, dejad de morderos los cuellos  :D  
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 25 de Diciembre de 2004, 10:22:21 PM
 Hola,

sin ganas de flame, solo contesto a esto ;)

Citar
Pretender vendernos la moto de que C# es abierto es algo que no merece comentarios. Usar .NET para desarrollar en linux tampoco. Los hechos son que en java estan metidos varios grandes fabricantes (Sun, Intel, HP, IBM por ejemplo) y en C# no. Lo de la ECMA es propaganda. Los hechos son lo que cuentan.

A ver, Mono se puede usar en linux, supongo que de tanto te hemos dado la murga, has visto algo de Mono, pero por si acaso, esta es su web.

Te recomiendo que te leas las faq (son un poco viejas, pero bueno, una idea te darán). Algunos ejemplos:

Citar
The Mono Project is an open development initiative sponsored by Novell that is working to develop an open source, UNIX version of the Microsoft .NET development platform. Its objective is to enable UNIX developers to build and deploy cross-platform .NET Applications. The project will implement various technologies developed by Microsoft that have now been submitted to the ECMA for standardization.

Citar
Question 52: What operating systems does Mono run on?
Mono is known to run on Linux, UNIX and Windows systems.

Citar
Question 57: Can Mono run applications developed with the Microsoft.NET framework?
Yes, Mono can run applications developed with the Microsoft .NET Framework on UNIX. There are a few caveats to keep in mind: Mono has not been completed yet, so a few API calls might be missing; And in some cases the Mono behavior *might* be incorrect.

Entre la gente que hace eso, esta Icaza. No se, a lo mejor cuando veas Gnome programado en C# (que es uno de los objetivos que tiene), ya te convences (o te pasas a KDE :P).

Y por lo de abierto y liberado, supongo tambien que si no fuera abierto y pudieran darles la puñalada, Novell y semejante grupo de gente que hay detrás de Mono, Gtk#, y todos los tropocientos ports a .NET que existen para Linux, no lo estarían haciendo... Vamos, creo que se lo habrán pensado bastante antes de jugarsela...

Poco más, un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: en 26 de Diciembre de 2004, 02:33:28 AM
 Cuando todas vuestras profecias se cumplan yo programaré en C#.
Título: Porque Usar C# Y No C++
Publicado por: en 26 de Diciembre de 2004, 02:35:14 AM
 Y ese era yo otra vez.
Título: Porque Usar C# Y No C++
Publicado por: martiño en 26 de Diciembre de 2004, 02:36:19 AM
 Es decir yo.
Título: Porque Usar C# Y No C++
Publicado por: Grugnorr en 26 de Diciembre de 2004, 03:07:55 AM
 Martiño:

Cuando la opinión es decir falsas verdades y mentiras, son paparruchadas, sin ánimo de ofender. Hay cosas que son puntos de vista, como yo puedo decir que me apesta la sintaxis de VB, y cosas que son hechos.

CitarHay bindings de OpenGL para Java, perfectamente acelerado por hardware. Culturizate tu.

Jajaja, claro que hay bindings de OGL en Java, y en Python y... por poder hasta en Macros de Excel a través de COM. Yo he dicho: "No he visto nada decente de 3d en Java", por un lado (no que no se pueda hacer), y por otro lado, que todos los que afirman que C# no tiene nada nuevo sobre Java, que se culturicen un poco. También tiene VB muchas cosas "nuevas" sobre C++ y no por eso va a ser mejor, pero desde mi punto de vista, C# aporta mejoras y un refinamiento sobre Java, otras cosas son indiscutibles, como temas de eficiencia en colections.


Citar
Pretender vendernos la moto de que C# es abierto es algo que no merece comentarios. Usar .NET para desarrollar en linux tampoco. Los hechos son que en java estan metidos varios grandes fabricantes (Sun, Intel, HP, IBM por ejemplo) y en C# no. Lo de la ECMA es propaganda. Los hechos son lo que cuentan.

Uhm, de qué hablas?. El lenguaje C# es standard abierto, Java no. Cuando quieras discutirlo infórmate un poco. Que haya muchos grandes fabricantes trabajando con Java qué tiene que ver con el lenguaje como standard abierto o no?. Pues lo de ECMA será propaganda, pero ya hay 2 implementaciones OpenSource multiplataforma de C# en marcha, Mono y DotGnu. No conozco ninguna implementación de Java OpenSource, si me das un link te lo agradecería eternamente

Me salto tontunas que en vez de hablar de C#, los intentan desprestigiar por Microsoft, yo opino que de 10 cosas qeu hace MS, 2 son buenas y una muy buena, sí. Curiosamente .NET es la mejor desde Windows95 y DX8 diría yo ^_^

CitarSeptimo, volviendo al tema de Java y C#... quien quiere comparar cosas tan básicas en eficiencia como colecciones genéricas, templates en c++ ?

Uhm, a ver como lo re-explico. Estoy seguro que sabes lo que son las templates de C++, y sabrás que sirven para implementar colecciones de datos genéricas (list es una lista genérica). En Java a partir de no sé qué versión tienes templates( llamadas generics en C#), en C# a partir de 2.0. Bien, la implementacióin de Java es lentísima en comparación con la de C# ( y la de C++, claro).

CitarEsto es mezclar el tocino con la velocidad. Cada cosa es para lo que es. En el World of Warcraft por ejemplo se puede modificar la UI con lua y XML, para que cualquiera pueda modificarla facilmente.

Uhm, en parte sí si lo enfocas en extensibilidad. Si te centras en facilidad de desarrollo que es lo que yo digo, no. Mira los juegos del Unreal Engine, o los bots de los Quake o....

PD: Si juegas al WoW en la beta koreana, server de WoW-Esp(10º ordenado por name), en la Horda, dime un nick donde charlar
Título: Porque Usar C# Y No C++
Publicado por: martiño en 26 de Diciembre de 2004, 03:26:37 AM
 Bueno, yo ya me cansé de pelearme con vosotros y doy por zanjada esta discusión. Vosotros no me vais a convencer a mi de que deje de hacer juegos en C++ y por lo que parece tampoco yo a vosotros de lo contrario. Guardo mis fuerzas para otra conversación mas productiva.

Saludos a todos.
Título: Porque Usar C# Y No C++
Publicado por: Grugnorr en 26 de Diciembre de 2004, 12:40:14 PM
 
CitarBueno, yo ya me cansé de pelearme con vosotros y doy por zanjada esta discusión. Vosotros no me vais a convencer a mi de que deje de hacer juegos en C++ y por lo que parece tampoco yo a vosotros de lo contrario. Guardo mis fuerzas para otra conversación mas productiva.

Dejas muy claro que hablas de lo que te apetece, quien te ha dicho que hagas juegos en C#?  :blink:

PD: Vaya diálogo de besugos tío. Yo, y por lo que leo los demás, sólo hemos aclarado puntos que son falsos, y hemos añadido nuestros puntos de vista en lo subjetivo. Ya sé que M$ es el demonio y tal y cual...
Título: Porque Usar C# Y No C++
Publicado por: seryu en 26 de Diciembre de 2004, 01:11:20 PM
 
Cita de: "Grugnorr"PD: Algún profesional, que dé por favor su versión de cómo hoy en día los juegos descargan todo el código que pueden de C++ a script, editores y demás capas sobre C++... Creéis que UnrealScript es más rápido que C#?  ;)
Decir eso es meterse en una trampa mortal, hoy dia se tiende a usar scripts para evitar la compilacion de las mil y una clases.. pero las partes comprometidas del motor/juego como puede ser el renderer o fisicas estan siempre en el codigo c++

las razones de usar script en un motor son diferentes a las de usar c# para programar un motor, la necesidad de esta separacion queda patente cuando existen engines programados en c# que usan scripts como phyton y cia.
Título: Porque Usar C# Y No C++
Publicado por: AgeR en 26 de Diciembre de 2004, 01:11:23 PM
 No sé por qué tanto escándalo.
La contestación a la pregunta (Por qué usar C# y no C++) es bien simple : porque ellos han querido.

Además estoy seguro de que están aprendiendo una barbaridad de C# y por si fuera poco lo están desarrollando en un tiempo record.

Tampoco entiendo esa manía de criticar un estandar que aún habiendo sido creado por Microsoft, tiene el apoyo de una grandísima parte de la comunidad del software libre. De hecho casi me atrevería a decir que he visto más proyectos usando Mono que .NET puro y duro  :ph34r: .

Para una cosa buena que hace Microsoft también hay que salir en su contra? Parece que cuando no hay excusas para atacar a Microsoft, se inventan. Cada desarrollador es libre de programar en lo que quiera, no? Si la gente empieza a usar Mono en vez de Java o C++ a palo seco por algo será  ;) .

Título: Porque Usar C# Y No C++
Publicado por: Grugnorr en 26 de Diciembre de 2004, 03:34:25 PM
 
CitarPD: Algún profesional, que dé por favor su versión de cómo hoy en día los juegos descargan todo el código que pueden de C++ a script, editores y demás capas sobre C++... Creéis que UnrealScript es más rápido que C#?   

Seryu, acepto que no está muy bien formulada la frase.  Intentaré elaborar más:

En juegos profesionales, tienes scripts por varias razones:

a)  Evitar tener que compilar --> módulos de gameplay principalmente.  .NET te permite compilar al vuelo el código que quieras, puedes tener todo ésto en C# y que al arrancar el motor te compile en una dll el código y usarlo tal cual, mucho más rápido que siendo interpretado y con toda la funcionalidad de C#.

B) Permitir modificación externa, mods etc etc --> Más de lo mismo, se suelen usar script por facilidad de desarrollo

c) Facilidad de desarrollo en módulos que no necesitan alta eficiencia, ejemplo claro el UnrealScript.

Mi idea es que cada vez más se deja el código de baja productividad, alta eficiencia: C++ para módulos concretos ( Render ya no tiene sentido si todo lo hace la GPU, así que Física, IA de bajo nivel...) y lenguajes productivos para el resto

PD: Los lenguajes de script siguen siendo muy útiles, y en .NET tienes todos los conocidos incluso con muchas mejoras, porque puedes usarlos interpretados como siempre, o la mayoría, integrados en .NET ( cls compliant) pudiendo "mezclarlos" con el resto de .NET, usar clases de .NET en medio de python y viceversa. IronPython es la versión de Pyhton para .NET del creador de jython, más rápida que la versión C ;)
Título: Porque Usar C# Y No C++
Publicado por: TheAzazel en 26 de Diciembre de 2004, 09:06:05 PM
 A cuadros me quedo leyendo todo esto.. q si java, q si C++, q si C#....
Haddd y cia ha utilizado C# pq le ha dado la gana y a la vez, ha demostrado que con C# se pueden hacer cosas bastante interesantes.
Seguid discutiendo de esto, pq todos teneis razon, TODOS los lenguajes tienen puntos fuertes y debiles... esto me suena a cuando salio por primera vez el VB... hay q ser listos y utilizar cada lenguaje con inteligencia y si esto no os prima(q lo haceis por hobby), pues hacer lo q querais y asi aprendereis mas o no?.
Yo soy de C/C++ pero no se me ocurre matar moscas a cañonazos...si tengo q utilizar VB, C#, Java o cualquier otro lenguaje que sea mas especifico en el ambito del programa que deseo desarrollar..simplemente lo utilizo, q para eso estan.
Saludos a todos y no mezcleis gustos ni sentimientos con estas cosas... a mi tampoco me gusta mucho M$ pero... solo pq son unos prepotentes...aunq q yo sepa, son los unicos prepotentes con derecho a ello jeje
Título: Porque Usar C# Y No C++
Publicado por: StraT en 26 de Diciembre de 2004, 09:16:20 PM
 Nadie hace ningun comentario de mi codigo?  :angry:  O_O  :rolleyes:  :D  (uoh)  xD
Título: Porque Usar C# Y No C++
Publicado por: Amatar en 26 de Diciembre de 2004, 09:36:14 PM
 Os ha faltado una de las mayores utilidades de los lenguajes de script: que sean lo suficientemente sencillos para que los usen personas sin conocimiento de programacion.
Parece que somos todos programadores y no nos damos cuenta, pero por ejemplo el que los grafistas puedan retocar secuencias, logica de animaciones y demas enlaces entre programacion y graficos/modelos es una gran ventaja. O que el diseñador de niveles pueda intervenir en la logica del juego sin tener que aprender a programar.
Título: Porque Usar C# Y No C++
Publicado por: Mars Attacks en 28 de Diciembre de 2004, 09:23:07 PM
 A mí me preocupa seriamente lo que M$ quiera hacer con el "estándar" en el que participa. No será por precedentes[1]:

Rompiendo las normas

Una táctica bastante utilizada por Microsoft para lograr el dominio del mercado es la conocida como "Embrace and Extend"  (adherir y extender). La misma consiste en extender ciertos protocolos o normas más allá de los estándares de manera arbitraria y unilateral, para que luego sólo los productos que los implementen de la misma manera puedan interoperar de forma correcta. Sobran ejemplos de este tipo de práctica (la implementación de SMTP de Microsoft Exchange, la alteración a HTTP en Internet Information Server, entre otras), pero la más notable quizás sea la que derivó en el juicio que Sun Microsystems inició a Microsoft por haber extendido la especificación de su lenguaje Java violando las condiciones de su licencia, que permite a cualquiera implementar un compilador de dicho lenguaje, pero sin apartarse de dicha especificación. El objetivo perseguido por Microsoft era que los programas Java generados con su entorno de desarrollo J++ solamente pudieran ejecutarse sobre Windows, siendo que Java fue diseñado como un lenguaje que permitiera el desarrollo de aplicaciones portables entre distintas plataformas (algo que, evidentemente, no le conviene). Al fallar este intento, Microsoft tomó la decisión de no incluir soporte para Java en su nuevo sistema operativo: Windows XP.

[1] Javier Smaldone: ¿Microsoft?, http://www.smaldone.com.ar
Título: Porque Usar C# Y No C++
Publicado por: en 05 de Enero de 2005, 01:36:20 AM
 Hola.

Yo soy profesional en el sector del desarrollo de software, en una empresa bastante importante. Trabajo en el depto. de tecnologías microsoft y como tal, la mayor parte de los proyectos que realizamos son para la plataforma .NET (si bien es cierto que algun cliente nos importe de vez en cuando VB6 o alguna q otra tecnologia obsoleta). Tambien en mis horas libres me dedico a la programación de juegos y cosillas relacionadas (demos, etc)

Os puedo decir que a la hora de hacer un motor 3D, un buen motor, con una arquitectura bien diseñada y que rinda al máximo es indispensable usar un lenguaje que nos permita afinar al máximo. Es por esto que veo muy justificado el uso de C++ para esta parte del desarrollo.

Por el contrario, existen muchas más tareas de programación en donde C#, VB.NET o cualquier lenguaje gestionado / interpretado tienen cabida. Os hablo de la programación de la lógica del juego, programación de las herramientas (pluggins para 3dstudio, editores de niveles, etc)

Asi que, aunque no deja de ser interesante realizar un motor en c# y ver hasta donde podemos llevarlo, que nos quede bien clarito que en aplicaciones que requieran elevado uso de CPU el rendimiento de un codigo nativo puede ser infinitamente superior. En la parte de render, habra poca diferencia entre gestionado y nativo, mientras que en los grandes bucles de cálculo usados para la IA, detección colisiones, física, etc... encontraremos el gran handicap de c#.

Si tenemos que afrontar un videojuego completo una solución hibrida entre lenguajes nativos y gestionados puede ser la solución más productiva.  Por ultimo, decir que para un programador debidamente formado y medianamente disciplinado (yo no soy el caso, que conste), no debe ser tan inproductivo el uso de C++ gracias a los potentes entornos de desarrollo que tenemos hoy en dia.

un saludo a todos!
Título: Porque Usar C# Y No C++
Publicado por: [Over] en 05 de Enero de 2005, 02:38:27 PM
 Hola.

Strat:

Te voy a poner el codigo ahi a lo guarro, para que veas la igualdad de lo tuyo en C++

RenderContext.cpp



#include <SDL.h>
#include <gl\gl.h>
#include <gl\glu.h>

CRendercontext::RenderContext(int width, int height, int bbp, int flags)
{

  SDL_Init(Sdl.SDL_INIT_VIDEO);
  SDL_SetVideoMode(width, height, bbp, flags);
  SDL_WM_SetCaption("SSE Engine", null);

  glViewport(0, 0, width, height);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();

  gluPerspective(45.0f, width / height, 0.1f, 100.0f);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();

}


Viewer.cpp



#include <SDL.h>
#include <gl\gl.h>

int CViewer::Renderiza()
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();

 glBegin(GL_TRIANGLES);                    

   glColor3f(1.0f,0.0f,0.0f);            
   glVertex3f( 0.0f, 1.0f, -3.0f);

    glColor3f(0.0f,1.0f,0.0f);  
    glVertex3f(-1.0f,-1.0f, -3.0f);

    glColor3f(0.0f,0.0f,1.0f);
    glVertex3f( 1.0f,-1.0f, -3.0f);
 
  glEnd();

   return 1;

}

void Main()
{

 CRenderContext rContext = new RenderContext(800, 600, 32,SDL_OPENGL);

 bool AplicacionFinalizada = false;

// AQUI HAY SUMAR EL CODIGO DE LOS EVENTOS, QUE ES PRACTICAMENTE IGUAL.
 SDL_Quit();
}



Para mi hay mejores formar de ordenar estas cosas, en mas ficheros si, pero vamos, con esto te demuestro que tu codigo en C++ es practicamente igual en cuanto a cantidad de lineas vamos :D.

No entiendo este ataque a C++ cuando hoy hay librerias para C++ de casi todo que te ayudan muchisimo, ya casi nadie usa sus propias listas, ni tipos string ni nada de eso, usas las STL y se acabó y así con un sinfin de cosas (base de datos, redes, etc...).
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 05 de Enero de 2005, 08:51:54 PM
 
Cita de: "nolver"mientras que en los grandes bucles de cálculo usados para la IA, detección colisiones, física, etc... encontraremos el gran handicap de c#.
Hola,

solo opino del tema de la IA, que no conozco de colisiones ni física. No tengo ninguna experiencia en hacer la IA de un juego (solo en aplicaciones como las prácticas de una universidad). Yo supongo que el rendimiento, además del lenguaje, depende en gran medida del tipo de juego. La IA del Rise of Nations por ejemplo usaba Lisp, y no creo que sea un lenguaje mucho más eficiente que C#... Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: Grugnorr en 06 de Enero de 2005, 10:53:35 AM
 
CitarLa IA del Rise of Nations por ejemplo usaba Lisp

:blink:


PD: Un juego de consola, de aventuras... que no sé cómo se llama xD algo y dexter?, también usó Lisp para la IA
Título: Porque Usar C# Y No C++
Publicado por: Sacrifai en 06 de Enero de 2005, 11:58:44 AM
Cita de: "Grugnorr"PD: Un juego de consola, de aventuras... que no sé cómo se llama xD algo y dexter?, también usó Lisp para la IA
Jack and Dexter. Odio ese juego...  (uoh)

No entiendo porque tanto revuelo con el tema de C# y C++. Cada uno tiene su propia utilidad y ninguno es mejor que el otro ( eso lo decido cada uno personalmente ). Lo que si supongo esque tendremos que acabar aprendiendo C# porque alguna vez tendremos que usarlo.
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 01 de Marzo de 2005, 12:21:13 PM
 el c# nos tocara usarlo en empresas para hacer aplicaciones y el c++ nos tocara usarlo en empresas para hacer juegos  :P

teneis que daros cuenta que actualmente es normal que vaya rapido, simplemente se estan haciendo llamadas a directx, no se hace nada mas que eso, pero cuando toque hacer un juego de verdad es cuando se ve la diferencia de velocidad, el mover unas unidades de forma inteligente, etc etc hara que los fps bajen mucho (aunque claro esta, para ver esto se debe de utilizar la misma metodologia, no vale optimizar una mas que la otra  :D )

me ha gustado el ultimo video mas que el primero ya que enseñais mas la funcionalidad del motor

pd: una cosa mas, no es por fastidiar ni nada, pero me parece de mal gusto esta frase que teneis en el web "Un proyecto que en pocos meses ha hecho lo que muchos soñaron hacer en ańos.", yo tarde un mes en hacer el motor de mi web, pero no por eso pongo cosas como esta, teneis que daros cuenta que normalmente no se tarda años en hacer un motor, se tarda años en hacer un juego ;)
bueno y si no la quereis cambiar por lo menos poner años y no ańos  :lol:
Título: Porque Usar C# Y No C++
Publicado por: BeRSeRKeR en 01 de Marzo de 2005, 04:05:12 PM
 
Cita de: "zupervaca"pd: una cosa mas, no es por fastidiar ni nada, pero me parece de mal gusto esta frase que teneis en el web "Un proyecto que en pocos meses ha hecho lo que muchos soñaron hacer en ańos.", yo tarde un mes en hacer el motor de mi web, pero no por eso pongo cosas como esta, teneis que daros cuenta que normalmente no se tarda años en hacer un motor, se tarda años en hacer un juego ;)
bueno y si no la quereis cambiar por lo menos poner años y no ańos  :lol:
Bueno he decir que eso no salió de nuestra boca (ni de nuestro teclado :D) en ningún momento. La verdad es que ni lo había leído. :)

Saludos.
Título: Porque Usar C# Y No C++
Publicado por: en 25 de Agosto de 2005, 11:54:28 PM
Cita de: "ALRAZ"habr� SDL para C#?  :D
KE NO SE TRATA DE stl Y NO sdl :blink:  o es ke ando confundido
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 26 de Agosto de 2005, 08:42:59 AM
 Hola,

hay un wrapper de SDL para .NET

SDL.NET

Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: tamat en 26 de Agosto de 2005, 04:48:53 PM
 Además TAO Framework (proyecto incluido en Mono) incluye wrapper de SDL, OpenGL, OpenAL, FreeGlut y un par más. Aunque si funciona igual de bien que el wrapper de GL...
Título: Porque Usar C# Y No C++
Publicado por: Gunmaster en 26 de Agosto de 2005, 04:53:27 PM
 Alguién me puede decir que es un wrapper? :blink:  
Título: Porque Usar C# Y No C++
Publicado por: Flint en 26 de Agosto de 2005, 05:08:34 PM
 
Cita de: "Gunmaster"Alguién me puede decir que es un wrapper? :blink:
Traducción libre de la wikipedia:

CitarUn wrapper es una pieza de código que se combina con otra para determinar cómo esta última es ejecutada.

Un wrapper actúa como interfaz entre el código que le llamó y el código "wrappeado". Esto puede utilizarse por compatibilidad (por ejemplo, si el código "wrappeado" está escrito en un lenguaje de programación diferente o utiliza unas convenciones de llamada diferentes), por seguridad (por ejemplo, para evitar que el código que llama al wrapper ejecute determinadas funciones), o para otorgar un cierto nivel de emulación (por ejemplo, la API de DirectX, que oculta las funciones del driver de la tarjeta gráfica). Todo esto implica que únicamente el wrapper puede acceder al código "wrappeado".

De hecho, to wrap en castellano significa envolver, por eso un wrapper es una especie de "envoltorio" de código.
Título: Porque Usar C# Y No C++
Publicado por: Gunmaster en 26 de Agosto de 2005, 05:10:55 PM
 Apss...gracias por la info :)  
Título: Porque Usar C# Y No C++
Publicado por: en 27 de Agosto de 2005, 09:21:44 AM
 La unica pega que le veo al C#, es que su codigo maquina es descompilable; Por lo que si quieres proteger tu codigo fuente, esto no es tan sencillo.
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 27 de Agosto de 2005, 10:23:45 AM
 Hola,

puedes ofuscarlo si quieres protegerlo para que no te lo descompilen. No es la solución definitiva, pero menos da una piedra ;) Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: TheWind en 27 de Agosto de 2005, 10:28:28 AM
 Esgrimir la decompilacion como un problema es absurdo, cualquier ejecutable puede ser decompilado -con mayor o menor esfuerzo- : http://www.itee.uq.edu.au/~cristina/dcc.html
http://www.backerstreet.com/cg/work.htm
Título: Porque Usar C# Y No C++
Publicado por: en 27 de Agosto de 2005, 03:38:31 PM
 Obvio que todo al final es descompilable si le das el esfuerzo necesario; El problema con el .Net code era que era absurdamente facil recuperar los fuentes con los nombres originales de variables, funciones, etc... ; Aunque como comentan un ofuscador puede ayudar.
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 27 de Agosto de 2005, 03:48:45 PM
 bueno pasar de ensamblador a c++ no es una ciencia cierta y no siempre es como deberia ser, ademas hay que tener en cuenta que tu escribes un codigo y al compilarlo cambia considerablemente, solo pensando en las funciones inline os hareis una idea de lo que digo, el c++ puede ser el lenguaje de programacion mas seguro y rapido de la historia  :lol:

saludos
Título: Porque Usar C# Y No C++
Publicado por: Pogacha en 27 de Agosto de 2005, 03:50:19 PM
 
CitarEsgrimir la decompilacion como un problema es absurdo, cualquier ejecutable puede ser decompilado -con mayor o menor esfuerzo- : http://www.itee.uq.edu.au/~cristina/dcc.html
Que buena tesis! O_O  ... se fue a la mierda ... yo hubiese hecho un senku o algo así nada mas  :P ... y para colmo una mujer, no soy machista pero me duele el orgullo muy en lo profundo, voy leer mas sobre teorias informaticas, no puede ser que una mujer haga algo en donde no tenga ni idea si me da la capacidad para entenderlo  (grrr) .
Saludos.
Título: Porque Usar C# Y No C++
Publicado por: en 27 de Octubre de 2005, 02:10:08 AM
 lo que veo en este hilo, es que la mayoria de la gente no sabe la diferencia entre "managed" (como se traduce "managed" a español?) y codigo nativo

el codigo nativo (que se crea en C, C++) una vez que se crea, ya, ahi queda, es el mismo codigo no importa donde lo ejecutes

el managed, a diferencia, puede "adaptarse" a la maquina en la que corre, y la otra cosa es que con actualizaciones al .NET framework, se puede optimizar el mismo programa sin tocar una sola linea de codigo

salu2
Título: Porque Usar C# Y No C++
Publicado por: [EX3] en 27 de Octubre de 2005, 04:33:31 AM
 
Cita de: "ESKATON _KOMMA"KE NO SE TRATA DE stl Y NO sdl :blink:  o es ke ando confundido
Se refieren a SDL: Simple DirectMedia Layer ( http://www.libsdl.org ) que es un API multiplaforma para desarrollo de juegos.

Salu2...

EDIT: Ups!!!  O_O Creo que me cole con el mensaje de amarras. Me salte una pagina de leer aun  (nooo)
Título: Porque Usar C# Y No C++
Publicado por: Zaelsius en 27 de Octubre de 2005, 03:57:43 PM
Cita de: "BlackTigerX"lo que veo en este hilo, es que la mayoria de la gente no sabe la diferencia entre "managed" (como se traduce "managed" a español?) y codigo nativo
Se dice código administrado :)
Título: Porque Usar C# Y No C++
Publicado por: cederron en 04 de Noviembre de 2005, 07:57:45 PM
 Podriamos hacer 2 programillas que mas o menos hagan lo mismo, uno en c++ y otro en c# y con un profiler mirar los tiempos.
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 04 de Noviembre de 2005, 08:09:39 PM
Cita de: "cederron"Podriamos hacer 2 programillas que mas o menos hagan lo mismo, uno en c++ y otro en c# y con un profiler mirar los tiempos.
No es necesario, C++ irá más rápido que C# en todos lo casos.
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 04 de Noviembre de 2005, 10:06:15 PM
 Por?
Título: Porque Usar C# Y No C++
Publicado por: cederron en 04 de Noviembre de 2005, 10:32:29 PM
 ya... me imagino que sera mas rapido el c++ pero saber en que medida... y si es apropiado para un motor.
Título: Porque Usar C# Y No C++
Publicado por: en 04 de Noviembre de 2005, 10:56:27 PM
 Es claro que para la misma implementación algo que corre con menos capas antes de llegar al microcódigo irá más rápido. Siempre reeferido a la misma implementación claro.
Título: Porque Usar C# Y No C++
Publicado por: seryu en 04 de Noviembre de 2005, 11:26:46 PM
 Si al final todo son maquinas de turing  :P  
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 05 de Noviembre de 2005, 12:27:14 AM
 ese programa simple lo hice hace tiempo y consistia en un for muy grande con tres operaciones matematicas muy simples y el c++ ganaba en 2 segundos al c#, eso en un p3 1200, aparte he estado creando un pequeño motor de jerarquias para objetos 3d en c-sharp y notablemente es mucho mas lento que el c++, pero es lo que dicen, no es lo mismo estar a dos capas que ha tres o mas, aparte que el c-sharp tiene ciertas cosas que son un peligro, mirando un codigo no sabes si trabajas con estructuras o clases y hay mucha diferencia entre ellas, el c-sharp lo veo muy bien para crear herramientas y el c o c++ para crear el juego
Título: Porque Usar C# Y No C++
Publicado por: fiero en 05 de Noviembre de 2005, 12:50:31 PM
Cita de: "cederron"ya... me imagino que sera mas rapido el c++ pero saber en que medida... y si es apropiado para un motor.
Hoy en dia cualquier cosa es apropiada para un motor. En el momento que empiezas a tirar de Hardware para renderizar triángulos, ya todo lo demás importa poco. Yo lo tengo claro ( uso mi propio motor software), da igual las optimizaciones que haga en mi programa en C++, como mucho ganaré algunos milisegundos por frame, ya que el 90% del tiempo se lo lleva la función de rellenado de polígonos.

Si se usa render por hardware, como todo el mundo hace hoy en dia, ese 90% del tiempo que utilizo yo para pintar, se reduce a la mínima expresión, con lo cual la aplicación, literalmente "vuela". Da igual con qué lenguaje recorras un octree, o con qué lenguaje captures las pulsaciones del teclado, al final "el grueso" de la aplicación lo ejecuta el hardware.

Todo después depende del programador. El que haga un bucle lento para descartar objetos de la escena en C++, también hará el mismo bucle lento en C#. No se si me explico...

Es mi humilde opinión, un saludo
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 05 de Noviembre de 2005, 02:39:02 PM
 Menos cuando usas físicas :P
Título: Porque Usar C# Y No C++
Publicado por: fiero en 05 de Noviembre de 2005, 02:45:44 PM
Cita de: "ethernet"Menos cuando usas físicas :P
Entonces le metes el Newton como ha hecho Haddd  :P

24 ethernet, estas hecho un chavalín  :D  
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 05 de Noviembre de 2005, 03:15:39 PM
 
CitarEntonces le metes el Newton como ha hecho Haddd
con lo que la parte del juego mas pesada no estara hecha en c-sharp ;),  hacer un juego en c-sharp no significa que el bucle principal de mensajes del juego este en este lenguaje, para ello deberia estar todo :lol:

no creo que sea el ejemplo mas optimo de por que usar c-sharp y no c++
Título: Porque Usar C# Y No C++
Publicado por: Ray en 05 de Noviembre de 2005, 04:03:11 PM
 ¿Habéis probado a comparar la velocidad con una función recursiva?.

un saludo.
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 05 de Noviembre de 2005, 05:55:45 PM
Cita de: "fiero"
Cita de: "ethernet"Menos cuando usas físicas :P
Entonces le metes el Newton como ha hecho Haddd  :P

24 ethernet, estas hecho un chavalín  :D
Yo me siento viejo :(
Título: Porque Usar C# Y No C++
Publicado por: Haddd en 05 de Noviembre de 2005, 08:40:56 PM
 C# es productividad, no velocidad. Lo que yo digo es que hoy en día es mejor ser productivo, pq te permite dedicar más tiempo incluso a optimizar...

De todas formas, en C# puedes programar en C, el lenguaje lo soporta, así que si necesitas velocidad...

Y puedes tirar de librerías...así que si necesitás velocidad....

De todas formas os diremos que en el motor, lo que ha hecho que bajen muucho los fps no ha sido C#, ha sido cuando hemos decidido pasar de 2 pasadas para todo ( zbuffer + light ) a multiples pasadas. Por tanto, está claro que aquí lo que importa es la lógica de como mandes los polígonos a la tarjeta y los shaders que utilices...
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 06 de Noviembre de 2005, 08:49:36 AM
 
CitarC# es productividad, no velocidad
ese si es un ejemplo claro de por que usar c# en vez de c++
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 06 de Noviembre de 2005, 11:50:48 AM
Cita de: "zupervaca"
CitarC# es productividad, no velocidad
ese si es un ejemplo claro de por que usar c# en vez de c++
Esta claro que algo más debe haber porque ese rendimiento en el desarrollo ya lo daban antes que C# otros lenagujes como python, java, perl... quizás sea que MS lo ha hecho bien con .NET (y no me refiero al marketing, que tb).

Título: Porque Usar C# Y No C++
Publicado por: raistlin en 06 de Noviembre de 2005, 01:40:18 PM
 Quizas todo se trate de marketing y saberse vender. Si no, ¿porque se usa el cutre lua teniendo python? ¿porque c# y no java? ¿porque directx y no opengl?
Título: Porque Usar C# Y No C++
Publicado por: ethernet en 06 de Noviembre de 2005, 02:01:03 PM
Cita de: "raistlin"Quizas todo se trate de marketing y saberse vender. Si no, ¿porque se usa el cutre lua teniendo python? ¿porque c# y no java? ¿porque directx y no opengl?
1.- facilidad de embeber.
2.- actualmente es java y no C#, pero vamos, la compatibilidad binario pone la balanza del lado de C#. Java es el cáncer de la empresa española y ahí está, algo tendrá.
3.- directx en windows tiene un framework que no tiene opengl.  
Título: Porque Usar C# Y No C++
Publicado por: Kaneda en 06 de Noviembre de 2005, 02:38:25 PM
 Bueno, existe un documento en ppt donde Tom Miller comparo el rendimiento del Managed Directx (usando c#) con el de c++ , y los resultados fueron muy optimos, quizas habria que echarle un vistazo a eso para estar seguro de cuanto mas rapido es c++ que c#

Otra cosilla :
Citar¿porque c# y no java? ¿porque directx y no opengl?

Es logico que las tecnologia de Microsoft siempre seran mejores funcionando en un windows no? ;-)
Ademas Directx es muy superior en cuestion de shaders y archivos fx a opengl (por algo a triunfado todo este tiempo)

Yo tambien defiendo la productividad, antes que la velocidad , y parece ser que las compañias de software tambien lo hacen , Y si no mirar la estrategia de microsoft con XNA , la idea principal es hacer de puente entre juegos de videoconsola y juegos de PC
Ademas, productividad no es solo hacer muchas cosas en poco tiempo, Tambien significa corregir muchos de los bugs mas importantantes que habia antes y que hacia muy complicados los proyectos, ahora entre el recolector de basura , el dinamismo de los tipos, los tipos seguros, incluso el codigo seguro.... hacen que todo vaya mejor

Y ademas, joder, si el nucleo del motor es directx, que es lo que realmente debe ejecutarse rapido, y el 60 o 70 % de la ejecucion del motor son los shaders, que se ejecutan directamente en el hardware, ¿ de que nos preocupamos? Estoy seguro que este motor que se basa totalmente en hardware, es mas rapido que otros motores hechos en c++ que calculan todos los procesos por software ( sombras, luces, particulas, animacion...)
Título: Porque Usar C# Y No C++
Publicado por: en 06 de Noviembre de 2005, 03:52:31 PM
 
CitarEstoy seguro que este motor que se basa totalmente en hardware, es mas rapido que otros motores hechos en c++ que calculan todos los procesos por software ( sombras, luces, particulas, animacion...)

De acuerdo.
Título: Porque Usar C# Y No C++
Publicado por: Pogacha en 08 de Noviembre de 2005, 12:11:38 PM
 No entiendo como sigue esta discucion :(
Título: Porque Usar C# Y No C++
Publicado por: en 13 de Enero de 2006, 02:32:00 AM
 Hola Vicente :).

Mi opinion respecto a algunas cosas:
 
Dissasembler: Es verdad que desensamblar en .net es mas comodo que en c++ (no se el caso de java). Esto es debido a dos razones, la primera es que todo en .net es mas comodo que en c++, la segunda es debido a la reflexion. Para poder hacer todas las acrobacias que permite la reflexion es necesario que el nombre de los tipos, metodos, propiedades... y conserven su nombre y firma en los ensamblados. Creo que es un precio que merece la pena pagar. Una vez dentro del método, en el código puro y duro, el disasembler se lo inventa más o menos igual.

Templates y Genericos: La implementación de los genéricos o templates en los 3 lenguajes es muy representativa a como están evolucionando.
  En Java los genéricos 'no existen', son puro humo. Parece que estas escribiendo codigo genérico pero en realidad hay variables object por debajo, los cast que no aparecen están ahi, el boxing y el unboxing tambien. Esto hace que sean mas lentos. La reflexion no funciona con genéricos porque son humo.
  En c++, los templates son macros, no se compilan sino cuando los estás instanciando a alguna clase. no se pueden crear en tiempo de ejecucion, y c++ no tiene reflexion. Los errores de compilacion que da c++ en un template son.... un poema.
  La implementación de los genéricos en c# es completa, son eficientes, tienen un soporte del intelisense completo, admiten reflexion, funcionan con tipos por valor de manera real, tienen seguridad de tipos real. Y pueden hacer todo esto porque microsoft puede hace grandes cambios de rumbo porque controla todo el proceso.

Structs 'peligrosos'.  En c++ no hay tipos por valor o tipos por referencia, sino variables por valor o variables por referencia (la diferencia entre un struct y un class en c++ es pequeña). Yo prefiero la manera de c#, porque es quien crea el tipo quien define como ha de ser usado, por valor o por referencia.


Hace un tiempo hice pruebas de rendimiento entre c# y c++, y como dijo un amigo escéptico: no se si c++ es mas rapido pero desde luego juegan en la misma división.

Hice tres test todos con carga a cpu y memoria que es donde se pegan los lenguajes.
- Swap de un millon de ints: Identicos en Release, C++ unas 10 veces mas lento en debug
- Operaciones aritméticas: Identicos
- Swap de un millon de structs (unos 32 bytes tenia): C++ fue ligeramente más rapido, entre un 5% y un 15%. Aún así microsoft desaconseja hacer structs tan grandes.








 
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 13 de Enero de 2006, 11:45:00 AM
 Anda Olmo, veo q al final has posteado en Stratos ;) A ver si te registras ;) Un saludo!

Vicente
Título: Porque Usar C# Y No C++
Publicado por: TheAzazel en 13 de Enero de 2006, 11:56:34 AM
 
Citar- Swap de un millon de structs (unos 32 bytes tenia): C++ fue ligeramente más rapido, entre un 5% y un 15%. Aún así microsoft desaconseja hacer structs tan grandes.

No entiendo eso... un struct de 32bytes grande?... el total de ellos(1millon) grande?
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 13 de Enero de 2006, 12:34:06 PM
 
Cita de: "TheAzazel"
Citar- Swap de un millon de structs (unos 32 bytes tenia): C++ fue ligeramente más rapido, entre un 5% y un 15%. Aún así microsoft desaconseja hacer structs tan grandes.

No entiendo eso... un struct de 32bytes grande?... el total de ellos(1millon) grande?
El motivo es que una estructura en c-sharp se comporta como una variable, es decir, si igualas una estructura a otra se esta copiando una sobre la otra con lo que estarías copiando 32 bytes (como un memcpy), en cambio en las clases se copiara la dirección de memoria donde esta la clase ya que en realidad una variable de una clase realmente es un puntero.

PD: Me imagino que Mocosoft lo dirá por esto.

Editado: La ventaja de que las estructuras sean así en c-sharp es que puedes hacer que una clase contenga una estructura con todos los datos que deban ser copiadas al tener un constructor copia por ejemplo, esto entre otras cosas, el inconveniente esta claro, hay que tener cuidado de saber que se esta manejando ya que al pasar a una función una estructura la pasamos mediante copia y no dirección, para pasar la estructura mediante referencia hay que poner "ref" delante.
Título: Porque Usar C# Y No C++
Publicado por: ZüNdFoLGe en 13 de Enero de 2006, 12:57:24 PM
 
CitarYo tb soy programador, pero pienso q a lahora de seleccionar un motor gráfico es verdaderamente impotante la respuesta que ese motor , es decir, la rapidez de ejecución y que no consuma mucha maquina, es decir que no riquiera un PV por todo esto creo que el c# va ir a pedales y va a requerir mucha maquina q por ejem. si se hace en C++.

...
CitarEstoy haciendo cosas con la libreria SDL.

por dios  :ph34r:  
Título: Porque Usar C# Y No C++
Publicado por: zupervaca en 13 de Enero de 2006, 01:47:08 PM
 ¿De quien son los quotes? (rules)  
Título: Porque Usar C# Y No C++
Publicado por: Gezequiel en 13 de Enero de 2006, 02:22:52 PM
 Del primer post de todos, el que abrio la discucion...

Todavia me sorprendo cuando 2 o 3 veces por mes este post resucita de las cenizas para seguir expandiendose, es como un mounstruo!! :ph34r:  (twist)  
Título: Porque Usar C# Y No C++
Publicado por: Vicente en 13 de Enero de 2006, 05:17:17 PM
 Ya ves, que tema mas controvertido ;) Un saludo!

Vicente