Small Basic 1.0

Por fin está aquí, la versión final 1.0 de Small Basic, han sido un par de años de experimentación por parte del equipo de Microsoft para avanzar con este curioso proyecto. No han añadido cosas nuevas al API, solamente corregido bugs y terminar de hacerlo estable, algo que francamente está muy bien, asentar las cosas. Así que finalmente han sacado la versión 1.0, porque ya está lo suficientemente maduro el lenguaje para su propósito como lenguaje de aprendizaje para gente joven.

En cuanto al blog, mi deseo es poder en los sucesivos meses ir preparando en mis ratos libres fuera del trabajo, ir preparando un cursillo para aprender a programar mínimamente para adolescentes. Un proyecto que parecerá un tanto raro, pero creo que puede resultarme muy interesante por si algún día tengo hijos y alguno quisiera aprender a programar (menudo apuro tendría, jej)… xD

En fin, espero que podais disfrutar de esta nueva versión tanto como de las anteriores. Un saludo.

Small Basic 0.9

Hola amiguitos del Basic, esos que Dijkstra decía que quedaban mentalmente mutilados para aprender a programar (claro que Basic ya dejó tiempo atrás de ser un lenguaje basado únicamente en la instrucción goto, jej). Ya está la versión 0.9 del lenguaje y podéis bajároslo de aquí. Se ha mejorado la velocidad del lenguaje, añadido una nueva API para usar botones y cajas de texto, aumentado la API del objeto Shapes y Sound, y aumentado el soporte para otros idiomas y alguna cosita más. En fin, a pasarlo bien.

Cambio de sitio web para Small Basic

Parece ser que finalmente Small Basic ha pasado del Devlabs en donde estaba antes a una página nueva como proyecto estable por el que se seguirá apostando. Aquí está la nueva dirección de este nuevo sitio web, por lo que avisado estáis.

Small Basic 0.8

Ya ha salido la versión 0.8 de Smallbasic que podeis descargar desde la página oficial, han añadido alguna mejora en la eficiencia de las APIs del lenguaje y alguna cosilla más para poner información adicional a los programas, a parte de calificaciones. También han añadido soporte a unos cuantos lenguajes más, pero eso ya es un detalle menos relevante. Ala que disfruteis de la nueva versión.

Small Basic 0.7

Los amantes del basic o los que simplemente les agradan los lenguajes variopintos y bizarros como a mi, estais de enhorabuena, pues ya ha salido la versión 0.7 de Small Basic, y lo más importante, han corregido ya el fallo que ocurría al pulsar ], que en vez de dejarnos escribir aumentaba el tamaño del texto. Eso sí, parece ser que ahora ya no funciona lo de aumentar el texto, así que tened cuidado de disminuir el tamaño de la fuente. La librería del lenguaje no parece haber sufrido grandes cambios así por encima, alguna función nueva han añadido y tal. Y la principal novedad es que ahora permite exportar los programas hechos en Small Basic a Visual Basic.Net, lo cual a alguno le podría parecer algo bastante interesante, aunque yo no soy muy amigo de VB por lo general. Así que disfrutad ahora que por fin se puede programar con arrays de forma cómoda desde el editor del IDE, jej ^_^

Small Basic 0.6

Pues acabo más o menos de volver a la civilización y me acabo de enterar que ha salido una nueva versión de Small Basic, la versión 0.6. Por desgracia, por lo que veo en los comentarios, todavía está el error al pulsar el ], pero bueno a ver si lo arreglan para la próxima versión. Básicamente se han añadido unas pocas nuevas operaciones, arreglado fallos, dado soporte al idioma alemán y actualizado el manual para el tema de los arrays. Por cierto, el manual ya está en castellano desde la versión anterior, así que no hará falta que me ponga a hacer artículos sobre las librerías de la nueva versión, o eso espero, jej.

Documentación de la API de Small Basic

Bueno, por fin está en castellano y accesible desde la página oficial, la documentación en castellano de la API del lenguaje. Así que ante cualquier duda acudid a la referencia oficial, en vez de a mis comentarios anteriores, aunque en los mios vienen ejemplos de como se usan las cosas. En fin, para futuras versiones que añadan cosas, simplemente me limitaré a poner ejemplos para ilustrar a los entusiastas de la programación en Small Basic.

Los arrays en Small Basic 0.5

Buenas amigos del Small Basic. La semana pasada salió la versión 0.5 del lenguaje y traía un gran cambio en su interior, que habían cambiado el manejo de los arrays, para hacerlo más similar a lenguajes como C. El autor ha creado un artículo sobre como manejar los arrays en esta nueva versión.

El caso es que la llegada de esta nueva forma de hacer las cosas ha implicado cambios en dos operaciones de la librería File, GetDirectories y GetFiles que ahora solo reciben un parámetro, la ruta de la que queremos el listado de directorios o ficheros. El caso es que antes teníamos que indicarle el nombre del array donde se tenían que almacenar, pero ahora las dos operaciones devuelven si tienen éxito un array con los datos directamente.

Esto implica que la librería Array ha tenido también que cambiar. Primero tenemos que las operaciones GetValue, RemoveValue y SetValue han dejado de ser útiles y es recomendable no utilizarlas, tan solo se han mantenido por temas de retrocompatibilidad con programas que fueran desarrollados con la versión 0.4. Aunque dicha retrocompatibilidad no es total, ya que las operaciones ContainsIndex, ContainsValue y GetItemCount no reciben ya una cadena con el nombre del array, sino una variable con el array entero.

Y esos son los cambios de la API de Small Basic en esta nueva versión. Lo único realmente malo del programa es que no se puede escribir ] sin que capture el evento de control+ que incrementa el tamaño del texto. Pero espero que lo corrijan en un futuro, de momento siempre queda el recurso de pulsar Alt+093 en el teclado numérico o usar otro editor para utilizar arrays ^_^U

