Jump to content
  • Buscar en
    • Más opciones...
    Encontrar resultados que contengan...
    Encontrar resultados en...

Archivado

Este tema ahora está archivado y cerrado a otras respuestas.

Ellolo17

El debate definitivo: ¿Cual es el mejor lenguaje de programación?

Publicaciones recomendadas

Ellolo17 Stinger

Publicado
vida restante: 100%
Creo que ha havido varios hilos similares a este ya, no recuerdo. Pero como no se ve por aqui en vez de que cada uno escriba en cualquier hilo una discusión sobre esto lo pondremos por aqui.

Eso sí, hay que poner unas normas para que todo vaya bien:

1_ Insultos = KK. Por muy mal que te caiga un lenguaje usado por otro no es un ignorante ni un retrasado. Puede que lo pienses, pero no se lo digas, ya se acabará dando de bruces si tienes razón.
2_ Intentad pasad a este hilo todas las discusiones para que no se desvien los otros hilos del tema ;)

Con esto creo que saneamos bastante el subforo.
Un saludo y usadlo con cabeza.


PD: Yo soy de c# y java. No le hago ascos a c/c++.

Un saludo,
Luis Miguel Carrasco

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

hopelessweo Trunks

Publicado
vida restante: 100%
No hay ningun lenguaje mejor que otro, realmente, hay 1001 variables personales o sobre lo que vayas a hacer que les dan mas o menos valor.

Yo lo que defiendo, en general, es:

-En la enseñanza o en general(siempre se dice cuando se recomienda algo)no se deberia empezar por C. Se deberia usar python o ruby, porque son muchos amenos, divertidos y utiles simples para aprender. Pasa que mucha gente empezo hace años con este y sigue la tradicion, pero si se enseña con C por ser mas basico y simple, python y ruby pueden ser igual de simples, sin enseñar OO(esa es otra, creo que un minimo se deberia) pero ademas sumando todas las ventajas de scripting y de los propios lenguajes en si.

-Que el lenguaje o libreria debe adaptarse a lo que requiera tu proyecto. Si pretendes hacer un juego lo bastante simple como para no requerir las cosas particulares de C++(rendimiento, librerias, lo que sea...) entonces es absurdo usarlo por regla aunque pueden haber 1001 factores que te lleven a usarlo tb.

Estando las partes mas pesadas y jodidas ya programadas en este lenguaje(lenguajes interpretados, librerias, engines...) usar un lenguaje lento no va afectar en lo mas minimo(e incluso sin ello).

Hoy en dia, solo un pesimo programador podra sacar algun juego pequeño que tenga un problema de rendimiento en el PC medio, pero esque ese lo haria igual de mal en todos lados. Para la enorme mayoria de las cosas el lenguaje que eliges o la libreria no es vital para la optimizacion ni la velocidad.

Obviamente, como no necesito mas, uso python y ruby para casi todo, y luego c#, aunque conozca mas. En cuanto a librerias, gosu, rgss(rpgmaker xp), pygame y gtk.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Tholagar PARIETINAE UMBRA

Publicado
vida restante: 100%
Para programación en general, lo mejor es aprender con C++, como hacen en la facultad. Con lo que aprendas, el resto de lenguajes útiles te van a resultar muy muy sencillos.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

hopelessweo Trunks

Publicado
vida restante: 100%
La facultad es una cosa, aunque yo no haria el primer semestre por ejemplo, con c++, sino con otro. Pero esque se recomienda para todo y para todos los casos y eso no me parece bien.

Yo estudie un ciclo de administracion de sistemas. Pues bien, enseñaban C hasta punteros y luego un minimo, minimismo, de vb, php y bash shell.

¿Para que cojones le sirve a un administrador manejar C? De nada en absoluto. ¿Y los punteros y cosas asi? pse... para administrar lo util son otras cosas y para aprender mejor usar otros lenguajes que les seran mas utiles tb.

Si alguien quiere aprender a programar, puedo entender que acabe tocando C++ y C pero no ha de ser lo primero no tiene ningun sentido empezar por lo mas complejo dificul y tocahuevos y luego ir a lo demas, eso no se hace en ningun tipo de aprenentaje, no hay curva de dificultad alguna.

Aparte depende de lo que cada cual pida o necesita. Si alguien quiere acabar trabajando en la industria, lo mas probable es que lo necesite, pero sino, es recomendable que use otros.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Ellolo17 Stinger

