Lenguajes secundarios que aprendéis.

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
calantra
Amstrad CPC 472
Amstrad CPC 472
Mensajes: 69
Registrado: 11 Feb 2014, 22:51
Sistema Favorito: MSX
primer_sistema: MSX
consola_favorita: Sony PlayStation 1
Primera consola: Nintendo SNES
Gracias dadas: 5 veces
Gracias recibidas: 1 vez

Re: Lenguajes secundarios que aprendéis.

Mensajepor calantra » 18 Abr 2016, 19:01

zup escribió:Entiendo las razones de porque Delphi (y en general cualquier RAD) son mejores para aplicaciones y C++ para juegos (¿hay tanta diferencia entre un FreePascal + SDL con un GCC + SDL?) en sí pero ¿no sería mejor hacerlo todo en el mismo lenguaje?

Mis razones son que si usas Free Pascal para el juego (sin el RAD, que no lo necesitas para nada) y luego Lazarus para las aplicaciones podrías reutilizar todas las definiciones que tengas hechas en el juego para las aplicaciones. Además, metiéndolas en un fichero común (una librería) te asegurarías que el juego y el creador de niveles siempre sean compatibles.


Na, viene siendo lo mismo usar fp+sdl que gcc+sdl, tal vez te encuentres con más ejemplos en gcc por estar mas extendido el leguaje C. Y a la siguiente cuestión, por suepuesto que es preferible hacerlo todo en el mismo lenguaje. Yo es que uso del delphi por el diseño de aplicaciones para windows, las ventanitas, menús y todas esas chorradas, me resulta más cómodo hacerlo en delphi, probablemente también porque nunca lo he intentado hacer en C . Y luego el código para el juego en c++ por que es mas fácil luego para portar a cualquier plataforma. Además, uso el ide de devc++ que compila con gcc que lo tienes hasta para las lavadoras inteligentes :meparto:

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2730
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 49 veces
Gracias recibidas: 210 veces
Contactar:

Re: Lenguajes secundarios que aprendéis.

Mensajepor zup » 18 Abr 2016, 20:04

mentalthink escribió:Gracias por las respuestas, muy interesante lo que comentais de Lazarus y Delphi...
También suelo hacerme mis herramientas y luego pasar los datos por un .txt o un Dat, digamos haces el editor que contiene el juego y luego pasas los datos al juego en si, supongo que es algo similar a lo que comentáis de Delphi/Lazarus a C++.


No me refería exactamente a eso. Si mal no lo entiendo, el editor que haces exporta los ficheros a txt, y luego usas un conversor para que los entienda el juego.

A lo que me refiero es que el editor produzca directamente ficheros entendibles por el juego. En tu juego utilizarás algunas estructuras para los niveles, tipos de tiles, características de los enemigos y demás. Si quieres que tu editor produzca ficheros que el juego trague directamente, estas definiciones tendrán que ser exactamente iguales en el editor que en el juego.

Si usas dos lenguajes de programación diferentes, tendrás que escribir las definiciones dos veces (una por lenguaje) a menos que tanto el juego como el editor parseen un fichero externo que las contenga. Si usas el mismo lenguaje, puedes implementar las definiciones como un fichero de librería, .h o lo que sea. De esta manera, si necesitas incluir cosas nuevas, no hay que escribir dos veces la misma cosa sino que recompilas juego y editor.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
carmeloco
MSX Turbo R
MSX Turbo R
Mensajes: 314
Registrado: 02 Ene 2016, 17:19
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum +2
consola_favorita: Nintendo GameBoy
Primera consola: Nintendo GameBoy
Gracias dadas: 1 vez
Gracias recibidas: 13 veces

Re: Lenguajes secundarios que aprendéis.

Mensajepor carmeloco » 18 Abr 2016, 22:36

Yo estoy estudiando italiano, ¿cuenta como "lenguaje secundario"? :D :D :D :D

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 441
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 25 veces

Re: Lenguajes secundarios que aprendéis.

Mensajepor Uto » 19 Abr 2016, 14:58

zup escribió:Mis razones son que si usas Free Pascal para el juego (sin el RAD, que no lo necesitas para nada) y luego Lazarus para las aplicaciones podrías reutilizar todas las definiciones que tengas hechas en el juego para las aplicaciones. Además, metiéndolas en un fichero común (una librería) te asegurarías que el juego y el creador de niveles siempre sean compatibles.


