Notas de Software
Café por medio, hablando de lo que nos gusta...

Según Dijkstra estoy mentalmente mutilado.

sábado, 26 abril 2008 00:39 por Gabriel

Es prácticamente imposible enseñarle a programar bien a cualquiera que haya sido expuesto anteriormente al BASIC: como potenciales programadores están mentalmente mutilados y no tienen ninguna esperanza de regeneración.

Edsger W. Dijkstra, 18 de Junio de 1975

Más allá de que Dijkstra es considerado uno de los más grandes científicos dedicados a las ciencias de la computación, ganador del premio A. M. Turing en 1972 y blah, blah, blah, no puedo dejar de considerar lo que dijo una de las más grandes estupideces de la historia de la programación.

Yo programé, en estricto orden cronológico, en:

  • Sinclair BASIC
  • CBM BASIC
  • 6510 Assembler
  • Pascal (en la C64)
  • Quick Basic 4.5 (en la primer PC que tuve)
  • Turbo Pascal
  • Clipper
  • Dbase II
  • COBOL 400
  • RPG/400 (RPG III)
  • RPG IV
  • CL/400
  • Delphi 3.0
  • Visual Basic 3.0
  • Visual Basic 6.0
  • Visual Basic Script
  • VBA
  • Visual Basic .NET 2005
  • C# 2.0

La experiencia que me ha dejado el haber programado en todos estos lenguajes es muy sencilla. Uno no aprende o sabe programar en un lenguaje determinado, sino que uno debe aprender a programar, entendiendo el término programar como el encontrar un algoritmo que solucione un determinado problema. Este algoritmo puede expresarse primero utilizando diversas metodologías (top-down, estructurada, orientada a objetos) y luego programada en cualquiera de los lenguajes existentes.

La solución es independiente del lenguaje de programación a utilizar. Se puede ser un experto en Perl y conocer de memoria la sintaxis de todas las instrucciones pero si no se sabe pensar en la solución de un problema en términos de algoritmos y estructuras de datos, ese conocimiento del lenguaje resulta inútil.

Un mal programador lo es en cualquier lenguaje, lo mismo que un buen programador es bueno en cualquier lenguaje. Por supuesto que, una vez que tenemos la solución a nuestro problema, el sentido común dicta programarla en el lenguaje que mejor conocemos y si conocemos varios, en el que mejor se adapta a la solución encontrada.

Cualquiera que diga que una solución a un problema expresada utilizando un diseño orientado a objetos no puede programarse en el BASIC de Sinclair que usaba la ZX-Spectrum no tiene idea de lo que significa orientación a objetos y mucho menos de lo que significa programar. ¿Es esa versión de BASIC la mejor para implementar una solución orientada a objetos?. No, de ninguna manera. Es una tarea engorrosa y complicada, pero no imposible. Por supuesto que es mejor utilizar un lenguaje como VB.NET, C# o Smalltalk. Estos lenguajes fueron diseñados específicamente pensando en facilitar la implementación de soluciones orientadas a objetos.

Por eso lo que dice Dijkstra, con todo respeto lo digo, es una gilada monumental. No importa el lenguaje, sino los conceptos de programación que uno maneja. Un buen escritor en castellano, si aprende suficientemente bien otro idioma, seguirá siendo un buen escritor. El que maneja de forma excelente un Porsche, maneja de la misma forma un Fiat 600. Y así puedo seguir eternamente.

Mi primer libro de programación (que aún ojeo de vez en cuando) lo compré inmediatamente después que tuve mi primer computadora, una Timex Sinclair 2068 (un clon yanqui de la ZX-Spectrum inglesa). El libro se llama "Programación Avanzada en BASIC" de Peter Bishop. Tranquilamente se podría haber llamado simplemente "Programación Avanzada". El autor usa el BASIC simplemente como un lenguaje de referencia para demostrar prácticamente los conceptos de programación avanzada que explica en el libro. Y usa BASIC porque en aquel momento era el lenguaje que venia en la ROM de todas las computadoras hogareñas (home computers). Es más, usaba un BASIC lo más estandard posible para que los ejemplos fueran compatibles con todas las versiones de BASIC de la época. Y la mayor parte de los conceptos explicados en ese libro siguen teniendo vigencia.

Por eso cuando estoy frente a un problema (y tengo el tiempo suficiente) trato de no pensar, por lo menos al principio, en qué lenguaje específicamente voy a implementar la solución. Cuando logro hacerlo bien, la solución al problema termina siendo un algoritmo que fácilmente se puede implementar casi en cualquier lenguaje y permite además explotar las características especiales del lenguaje elegido.

Por eso Mr. D. lo suyo fue y será una tremenda patinada.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Opera 9.5 Beta 2

jueves, 24 abril 2008 10:15 por Gabriel

Ya está disponible la Beta 2 de Opera 9.50.

Entre las características destacables se encuentran:

  • Seguridad mejorada.
  • ACID3
  • Mejoras en cuanto a la compatibilidad con sitios Web 2.0
  • Mejoras en Opera Link (como sincronización de Notas por ejemplo)

Pueden descargar Opera y ver un video en:

http://my.opera.com/chooseopera/blog/2008/04/24/opera-desktop-9-5-beta-2-kestrel-out-now

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Microsoft Héroes IT

martes, 22 abril 2008 00:02 por Gabriel

Según Microsoft, éste es mi poder:

 

sshot-7

 

Microsoft Héroes IT

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Procastination

lunes, 21 abril 2008 23:00 por Gabriel

Al igual que Geekotic, yo también busqué en el arcón de los recuerdos y encontré esto que siempre me pareció que fue hecho específicamente para mí.

 

posterprocrast

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Dell Offers Migration Services For Deploying Windows Vista

viernes, 11 abril 2008 22:29 por Gabriel

Dell ofrece un servicio de migración para aquellos clientes que quieran migrar 2500 computadoras o más a Windows Vista. Según Dell, sus clientes están migrando a Vista y le han solicitado algún tipo de servicio para simplificar y organizar el pasaje al nuevo sistema operativo. Esto, evidentemente, se contradice con el resto de las tantas noticias que aseguran que nadie en el planeta tierra está pensando en migrar a Windows Vista.

Dell Offers Migration Services For Deploying Windows Vista -- Dell -- InformationWeek

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Internet Information Services (IIS) 7.0 Manager

viernes, 11 abril 2008 22:27 por Gabriel

Microsoft ha liberado hace un tiempo esta herramienta que permite administrar servidores web IIS7 de forma remota. Los sistemas operativos soportados son Windows Vista SP1, Windows XP SP2 y Windows Server 2003 SP2. Es necesario tener el Framework .NET 2.0 instalado previamente.

Download details: Internet Information Services (IIS) 7.0 Manager

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Web Deployment Projects

viernes, 11 abril 2008 22:18 por Gabriel

En general una aplicación web se distribuye o se implementa en el entorno de producción usando las opciones de Copiar Sitio Web o Publicar Sitio Web. Si bien estas opciones son prácticas, tienen varias carencias.

Web Deployment Projects es un agregado para Visual Studio 2005 que permite agregar un proyecto a la solución para crear un paquete de instalación de nuestra aplicación web.

Una de las características más interesantes es la posibilidad que nos brinda el proyecto de tener más control sobre la generación de los ensamblados de nuestra aplicación. Un instructivo bastante completo de la herramienta puede encontrarse aquí.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Usabilidad y Pestañas

viernes, 11 abril 2008 22:16 por Gabriel

Un muy buen artículo de Jakob Nielsen, el gurú de la usabilidad, analizando el uso de la interfaz basada en pestañas y AJAX de Yahoo! Finance.

Si bien se puede analizar siempre cada caso en particular de las interfaces de usuario, sobre todo en los sitios web e intranets donde no hay un estándar a seguir como en el mundo de las aplicaciones de escritorio, en mi opinión lo importante es que cumplan con los siguientes puntos, independientemente de la tecnología o los "controles" que se utilicen para implementarla:

Simplicidad. Es mi "mantra". "Lo bueno, si breve, dos veces bueno."

Utilidad. Cada control, cada link, cada gráfico debe ser capaz de responder a las preguntas: ¿Para qué? ¿Por qué?
Una buena prueba es eliminar un control o reemplazarlo por otro y ver si la usabilidad se resiente por el cambio. Si la aplicación puede seguir utilizándose sin problemas, probablemente era un control innecesario.

Estética. Si bien es importante es lo último que veo en una aplicación o en un sitio. Si tengo que esperar que carguen 50 Flashes o el navegador va y viene al servidor 100 veces antes de mostrarme la primera línea de la página, probablemente no vuelva a pasar por allí por más espectacular que se vea.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Royal Pingdom » The state of Linux according to Google

viernes, 11 abril 2008 22:12 por Gabriel

Un interesante análisis de cómo Google Trends ve a las distintas distribuciones de Linux, sus interfaces de escritorio y Windows Vista. Algo llamativo que hacen notar es como la gente busca cada vez más Ubuntu que Linux. ¿Se estará llegando a la distribución definitiva del sistema del pingüino?

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Solución / Hotfix: Desarrollo de aplicaciones web usando Visual Studio 2005, IIS7 y Windows Vista Home Premium

viernes, 11 abril 2008 22:10 por Gabriel

Hay un problema bastante grave y molesto  cuando hay que depurar una aplicación web usando IIS7, IE7 y Visual Studio 2005 en Windows Vista. Pero tiene solución. La misma y una explicación detallada del problema la pueden encontrar (en ingles) en Your Websites, Our Passion! : Solution / Hotfix: Developing web applications using Visual Studio 2005 and IIS7. Es cuestión (como siempre) de instalar un par de Service Packs y un Hotfix.

O pueden usar otro navegador como Opera  por ejemplo, con el que no van a tener ningún problema.

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5