¿Por qué programar en un equipo de pocos recursos?

Estándar

En este artículo no encontraran nada técnico, más bien lo escribo haciendo uso del sentido común y de las experiencias que he tenido a lo largo de los años. En el trabajo dispongo de dos equipos (laptops), el personal y el de la empresa y la gente suele preguntarme: ¿por qué tienes dos equipos? Y mi respuesta suele ser alguna de estas dos:

  • Es que el equipo de la empresa no me deja instalar herramientas para realizar pruebas.
  • La personal la uso para mejorar el rendimiento de las macros en la que programo, y no sé por qué siempre me dicen lo siguiente: ¿Entonces es más rápida que la del trabajo? Y yo les contesto: No! De hecho es la mitad de rápida que la que nos dan aquí en el trabajo y se quedan extrañados. Son pocos los que me han llegado a preguntar: ¿Y por qué entonces usas un equipo más lento cuando el de la empresa es más rápido?, entonces les respondo:
    “Porque si logro que la macro que estoy programando corra decentemente en este equipo, sin duda alguna volara en este que es dos o tres veces más rápido.”

Hoy en día no se por qué muchos programadores (los que van iniciando) creen que si tienen un equipo con mayores prestaciones programaran mucho mejor, cuando es el caso contrario! Recordemos que el procesador puede realizar cierto número de operaciones por segundo por lo tanto un equipo moderno tendrá un procesador más rápido y mayor cantidad de memoria que un equipo que ya tiene dos o tres años, todas esas nuevas prestaciones lo único que hacen es que los programadores se preocupen menos por crear algoritmos y programas que hagan mejor uso de los recursos como son la memoria, el almacenamiento en disco duro y mejor uso del procesador (disminuyendo tiempos).
Un programa que tarde en ejecutarse algunos minutos en un equipo de buenas prestaciones, quizás le tome el doble o triple de tiempo en otro equipo que tenga la mitad de prestaciones que el primero y siendo honestos algunos programadores se dan por satisfechos al ver que corre en su equipo ignorando esta otra parte.

Bueno, esta es mi opinión y experiencia, la cual comparto con ustedes, Saludos!

Anuncios

Programación en Ruby en 5 minutos – Pt 1

Estándar

Hoy en día muchas de las personas se encuentran inmersas en varios asuntos y actividades y quizás apenas tienen tiempo para lo más esencial, es por ello que me decidí a desarrollar pequeños tutoriales o recetas de lo que se puede hacer con un lenguaje tan fabuloso como lo es Ruby. No esperen cosas avanzadas y código perfecto, pero si cosas prácticas, sencillas y fáciles de asimilar.

Espero que estos tutoriales sean de interés y sea el primero de muchos mas…

Programación Funcional con Racket

Estándar

Hace unas semanas vagando en internet me tope con un curioso video que me dejo impresionado y a la vez me divertí viéndolo, se trata de un video que hace referencia a LISP (List Processing – Procesamiento de Listas) el cual es un lenguaje de programación funcional de alto nivel que se invento en 1958.


Anteriormente pensaba que LISP era un lenguaje arcano y obsoleto, pero después de ver el video, veo que estaba completamente equivocado!
Las cosas que me llamaron la atención del video fueron:

  • Clojure está basado en LISP
  • Es un lenguaje único y expresivo (vaya que lo es!)
  • Todo programador debería aprender un poco de Lisp, después de ello la manera de ver la programación cambiara
  • Para cualquier problema que queramos resolver, podemos convertir a LISP en un lenguaje de dominio específicos (DSL – Domain Specific Language) que pueda hacer exactamente lo que queramos.
  • Y no olvidemos ese ritmo pegajoso del video, cool!

Así que decidí probar LISP pero usando Racket, el cual es descendiente de LISP y tiene un entorno de programación más amigable y en la página del mismo hay cientos de ejemplos.
Racket contiene un implica cantidad de librerías incluidas, incluso se puede acceder al modelo de objetos de Excel y se pueden crear programas ejecutables con él. Más adelante espero poder subir información al respecto.

La programación es para todos

Estándar

Así es! Para todo aquel que tengan el interés, tiempo y un poco de sentido común. Por lo general las personas que no tienen idea de programación, creen que los programadores son genios innatos en su profesión. Pero nadie nace siendo un genio, quizás se tengan las cualidades, pero si no se desarrollan difícilmente se podrá llegar lejos…

Continuar leyendo

Libro de Programacion Python para Principiantes

Estándar

Navegando por internet me tope con este valioso libro en formato PDF. Tal como indica el titulo se trata de un libro dirigido para principiantes que quieran iniciarse en el mundo de la programacion a traves de Python.

El libro comienza desde lo mas basico… instalacion, conceptos de programacion, tipos de datos, entrada y salida de datos, iteradores, listas, diccionarios, funciones, archivos, excepciones, objetos, poo, interfaces graficas de usuario, sonido y animacion. Todo lo anterior a traves de ejemplos para desarrollar sencillos videojuegos en pyhon.

Un libro de 480 paginas.  Cabe señalar que el libro viene en ingles.

Python Programming for the Absolute Beginner

Pyxll – Programación Python para Excel

Estándar

Mi pasión por Excel y Python me hizo vagar por la web con lo cual me encontré con Pyxll

Pyxll hace posible escribir complementos para Microsoft Excel utilizando Python. Haciendo uso de decoradores en el código, este puede ser instantáneamente expuesto a Excel como funciones, menús o macros.

Los complementos desarrollados en Pyxll son rápidos de desarrollar y ofrecen un alto desempeño, siendo fácil su mantenimiento que otros métodos ofrecidos para el desarrollo de complementos para Excel.

Pyxll es usado por bancos de inversión, fondos de cobertura y compañías de ingeniería alrededor del mundo.

Pyxll soporta todas las versiones de Excel (2003, 2007 y 2010).

Pyxll está diseñado para trabajar con las versiones de Python desde la 2.3 a la 2.7. El intérprete estándar cPython es usado, lo cual significa que todos los módulos compilados de cPython funcionaran, incluyendo los módulos de terceros como numpy.

Continuar leyendo