Publicado
vida restante: 100%
Pues yo personalmente aunque no he vivido esto que expongo y lo veais muy asi, pienso que lo mejor es java.

Porque es fuertemente tipado y tiene todas las librerias. Para aprender a programar enseñará a la gente a programar como se debe (y tiene la guia de estilo para todo el mundo, eso si, en ingles).

Para aprender creo que es lo mejor, una vez que has probado uno fuertemente tipado puedes enfrentarte a todo. Como cuando aprendes a conducir en Madrid, que se dice que una vez que lo has hecho puedes conducir en cualquier parte del mundo, aunque sabiendo lo chulos que somos seguramente no sea asi.

y es que aparte de aprender eso es que tienes todas las librerias y no tienes que encargarte de bajar nada nuevo a no ser que quieras hacer juegos 3d, en cuyo caso si que deberias bajarte una libreria de java3d.

Vale, es lento, pero es de lo mas todoterreno que he visto salvo para cosas a bajo nivel. ¿Quieres un juego 2d? Sin problemas, ¿quieres aprender? Sin problemas ¿Quieres hacer programacion concurrente eficaz? Sin problemas ¿Comunicación cliente servidor por servlets o shockets o lo que te de la gana? Lo tienes. Y de ahi dar el paso a c# o a c++ esta CHUPADO. No digamos si quieres ponerte con ruby o con python o lua para scripts (no olvidemos javascript que se usa en unity)

Hopelessweo. Lo que te digo no es un ataque ni nada, te lo pregunto desde la ignorancia porque del tema vi lo minimo en el ciclo superior de desarollo de aplicaciones y de linux lo basico de hacer procesos y similares en la universidad. Pero... Si eres administrador de sistemas en linux y quieres automatizar algo... ¿No es mejor hacerlo en c?

Aun asi ten en cuenta que estamos en el foro de desarrollo de videojuegos, no de pc. Lo que se hace es, por ejemplo en el motor Source, poner un parser de Lua para los scripts y cosas asi.

Aparte de eso, para cosas similares, no le veo demasiada utilidad por mi parte a los lenguajes que comentas para esto.

PD: En la universidad, al menos la Politecnica de Madrid, vemos c el primer cuatrimestre, c++ y java el segundo, y el tercero a medio camino entre todos. Incluso en una asignatura antes se usaba el second life para programar IA (por lo que me han comentado, tu te tenias que progamar un cubo para que el profesor generase unas esferas y tu cubo las esquivase usando un algo)

Un saludo.

Un saludo,
Luis Miguel Carrasco

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Gagle Genos

Publicado
vida restante: 100%

Si fuera el jefe de estudios del departamente de informatica, el primer año se haria asi:

 

1r semestre: Diagrama de actividad UML y algoritmia basica con python. Practica de python añadida. Basicamente para que aprendan a hacer 4 cosas basicas. Se puede instalar facilmente en windows y linux y viene con un IDE basico y perfecto para hacer 4 lineas.

 

2o semestre: C para que aprendan a manejar punteros y estructuras de datos como pilas, colas y listas dinamicas. Practica en C donde toquen ficheros binarios y de texto, alguna estructura de datos, y punteros (paso por referencia).

 

Esto para mi seria lo ideal y lo mejor para el estudiante de 1o de carrera que en su vida a programado. De hecho en mi universidad se hace mas o menos asi, pero en lugar de python se usa un pseudocodigo que obviamente no puedes compilar.

 

 

 

Y sobre el mejor, pues no lo hay, si a caso el mas usado, pero cada uno sirve para una cosa en concreto. Todos tienen ventajas e inconvenientes. Y, por dios, no se a quien le he leido decir que java es lento, pero mejor que lo edite para no quedar en ridiculo. Lento para que?

 

Si eres administrador de sistemas en linux y quieres automatizar algo... ¿No es mejor hacerlo en c?

 

Entra en el subforo y linux y pregunta por bash scripting.




Committing suicide to free the zombie!
Human knowledge belongs to the world
"640KB ought to be enough for anybody" (Bill Gates, 1981)

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

hopelessweo Trunks

Publicado
vida restante: 100%
Exacto. En linux se usa el C, pero aplicaciones, librerias y kernel, no para desarrollo simple o administracion.

Lo que mas valor tienen son los lenguajes de script, por lo que no pude enteder como dieron 4 veces mas temario de C que de lo demas.

