Ir al contenido


Foto

Comparativa lenguajes de programación


  • Por favor identifícate para responder
18 respuestas en este tema

#1 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 05:12

Saludos, estoy buscando un lenguaje de programación para escritorio. Se programación web, se hacer videojuegos con motores de diseño 3D (tal vez aprendí esto porque no encontré un lenguaje de escritorio que me convenciera)

El caso es he visto la cantidad de lenguajes que hay y he mirado un montón de comparativas en Google, pero les pediría que me diesen una opinión más clara.

Yo busco un lenguaje de programación rápido, y si partimos de que C++ es lo más rápido, pues no me puedo permitir uno que sea 10 veces más lento.

Los lenguajes de programación candidatos son:
C++
Java
Haskell
Lisp
Erlang
Python
Scala

C++ por su velocidad y documentación, pero solo de ver que hay que hacer más código y es chungo de revisar se me quitan las ganas.

Java he oído que es muy chungo de analizar y tiene una buena velocidad.

Scala. He oído que es el Java mejorado, dicen que es más limpio y más cosas... Pero también he oído que es más lento y la verdad es que lo desconozco.

Haskell, Lisp y Erlang los desconozco totalmente, pero dicen que tienen mucho futuro y que son muy versátiles.

Python me enamora su sintaxis, pero dicen que es 35 veces más lento que C++ o peor, así que creo que no será viable.

El lenguaje de programación que busco parte de:
Tiene que tener suficiente rendimiento como para poder hacer un juego. No tiene que ser el Crysis pero que se pudiera hacer uno 3D.
¿Cuáles reunen estas características?

Si ha pasado la anterior pregunta participa por la siguiente.
Tiene que ser lo menos costoso de escribir y analizar posible  (dentro de lo que cabe), si me los pueden mostrar en orden de facilidad de escritura y analizaje.

Y por último las librerías, se que esto se pone del lado de lenguajes como C++ o Java pero me gustaría conocer los detalles.

También agradecería que me dijesen que lenguaje utilizan si programan del lado del escritorio.

Ya se que pueden parecer muchas preguntas para una sola persona, pero esto sirve para poder hacer una comparativa que luego podrá ver todo el mundo y además, ¿a quién no le gusta discutir sobre que lenguaje de programación es mejor?

Saludos y gracias de antemano.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 08:25

El caso es he visto la cantidad de lenguajes que hay y he mirado un montón de comparativas en Google, pero les pediría que me diesen una opinión más clara.

Yo busco un lenguaje de programación rápido, y si partimos de que C++ es lo más rápido, pues no me puedo permitir uno que sea 10 veces más lento.

Los lenguajes de programación candidatos son:
C++
Java
Haskell
Lisp
Erlang
Python
Scala

C++ por su velocidad y documentación, pero solo de ver que hay que hacer más código y es chungo de revisar se me quitan las ganas.

Java he oído que es muy chungo de analizar y tiene una buena velocidad.

Scala. He oído que es el Java mejorado, dicen que es más limpio y más cosas... Pero también he oído que es más lento y la verdad es que lo desconozco.

Haskell, Lisp y Erlang los desconozco totalmente, pero dicen que tienen mucho futuro y que son muy versátiles.

Python me enamora su sintaxis, pero dicen que es 35 veces más lento que C++ o peor, así que creo que no será viable.

El lenguaje de programación que busco parte de:
Tiene que tener suficiente rendimiento como para poder hacer un juego. No tiene que ser el Crysis pero que se pudiera hacer uno 3D.
¿Cuáles reunen estas características?

Si ha pasado la anterior pregunta participa por la siguiente.
Tiene que ser lo menos costoso de escribir y analizar posible  (dentro de lo que cabe), si me los pueden mostrar en orden de facilidad de escritura y analizaje.

Y por último las librerías, se que esto se pone del lado de lenguajes como C++ o Java pero me gustaría conocer los detalles.

También agradecería que me dijesen que lenguaje utilizan si programan del lado del escritorio.

Ya se que pueden parecer muchas preguntas para una sola persona, pero esto sirve para poder hacer una comparativa que luego podrá ver todo el mundo y además, ¿a quién no le gusta discutir sobre que lenguaje de programación es mejor?

Saludos y gracias de antemano.