Small Basic 0.5

Muy buenas noticias para todo el mundo interesado en Small Basic, ha salido oficialmente la versión 0.5 hoy mismo, aunque ayer salió un artículo sobre las novedades principales de esta versión. Además la cosa no se queda ahí, han dado soporte al español y también han traducido la documentación a nuestro querido lenguaje. Así que ahora podreis disfrutar todavía más, jej.

La principal novedad de esta versión es que por fin podemos manejar arrays de forma más natural, como en otros lenguajes. También se nos avisará si estamos intentando utilizar una variable que no ha sido inicializada, para evitarnos dolores de cabeza innecesarios. En cuanto a las librerías, creo que no ha cambiado nada, por lo que sigue siendo retrocompatible, lo cual está muy bien. Así que en cuanto termine los examenes esta semana, me pondré a ver que tal va el cacharro.

PD.: Si al bajar la nueva versión os está bajando la 0.4, tendreis que limpiar la caché para poder hacerlo.

PD2.: Sí que hay algunos cambios en las librerías en lo referente a los arrays, así que la próxima semana comentaré qué ha cambiado. Y de paso actualizaré las entradas antiguas a medida que pueda.

PD3.: Por cierto que hay un pequeño problema con el IDE y es que puedes aumentar el tamaño del texto o reducirlo con control+ o control-, pero claro para poder escribir ] tienes que pulsar AltGr+ y eso envía la señal de que se está pulsando contro alt +, luego lo toma como que quieres aumentar el texto.

Extendiendo Small Basic en C#

Bueno y he aquí uno de los puntos más interesantes de Small Basic al pertenecer al .NET Framework, que podemos extender la API con nuevas funcionalidades desde otros lenguajes de la misma plataforma. Para el artículo he elegido C#, que es el que a mi más me gusta de todo .NET, ya que no tiene una sintaxis abigarrada como Visual Basic, por ejemplo.

Así que poniéndonos manos a la obra, lo primero es tener el Visual Studio 2008 o el Visual C# 2008 Express, cualquiera de los dos nos valdrá. Es posible que también funcione con las versiones del 2005, pero ya que Small Basic utiliza el .net framework 3.5, lo suyo sería utilizar como mínimo el Visual C# 2008 Express, que además es gratuito y no cuesta demasiado bajárselo uno mismo. Así que abrimos el Visual C# y seguimos los siguientes pasos:

  1. Creamos un nuevo proyecto de tipo “Biblioteca de clases“.
  2. Añadimos como referencia el fichero “SmallBasicLibrary.dll” que se encuentra dentro de la carpeta de Small Basic.
  3. Creamos una nueva clase estática:
    [SmallBasicType]
    public static class MiExtension { /* … */ }
  4. Añadimos con using en el código la librería: Microsoft.SmallBasic.Library
  5. Configuramos las propiedades del proyecto para generar la documentación en XML: Propiedades -> Generar -> Archivo de documentación XML.
  6. Generamos la solución entera y copiamos la dll y el xml generados en la carpeta release de nuestro proyecto, a la carpeta lib del directorio de Small Basic (“C:\Archivos de programa\Microsoft\Small Basic\lib”). Hay que tener en cuenta que por defecto no existe la carpeta lib, por lo que hay que crearla de forma manual.

Y con estos pasos ya podemos empezar a trabajar para crear una extensión. Pero hay que tener en cuenta algunas cosas como que no está soportada la sobrecarga de funciones, por lo que no podemos tener dos funciones con el mismo nombre aunque reciban distintos parámetros. Todas las variables responden al tipo Primitive de la API interna del lenguaje, por lo que no podemos trabajar directamente con tipos de datos como int o string. Sabiendo esto aquí tenemos un esquema básico de como sería una extensión y sus tres diferentes tipos de elementos:

using Microsoft.SmallBasic.Library;
namespace MisExtensiones {
  [SmallBasicType]
  public static class MiExtension {
    // Para definir variables:
    public static Primitive Propiedad=new Primitive();

    // Para definir métodos:
    public static void Metodo1() {
      // Código del método...
    }
    public static void Metodo2(Primitive param) {
      // Código del método...
    }
    public static Primitive Metodo3() {
      // Código del método...
    }
    public static Primitive Metodo4(Primitive param) {
      // Código del método...
    }

    // Para definir manejadores de eventos:
    public static event SmallBasicCallback Evento=null;
  }
}

De esta forma al generar la dll del proyecto y añadirla al directorio de librerías de Small Basic, tendremos una nueva librería llamada MiExtension, con en este caso una propiedad, un manejador de eventos y cuatro funciones. Las posibilidades de esto son por decirlo de algún modo infinitas. Podemos añadir todo lo que queramos al lenguaje, teniendo en cuenta que no podemos repetir identificadores ya que ello confundiría a Small Basic. Por cierto que en este caso para la variable no hemos usado una propiedad de C#, pero podríamos haberla usado perfectamente y con ello podríamos limitar su escritura para hacerla solo de lectura, ya que hay cosas que no tiene sentido que el usuario las cambie de valor.

Con esto ya está de momento cubierto el lenguaje y la mayoría de sus puntos, por lo que a partir de aquí, hasta que salga una nueva versión de Small Basic, me pondré a hacer alguna que otra extensión y/o juego que colgaré en esta web cuando lo tenga listo y terminado. Aunque de momento hasta que termine junio, estaré con los exámenes para terminar la carrera y ello me va a tener bastante liado, por lo que seguramente no haya mucho movimiento por aquí hasta la última semana de junio. Así que a estudiar, jej.

Seguir

Get every new post delivered to your Inbox.