El bash integra de forma hiperfacil todas las ordenes de comandos de linux y esta pensando entorno a el, por lo que es la herramienta perecta en ese sentido, aunque el lenguaje a mi por lo menos, me parezca pesimo.

Sobre Java, por lo que he provado, mi problema con el es que es muy puta para muchas cosas. Por ejemplo, hay que implementar muchos patrones a mano o algunos que existen no se usan, estan desaconsejados, etc, un rollo. Eso para aprender OO avanzada ok pero de hecho puedes reescribirlos en cualquier lenguaje OO.
Por cierto, actualmente Java y C++ tampoco estan muy lejos en cuanto rendimiento.

Ruby es como Java en el sentido de ser hiper OO, pero tiene una biblioteca standard 1000 veces mas completa y muchas cosas que has de hacer a mano en Java aqui ya estan creadas, y muchas veces, simplfiicadas. No existe por ejemplo los 20 tipos de objetos ficheros, o de listas, etc... sino que existen unos pocos tipos que implemntan todas las funciones de los demas.

Es cierto que esto es mas lento se usa ese lenguaje cuando el rendimiento no te importa tanto.

Aparte ruby es como perl en el sentido de tener 1001 truquillos y azucar sintaxico que facilita escribir los programas(el codigo nunca es tan ofuscado como con perl, en todo caso). Esto me gusta mucho, por ejemplo, hay muchas formas de iterar:

a = []

for i in a
i += 1
end

a.each{|i| i += 1} # equivalente
range.step(2) {|x| puts x} # este metodo itera de 2 en 2

p 'testeando' # version acortada de print o puts de ruby

La sintaxis de ruby es hiperineresante. No se necesitan los (), ;, etc y son opcionales. Los bloques van por nombre - end generico. Por cierto creo que ruby tb es fuertemente tipado, ¿no?

Sin embargo un lenguaje como python y c son al contrario. Aunque los uso, sobretodo python, no me desagradan, pero la sintaxis tipo C, que se ha heredado mucho, me parece muy mala, no hay ninguna razon para usar el ; y asi mil cosas.... aparte python tiene la identacion obligatoria, puede ser bastante engorrosa si por ejemplo quieres escribir cualquier cosa rapidamente solo.

En cuanto a Perl, pues es un lenguaje hiper complejo y con estilo muy original y que necesita ya que salga la nueva version. Sin embargo dire que si te gusta toqutear, hackear, investigar y trastear con 1001 cosas, perl es tu lenguaje, no solo ensintaxis y truquillos, sino que tiene la mayor repositorio de modulos online. El cpan no solo incluye soluciones para casi todo sino que se puede modificar el funcionamiento del lenguaje al completo. Nuevas OO, funciones, sintaxis, opciones, etc... infinidad de cosas.

Y por eso digo que va a gustos, xD. A mi perl me llamo la atencion aunque me harte por un tiempo, sobretodo debido a la alta cantidad de modulos que tenia que instalar para tener una OO decente y que no pudiera usar linux que es lo mejor para el lenguaje.

Para mi ranking seria: ruby, perl, python, java, c#, c++, php, c, vb, bash shell(horrible)

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

ROLLER2000 Gwyn, Señor de la Ceniza

Publicado
vida restante: 100%
El mejor lenguaje de programación es el que más domines. :D :D :D

"...aquí la gente le nubla ese anticatalanismo profundo y arraigado de la meseta..."

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Renegade3D Sagrada Trifuerza

Publicado
vida restante: 100%
Dado que estamos en la sección de Videojuegos de Meristation, me centraré exclusivamente en la programación para tales fines.

Bajo mi punto de vista y dado que no quiero explayarme demasiado debido al debate genérico que habéis creado ahí arriba intentaré resumir mi opinión.

Si alguien tiene pensado desarrollar de manera indie para Xbox 360 lo recomendable es que haga uso del lenguaje C# más el FrameWork XNA, independientemente de si su desarrollo es un juego en 2D o 3D.

Para móviles, si vas ha desarrollar sobre IOs utiliza Objetive-C, en caso de querer desarrollar para Android haz uso de Java.

Para PC, si vas a desarrollar tu juego en 2D utiliza cualquier lenguaje compatible con la librería SDL, pues es de las mejores en la actualidad para dicho propósito y además es multiplataforma.

