• Domingo 17 de Noviembre de 2024, 16:46

Autor Tema:  Por Qué No En Java?  (Leído 3273 veces)

myd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Por Qué No En Java?
« en: Miércoles 31 de Diciembre de 2003, 20:58 »
0
Hola a todos, ante todo saludarles porque este es mi primer post.

Entiendo perfectamente que c++ puede ser la mejor elección debido a su potencia, pero si quitamos "la lentitud" de java (cosa que en mi opinión se puede solucionar con threads), ¿por qué no utilizarlo?. La verdad es que aparte del cobol y el fortran de la universidad, es el único lenguaje que conozco y me gustaría tratar de programar un videojuego en java.

¿Alguien conoce el API java media? entiendo que puede ser el equivalente a DirectX, ¿o me equivoco?. ¿Son completas estas APIs de Java?

En fin, si alguien las ha utilizado ya y me puede dar su opinión le estaría agradecido....

Salu2 a todos y muchas gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Por Qué No En Java?
« Respuesta #1 en: Miércoles 31 de Diciembre de 2003, 21:26 »
0
Hola,
bueno la cosa es simple:
de poder hacer uin jegto en java lo puedes hacver.. y muy buenos tambienm..
pero el mismo en juego en otro lenguaje como c++ seria muho mejor,

por que?
porque no estaras tan pendiente del rendimiento , como si lo estaras si lo haces en java, es decir si el puinto critico es el rendimiento, de seguro deberas bajar la calidad de las imagenes , la musica, los modelos 3D, la extension de las escenas, la inclusion de efectos.. etc etc...

Yo que tu aprovecharia para aprender otro lenguaje, pero si quieres hacer el juego.. existen librerias 3d en java(aunque hay que pagar por ellas) tambien puedes arrancar trabajando con java 2d
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

myd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #2 en: Miércoles 31 de Diciembre de 2003, 21:33 »
0
Hola Juank, la verdad estoy totalmente de acuerdo en temas de rendimiento, en cualquier caso es para empezar, asi que...iré con Java, ya que es lo que conozco. ¿Estás seguro de que las APIs java 3d no son gratutitas? me suena que si lo son, pero puedo estar equivocado...

Entiendo que mi primer paso sería la construcción de un motor 3D, ¿verdad? hasta ahora he encontrado poca información sobre los pasos a seguir.

¿Algún consejo sobre que temas debo valorar o tener en cuenta?

Salu2 de nuevo.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #3 en: Domingo 4 de Enero de 2004, 01:31 »
0
:blink:

El problema que veo de programar con JAVA es que tienes que olvidarte de usar ASM. En Delphi y en C++ puedes usar ASM donde te de la gana y optimizar puntos claves de tu código.

No te preocupes que tu juego vaya lento o no por hacerlo en JAVA, en ese caso pesa mucho más la eficiencia de las APIs 3D que consigas para JAVA. Recuerda que el trabajo pesado lo hace el procesador de la tarjeta de video y las librerías para controlarla.

No estoy de acuerdo con Juank respecto a que por el solo hecho de trabajar con JAVA tengas que bajar la calidad de texturas efectos y música, pero si afectará el conteo de polígonos si la API 3D no tiene bibliotecas que eviten usar codigo JAVA para trabajar con los polígonos. Eso si: olvídate de incluir tus propios "efectos", tendrás que conformarte con los que incluya la API 3D y posiblemente restringirte a los que "soporte" la tarjeta de video.

Mindscout

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #4 en: Miércoles 28 de Enero de 2004, 15:46 »
0
http://www.opengl.org/resources/java/