Lástima que no tengas a Delphi como candidato, para aplicaciones de escritorio no tiene competencia, no requiere de acompañarse de "liberias" como los otros, muchos juegos se hacen con Delphi (Pascal), en fin, para lo que necesitas creo que es lo mejor.

De los que mencionas pues yo te puedo decir que sería mejor que te quedes con C++.

Saludos
  • 0

#3 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 07 diciembre 2012 - 08:30

Es muy interesante lo que preguntas, pero quisiera saber hacia donde te orientas, ya que como lo planteas pareciera buscas crear más un engine de juegos que crear algun juego para una plataforma específica o multiplataforma. He visto software en la red de licenciamiento aparentemente muy completos donde solo te preocuparías por el tema de juego, los scripts de interacción, los modelos 3D, sonido y demás, con estos podrías llegar a windows, mac, linux, ios, android, hasta wii o ps3 o incluso para navegadores, refiriéndome a Unity http://unity3d.com/u.../multiplatform/

Pero creo por su alcance además de ser multiplataforma, documentación y tutoriales, recomendaría C++

Saludos
  • 0

#4 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 09:28

Delphi no le he metido porque no es un lenguaje de programación en sí. Aún así acepto recomendaciones.

Lo oriento principalmente a juegos, pero que también sirva para en un momento dado poder hacer un programa normal.

C++ a niveles técnicos es el mejor, pero lo que hace que no acabe de decantarme por él es la gran cantidad de código a escribir.

He encontrado un lenguaje que se llama Haxe que es una pasada, mirároslo todos porque es muy guay.

Pero si pudiesen responderme a la pregunta de cuales dan el rendimiento que digo sería genial.

Saludos.
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 09:44

Delphi no le he metido porque no es un lenguaje de programación en sí. Aún así acepto recomendaciones.


Bueno, los que usamos Delphi en realidad sabemos que es Pascal.

Lo oriento principalmente a juegos, pero que también sirva para en un momento dado poder hacer un programa normal.


Para aplicaciones de escritorio, te puedo asegurar que Delphi es lo mejor.

C++ a niveles técnicos es el mejor, pero lo que hace que no acabe de decantarme por él es la gran cantidad de código a escribir.


Ahí si que te digo, la cantidad de código depende de varios factores, no sólo es el lenguaje. Por ejemplo, prácticas de programación, desconocimiento de métodos, funciones y procedimientos del lenguaje, etc.

He encontrado un lenguaje que se llama Haxe que es una pasada, mirároslo todos porque es muy guay.


No conozco ese lenguaje.

Saludos
  • 0

#6 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 09:50

Bueno, agradezco a todos su aporte, aún así me gustaría que opinasen sobre el resto de lenguajes que propongo porque seguro que cada uno tiene algo bueno.

Por cierto Haxe se puede ver aquí: http://haxe.org/
A lo mejor me decido por aprender este, porque se puede compilar en C++ también.

Saludos.
  • 0

#7 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 09:59

Delphi no le he metido porque no es un lenguaje de programación en sí. Aún así acepto recomendaciones.


Pues... Delphi es de hecho un IDE para Object Pascal. :) Que por supuesto es un lenguaje de porgramación.

aquí algunos enlaces para crear juegos con DELPHI.

http://www.casteng.com/

http://www.delphigamedev.com/


http://delphi.about....Programming.htm



http://www.delphigamer.com/main.php


http://glscene.sourc.../wikka/HomePage



http://www.delgine.com/
  • 0

#8 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 10:00

¡Oh! Gracias por el aporte, tendré en cuenta a Delphi para la candidatura, seguro que vale la pena.

Saludos.
  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 10:05

De los enlaces que has puesto estimado poli, me quedo con ésto

why make games in Pascal?

Object Pascal (Delphi) is a modern object-oriented programming language well suitable to make games. It has clear, readable, strict and type-safe syntax as well as well-tought modularity. This is important for writing big projects such as computer games especially while targeting on multiple processor cores (multithreading).

Also important property of existing implementations of Pascal is compilation into native machine codes.


Enlace

Saludos
  • 0

#10 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 11:47

¿Pero en cuanto potencia? Como de rápido es Delphi respecto C++. Y, ¿en temas de librerías y documentación?

Saludos.

PD: ¿No me dicen nada de los otros lenguajes o para que sirven los funcionales?
  • 0