En caso de que quieras desarrollar un juego en 3D tendrás que hacer uso del lenguaje C++ más Directx/OpenGL o un motor adecuado para el desarrollo a realizar y compatible con dicho lenguaje. Aquí depende del camino ha escoger pero el lenguaje C++ es obligatorio ya que el rendimiento es muy importante en este caso concreto.

Un Saludo.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

xxpleyxx Fledgling

Publicado
vida restante: 100%
Sin dudarlo diria ahora mismo que Unity es de las mejores opciones para muchas plataformas, desde iOS, Android hasta PC y MAC entre otros. Y por supuesto en C#, el futuro no tan lejano en cuanto a estandar de programación para videojuegos.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Ollydbg Navi

Publicado
vida restante: 100%

...

 

Que conste que estoy absolutamente de acuerdo con todo excepto con esto:

En caso de que quieras desarrollar un juego en 3D tendrás que hacer uso del lenguaje C++ más Directx/OpenGL o un motor adecuado para el desarrollo a realizar y compatible con dicho lenguaje. Aquí depende del camino ha escoger pero el lenguaje C++ es obligatorio ya que el rendimiento es muy importante en este caso concreto.

 

C++ no tiene el "monopolio" de la programación en 3D y para muestra un botón:

(porfaplis, ver todo el vídeo y si puede ser a 720p mejor)

 

 

¿En que diríais que está programado eso?. Pues sí amigos y amigas, está programado en VB.NET usando SlimDX

 

Desde que en los lenguajes "modernos" se pueden integrar "wrappers" que trabajan de fondo con DirectX (Direct3D) y/o OpenGL (por ejemplo con OpenTK) esta teórica obligación de usar C++ para "todo" queda en un segundo plano.

 

Si no voy herrado , E.V.E. Online está programado en Python y seguro que aparte del E.V.E Online que hay más ejemplos.

 

¿Qué C++ es "EL lenguaje"? Creo que nadie lo discute

 

