HispaMSX

Re: [hispamsx] C vs BASIC

2001-02-12 16:22:10
[Hola mundo de 100KB]

Pues mi profesor de compiladores afirmaba que cualquier compilador actual 
supera con
creces al mejor programador humano en ensamblador. En efecto, hay que ser muy 
hábil
para que escribir "hola mundo" en ensamblador ocupe 100KB XD

Claro hombre. Trabajo con Delphi e Interbase.

XDD

Que gracia ... ¿Insinuas que es más fácil hacer un mantenimiento de una 
aplicación de
gestión en Visual C++ o en Borland C++ que en Delphi?

No insinúo eso porque no lo se, desconozco el Delphi. Mi experiencia con 
programas de
gestión es con Oracle.

Ni de coña. Si hemos elegido este lenguaje es por que era lo mejor para la 
aplicación, ten
en cuenta que no programo "poligonos y juegos 3D" sino soft de gestión y 
contabilidad,
además de que la programación del programa en si, está en la base de datos, no 
en Delphi.

Bueno, esto ya tiene poco que ver con el origen de estos mensajes, pero hacerlo 
desde 
Visual C++ no es tan difícil. Tal vez confunda todo el tema de la orientación a 
objetos
y de las MFC de Microsoft, pero eso ya no es cosa del lenguaje C o C++ sino de 
la
extraña manía de Microsoft de complicar todo lo que hace.

Y te aseguro que SI es más fácil de aprender.

Cierto, Pascal es más fácil de aprender que C. Aunque en el fondo es lo mismo.

Va, que no puedo más. Ahi va mi punto de vista.

Joder ... ni que te tuviese amordazado!!! XD

Na, es que soy un reprimido ;-)

b) No tengo NI PUÑETERA IDEA del código de los procesadores Intel, y lo poco 
que he visto
me ha dejado totalmente desilusionado, puesto que es lo peor que conozco. No 
entiendo como
han llegado tan lejos estos micros. Pero entiendo que se programe poco en 
assembler hoy en
día en PC, pues es una tarea muy dura ...

Depende. Si quieres programar un juego como el KPI Ball, el Pentaro o el Moscow 
2024 en PC,
puedes meterte en ensamblador. Ahora bien, si lo que quieres es hacer una 
aplicación que
maneje una base de datos Oracle, o un juego de estrategia en 3D estarías loco
haciendolo en ensamblador.

Claro, ESO es lo que digo yo. Que para hacer algo bueno en MSX hoy en día hay 
que hacerlo
en asm. Y si crecemos de micro y crecemos el nivel de los lenguajes no 
ganaremos nada, pues
lo que ganaremos por un lado se perderá por otro, teniendo que incrementar de 
micro otra
vez, y bla, bla, bla  la historia del pc que todos conocemos.

No exactamente. Por lo que he leido, según que cosas no pueden hacerse en C 
sobre un MSX
por cuestión de velocidad. Si crecemos en micro, como tú dices, y se usa un 
compilador no
se aprovechará bien el nuevo micro. Pero estará al alcance de más gente hacer 
aplicaciones.
Porque ya no te discuto que Pascal sea más fácil de aprender que C, pero desde 
luego
el C facilita muchisimo las cosas con respecto al ensamblador.

El C tiene mala fama. Es verdad que es confuso (incluso se hacen concursos de
"Obfuscated C Programs", a ver quien hace el programa más lioso), pero no 
es, en
absoluto, difícil de aprender. Otra cosa es aprender C++ o Java, ahi el 
concepto de
programación (OO) es muy distinto al del C.

Te aseguro que para mi JAVA es MÁS lioso que el C y eso ya es "voluntad de 
superación" por
parte de su creador ... XD

Es que Java es orientado a objetos, y ahi la filosofía de programación cambia 
mucho. Más
aún porque para hacer cosas decentes tienes que saber como funcionan una serie 
de clases
bastante raras (AWT, SWING, ...), con una estructura más bien arbitraria y 
seguir un
esquema bastante rígido para hacer tus aplicaciones.