Opengl para java.
Tambien tenes bindings de SDL (www.libsdl.org) para hacer juegos en java, las herramientas estan. Como en los juegos lo que importa es la respuesta inmediata del programa en tiempo real, es necesario sacarle el jugo al procesador y a todo el hardware disponible o sea tenes que utilizar lenguajes que corran directamente sobre el procesador de la maquina, no sobre una mauina virtual como lo hace java. Java es un lenguaje interpretado y como tal carece de la velocidad que pueda llegar a tener un lenguaje compilado para la plataforma de turno. Yo se que la JVM en los ultimos tiempos crecio terriblemente en cuanto a optimizaciones , pero aun asi no deja de ser un lenguaje interpretado, y para mi esa es su mayor debilidad para la hora de hacer juegos, por mas threads q se usen jamas van a igualar la eficiencia de un thread de C/C++ .
Sin embargo seria un sueño programar un juego en la API de Java sinceramente seria genial las bibliotecas y claridad de codigo que tiene java son increibles. Superan en mucho a C++ en ese sentido, Pero programas C/C++ , sobre todo C, son mucho mas rapidos, Si tu maquina fuese un edificio con C/C++ tenes control sobre la maquina desde el infierno a la terraza, en cambio con java solo controlas del 5to piso para arriba a la terraza :P . Y al hacer juegos cuanto mejor control tengas disponible de la maquina mejor por que siempre tenes la posibilidad de optimizar.

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #5 en: Viernes 30 de Enero de 2004, 20:00 »
0
Flaco sos un valiente....
Te haremos un muy bonito funeral luego de suicidarte por ver que tu super juego en JAva en Millones de lineas de codigo anda a "los saltos".
QliX=D! - From the top of Tsunami

gothmog

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #6 en: Domingo 1 de Febrero de 2004, 15:58 »
0
Bueno, no tengo mucho tiempo libre, pero si al final te decides a intentar, no me importaria ayudar, suena interesante  :P

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: Por Qué No En Java?
« Respuesta #7 en: Lunes 9 de Febrero de 2004, 14:57 »
0
Hola.

Quería aportar mi opinión también a esta discusión. A parte de lo ya dicho en los posts anteriores quería comentar algunos detalles.

Citar
"la lentitud" de java (cosa que en mi opinión se puede solucionar con threads)

No veo cómo los threads van a incrementar la velocidad de ejecución de un programa en una máquina monoprocesador. Es más, si no se tiene cuidado, la sincronización de variables compartidas puede formar un cuello de botella en el pipeline de tu motor 3d por excesivas dependencias.

Citar
aparte del cobol y el fortran de la universidad, es el único lenguaje que conozco y me gustaría tratar de programar un videojuego en java

A mi me han enseñado Pascal, Caml, Java, C orientado a la programación de comunicaciones en Linux, Lisp y Prolog. Menudo cuadro para hacer videojuegos  <_< . Eso no quita que yo por mi cuenta haya profundizado en C y estudiado C++ para aprovechar todas las características de este lenguaje.

Un detalle importante con respecto a Java nadie lo ha mencionado: El lenguaje es polimórfico. En C++ ésto es una opción: se puede declarar explícitamente un método como virtual o no, dependiendo de si se quiere polimorfismo o no. El polimorfismo simplifica el código, pero también añade sobrecarga en la ejecución por tener que estar buscando el la VTABLE de la clase al hacer una llamada a un método. Una alternativa son las templates de C++, que no añaden sobrecarga (la STL está implementada de esta manera).

