HispaMSX

Re: [hispamsx] C vs BASIC

2001-02-13 08:47:29


Antoni Burguera i Burguera wrote:

[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


Que bueno!! Que sabrán los profesores!!???


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.


Oracle tiene un lenguaje SQL parecido a Interbase.

Pero me refería en si a la creación de formularios y a "atacar" la base de 
Datos desde el mismo.

La verdad es que Delphi lo pone muy sencillo. Crear una ventana en C++ es algo 
más complicado, y lo se por que lo he
probado.


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.


Microsoft, microsoft ....


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.


Si. Vamos a ver. Son lenguajes muy estructurados, y son casi clavados en la 
forma de organizar el código, pero la sintaxis
de Pascal / Delphi es más amena.


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.


Deja, deja ... por ahora no quiero saber nada más de Kpi Ball ... XDD

Pero bueno ... eso es lo que he dicho, que en PC no se me ocurrirá hacer nada 
en ASM, hoy en día.


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.


Facilita las cosas para la gente y se pueden crear aplicaciones por más gente 
... Pero tenemos 2 problemas, que son los
que comenta Dani, bueno 1 :

a) NADIE programa en MSX. Somos muy pocos los que hacemos algo. Y esta es la 
verdadera queja de todos estos mensajes. Todo
el mundo parece que sabe C y muy bién, que sois excelentes programadores (no lo 
he dudado nunca) pero ... ES QUE NO SE
HACE NADA!

b) Si empezamos a crear las cosas en C, no explotaremos el nuevo micro. Este es 
el problema. Y no veremos cosas
verdaderamente interesantes, caeremos en el error del PC.


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.


Es un desastre.


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


No te lo puedo asegurar pero creo que si existe.


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.


Pues una pena.


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.


Ni lo diré. El C no es mal lenguaje, y como dice Dani, parece un standar ya 
mundial, aunque creo que como todos los
standares mundiales, tiene que haber intereses por medio. NO se si me explico, 
cuando aparecieron los primeros videos
domésticos, podríamos disfrutar de 3 sistemas : VHS, 2000 y Beta. Pues el 
"standard" mundial, es el PEOR de los 3, claro
que le han lavado la cara en los últimos años, con mi y una historia. Es solo 
un ejemplo.


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.


Creo que no me has entendido. En el fondo digo lo mismo que tu.


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.


Claro que lo conozco, incluso he realizado alguna cosa con él. ¿Por que te 
crees que le tengo tanto asco? Si no lo hubiese
visto, no podría hablar.

De todas formas, los informáticos "de profesión" tenemos que reciclarnos muy 
rápidamente y no dudo que algún día me toque
usarlo, aunque cruzo los dedos.


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.


Cuando tenga 10 años, no 4.


¿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.

Me refiero a que el Basic es IDEAL para que un chaval / a aprenda cuando es muy 
pequeño/a lo que es la programación.


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.


Y con este no se desmaya?


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.


Si no recuedo mal, la versión de Turbo Pascal de MSX, no permitia meter 
directamente los mnemonicos si no por códigos ...
lo cual era un poco coñazo.


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.

Igual de claro. Fijate si hoy en día existen aplicaciones grandes en Visual 
Basic. Claro ... que así van.


* 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.

No te digo que no.


* 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.


Antonio, lo que hay que hacer el programar ...


--
Un saludo,

Armando Pérez Abad
HELIO YAGO, S.L.
http://www.bogamari.com
Tlf: (96) 363 43 17
Fax: (96) 390 27 17



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