Hablando de objetos, creo que he visto en alguna parte un compilador de ADA 
para MSX.

Conozco los concursos que me comentas. Cosas como definir todo un programa en 
una sola
linea y barbaridades por el estilo ... totalmente portable si ...

La portabilidad en C es algo bastante inexistente. O bien directamente no es 
portable, o el
código está tan lleno de #ifdef y #ifndef que prácticamente lo que hay es un 
programa
distinto para cada máquina.

Si repasas TODOS mis mensajes EN NINGUNO he dicho que el C sea UN MAL LENGUAJE 
de
programación.

Ni yo digo que lo digas.

Entiendo que es una solución "intermedia" entre el alto nivel y el asm. Pero 
que es una
solución para PCs y cosas por el estilo, no para MSX.

Para PCs y cosas por el estilo? He trabajado en aplicaciones que requieren 
bastante
velocidad de ejecución sobre PC y no he necesitado hacer nada en ensamblador.
La solución mixta ASM/C creo que es útil en el MSX, claro que con mayor 
proporción de 
ensamblador que de C.

Pues te admiro, aprendiste con algo de muy bajo nivel. Yo seguramente si 
hubiese
aprendido en C, hoy no programaría del asco que le hubiese cogido a la
informática y programación.

Lo dudo mucho, la verdad. Si no conoces el C no sabes de que hablas.

Creo que se de SOBRA de lo que hablo.

¿? Dices "si hubiese aprendido C", por lo que deduzco que no conoces este 
lenguaje.

Si tu a un chavalín que empieza a hacer sus pinitos en programación, le dices 
que la
programación es C, y le enseñas C, supongo que lo único que tendrá es 
pesadillas.

Pues para un chavalín, las mejores opciones que hay son el Pascal y el C. 

Pero si ese niño, enciende su MSX, le aparece el Basic y hace :

10 PRINT "HOLA AMIGUITOS!!!"

run ...

Verá que su sueño se ha convertido en realidad, pues ha escrito una frase.

¿Es tan sencillo esto en C?

Pues veo dos problemas:
1) Hoy en día los chavalines no usan MSX, desgraciadamente. Los usuarios de MSX 
somos ya
adultos y con suficientes conocimientos como para programar en C, por ejemplo.
2) Por supuesto, para empezar el BASIC es mucho más sencillo que el C. Pero la 
cuestión no era
esa. La cuestión era si hacer programas híbridos ASM/C facilita las cosas. Y 
claro que las
facilita. El programa anterior, se lo enseñas en ensamblador a un chaval y se 
desmaya del susto.

En cuanto al C... Mi compilador favorito es el DJGPP con el entorno RHIDE, y el 
programa anterior es tan sencillo como

#include <stdlib.h>

int main() {
  printf("HOLA AMIGUITOS");
}

Y darle a CTRL+F9 para ejecutarlo.


De todas formas, para MSX existen otros lenguajes, como por ejemplo el 
Pascal.
También es una buena opción.

Lenta. Te lo aseguro.

Recuerdo que mi experiecias con el Turbo Pascal en MSX no fueron muy 
satisfactorias.
Pero igualmente puedes meter tu código en ensamblador para las rutinas 
delicadas.

Resumiendo:
* Es más fácil programar en C que en BASIC? Para aplicaciones pequeñas, no. 
Para proyectos
algo más grandes resulta bastante más claro.
* Es más rápido un programa en C que en ASM? No, pero no resulta difícil 
aprovechar lo
mejor de los dos mundos.
* Hay que programar en C? Cada uno a lo suyo. Sobre PC me lo paso pipa con el 
DJGPP y
las librerías allegro. Sobre MSX, voy aprendiendo ensamblador, aunque no 
desestimo
usar C y ensamblador conjuntamente si encuentro un buen compilador.

Hasta pronto.
---
Antoni Burguera Burguera
e-mail: burguera(_en_)novenadimensio(_punto_)net
---
9D-La Novena Dimensió
http://www.novenadimensio.net
--- 



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>