#11 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 12:11

¿Pero en cuanto potencia? Como de rápido es Delphi respecto C++. Y, ¿en temas de librerías y documentación?


Ambos lenguajes generan ejecutables en código maquina optimizado para el OS y arquitectura donde son compilados, a diferencia de otros que son interpretados lo que los hace muy potentes y más rápidos que cualquier programa interpretado.

Sobre los otros lenguajes:

C++ es al igual que delophi una excelente opción. Pero para programar en este lenguaje debes tener un buen dominio de temás avanzados de programación.

Java. No olvides que esto te genera programas que deben ser interpretados por la máquina virtual por lo que la potencia se reduce al depender de ella. Luego, es una muy buena opción para desarrollar juegos pero no esperes crear algo como Quake con él....

Lisp. Hasta donde se su ámbito está ligado a la inteligencia artificial y cálculos matemáticos. No creo que sea un lenguaje a considerar para esto.

Python. Lo mismo que java

Haskell,Erlang,Scala son lenguajes de poca penetración por lo que la documentación seguramente será escasa y la ayuda pobre.... No considero una buena opción...

Te sugiero que evalues entre c++ y delphi.

saludos

  • 0

#12 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 07 diciembre 2012 - 12:46

Ok, gracias.
De C++ ya se más o menos por donde van los tiros, pero no se nada de Delphi.

¿Es un entorno de desarrollo no? Y bueno su lenguaje es Pascal. Tengo entendido que es un lenguaje muy viejo. No se como irá su sintaxis y su documentación o librerías.

¿Es multiplataforma?
Además he oído que usa punteros de una forma muy antigua.

Y tengo en tendido que Blender está hecho en Python osea que de alguna forma se podrá hacer algo tipo Quake. Y con http://www.pypy.org/ se puede compilar en bytecode, ¿será igual de rápido?

Saludos.

PD: ¿Con Delphi si es posible algo como Quake?
  • 0

#13 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 03:43

¿Es un entorno de desarrollo no? Y bueno su lenguaje es Pascal. Tengo entendido que es un lenguaje muy viejo. No se como irá su sintaxis y su documentación o librerías.


Así es, Delphi es un entorno de desarrollo para el Lenguaje Object Pascal. Aquí puedes conocer más de él:
http://es.wikipedia....arcadero_Delphi

Si en cuanto a viejo te refieres al tiempo que tiene en el mercado, pues es de hecho más joven que C++. Si en cuanto a viejo te refieres a su sintaxis y características pues te diré que este año salió a la luz la versión XE3 lo que incluye muchas de las modernas características de la programación orientada a objetos.


¿Es multiplataforma?
Además he oído que usa punteros de una forma muy antigua.


¿Es multiplataforma?. Sí, actualemnte te permite generar binarios para MAC y Windows, si requieres crear juegos en linux, entonces la mejor opción es Lazarus.

Sobre los punteros... a que te refieres con lo de forma muy antigua?, no entendí bien esa parte :)


PD: ¿Con Delphi si es posible algo como Quake?




Te invito a verlo por ti mismo :)



aTyYM12YRew
  • 0

#14 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 07 diciembre 2012 - 09:07

Y tengo en tendido que Blender está hecho en Python osea que de alguna forma se podrá hacer algo tipo Quake. Y con http://www.pypy.org/ se puede compilar en bytecode, ¿será igual de rápido?


Hola flash-back

En realidad Blender está programado en lenguaje C, sin embargo, se utiliza Phyton como herramienta adicional con el objetivo de extender la funcionalidad del sistema. Esto es una práctica común y también se aplica con algunos motores de videjuegos. El núcleo está programado en C, C++ o Pascal y se incorpora algún lenguaje de script para ofrecer la posibilidad a otros programadores de que realicen mejoras y extensiones sin necesidad de meterse de lleno al código fuente original y solamente se limitan a aprender las reglas a seguir para crear extensiones e instalarlas como plugins.

Si investigas este tema verás que cabe la posibilidad combinar múltiples lenguajes para desarrollar un videojuego. Por ejemplo puedes utilizar Phyton o LUA como lenguaje de script embebido. Para el motor gráfico y en operaciones más pesadas normalmente se utiliza lenguaje C y aún existen motores que para mejorar el rendimiento, algunas operaciones las resuelven a bajo nivel con ensamblador.