A estas alturas dudo que haya diferencias de peso entre lo que se puede hacer con freepascal y lo que se puede hacer con C++, creo que es una cuestión de gustos o comodidad, y efectivamente usar FP+DSL o GCC+DSL no va a suponer que haya algo que no puedas hacer con uno y con el otro sí.

Sin embargo, hay una diferencia grande de tamaño entre la comunidad que rodea al desarrollo de juegos con C++ y la que programa en freepascal, y en general una diferencia grande entre la comunidad de desarrolladores en C++ y FP. Esto significa simplemente que te vas a encontrar más ayuda en foros, más tutoriales, más ejemplos, más contenido en stackoverflow.com, etc. Dicho de otro modo, tu vida será más fácil, pero eso no significa que no se puedan programar juegos para PC con freepascal, claro que se puede (pero yo no lo haría).

Por otro lado estoy casi seguro de que freepascal te permite importar librerías compiladas en C (el típico .o o incluso .so o .dll), por lo que compartir, si realmente te interesa, se puede compartir, solo tienes que asegurarte que al hacer el build del juegos se genere el .so/.dll que luego usan las apps.
http://www.ngpaws.com
Twitter: @uto_dev

Avatar de Usuario
ObiJuan
MSX Turbo R
MSX Turbo R
Mensajes: 277
Registrado: 10 Nov 2015, 13:41
Sistema Favorito: PC
primer_sistema: Amstrad CPC
consola_favorita: Nintendo GameCube
Primera consola: Nintendo NES/Clónica
Ubicación: Málaga
Gracias dadas: 6 veces
Gracias recibidas: 20 veces

Re: Lenguajes secundarios que aprendéis.

Mensajepor ObiJuan » 19 Abr 2016, 18:50

Si hablamos de desarrollo de videojuegos, ya te han respondido muy bien por aquí. Si hablamos de propósito general y otros nichos, pues hay bastantes opciones. He aprendido más de 17 (y he olvidado la mayoría, empecé como programador pero me he ido orientando más hacia sistemas).

  • Creo que a día de hoy Java es el lenguaje más usado en general. C# con VisualStudio y ObjetiveC (para iOS) también están subiendo, a distancia.
  • C es el lenguaje probablemente más versátil, sobre todo si quieres programar para hardware antiguo. C++ es su evolución natural, de mayor nivel pero conservando muchas de las características (sólo para hardware nuevo).
  • Para desarrollos web: PHP + JavaScript (que se inspira en la sintaxis de Java, con lo que rentabilizas el esfuerzo). Ruby está subiendo, si sigue a este ritmo acabará desplazando a Java.
  • Para administración de sistemas: bash + entorno Unix (grep, sed, awk ...), Perl y Python. Perl era el estándar de facto hace 10 años pero últimamente va dejando su lugar a Python (este probablemente sea el próximo lenguaje que aprenda). En la Raspberry Pi es el lenguaje "oficial" (aunque nada te impide desarrollar con otros lenguajes y entornos, es muy versátil y tienes mucho para escoger).
  • Scratch es un lenguaje visual de iniciación que está subiendo mucho como primer lenguaje para enseñar a niños. Ha reemplazado el rol que hace años tenían BASIC y LOGO. Se construye con un IDE, las instrucciones son bloques visuales y se van encajando como piezas de LEGO, donde la posición determina su nivel de anidamiento. Un caso de estudio que se está popularizando es hacer proyectos de robótica (tipo MindStorm) para implementar el control e inteligencia. Para los niños resulta doblemente atractivo, pues aprenden a la vez la parte software (dominio mental más abstracto) y el hardware (más mecánico y visual).
  • Visual Basic era rey hace 20 años, ahora lleva mucho tiempo en decadencia. La propia Microsoft lo ha relegado en favor de C#.

Personalmente te recomiendo, como ejercicio mental, que aprendas Java para desarrollos Android, JavaScript+PHP para desarrollos web y bash, Perl o Python para scripts de sistemas (aunque Python es un lenguaje de propósito general que está abarcando cada vez más ámbitos).
May 4th Be With You,
ObiJuan

Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Re: Lenguajes secundarios que aprendéis.

Mensajepor mentalthink » 19 Abr 2016, 23:33

Gracias Juamstrad y todos los demás. Muy interesante todo lo que habéis comentado.

Sobre el soft del Gato, Scracth al parecer lo está usando mucha gente de hecho el Arduino creo que se puede programar con esté soft, luego hay otro lenguaje que es a manera de fichas, muy visual , aunque a mi personalmente no me gusta demasiado, pero quizás para hacer bocetos de lo que vas ha hacer vas más rápido que picando código.