Ahora bien, que nadie se lleve a engaño. Los lenguajes actuales, llamémosles "interpretados" (Java, C#/VB.NET...) tienen una máquina virtual "hiper-optimizada" que poco o nada tiene que ver en cuestión de rendimiento con las VM de hace años.

Tampoco que nadie piense que por tener su programa en C++ éste "ya es mejor" únicamente por el hecho de estar en C++.

Puedes implementar un sistema de ordenación (Quadtree/Octree) que va de "pena" en C++ y sin embargo puedes implementarlo en Java y "vuela". Todo depende del programador y de la habilidad que éste tenga en dicho lenguaje.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Renegade3D Sagrada Trifuerza

Publicado
vida restante: 100%
Ollydbg, nadie niega que sea posible crear juegos en 3D con multitud de lenguajes diferentes, un ejemplo de ello ya que has puesto un video de un juego con jugabilidad tipo "Cube Craft" es el propio MineCraft que fue desarrollado en Java.

En el caso del que has puesto, se que está hecho con un lenguaje distinto a C++ y además con un FrameWork llamado SlimDX, ¿Sabes cual es el inconveniente?, que si haces ese mismo juego en C++ con Directx conseguirías mayor rendimiento, en primer lugar porque evitas la capa intermedia entre Visual Basic -> Wrapper -> SlimDX -> Directx, con lo que en un principio ya has ganado rendimiento, después evitas el recolector de basura de lenguajes interpretados como Java, C#, Visual Basic, etc... que es llamado a cada Frame del juego para liberar memoria RAM con la consecuente pérdida de rendimiento por ocupar ciclos de la CPU en dicha tarea, por último otro aspecto de ganancia por parte de C++ es que todo el código es pasado a ensamblador durante la compilación y de ahí al resultante binario compilado que le permite ofrecer un rendimiento mayor que los lenguajes interpretados.

Por supuesto, la destreza del programador puede ser resultante final del rendimiento que ofrecerá el juego desarrollado, pero utilizar como base C++ para su juego ya le ofrece desde un principio una ventaja en rendimiento y éste es fundamental en un videojuego en 3D.

Por cierto Ollydbg, ¿Tu alias hace referencia al software llamado así?, en caso afirmativo, ¿Te dedica ha algo relacionado con la ingeniería inversa?.

Un Saludo.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

hopelessweo Trunks

Publicado
vida restante: 100%
No estoy de acuerdo por base en usar c para eso. Dependera de lo que el tio vaya a hacer. Engines como unity o unreal usan lenguajes interpretados para la logica del juego y no veo yo que den problemas de rendimiento a nadie.

Lo que se debe pensar es en hacer la optimitzacion en base a lo que tu vayas a necesitar.
Por cierto, el dibujado 3d propiamente, lo hace la libreria, y es lo mas pesado, cuando yo he programado, los graficos , y luego muy lejos, lejos, la IA, son lo que mas consume, que alguien escriba su sistema de escenas, objetos y logica general no audiovisual en un lenguaje mas lento no va a dar muchos problemas a menos que espeficiamente sea una aplicacion critica o de muy alto rendimiento requeruido. Y incluso asi pues escribes en C/C++ las partes a optimizar y ale.

Yo estoy planetandome muy seriamente trastear y quizas crear algo con pyogre 3d, por lo dicho. No requiero el rendimiento extra de C++ para lo que voy a hacer, asi que...

En cuanto a SDL, esta muy bien porque tiene muchos ports y esta en todos los lenguajes, pero, esta anticuada(haber cuando sale la 2.0) y no tiene una gran aceleracion por hardware(aunque costaria mucho que te diera problemas de rendimiento).

¿Habeis oido hablar de SFML?

http://www.sfml-dev.org/

Ventajas:

-Esta viva y coleando, con sus desarrolladores activos.
-Gran rendimiento gracias a que usa opengl.
-Soporte nato y mejor para 3d.
-Mejor documentacion.
-Diseño mejor, mas capacidad y uso del OO de base.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Renegade3D Sagrada Trifuerza

Publicado
vida restante: 100%
hopelessweo, el Unreal Engine está creado con el lenguaje C++, lo que ocurre es que dicho motor incorpora un motor de Scripts propio que le permite al desarrollador crear scripts que se comuniquen con dicho motor de scripts y de ahí al motor gráfico y/o físico para el desarrollo de eventos y demás. Por eso no ves problemas de rendimiento, además de por supuesto de que es un motor que hoy en día puede ser utilizado con mucha soltura por gran parte de los PCs actuales.

Sobre el uso abundante de CPU durante un juego, bajo mi experiencia diría que el apartado de calculos físicos de colisiones, y demás es lo mas exigente para una CPU junto a un sistema de partículas, por supuesto muchos desarrolladores profesionales hoy en día hacen uso de la GPU para los motores físicos y de partículas para obtener un mayor rendimiento en ese tipo de cálculos, pero la mayoría siguen haciendo uso de la CPU para dichas tareas de cálculos.

Por cierto, como he visto que te gusta programar en Python y quieres realizar algún juego 3D con dicho lenguaje te recomiendo que le eches un vistazo al Blender Game Engine.

Dirección : Blender Game Engine.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Ollydbg Navi

Publicado
vida restante: 100%
De nuevo coincido con Renegade3D. Todo lo que comentas es completamente cierto. No me imagino un Frostbite 2 o un CryENGINE 3 programados en otro lenguaje que no sea C/C++/ASM
Ahora bien, a lo que yo me refería es que si mañana sacan un "wrapper" de Frostbite 2 que pueda ser usado en Java/C#/VB.NET/Python/"x"...los resultados que podrías obtener no serían nada malos. Si, "peores" que una aplicación completamente escrita en C/C++ obviamente, pero en definitiva nada malos.
Como ya dije antes, C/C++ es "EL lenguaje" :D

Yo no veo excesivas quejas de la gente que usa XNA, que a la postre no deja de ser un "wrapper" que está usando Direct3D de fondo "sin que te enteres".

Estoy en la linea de hopelessweo.

PD (Off-topic): Sí mi nick hace referencia a "esa herramienta" ;)
Cuando era joven y alocado estaba todo el día dándole a los JNE, JMP, CALL, PUSH etc. Hoy en día nada de nada, hay que pagar las facturas y el "reversing" no da de comer X-D X-D X-D

PD2 (Off-topic): Quitando hierro al asunto, se debería hacer otro debate definitivo: ¿Cuál es el peor lenguaje de programación?. Obviamente Brainfuck y Ook! se llevan la palma :) (por favor, tomárselo con humor)
Más info aquí (Inglés) y aquí (Español)

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web
Guest
Este tema está cerrado a nuevas respuestas.

  • Explorando recientemente

    No hay usuarios registrados viendo esta página.

  • Crear nuevo...