Como podrás observar el rango de posibilidades es muy amplio.

Saludos



  • 0

#15 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 08 diciembre 2012 - 07:47

Bueno, sin duda me han dicho muchas cosas buenas de Delphi y Pascal, pero agradecería también que me dijeran sus contras.

¿Cómo está Pascal en cuanto librerías?

¿Y qué es lo de un lenguaje de programación embebido? Es mezclar 2 lenguajes diferentes o usar algo como Cpython o algo or el estilo.

¿Y Lua? Lo he visto en la Wikipedia y pinta muy bien.

Saludos.
  • 0

#16 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 08 diciembre 2012 - 09:38

Bueno, sin duda me han dicho muchas cosas buenas de Delphi y Pascal, pero agradecería también que me dijeran sus contras.


Contras?
pues solo le conozco una: Para proyectos web no es tan eficiente como php o java.

liberias? existen miles...

aquí puedes encontrar algunas http://torry.net/ y proyectos open source en sourceforge puedes encontrar varios.

  • 0

#17 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 08 diciembre 2012 - 11:37

He de decir que este es un foro dedicado principalmente a delphi por lo que las opiniones pueden tener cierto grado de sesgo.

Mi lenguaje preferido es el C/C++ quizás porque lo aprendí tras el ASM o por mi forma de ver las cosas. Me gusta como trata los punteros y la similitud directa entre los arrays y punteros, así como la propia aritmética de punteros. Pero todo esto tiene sentido cuando estamos trabajando a bajo nivel.

No creo que tengas que escribir mucho mas código sobre todo cuando te apoyas en librerías de clases (C++) y te va a ser muy sencillo trabajar con la API de windows o cualquier otra.

También he de decir, que el roce hace el cariño. Inevitablemente he escrito cosas en delphi y muchas de esas cosas a bajo nivel (mucho código lo tengo publicado en este foro). Es un lenguaje que puedo calificar como muy potente a bajo y alto nivel. También te puedo asegurar que es muy rápido. Si bien el tratamiento de punteros es un poco menos directo que en C y la aritmética de punteros, mas deficitaria, trabajas con ellos bien. Casi todo lo que he podido hacer en C lo he podido migrar a delphi excepto escribir un driver de S.O.

Es cierto que vas a encontar mas compiladores de C que Object Pascal y que, probablemente, también tienes mas código y librerías para C/C++, pero cualquiera de los dos va a ser una buena elección en cuanto potencia, rapidez y posibilidad de trabajo a bajo nivel.

Te recomiendo que visites esta vieja encuesta: Delphi vs C/C++ y esta otra: Lenguajes de Programacion del Lado del Escritorio

En definitiva, si crees que las respuestas pueden estar sesgadas por el mero hecho de estar en un foro dedicado a delphi, cosa que puede ser cierto, entonces piensa que la mía es de un forofo del C/C++, al que le terminó de gustar también delphi por sus virtudes. Aún así sigo prefiriendo C/C++


Saludos.
  • 0

#18 flash-back

flash-back

    Advanced Member

  • Miembros
  • PipPipPip
  • 62 mensajes

Escrito 08 diciembre 2012 - 12:04

Bueno, lo que más he lamentado es la falta de defensores de otros lenguajes.

Creo que voy a probar algo de Delphi para salir de dudas pues ya conozco C++.

Saludos.
  • 0

#19 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 09 diciembre 2012 - 12:34

Hola,
Con todo respeto, flash-back me pareces que no tienes ni idea de lo que es Delphi y de lenguajes en general. Peor aún, sin un objetivo concreto.

Por empezar, Delphi es tanto el IDE como el lenguaje. Aunque en términos reales, el lenguaje que soporta es una evolución y mejora del Object Pascal inicial. Pascal es otro lenguaje... el padre... aunque para ser más exactos, es su abuelo.

Delphi cuenta con una extensa biblioteca, y hay una enorme variedad de bibliotecas de terceros para hacer prácticamente de todo asi que limitaciones sobre su capacidad y posibilidades de hacer lo que se te cante son pocas.

Los defectos de Delphi como lo han indicado son el lado web y que no tiene soporte, al momento, para Linux. Si quieres multiplataforma tanto Windows, Linux, Mac entonces puedes utilizar su "hermano" Lazarus. Lazarus es un IDE Open Source que utiliza el compilador FreePascal (también Open Source) que tiene soporte tanto para Object Pascal como Pascal (hoy también conocido como Pure Pascal).