Sobre Python le recomiendo al que sea que lo aprenda, si sabes un poquillo de otros lenguajes en 10 min te has leído el help, como dicen en algunos libros de Python, es el lenguaje que todo programador y no programador debería saber.

El que no hemos comentado es Go, el lenguaje de Google que al parecer quieren que desbanque a Python, aunque la verdad tengo mis dudas sobre esté proposito, al parecer es una gozada también...

De nuevo gracias a todos los que habéis comentado me ha servido para replantearme el tema de Lazarus, aunque ahora mismo ando con los temas de Web, básicamente por curiosidad y como comentaba HTML y CS3 me han parecido 2 "cosas" muy cómodas.

Saludetes!!

Avatar de Usuario
Luna
Amiga 1200
Amiga 1200
Mensajes: 1890
Registrado: 01 Jun 2013, 16:21
Sistema Favorito: PC
primer_sistema: ZX81
consola_favorita: Sega Genesis/Megadrive
Primera consola: Atari 2600
Ubicación: Republica de catalunya
Gracias dadas: 27 veces
Gracias recibidas: 21 veces
Contactar:

Re: Lenguajes secundarios que aprendéis.

Mensajepor Luna » 20 Abr 2016, 14:10

que lenguaje usaba el EDSAC? se que eran pares de numeros, pero fijarme la forma de dichos pares fué 1 segundo, descodificar otro segundo y liarme a modificar programas un segundito más... como codificaba el EDSAC la salida de texto, siendo un sistemas de base 13 en un sistema de base 10? (de hecho, el EDSAC podia usar tanto modos de 14 como 28 bits, el modo de 14 bits nunca funcionó bien, quedandose en 13 BIT, aunque el modo de 28 funcionaba correctamente, supongo que los ingenieros lo vieron como 'overkill' en la epoca (amen de reducir la memoria a la mitad)

Simple uso de las cifras del teclado para medir las coordenadas.

1= Q,A,Z,
2=W,S,X.
3=E,D,C.
y tal...
las verticales son un segundo digito del 0 al 4.

así que
31934131629350319343316293403192405383934003123193 es "Corcho con el tio paco"en general, cualquier primer digito, cuyo segundo sea un 0, corresponde a un espacio, y si termina en 4, corresponde a numeros 14948444 es "1984"
Aquél día mi hermana y yo aprendímos dos cosas, jamás entres en una casa de chuches y si vas a matar a una bruja, quémale el culo.

Avatar de Usuario
megamarc79
Spectrum 48K Plus
Spectrum 48K Plus
Mensajes: 36
Registrado: 15 Jul 2015, 19:06
Sistema Favorito: PC
primer_sistema: Spectrum +2
consola_favorita: Sega Genesis/Megadrive
Primera consola: Sega Master System
Ubicación: Barcelona
Gracias dadas: 1 vez
Gracias recibidas: 10 veces
Contactar:

Re: Lenguajes secundarios que aprendéis.

Mensajepor megamarc79 » 22 Abr 2016, 23:55

Yo siempre había sido de hacerlo todo en C, el C++ tiene fallos de diseño que me han tirado para atrás, pero en los últimos tiempos me he familiarizado con Python, Java, y C# para escribir los wrappers de mi motor gráfico Tilengine

Con el C# me he llevado una grata sorpresa, pese a ser una alternativa directa a Java, no es tan radical, y aunque lógicamente abstrae mucho a la máquina, es más cercano al hardware que Python o Java. Además la integración con un IDE es extraordinaria, incluso en entornos ligeros como Visual Studio 2005 o el independiente SharpDevelop, el código se escribe prácticamente sólo, es muy difícil equivocarse.

Python me pareció interesante porque tiene la plasticidad y el modo inmediato interactivo característicos del BASIC, que no se consigue con ninguno de los otros lenguajes, aunque es muy abstracto y poco eficiente.

Por último está Java, con un enfoque radical e inflexible en su concepción, tiene su sitio porque es el lenguaje oficial de aplicaciones en Android, pero como plataforma no aporta nada comparado con C#. Además tampoco tiene un IDE propio, y los que hay disponibles son muy pesados.

Mi enfoque actual es utilizar C para crear componentes reutilizables de bajo nivel (librerías gráficas, etc) pues su eficiencia y portabilidad entre sistemas aún son imbatibles, pero la aplicación principal hacerla en C#. Es el caso de mi último proyecto, Super Mario Clone, que utiliza a Tilengine como base -que está escrito en C- pero el juego está escrito en C#.


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados