¿Por qué Delphi y no otro…?

Buen camino a todos:

Actualmente estamos celebrando el 22 Aniversario de Delphi, y muchos de nosotros hemos dejado testimonio de nuestra experiencia y de los motivos por los que hemos creado aplicaciones a lo largo de los años con Delphi o C++ Builder, y de por qué actualmente seguimos confiando en el producto. Y yo he querido aprovechar estos días de descanso para hacerlo también. Leo algunos de los posts publicados por mis compañeros, y no puedo menos que asentir con estas razones. Por ejemplo el de André Luis Celestino, Why I Choose Delphi!. André Luis Celestino, pertenece a la comunidad de Brasil, MVP de Embarcadero de esta gran comunidad de desarrolladores, y en su artículo enumera 10 razones que comparto porque son razonablemente ciertas (aunque pueda no compartir el grado de certeza). En la comunidad española podríais leer el artículo de Emilio, MVP de Embarcadero por España, Por qué elegí Delphi, donde comparte su experiencia y trayectoria con la herramienta. Y similar a la de André es la lectura en el blog Code Velocity de CSVelocity a finales del mes anterior, Why I choose Delphi. Finalmente, el último que he leído ha sido el artículo de Jim McKeeth en Delphi.Org. Jim McKeeth es el director de proyecto de los MVPs de Embarcadero y habitualmente centra sus podcast en la entrevista a las figuras relevantes de la Comunidad a lo largo de estos años. En este caso, la entrada Why I keep Choosing Delphi recorre su experiencia y su visión acerca de los puntos fuertes del producto y de los motivos que le llevaron a elegirlo como herramienta de desarrollo.

Digo todo esto y hago mención a estas cuatro publicaciones porque  tienen en común una cosa y es la pasión con la que describen nuestra herramienta de desarrollo, Delphi o C++ Builder. En general, diría que todos los que llegaron en algún momento a ella, no vivieron una mala experiencia, porque si algo ha tenido y tiene Delphi, y le ha caracterizado año a año, es que hace realmente sencilla la programación. Podéis darle nombres técnicos a esto, o resaltar unas características del producto u otras: decir que la productividad es alta o que la curva de aprendizaje sea tal o cual, al final creo que se resume en una vivencia positiva que vive el programador y eso es lo realmente importante.