Tanto con Delphi como con Lazarus se puede hacer lo que gustes. ¿Quieres juegos? Se puede, quieres hacer un sistema de gestión, puedes; quieres explotar webservices, lo puedes.
Con decirte que hasta es posible hacer un kernel... por ejemplo el proyecto Toro Kernel que está escrito en FreePascal. Aunque es un proyecto lento y mantenido por una única persona.

Para juegos, con Delphi/Lazarus quizá lo mejor sería acudir a Pascal Game Development. En dicha comunidad están los expertos.

Ten en cuenta que desarrollar un video juego implica conocimientos por demás avanzados y que no se ven en lo normal de cada día. Te lleva por terrenos no tan explorados, y explotados como debiera manerar todo informático, como ser el cálculo, el álgebra, y física.
Un video juego como la gente no se hace en dos clics, vete sabiendo. Ni que decir... no es posible sacarlo con la fuerza de una sola persona; no al menos en un tiempo razonable.
Hay tres grandes retos para un programador: videos juegos, sistemas operativos, compiladores.

Yo al leer tus mensajes en este hilo me pregunto si en verdad sabes lo que es hacer un videojuego. Una cosa es utilizar esos editores de jueguete como GameMaker o similares, y otra es programar en serio.

Para lo que es video juegos, y poder sacar la mayor potencia lo más recomendable sería C/C++. Hay que reconocerlo, por más pro-delphi y defensor sea, la enorme mayoría de los videos juegos están en C o C++. Aunque como se ha dicho a lo largo y ancho de este hilo, nada impide que se pueda utilizar Delphi. Después de todo, el poder que ofrece el Object Pascal (y el que ofrecen los IDEs que lo soportan) no tiene que envidiarle a los derivados de C.

Basta con saber que hay enormes y grandes aplicaciones, mundialmente reconocidas, que están hechas en Delphi.

Con Lisp no conseguirás NUNCA, no está pensado, ni sirve, para programar videos juegos. Lisp es un lenguaje pensado para elaborar scritps específicamente diseñado para entornos y aplicaciones de Sistemas Expertos e Inteligencia Artificial que tiene... varias limitaciones y sus complicaciones convengamos. Una implementación (en realidad es más un Entorno, casi IDE) Open Source, mejorada, de LISP es CLips desarrollada por la NASA y liberada al público. Y si quieres intentar algo en él... déjame darte un consejo, ¡Tómate unas cuantas bayaspirinas antes! Además para encarar algo en él debes tener al menos una noción teórica de lo que es y como se encara un Sistema Experto.
Existen bibliotecas que permiten explotar CLips desde otros lenguajes. Me había enterado, hace ya un buen tiempo, de una para Delphi pero tras unas nuevas búsquedas no pude volver a encontrar el sitio del proyecto.

Como te han dicho, lo que se estila es "mezclar" lenguajes para encarar el desarrollo de videos juegos. Lo hacen justamente para aprovechar lo mejor de cada uno y para lo que han sido pensados. Por ejemplo se podría usar CLIPS/Lisp para diseñar la IA de un juego de estrategia. Un buen ejemplo de ésto lo puedes encontrar justamente en uno de los juegos más famosos del género: Age Of Empires, que está escrito en C y usa LISP como soporte para la IA. ¿Algunas ves has escrito un script IA para tus campañas o escenarios personalizados? Si lo haz hecho habrás visto que justamente el script lo que contiene es el conjunto de reglas y hechos... y como tal debe seguir la sintaxis definida:



delphi
  1. (defrule tus-reglas
  2. => (hechos)
  3. )



A ver... ¿Dime ahora como vas a conseguir con CLIPS/Lisp hacer que aparezca mágicamente la pantalla y se vea un monito moviéndose?  ;)

¿Sabes lo que significa lenguaje de propósito general?

Yo diría que te informes mejor para que están hechos y diseñados cada lenguaje de programación antes de intentar hacer algo en ellos. Porque me parece que estás intentandote tirar a la pileta vacía.

Lo digo en buen plan.

Saludos,
  • 0




IP.Board spam blocked by CleanTalk.