Ir al contenido principal

¿Seguir usando Delphi?

Aun mantengo y agrego nueva funcionalidad a una aplicación que desarrollé hace algunos años usando Delphi. Específicamente con Turbo Delphi, basado en la versión 2006 del entonces conocido como Borland Developer Studio. En realidad no se trata de una sola aplicación sino de una familia de aplicaciones para la administración de un negocio de venta al menudeo y medio mayoreo.

producto

Sigo agregando nuevas características, conforme las necesidades de la empresa, lo cual no es muy seguido. Cada vez que tengo que agregar alguna funcionalidad me pregunto ¿Debería migrar el código fuente a alguna otra tecnología?

¿Por qué cambiar?

Bueno si funciona ¿Para que cambiar? es la otra pregunta que me hago inmediatamente después de pensar en migrar. Las razones son:

  1. Mi forma personal de programar ha cambiado: al usar Delphi debo regresar a usar objetos como datasets, escribir SQL a mano (Sin ORM’s), mucho arrastrar y soltar para después modificar propiedades en el object inspector. Cuando lo que quisiera hacer es utilizar características de lenguajes y frameworks nuevos.
  2. Documentación: Ya que no es una tecnología que use todos los días, cada vez que regreso a algún proyecto y necesito agregar algo de código o modificar alguna propiedad necesito buscar documentación para saber cual es la manera Delphi de hacerlo. No quiero escribir mucho código para algo que con cambiar alguna propiedad o arrastrar un componente hubiera bastado. No es mucha la documentación que se encuentra y la mayoría de esta es vieja o trata las nuevas características que aun salen para Delphi.
  3. Precio: Otra razón para no migrar a una versión más reciente de Delphi (ahora parte de Embarcadero) es el precio de la licencia. Es más cara que una licencia de VisualStudio y siento que con VS puedo hacer más cosas que solo escribir aplicaciones de escritorio. Además de que las puedo desarrollar de una manera “moderna”.
  4. La tecnología puede llegar a ser obsoleta: Al seguir desarrollando en la versión actual corro el riesgo de no encontrar soporte, alguien que pueda ayudarme, cuando necesite realizar algo que no este soportado en la tecnología actual. Como puede ser la integración con sistemas más “modernos”.

¿Por qué seguir en Delphi?

Aun con las desventajas que tiene el mantener la aplicación en una tecnología “vieja” creo que tiene ciertas ventajas mantener el código donde esta:

  1. La aplicación funciona:Esta es la principal razón por la que sigo usando Delphi para esos proyectos. Aun no se ha presentado problemas graves por estar usando esa tecnología.
  2. Tiempo de desarrollo: Es más rápido agregar características a las aplicaciones usando la tecnología actual que reescribir todo en alguna tecnología “nueva”. Además el código no esta mal/feo es relativamente fácil de seguir o de modificar para después agregar nueva funcionalidad.
  3. Costo-Beneficio: Al final todo se reduce al costo beneficio. No estoy convencido que el costo que implica reescribir toda (o gran parte) de la aplicación tenga un beneficio que valga la pena el gasto. Si bien es posible que en un futuro sea más fácil seguir usando una tecnología moderna; por el momento no ha causado un problema seguir desarrollando en Delphi. Solo alguno que otro enojo (como programador) por no poder usar lambdas o cosas así.

Conclusión

Al no poder justificar completamente el gasto creo que seguiré desarrollando (por el momento) las aplicaciones principales en Delphi mientras me sea posible. Quizás haga proyectos pequeños, relacionados, usando alguna otra tecnología (como .Net) para ir migrando poco a poco. Pero sin descuidar que el desarrollo principal en estos proyectos es en Delphi. Aun sigo considerando también comprar la versión más reciente de Delphi aunque es lo menos probable.

