Últimamente estoy programando en BASIC
¿Por qué BASIC? Sinclair Basic es bastante más lento que Microsoft Basic (desarrollado para múltiples microordenadores), y especialmente que Locomotive Basic, desarrollado para el Amstrad CPC. Además, utiliza números de línea con GOSUB/RETURN, algo por lo que no estoy dispuesto a (volver a) pasar.
Sí, hay gente que .
Otra elección natural sería , mi elección de compilador esta vez, permite programar en algo parecido a Microsoft Visual Basic, bueno, más bien a 's (Gráficos definidos por el usuario, o User-Defined Graphics).
. Y lo estoy notando, porque... ¡tengo que escribir menos para programar en BASIC! En BASIC moderno, claro.
if ( x > 2 ) {
printf( "¡Programar en C mola!" );
}
if x > 2
print( "¡Programar en BASIC también es molón!" )
end if
Si analizamos el código, nos encontramos con que 1) No es necesario poner un punto y coma (';'), al final de cada instrucción; 2) No hay que abrir un bloque de código con '{', sino que la propia línea if x > ... es el propio comienzo del código. En Python es similar, excepto que hay que añadir dos puntos (':'); 3) El final de un bloque de código se indica con end if, de forma similar a otros .
Como nota al pie, desgraciadamente Python no soporta un end de ningún tipo para marcar el final de un bloque de código, para mi disgusto personal, confiando solo en la indentación.
No todo son ventajas, claro. Por ejemplo, una condición compuesta para if...
if x > 2 _
and x < 10
print("2 < X < 10:", x)
end if
Diferentes dialectos de BASIC soportan diferentes caracteres para indicar el final de la línea de código. En este caso, se utiliza el subrayado, como '_'. Quizás esto no es muy estético, pero desde luego compensa el tener que colocar un ';' al final de todas las sentencias. Python toma claramente la delantera al definir expresiones multilínea. Si una expresión de cualquier tipo se encuentra entre paréntesis, entonces puede traspasar el límite de la línea de código tantas veces como lo necesite.
for(int i = 0; i < 10; ++i) {
printf( i, " x 5 = ", i * 5 );
}
for i = 0 to 9
print( i, " x 5 = ", i * 5 )
next
Sí, el bucle for() de C es potentísimo. Pero, ¿merece la pena tener que escribir siempre tanto? Debería tener una versión mínima más parecida a for... next de BASIC. Aquí Guido Van Rossum (creador de Python), lo tuvo claro.
for i in range(0, 10):
print(i, "x 5 =", i * 5)
Y aunque existe una palabra clave para indicar comentarios (REM), la abreviatura más común (el apóstrofe) es soportada prácticamente en todos los dialectos.
' Tabla de multiplicar del 5
for i = 0 to 9
print( i, " x 5 = ", i * 5 )
next
Además, hay que tener en cuenta que este BASIC es mucho más moderno, estructurado, y por tanto soporta procedimientos (subrutinas) y funciones.
function isdigit(byval s as string) as bool
dim sc as ubyte = code( s( 0 ) )
return sc >= code( "0" ) and sc <= code( "9" )
end function
sub print_code_array(byval s() as ubyte)
for i = lbound( s ) to ubound( s )
print( chr( s( i ) )
next
end sub
No todo son ventajas. Aunque FreeBASIC soporta estructuras e incluso objetos, ZXBasic no soporta ninguno de las dos. Lo de soportar POO me parece excesivo, pero en cambio soportar estructuras me parece básico. Así, hay que adaptar un tanto la forma de pensar, pues no se pueden empaquetar variables que actúen con un objetivo común.
Es refrescante desempolvar los conocimientos de programación arcanos, pero también aprender a complementarlos con las extensiones de subrutinas y funciones.
SOCIAL SHARE CARD GENERATOR