Por último, decir que no es imposible la creación de un motor 3d en Java. Un ejemplo de esto es Java is Doomed (http://sourceforge.net/projects/javaisdoomed/), que usa OpenGL y carga modelos md2.

Un saludo.

Ruben3d

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #8 en: Jueves 11 de Marzo de 2004, 23:01 »
0
Bueno no es por ofender pero.

¡Zapatero a tus zapatos!

Java a la web y C++ A TODO LO DEMAS.

Salu2.
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #9 en: Viernes 12 de Marzo de 2004, 07:03 »
0
Cita de: "Kev"
Bueno no es por ofender pero.

¡Zapatero a tus zapatos!

Java a la web y C++ A TODO LO DEMAS.

Salu2.
En realidad la tendencia es a la inversa...

Notarás que actualmente los tiempos destinados al desarrollo de software son cada vez más cortos, a tal punto que perder el tiempo en detalles de manipulación de memoria que si bien optimizan el programa hacen más lento y caro el proceso de producción de software al punto que pueden afectar la viabilidad de todo un proyecto.

C++ es un gran criadero de bugs (lo digo por los programadores inexpertos). Necesitas tener un equipo de programadores bastante experimentados en C++ para evitar que tu proyecto sea devorado por los bugs y eso cuesta dinero y los buenos programadores en C++ escacean. ¿Realmente crees que en estos tiempos a alguien le importa que tu programa vaya 3% más rápido (sólo si tienes excelentes programadores o de lo contrario no te servirá de NADA usar C++), o que sea un producto más barato que haga lo mismo y que no tenga los detestables bugs?

C es ideal para programar librerías, específicamente para optimizarlas, pero poco a poco es menos viable para emprender proyectos COMPLETOS: Micro$oft lo sabe muy bien y por eso existe C# : Un copy/paste de Java (forma, sintaxis, apariencia externa) fusionado con object pascal (escencia, mecanismos internos, lenguaje con tipos de datos fuertes, orden) y potencia para trabajar "cómodamente" (según el evangelio de micro$oft) con tecnologías de Internet.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Por Qué No En Java?
« Respuesta #10 en: Viernes 12 de Marzo de 2004, 14:49 »
0
SALUDOS,
Estoy de acuerdo con amilus
aunque c++ es un lenguaje por excelencia, el desarrollo rapido es una necesidad imperante.

Sin embargo no soy amigo de java, no megusta mucho y prefiero 10000 veces lenguaje c o c++ que java aunque logicamente si debo hacer una aplicacion de indole comercial usaria java.

Ahora existe c# y a mi modo verlo es mucho mejor que java, he utilizado los dos lenguajes y aunque conozco mas de java que de c# definitivamente me quedo con c# es mas limpio y amigable de programar y es mucho mas eficiente que java en als pruebas que he podido hacer.

java no esta hecho para juegos ni para nada de esas cosas, realmente lo unico queme gusta e java es que es multiplataforma, poer toda la tecnologia .net esta desarrollada para serlo tambien.

en todo caso si se trata de jusgo no java.
si es de otra cosa java, c# y en casos tragicos visual basic, si es para un desarrallo
 grande y muy serio y en general de interes cientifico mi ultima palabra es C++, c, assembler.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Por Qué No En Java?
« Respuesta #11 en: Viernes 12 de Marzo de 2004, 16:41 »
0
Cita de: "juank"
SALUDOS,
Estoy de acuerdo con amilus
aunque c++ es un lenguaje por excelencia, el desarrollo rapido es una necesidad imperante.
Pero el desarrollo en C++ no es rapido por la gran flojera en general de un buen diseño y una buena estructura de reutilizacion, mas de una vez se reinventa la rueda en desarrollo dentro de una empresa y ahí es donde empiezan los bugs.

Si no crea una paleta de componentes con una buena estructura interna, y los mantiene actualizados, los bugs se reducen a aparecer en los primeros meses o el primer añño, luego ya son casi inexistentes.

Pero pocos reutilizan, porq ue las empresas no fomentan la reutilizacion... premian al que escribe mas lineas de codigo o pagan por hora de trabajo, y mas de un pillo las justifica rehaciendo cosas.

La innovacion esta poco fundada en las empresas en general, tal vez no tanto en las de desarrollo puro pero si en las empresas que tienen un departamento de desarrollo se ve claramente que no tienen mucha nocion de como manejar las cosas en la mayoria de los casos, aplican tacticas de RRHH de gestion comercial al desarrollo, cosas completamente incompatibles en la forma de manejar el material humano.

En casi ninguna universidad se da una materia uqe sea "programacion segura" o sobre normas de seguridad que se deben tener en el desarrollo del software, asi como  tampoco se da en general en el aspecto de seguridad a ningun nivel, sea en desarrollo, administracion, etc, porlo que los bugs son comunes que salgan.

Aparte de que no son muchos los que le dedican tiempo y dan pelota al tema de la seguridad en una aplicacion, y mas de una vez no piensan en las implicaciones y riesgos de seguridad que se tienen en una aplicacion, eso es de terror.

Conozco mas de un sistema en el que las passwords estan metidos en uan base de datos en texto plano, y con una seguridad minima (si existe en algunos casos) para el acceso a la base de datos.

Muchas aplicaciones trasladan datos confidenciales a travez de la red sin siquiera cifrarlos de alguna manera, pocos saben todas las formas de Buffer overflow (por dar un ejemplo puntual) que existen en las aplicaciones.

Creo qeu el problema se sienta en las bases.

Y ni hablar del hecho de que cualquier idiota se sienta adelante de VB y hace una "maravillosa" aplicacion llena de agujeros de seguridad y con una mantenibilidad proyectada dos segundos mas alla de la instalacion inicial = 0

puff... Sorry... me cope con la "verba".

slds.
QliX=D! - From the top of Tsunami