martes, 17 de diciembre de 2013

Introducción a Visual Basic

Bueno. Comenzare con este primer post dedicado en mi blog con algo que me gusta bastante y que se llama programación.

Para comenzar. La pregunta simple que debemos hacer ¿Qué es Visual Basic?

Visual Basic en un lenguaje de alto nivel que produce un lenguaje intermedio (IL por sus siglas en ingles) el cual es traducido a código maquina en tiempo de ejecución.
Ok. Hasta acá la respuesta “técnica” es algo confusa para los que recién se inician en la programación e incluso puede que le haya revuelto las ideas un poco. Disectemos un poco la respuesta para entender más.

En el mundo de la programación tenemos infinidades de lenguajes (es muy posible que en este mismo momento alguien este creando uno). Que cubren desde simple aplicaciones de escritorios, hasta las aplicaciones más seguras que puedan usar los gobiernos. Los lenguajes de programación están divididos en 3 grupos que son fácilmente diferenciables.

Lenguaje maquina (Bajo nivel): Este tipo de código es literalmente lo que entiende un procesador común y corriente. La mayor parte de tiempo se lo llama “Assenbler” (Ensamblador). En la actualidad aún se ocupa directamente este lenguaje, pero más que nada en el entorno de micro controladores. Lo más destacable de este nivel de lenguaje son su rendimiento incomparable ya que no hay ningún traductor corriendo en el fondo, y su alta complejidad para hacer cualquier cosa ya que debes saber exactamente el lenguaje que usa tu CPU (AMD e Intel actualmente desarrollan sus plataformas sobre x86, pero a pesar de eso aún hay algunas diferencias mínimas entre sus lenguajes).

Lenguaje Intermedio: Normalmente este código es una “abstracción” de algún lenguaje de bajo nivel, pero más simple de entender. En ese nivel nosotros programamos en “lenguaje humano”, y el compilador se encarga de traducir el código a lenguaje máquina. Normalmente acá podremos ver lenguajes como C o C++. Si bien la complejidad de este nivel no es exagerada, no es algo que se pueda tomar a la ligera tampoco. La potencia que un código generado en este nivel depende directamente de las optimizaciones que podamos crear, y de las optimizaciones del compilador en sí.

Lenguaje de alto nivel: Este tipo de lenguaje se lo podría llamar una “abstracción de una abstracción”. Acá entran casi la mayoría de los lenguajes actuales. En este nivel uno genera código en lenguaje humano el cual es traducido en un lenguaje IL (en el caso de Visual Basic y C# es el conocido MSIL). Y luego ese mismo IL se traduce a un lenguaje máquina. En este nivel podemos encontrar casi a todos los de la suite Visual Studio, además de Java… Si, Java.

Ok. Explicado eso procedamos con otro concepto. Tiempos. En este caso hablare de los tiempos de programación, compilación y ejecución.

Los “tiempos” como normalmente se los llama son bloques de tiempo que se definen según su función.

Tiempo de programación: El tiempo de programación en si es el donde crearemos todo el código necesario para nuestra App. Acá podemos pre configurar ordenes o condiciones para el tiempo de compilación, y preparar los resultados para el tiempo de ejecución.

Actualmente también existe un llamado “tiempo de debug”, pero no lo quise agregar ya que esto es netamente realizado en tiempo de programación.

Tiempo de compilación: Es el tiempo donde el compilador toma todo el código y condiciones pre configuradas y las convierte en código usable. En este bloque se generan los binarios que usaremos al final en el tiempo de ejecución.

Tiempo de ejecución: Es el resultado final de una App en cierta forma. Es el tiempo donde transcurre todo lo hecho y configurado en los tiempos anteriores. Explicado de una forma simple. Es la App terminada y en ejecución.

- Ok. Ya entiendo lo de los tiempos y tipos de lenguaje. Pero ¿Qué lenguaje debo elegir para crear un programa?

La respuesta a eso varía bastante de desarrollo en desarrollo. Normalmente depende de la plataforma para la cual queramos desarrollar. Otras veces depende de comodidad del programador en sí.
Por ejemplo. Si quisiéramos desarrollar algo multiplataforma deberíamos elegir un lenguaje más estándar como por ejemplo Java, C, o C++ (Java corre sobre un entorno virtual, por lo que solo no depende del sistema operativo). Pero en el caso que desarrollemos para Windows (y es más que posible que si estás leyendo esto así sea). Podemos optar por algún lenguaje de la suite Visual Studio. En este caso (y como el titulo lo dice), será Visual Basic.

- ¿Por qué Visual Basic y no C# por ejemplo?

Otra vez. Todo depende. En este caso solo importa cual lenguaje te acomode más a ti. En lo personal prefiero Visual Basic por algunas cosas bastante simples.

1- Es simple de usar. No necesitas seguir un orden horriblemente rígido como lo hace C#.
2- Su facilidad hace que lo pueda usar desde el novato que recién aprende, hasta el veterano que ya lleva años metido en el código.
3- A diferencia de C#. No es mañoso con cosas tan simple como una variable sin uso en tiempo de compilación. En el caso de VB la variable simplemente queda como una advertencia y no molesta más. En el caso de C# la variable queda como advertencia, pero detiene la compilación (Hablando con configuración por defecto).

- Mmmm ya entiendo. Pero mi amigo X me dice que Visual Basic no es potente y que es un lenguaje que solo sirve para cosas pequeñas.

En ese caso puede estar 100% seguro que tu amigo no sabe nada o que habla solo por hablar. Tanto Visual Basic como C# corren sobre el mismo motor. Ambos generan el mismo lenguaje IL (MSIL) cuando lo configuramos en “release” (En Debug VB agrega una línea extra por cada función que se usan para hacer el “cierre”). Por lo tanto ambos tienen el mismo rendimiento y usabilidad. En el peor de los casos, y al igual que en C#. Si algo no existe en Visual Basic. Podemos importarlo desde una biblioteca externa (DLL por ejemplo) mediante P/Invoke, o los típicos Import.

El mito que Visual Basic es lento, inútil, y rígido viene del pasado…. Por esos años donde salían las primeras versiones donde el lenguaje si exigía ser cuadrado para que no fallara. Esto en la actualidad ya no existe dado a la evolución del mismo.

Al final del día lo único que importa es cual lenguaje te acomoda más para programar. Si eres apegado al mundo rígido de C++ entonces puedes usar C# sin ningún drama. En cambio. Si no te gusta perder tiempo revisando montones y montones de líneas de código. VB es para ti.
Bueno. Esto es todo por hoy con esta “pequeña introducción”. En el próximo post daremos los primeros pasos por este mundo de Visual Basic.

Info: Expandir ¿Visual Basic .NET ó C#?
Mas info: Diferencias entre Visual Basic .NET y Visual C# .NET

No hay comentarios:

Publicar un comentario