Comentarios

  1. yo coincido, no creo que puedas justificar el costo de re-escribir las aplicaciones usando tecnologias nuevas, es la misma razon por la cual hoy en dia hay tantos sistemas tan importantes (bancarios entre otros) que aun corren en Fortran o Cobol

    esto mas bien es un problema para el programador, y yo digo que la 'solucion', para el programador, es cambiarse de trabajo xD

    ResponderBorrar
  2. Pues para mi Delphi es el mejor lenguaje de programación, a mi me facilita mucho la vida como programador, a diferencia de javascript o PHP por ejemplo que parece ser que es lo que se lleva ahora.
    Por si te sirve de ayuda aquí tienes un blog con un montón de codigo en Delphi
    http://delphimagic.blogspot.com

    ResponderBorrar
  3. Ahora que Delphi está remontando difícilmente lo dejaría. Ha sido y sigue siendo una de las herramientas de programación más potentes que se hayan fabricado.

    Ya podemos crear aplicaciones plenas para dispositivos móviles y un sin fin de cosas. Ya sólo falta adentrarse en serio al terrno Web para volver a decir que Delphi es el gran lenguaje de propósito general.

    Puede que el proceso sea lento, pero de lo más profesional que he visto. Una apuesta segura.

    Saludos.

    Al González.

    P.D. En cuanto a ORMs quizá ha faltado buscar un poco más, porque hay varios, algunos bastante buenos. Pero lo mejor será cuando venga con uno de fábrica. Llegará ese momento.

    ResponderBorrar
  4. Eso depende de como tu lo veas, puede seguir usando tu app viaje y seguir añadiendo funciones según se presenten las necesidades, que estés usando un IDE un poco retrasado en así no hace la aplicación viaje, pues siempre funcionara, eso es lo bueno de Delphi, que podemos ejecutar aplicaciones en Windows 2000 sin apenas problemas, y adaptarla no requiere mucho trabajo.

    El mundo evoluciona y siempre iremos hacia delante, mientras continua dando soporte y mejorando la app, puede tomarte tu tiempo y actualizar tu proyecto con las nuevas tecnología y las nuevas características del IDE y el compilador. Cuando lo tenga totalmente funcional, entonces sigues el proyecto con la nueva versión mas actualizada.

    Fl studio esta escrito en Delphi, y siempre se ha ido actualizando y cambiando de IDE si lo cree necesario. Fl studio es un proyecto muy grande y complejo, si sus desarrolladores pueden tu también. Es cuestión de que te tome tu tiempo. Actualizar siempre valdrá la pena.

    Todos mis proyectos, Delphi 5, hasta XE3, están actualizados, y así lo eh estado haciendo con cada versión nueva(No todas). Los saltos que eh hecho es lo siguiente Delphi 5 > Delphi 7 > Delphi 2007 > Delphi 2010 > y por ultimo Delphi XE3. Hasta ahí, mis app no necesitan mas, hasta el momento.

    ResponderBorrar
    Respuestas
    1. He pensando migrar la aplicación a las últimas versiones de Delphi, sin embargo no lo he hecho por el costo. Es difícil convencerme cuando puedo usar Visual Studio, que para un equipo de una persona (como estoy actualmente) la licencia es gratuita y además puedo desarrollar para Web.

      Actualmente la aplicación seguirá en Delphi, pero veo difícil migrar a la última versión del IDE.

      Gracias por comentar.

      Borrar

Publicar un comentario

Entradas más populares de este blog

Bloqueos

Una de las preguntas típicas de las juntas matutinas en los equipos de desarrollo de software es ¿Hay algún bloqueo? Si lo hay, se trata de ver qué es lo que está esperando esa persona y encontrar la forma de que se desbloquee; pero ¿Qué son los bloqueos? Los bloqueos son obstáculos que te impiden realizar o avanzar en tu trabajo. Evitan que puedas seguir progresando en el proyecto.

He notado que es común en las personas con menos experiencia decir que tienen un bloqueo cuando están batallando, debido a su poca experiencia, en la forma de resolver un problema. Han intentado varias formas y se empiezan a quedar sin ideas de como puede ser resuelto el problema o como pueden cumplir con el requerimiento especificado. Al quedarse sin opciones de qué intentar dicen que tienen un bloqueo con la tarea y que a menos que alguien les diga como resolverlo, no se puede avanzar en la tarea.

En personas con más experiencia, ese tipo de bloqueos no ocurren, una persona con experiencia ha visto pro…

Firebird 2.1 UPDATE OR INSERT

Another great feature that I like in Firebird 2.1 is the UPDATE OR INSERT statement. It's a really time saver and it makes the SQL cleaner.

For example suppose I have a products table like the one I use in my last post and an inventory table to store the product stock. Before Firebird 2.1 if I want to set the stock for a product I needed to check if a record for that product_id already exists; if the product_id already exists then I write an update. If not then I write an insert statement. So I ended up with something like this:


IF EXISTS(SELECT * FROM inventory WHERE product_id = :product_id ) THEN
UPDATE
inventory
SET
stock = :stock
WHERE
product_id = :product_id;
ELSE
INSERT INTO inventory
(product_id, stock)
VALUES
(:product_id, :stock);

In this example I only update one field but when I have to update a big table I ended up with a big chunk of code and thinking: "there should be another (better) way to do this".

Fortunately now with Firebird 2.1 there…

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp