Mostrando las entradas con la etiqueta lenguajes de programación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta lenguajes de programación. Mostrar todas las entradas

miércoles, 10 de octubre de 2007

Entre Objetos, Java, C# y... ¿Sinclair BASIC?

Hace algunos días fui requerido para ir a dar un seminario acerca de cómo desarrollar aplicaciones para Windows en .NET, usando C#. No había tenido oportunidad de usar VisualStudio 2005, pues el último que había usado era el 2003, y me llevé la grata sorpresa de que tiene algunas ventajas con respecto a la versión anterior (ya sé, ya está la nueva versión 2008 en Beta, pero no la he visto, lo siento). Me dediqué unos días a revisar la versión 2005 y debo decir que sí me quedé con buena impresión del IDE.

Durante la presentación les expliqué a los asistentes, a través de una demostración, la manera de desarrollar rápidamente una aplicación sencilla con acceso a datos, con muy poco código qué programar. Es increíble cómo muchas de las cosas que anteriormente nos llevaba horas desarrollar, ahora con las herramientas adecuadas se pueden hacer en cuestión de minutos (ya lo dije anteriormente cuando hablé acerca de NetBeans 5.5). Claro está que nada reemplaza la satisfacción de hacer un programa "desde cero", pero hay proyectos en los que el tiempo apremia (pensándolo bien, en todos los proyectos el tiempo apremia). Todos los asistentes (al menos la mayoría, creo yo) quedaron asombrados de la facilidad de uso del IDE y de cómo en pocos minutos ya teníamos la aplicación terminada (me extendí un poco porque, como ustedes imaginarán, me gusta hablar demasiado).

Días después me llamaron para que diera una clase sobre Programación Orientada a Objetos (OOP) para un grupo de estudiantes de un curso de Java. En la lección expliqué acerca de la relevancia de los lenguajes orientados a objetos (como Java, C++ y C#) y cómo es que el paradigma de orientación a objetos nos ayuda a escribir código mucho más legible, reutilizable y relativamente rápido. Hice un recuento breve acerca de la evolución de los paradigmas de programación y cómo en la actualidad los sistemas emplean el máximo poder de cómputo para lograr cosas cada vez más poderosas. Todos se mostraron interesados, en particular porque algunos nunca habían escuchado (o entendido) acerca de términos como encapsulamiento, herencia y polimorfismo. Fue una mañana muy interesante.

En ambas charlas concluimos lo siguiente: los sistemas actuales cada vez demandan desarrollos de software más robustos en el menor tiempo posible. Tanto Sun Microsystems como Microsoft Microsoft están dando batalla para lograr que los desarrolladores tengan cada vez mejores herramientas que les permitan tener más tiempo libre ;-) (¿por qué no tenía algo así antes?). Lo importante ahora es no depender tanto del uso de las herramientas, y seguir cultivando las mejores prácticas de programación, que corren el riesgo de ser olvidadas por quienes abusan del uso de IDEs o de ser completamente ignoradas o desconocidas.

Creo que independientemente de las tecnologías que pueda llegar a conocer, en el fondo siempre seré un desarrollador de software. Me gusta programar y creo que no lo hago tan mal ;-). Habrá que ver qué es lo que sigue para las siguientes generaciones de herramientas de desarrollo de software.

Como punto final, en la clase de OOP uno de los alumnos confesó haber comenzado a programar con una Timex Sinclair 1000, igual que con la que comencé a programar (esto es demasiado curioso, puesto que no mucha gente que yo conozca usó ese modelo en particular). Es que haciendo un poco más de memoria (cosa difícil para mi), realmente antes de GWBASIC usé el Sinclair BASIC. Para los que estén un poco interesados en la "prehistoria" y quieran saber qué usaba (yo) para programar hace 20 años, en este enlace encontrarán un emulador de Timex Sinclair 1000 hecho en Java.

:wq!

jueves, 1 de febrero de 2007

¿IDE o no IDE?

En el más reciente curso de Java que tuve el privilegio de impartir (en serio, no es broma) y que concluye precisamente este próximo sábado 3 de enero, me preguntaron: "¿tú qué IDE usas regularmente?". Posiblemente decepcioné a más de dos cuando respondí: "no uso ninguno en particular... uso EditPlus".

Llámenme anticuado si quieren, pero en cuestiones de programación tengo unos gustos poco comunes. En primer lugar por lo regular no uso IDEs. Para ponerlos un poco en contexto, un IDE (Integrated Development Environment) es un ambiente de desarrollo que integra muchas herramientas con el propósito de facilitar la vida a los desarrolladores de software. Estoy de acuerdo. Sin embargo, no los uso por una sencilla razón: mi entorno de programación hace 20 años era muy simple: un editor de textos, un intérprete o compilador (según el caso), un prompt de sistema operativo y ¡listo!, programa hecho. Las ayudas eran casi nulas, y dependíamos de nuestra memoria o de un buen libro de referencia para seguir la sintaxis y usar las instrucciones propias del lenguaje. Tal vez por esta razón me acostumbré a esa simplicidad del editor (sí, aunque lo duden, el edlin de DOS y el vi de UNIX son sencillos de usar), que cuando aparecieron los IDEs permanecí renuente a utilizarlos. Pensándolo bien, no debí usar el tiempo pretérito; quise decir que desde que aparecieron los IDEs me he rehusado a utilizarlos (hasta donde el proyecto me lo permite, ni modo, la anarquía no se me da). Prefiero mi editor de textos y teclear de memoria las instrucciones.

Puedo parecer un poco incongruente por lo que voy a decir a continuación, pero confío en su criterio. Yo sí recomiendo a mis alumnos que utilicen un IDE, pero que no dejen de conocer el lenguaje; muchos se confían porque su herramienta les completa automáticamente los nombres de clases o de métodos, les indica con otro color las líneas con errores de sintaxis y les sugiere la corrección (¡incluso algunos IDEs corrigen por sí solos!, ¡increíble!). Sólo por reforzar mi punto, he sido testigo, muchas veces, de casos en los que el programador lleva horas sentado frente a un error en su programa sin poder acertar a decir cuál es, esperando que el IDE, de alguna manera milagrosa, lo resuelva. Que quede claro: el hecho de que yo no use un IDE no implica que no los recomiende, por el contrario, los animo a usarlos, pero con la debida precaución.

Si comienzas a programar en Java, recomiendo usar BlueJ. BlueJ es ideal para comprender mejor los conceptos de orientación a objetos, con la ventaja de un IDE que escribe código automático a partir de un diagrama UML. Para los más agresivos, están NetBeans, Java Studio Creator (de Sun), JDeveloper (de Oracle), Eclipse o JBuilder (de Borland). Yo he usado todos ellos y puedo decir muchas cosas (buenas y malas) de cada uno. Sin embargo, creo que la decisión es tuya. Busca un IDE que sea fácil de usar, no uno donde te tardes más en configurar tu ambiente que en escribir tu programa.

¡Ah!, ¡casi lo olvidaba! Al principio dije que usaba EditPlus. Es una herramienta muy útil, no es un IDE pero se cree uno de ellos. Es un editor de textos como muchos, pero bastante eficiente (quiero decir rápido), resalta sintaxis con colores, puedes configurar programas para que se ejecuten desde su menú, hacer búsquedas de textos usando expresiones regulares (ER) en varios directorios, y muchas cosas más. Tal vez tú conozcas alguno mejor, pero este me ha convencido y me ha hecho recordar muchas veces que las mejores cosas de la vida son las más sencillas... y que quizá debería tener un IDE instalado en esos momentos en que olvido los métodos de la clase String. ;)

:wq!