Todos tenemos opiniones propias y hacemos hincapié en aquellos puntos que nos parecen mas relevantes que otros. Mi caso no es distinto. Compartía con vosotros, en la entrada Crea tu propia calculadora con Delphi (Parte I), con motivo del 20 Aniversario cómo me había enamorado literalmente de la programación gracias a Delphi allá por 1999, con las primeras versiones del entorno. Personalmente siento que tengo una deuda con Delphi y creo que el trabajo desde el blog en todos los años desde que me adherí a la Comunidad ha sido la forma de devolverla. Desde aquellos primeros pasos con Delphi 1 y Delphi 2 hasta ahora, he seguido con Delphi como principal herramienta de trabajo, con independencia de que haya conocido o investigado sobre otros entornos y lenguajes de programación (Java, php, JavaScript, C#, etc…).  Y los haya usado en proyectos o partes de proyectos que me los han requerido así.

Haciendo el símil del idioma, me considero nativo en Delphi sin que por ello tenga necesariamente que ser un tipo raro, ni me anule para resaltar sus virtudes y sus aciertos (y errores). ¡Claro que han existido versiones que no han estado a la altura de las expectativas! Difícilmente en 22 años se acierta en todas las decisiones. La vida real no es distinta. Hubieron aciertos y errores, pero, para que Delphi siga estando ahí después de 22 años los aciertos deben ser muy superiores a los errores, de otra forma, hubiera desaparecido, como sucedió con otros productos que hemos conocido.

Como anécdota, pensaba en aquella primera decisión, entre VisualBasic y Delphi, donde tenía sobre la mano ambas posibilidades para partir desde cero. 20130216_103939-e13611363331331Todas las tiendas de informática a las que preguntaba -porque yo en aquel momento era absolutamente novel y no conocía ni una ni otra opción- se inclinaban por la primera con argumentos como la popularidad, el acceso a la información, la empresa que soportaba el producto, el idioma, etc… Y la primera vez que abrí el entorno lo tuve claro… ¡Y no escuché a nadie…!. Me dije para mi: -Yo quiero conocer y programar con esa herramienta. Y quizás en esos momentos, la principal razón era la independencia que me ofrecía, que pudiera crear mis propios componentes, que pudiera crear fácilmente los diseños de mis formularios de una forma increíblemente sencilla, que existiera un editor avanzado capaz de mostrarme los métodos y campos disponibles y finalmente, y en aquel momento fue muy importante para mi, que existiera una comunidad como la que llego a ser aquel Club Delphi de aquellos días, donde se vivía ese espíritu de Delphi. En la imagen se muestran algunos de los libros impresos que fui adquiriendo a lo largo de los años aunque tengo que decir que no se muestran todos aquellos posteriores que mantengo en formato digital, que no son pocos. Hice la fotografía con motivo del 20 aniversario apilando todos esos tomos en la mesa del salón de casa, previamente apartadas revistas de programación, documentación impresa, etc…

Con ópticas distintas…

Muchas veces comento con mis compañeros que la óptica desde la que se valora Delphi depende mucho del tipo de proyectos que abordes. No es la misma valoración para una empresa que se dedica al desarrollo y venta de software propiamente, que la expresada por un consultor independiente que vende sus servicios, o la de un equipo de desarrollo para la gestión de software propio de un negocio, que suele crear un programa a medida, adaptado a la empresa como un traje. Todos nos vemos influenciados por ese contexto y matizamos nuestras opiniones desde esas ópticas distintas. Porque tenemos objetivos también distintos y necesidades distintas, y le pedimos a nuestro producto unos requisitos que consideramos mínimos que no siempre son los mismos. En mi caso, mi experiencia profesional fue de la mano del desarrollo de programas a medida, durante un tiempo que estuve como autónomo (unos 3 años). Y luego, el desarrollo por cuenta ajena, en el departamento de programación de una empresa de manufactura en el sector del mueble, en mi comunidad autónoma, del cual actualmente soy el responsable. Y ni fueron las mismas necesidades en un caso o en otro, ni son las mismas cuando comparo las opiniones de otros compañeros que venden software “empaquetado”, que generaliza sus objetivos.

Quizás por ello siempre he defendido que es bueno que Embarcadero sepa escuchar todas las opiniones y sepa entender que Delphi es visto de distinta forma en función de quien y para qué lo use. Y en buena parte, nuestra colaboración como MVPs también es la de ayudarle a entender las necesidades de la Comunidad. Porque todos somos diferentes y las empresas para las que trabajamos requieren nuestra especialización, lo que supone en ocasiones que te centres en ciertas características del producto y obvies otras, que te pueden parecer buenas, que puedes conocerlas, pero que no son útiles siempre en tu día a día.

La visita de quien te vende un programa…

¿Has recibido en alguna ocasión, la visita de alguna empresa que se interesa en vender su software…? ¿Alguien que, cuando te pregunta en que lenguaje trabajas o que herramienta usas, se sorprende de que estéis desarrollando con Delphi…?, ¿alguien que intenta convencerte, con buena fe, que aquello de Delphi era de tiempos remotos, desfasado, antidiluviano o irrelevante…?.

Seguro que alguna vez os pasaría. Como responsable del departamento de desarrollo en mi empresa, son muchas las ocasiones en las que alguien me “sorprende” con alguna de las tres preguntas. A mi, con vuestro permiso, me sirve para saber que ese interlocutor no tiene ni pajolera idea de que me va a vender… 🙂

En principio, siendo honestos, no debería ser lo mas frecuente, porque Delphi, como herramienta avanzada de desarrollo de aplicaciones es suficientemente conocida y valorada, al menos por los profesionales y las personas que estamos ligadas a este sector. Es difícil que este desarrollador medio no haya oido hablar en algún momento de Delphi, ni tenga una minima idea de qué es y te suelte una barrabasada como que Delphi es un pelador de patatas o un modelo de secador para el pelo. Delphi lleva entre nosotros ya 22 años y mal que le pese a muchos, ha seguido vigente, y al día de hoy mantiene un peso específico y un crecimiento constante, merced a las mejoras continuas que ha experimentado desde la introducción de la multi plataforma con Firemonkey.

Sin embargo, desde la perspectiva de las pymes, las pequeñas y  medianas empresas, desde los despachos de quienes deciden en última instancia que programas gestionarán sus negocios, es otro cantar… Porque las personas que toman estas decisiones, a veces se dejan llevar por el marketing (el canto de las sirenas) o el tamaño de la empresa que os ofrece el producto, y no se mira tanto los motores de desarrollo que están detrás de esos programas. Incluso en ocasiones desoyendo los consejos de sus departamentos de desarrollo de software, que son a menudo meros sufridores de estas decisiones. No digo que sea siempre así, Dios me libre. Hablo desde mi experiencia personal y desde las cosas que he visto y he compartido con otros compañeros a lo largo de los años.

Uno de los tópicos que compartimos a menudo en esas conversaciones, es que las grandes corporaciones, como Microsoft, pueden permitirse el lujo de regalar estas herramientas o partes de ellas a cambio de llegar a un mayor cantidad de profesionales, con campañas de difusión agresivas, porque su beneficio no dependen “directamente” de ellas. Es posible que si tu eres jefe te veas tentado en ese sugerente ahorro, cuando el vendedor del software argumente que vas a pagar bastante menos. Luego, no será tan así, ni será ese ahorro tan sugerente ni tan real. ¡Tiempo al tiempo!. Delphi no es gratuito y tiene un coste que será mas o menos importante en función de la capacidad económica del comprador y del rendimiento que genere su uso. Pero ni es obligatorio adquirir todas las versiones ni es obligatorio tener dentro de una versión todas sus características. Tampoco es obligatorio adquirir productos de terceros aunque se pueda hacer necesario en ocasiones (muchas veces encontraras ventajas en adaptarte o crearte tus propios componentes cuando sea posible).

Lo mas valorado…

 Como dije lineas mas arriba, valoramos las características de nuestro compilador en la medida que resuelven nuestros problemas. En mi caso, yo valoro especialmente la productividad del producto, que me parece uno de sus mayores aciertos. El que se calificara como RAD no es nada casual porque agiliza el desarrollo de software, a todos los niveles: desde la inestimable ayuda del IDE propiamente, con acciones de apoyo en los menus de contexto, para facilitar la edición del código, hasta la estructura modular de su biblioteca de componentes que hace sencillo dotar de nueva funcionalidad encapsulando en paquetes de componentes que pueden ser desplegados a medida que avanza tu proyecto. Diría que Delphi se adapta especialmente bien en el caso de pequeñas y medianas empresas que son las que yo mas conozco, donde se les ofrece a menudo soluciones inapropiadas, algunas por tamaño y presupuesto.

Contar con un equipo propio de programadores apoyados por este entorno de trabajo,  puede ser crucial para adaptar a la medida del propio negocio esta infraestructura de software que necesita. Unas veces será a través de recursos humanos propios. Otra con la contratación de un desarrollo a medida a un tercero. En cualquier caso, os puedo asegurar que va a ser una garantía de calidad que ese software que vais a incorporar se haya generado con Delphi (Powered by Delphi). Y el motivo no es otro que distintas capacidades inherentes al producto, algunas heredadas desde sus inicios y mantenidas en el tiempo y otras, propias de las nuevas características de la plataforma Firemonkey, que le hacen un producto moderno, con una apariencia agradable, adaptable mediante la colección de estilos existentes, capaz de manejar distintas plataformas en las empresas españolas, móviles y de escritorio, hoy ampliadas a Linux, y capaz de trabajar en contexto de equipos al incorporar la gestión de los mas conocidos servicios de control de versiones.

Pero voy a hablar por mi, desde mi experiencia.

Valoro su conectividad: ¿Cuantos productos conocéis que desde siempre hayan contado con esa capacidad tan amplia y tan heterogénea? Repasad la lista de conectores a motores de datos que pueden ser usados para conectar y gestionar información. Actualmente drivers de Firedac tanto para bases de datos locales, relacionales, embebidas o no sql. Pero antes fue los conectores odbc, dbexpres, ado, etc.. Siempre me permitió conectarme a cualquier origen de datos lo cual para mi era un requisito.

Valoro su productividad: Para mi es importante su editor, contar con la ayuda que me ofrece poder descubrir los métodos y propiedades mientras escribo el código, evitando que tenga que recordarlos constantemente. Usar el diseñador de formularios y enlazar el código que da respuesta a la interacción del usuario. Todo esto unido a que, actualmente, el IDE integra un gran numero de wizards, asistentes, barras de herramienta que facilitan todo el aspecto de la creación y gestión del proyecto. Desde el diseño visual de los componentes que integran los distintos formularios hasta los módulos generados de forma automática, como sucede en la creación de proxy en DataSnap por ejemplo. Todo está dirigido a facilitar la creación de código de forma que el programador se olvide de aspectos accesorios, pero siempre necesarios (búsquedas, reemplazos, funcionalidad del refactor de código, descubrimiento de errores, etc…).

Valoro especialmente la depuración integrada: El area del debug puede ser una de las mejores armas del producto permitiendo evaluar variables, modificarlas, generar puntos de inspección, etc… Para mi es algo vital e imprescindible.

Valoro su modularidad: La modularidad empieza en tu propia aplicación, cuando eres capaz de gestionar en tiempo de diseño las bibliotecas de componentes, cuando el entorno te permite crear los tuyos propios y reutilizar el código usado en otras aplicaciones creadas. Los procesos de instalación de nuevos componentes no eran complejos. Aun así, Delphi mejoró esa interacción con el usuario al integrar GetIt, que te permite ampliar nuevas colecciones de componentes de una forma automatizada, mediante un instalador integrado en el IDE, y desde el que puedes desinstalar cuando ya no son necesarios.

Y valoro especialmente en Delphi, el lenguaje subyacente, Object Pascal, que a mi personalmente me gusta y que además me parece que es una de las razones por las que me siento especialmente cómodo. El lenguaje ha sido ampliado para que cuente con características mas modernas que inicialmente no tenía. Ha sido un trabajo constante por parte de Embarcadero, que en mi opinión se debe resaltar.

El resto de aspectos para mi son importantes aunque va a depender mucho del contexto en el que se analice: las mejoras en la información y ayuda de la herramienta han sido constantes y crecientes desde la llegada de Embarcadero, aunque es algo que todavía debe mejorar y evolucionar. La multi plataforma es otra de las razones. En mi caso, que trabajo básicamente con Windows, y que además, el desarrollo de la empresa para la que trabajo esta basado en sistemas operativos Windows, contar con esta capacidad es algo adicional, un plus, que me da la confianza de que, de ser necesario, voy a contar con ello, y voy a poder crear mis propias aplicaciones nativas para Android principalmente (iOs también por supuesto aunque no sea lo habitual). Mi punto de vista actual es el de la optimización de las estructuras que gestiono y cuando añado una nueva capacidad al sistema de producción es una decisión tomada a conciencia. Dispongo de varios servidores Rest y DataSnap que habilitan intercambios de información de una forma estándar a través de JSon y XML. ¿Qué mas puedo decir? Para mi contar con un entorno de desarrollo como Delphi es tener esa confianza de que cualquier cosa que me pida el sistema, cualquier adaptación a nuevas tecnologías, de alguna forma la voy a tener a mi alcance. Y para mi eso es suficiente. Estas entradas que compartimos me sirven muchas veces para experimentar con esas nuevas tecnologías y para evaluar en que medida las puedo utilizar e integrar en los proyectos reales que mantengo.

Y ya para despedirme, simplemente decir que no queria escribir esta entrada desde el punto de vista técnico, que me haría desarrollar la lista de características de Delphi. Acabaría siendo un frío folleto de detalles técnicos y poco mas. Si la pregunta fuera: ¿volverías a elegir Delphi como herramienta principal de trabajo? Mi respuesta sería nuevamente sí. Por supuesto. Estaré siempre abierto a conocer nuevos entornos, nuevos lenguajes, pero reconozco que  el listón está puesto muy alto y hasta la fecha, de lo conocido, es en mi opinión la mejor opción.

Delphi hace sencillas cosas que en otros entornos son simplemente una especulación… ¡Creedme!

 Esa es mi opinión y llevo casi 18 años usando este IDE.

Sed felices.

 

#WhyIChooseDelphi

2 comentarios sobre “¿Por qué Delphi y no otro…?

Agrega el tuyo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

Subir ↑

¡Buen camino!

ANÉCDOTAS Y REFLEXIONES SOBRE UN VIAJE A SANTIAGO…

http://lfgonzalez.visiblogs.com/

Algunas reflexiones y comentarios sobre Delphi

It's All About Code!

A blog about Delphi and related technologies

The Podcast at Delphi.org

The Podcast about the Delphi programming language, tools, news and community.

Blog de Carlos G

Algunas reflexiones y comentarios sobre Delphi

The Road to Delphi

Delphi - Free Pascal - Oxygene

La web de Seoane

Algunas reflexiones y comentarios sobre Delphi

El blog de cadetill

Cosas de programación....... y de la vida

Delphi-losophy

A Lover of Delphi Wisdom

Delphi en Movimiento

Algunas reflexiones y comentarios sobre Delphi

marcocantu.blog

Algunas reflexiones y comentarios sobre Delphi

/*Prog*/ Delphi-Neftalí /*finProg*/

Blog sobre programación de Neftalí -Germán Estévez-

Press F9

Algunas reflexiones y comentarios sobre Delphi

El blog de jachguate

Un blog sobre tecnología y la vida en general

A %d blogueros les gusta esto: