FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Sinceramente no entiendo como dicen que Delphi es malo en cuanto a mantener la compatibilidad... si ese es precisamente uno de sus puntos fuertes.
Ademas, si incluso mantienen BDE hasta la version actual, y QuickReports lo incluyen. Otro se queja de que hay muchos componentes "pa' lo mismo"... pues que eso sino soporte hacia atras? O mejor a lo MS... que quita del todo la posibilidad (como ej: ADO-ADO.NET). Otro problema, y ese no lo arregla nadie, es programar sin pensar en el cambio: http://dn.codegear.com/article/32388
__________________
El malabarista. |
#2
|
|||
|
|||
Siempre hay que pensar en los cambios
Cita:
Es que se trata de conceptos diferentes. Una cosa es que se pueda compilar un programa Delphi en una versiòn superior y otra cosa es que ese programa Delphi aproveche la versiòn superior (o sea, verdadera migraciòn). Ciertamente, Delphi ha sido muy bueno en mantener compatibilidad; entendiendo por tal el poder compilar sin cambios, o con cambios mìnimos un programa de una versiòn anterior; pero al hacerlo, salvo una que otra excepciòn, simplemente estoy obteniendo el mismo programa que ya se tenìa, luego entonces, para que cambio de versiòn ?. El problema, es que con el enfoque que ellos dieron, si se quiere justificar el cambio de versiòn toca re-codificar mucho. En el ejemplo que dì antes, lo lògico era que ellos re-escribieran el BDE para brindar las capacidades que incluyeron en dbExpress; asì el esfuerzo de cambio para el programador final serìa mìnimo. En cuanto a lo que dices que me quejo de que hayas varias teconologìas de lo mismo y de que eso es soporte hacia atras, tienes razòn si lo miras desde la òptica de un Delphi 2007. Sin embargo, si lees con cuidado mi nota veràs que no era a eso a lo que me referìa. Lo que querìa decir es que nunca debieron haberse puesto a incluìr tantas variaciones de lo mismo; en su lugar, debieron mantener una sola base y simplemente mantenerse mejorandola; en otras palabras, lo que acabo de mencionar en el parrafo anterior. Màs claro aùn, estoy de acuerdo en que ahora toca mantenerlas todas, lo que estaba criticando es que considero una mala estrategia haberlas planteado porque al hacerlo se gastaron una cantidad de recursos que hubiera sido mucho mejor emplearlos en optimizar lo existente. Sobre el problema de "programar sin pensar en el cambio" estoy totalmente de acuerdo, y soy de los defensores convencidos de la necesidad de programar para que las aplicaciones sean portables. Por ejemplo, yo uso una metodologìa de portabilidad de Base de Datos, y en eso soy muy estricto, que me ha permitido cambiar de motor sin tener que cambiar programas, tan solo cambiando el Alias a nivel de BDE. Asì he pasado sin problemas, entre otros de Interbase a Oracle, y de Oracle a MS-SQL server. Otro ejemplo, tambièn uso otra metodologìa que me permite cambiar del modelo cliente servidor de dos capas convencional al modelo de conectividad Web, con un mìnimo de esfuerzo. |
#3
|
||||
|
||||
Eso no serviria por la sencilla razon de que las cosas externas se mueven de forma impredecible, como es el caso de las librerias de acceso a datos.
Es muy diferente el modelo de acceso a datos de odbc-oledb por ejemplo... tanto que mezclar todo es un embrollo. Ademas, es un error de diseño tener algo que "parece" igual pero funciona diferente. Eso introduciria bugs invisibles o problemas de desempeño que no serian previstos.... por ejemplo, el pasar de un acceso de archivos en paradox a un modelo desconectado en sql server. Ahora, siguiendo la idea del articulo, intercambiar la libreria de acceso no es tan dificil... Renombrar clases, ajustar parametros... a lo sumo, con la documentacion necesario toma 1 dia... y hablo basado en experiencia, he usado todas las opciones del Delphi, mas las de VS desde la version 6, y foxpro, y python, y asp. Es realmente fastidioso escribir la mismas cosas de forma diferente pero teniendo una sola clase es un trabajo de carpinteria. Mas dificil eso si son los controles visuales y el sistema de reporteo...
__________________
El malabarista. |
#4
|
|||
|
|||
Algunas aclaraciones
Cita:
Respeto tú opinión; pero no la comparto. Parte de la metodología de portabilidad es usar solo cosas standard. Con ello, a mí las cosas me han trabajado bien y rápido, y como dije antes, he pasado sin problemas entre diferentes motores, incluyendo versiones del mismo motor y drivers para el mismo motor. Los problemas de cambio se dan entre drivers, casi sin excepción, cuando se usan características que no son standard. Ahora, disculpame la observación; pero creo que no te ha tocado desarrollar aplicaciones realmente extensas y/o complejas en código; o bien no te colocas en el caso de quienes usen metodologías diferentes a la tuya. Dependiendo de la metodología hay diferentes necesidades y una cosa es emplear utilidades de reemplazo de cadenas de caracteres, y otra tener que, como obliga dbExpress sobre BDE en muchas de las metodologías usadas, recodificar segmentos completos. En una aplicación que requiera fuertemente de cambios manuales, y que tenga centenares de formas, con docenas de miles de líneas de código, no es viable hacer el cambio en un tiempo remotamente cercano a un día. Si fuera así, esas aplicaciones tomarían menos de un mes, y todos sabemos que las aplicaciones realmente grandes toman usualmente más de un año. Para ilustrar estos problemas, considera que dbExpress no soporta el filtrado, y piensa en lo que pasa al recodificar completa cada parte con eventos OnfilterRecord. Te doy otro ejemplo, que además cubre lo del unidad que emula BDE. Empiezo diciendo que, aunque hay algunas molestias (eso es otro tema); después de hacerla, cada aplicación me funciona bien practicamente con tan solo recompilar (podría incluso hacerse sin cambios si no fuera por un problema de diseño Delphi). Respecto que hacerlo así sea un "error de diseño", cada quién puede hacerse su propia opinión, por mi parte, y hablo por experiencia, estoy en total desacuerdo contigo. Lo de los problemas "invisibles" depende de que tan bien elaborado esté el código y de la metodología con que se trabaje. Sus ventajas en rapidez y confiabilidad, dependiendo de la codificación, son enormes. El ejemplo es el caso del método Prepare. En TSQLQuery, no existe; su equivalente sería : Prepared := True; Por tanto, se podría decir "tan solo usa una utilidad de reemplazo de string"; pero que pasa si la aplicación tiene otras clases para las que se ha definido un método Prepare ?. Así tocaría realizar todos los cambios de esa índole uno a uno. En mi caso, tan solo creo un método Prepare con la línea Prepared := True; Finalmente pensemos que una aplicación bien diseñada requiere tener módulos de datos lo más específicos posibles, así que en una realmente grande estamos hablando de docenas de ellos. Hay que ver lo que significa entonces revisarlos uno a uno. Y eso es solo lo correspondiente a módulos de datos. Bueno, sobre todo eso hay mucho que se puede comentar; pero este hilo es para hablar lo que pasa con los problemas de Delphi en el mercado, y sobre eso creo que ya he expresado mis ideas Saludos |
#5
|
|||
|
|||
Creo que volvemos siempre a lo mismo en muchos temas.
Para mi lo mejor que tiene Microsoft es su sector de marketing, realmente hay que reconocerle que obran maravillas y son los responsables directos de poner a MS donde esta. En cuanto a bondades de los productos ..... mmmm .... las hay pero .... como siempre .... Cuando veo a alguien que programa en Visual Estudio de MS y queda maravillado porque ahora puede ver el contenido de una grilla conectada a datos en tiempo de diseño ... me pregunto a mi mismo: ¿cuanto hace que eso existen en Delphi? Mucho mucho tiempo verdad. Y así con muchas otras cosas. Como se dijo por ahí, lo más popular no siempre es lo mejor. Esperad a que los chinos creen un lenguaje para lo que sea y vereis como llega al primer puesto instantaneamente. ¡¡¡¡Larga vida a Delphi!!! |
#6
|
||||
|
||||
Cita:
Un aspecto que es *crucial* es tener separado la logica de negocios del acceso a datos y tener una capa de ORM entre la logica y el acceso a datos. Si se mete codigo dentro de los TDataSet que no sea presentacional - o mejor dicho, no deberia existir nada de codigo alli - o si se hace SQL "clavado" en el codigo que no sea el minimo estandar, y cosas por el estilo, no hay de otra que rechequear todo. Eso es claro... y precisamente por eso fue que me puse a investigar. En el grupo de CodeGear oodesing aprendi un monton al respecto.... Cita:
Es posible crear un soporte desde 0 a una aplicacion madura, con miles de lineas de codigo? Pues si!. De hecho hace un mes hice exactamente eso. http://code.djangoproject.com/ticket/5062 Le cree el soporte a django para Sql Server 2000/2005, haciendo varias emulaciones (como la implementacion de LIMIT/OFFSET que usa mysql), integre algo del codigo que habia por alli (las definiciones de tipos de datos) pero casi el 70% lo escribi yo. Luego vino otro tipo: http://code.djangoproject.com/ticket/5246 y lo puso mas chulo. Tonces lo cogi y le hice otras mejoras. En total, no me tomo mas de 15 horas de trabajo directo... y la mayoria fue mirar como era el asunto (no soy para nada experto en python. Me meti en el asunto porque vendi una tienda que necesitaba Sql Server y no habia programadores de django con experiencia en Sql Server). Ahora la leccion no es que soy un super-programador, o que el cambio fue tan simple o que python es tan sencillo. La arquitectura del sistema permite este tipo de asuntos, y es porque esta desacoplado a todo nivel... lo que complica el diseño pero facilita los cambios. Y eso a pesar que todo el sistema estaba pensado para soportar mysql/postgree con sus propias idiosincracias que no trasladan o eran en opinion de algunos imposibles, a sql server. Cita:
El error seria por ejemplo, coger ADO.NET y "invisiblemente" hacerlo pasar como ADO. Eso no traslada. La arquitectura de BDE no traslada muy bien a la de dbexpress. Aunque quizas la de dbexpress se parece conceptualmente a ADO. En fin.... De todas maneras, lo que mencionas es un testimonio solido de las ventajas de Delphi y lo que se puede hacer si se activa la neurona . Eso es gracias en parte, a que a pesar de las gracias que hacen los productores de plataformas y los mismos de Borland en ir re-inventando ruedas ves tras vez, al menos no como el caso de MS, podemos seguir con la rueda "viejita" y darle una lustrada para que quede como nueva. Mientras hayan programadores capaces que usen Delphi, y estos sigan expandiendo sus habilidades, no hay de que preocuparse!
__________________
El malabarista. |
#7
|
|||
|
|||
Delphi para rato
Como se dice "El ser popular, no significa que seas el mejor", el hecho de que Delphi no sea tan popular en las universidades, o Institutos de informatica, es precisamente por que Borland no ha hecho un fuerte inversion en publicidad para sus productos, pero eso no significa que sea menos que otros, al contrario, es superior, tiene una experiencia muy rica en tecnologia con orientación a los objetos que muchos lenguajes envidiarian, sino, revisen la historia de Basic, quien a mudado de sintaxis y estructura, a tal punto que a tomado en su version Net lo mejor de otros lenguajes, es decir, es un lenguaje sin personalidad, y siempre se ha basado en su mayor parte detrás de cortina lenguaje C para salvarlo, hasta en sus Apis, sus DLL, nada es propio de el.
Por otro lado, Turbo Pascal o Turbo C, a evolucionado, tanto que muchos pensaba que desapareceria con la POO, sin embargo es algo que el ya poseía desde DOS, ahora imagínense estamos en otro siglo, y sin embargo sigue en el mercado, por que es uno de los lenguajes fuerte o denominado "Lenguaje todo terreno", pro que le entra a todo tipo de proyecto informático, por eso aposte por este lenguaje, comparándolo entre otros haciendo software. De una comparación que hice entre rendimiento, robustes, mantenimiento, actualización entre versiones, explotación en POO, y actualización de win32 a la plataforma NEt, Con Delphi no tuve ningun problema ni muchos con C++ Builder, lo que si tuve con los otros productos. y sobre todo por su tecnología de plataforma cruzada para Interbase. Ojo la reutilizacion de ADO en Delphi es superior a la del fabricante. sin necesidad de hacer artificios. y las aplicaciones para PDA, WAB, o aplicaciones Para internet, se hacen con mucha facilidad con Intraweb que viene en Delphi, donde para hacer estas cosas, no necesitas aprender otro lenguaje por separado. Son tantas bondades que ofrece el producto que quedaríamos muy cortos mencionándolas. Solo puedo decir, Delphi y C++ Builder o Java en cualquiera de sus versiones, sin ser talvez los más populares, son los mejores lenguajes que existen en el medio informático, lo digo con el criterio de haberlo comparado con otros lenguajes probándolos en el desarrollo de sistemas y probando su productividad. Solo les digo una cosa, para tener criterio de comparación primero hay que investigar entre varios lenguajes, comparar haciendo software en la mayoría de ellos para poder dar opinión, y no enfrascarse en uno solo o dejarse llevar por la publicidad o apasionamientos adsurdos, hay que probarlo personalmente y sacar conclusiones, se los digo por eso es lo que hice, no me dejo llevar los que dicen otros solo de la boca para afuera, hay que convencerse por uno haciendo haciendo pruebas de fuego y luego ver resultados. En mi humilde opinion, tenemos Delphi, C++ o Jbuilder para rato...y el que diga que no, es que solo sabe diseñar, pero no programar, en donde se ve el poder de los lenguajes en toda su magnitud y obviamente la destreza del verdadero programador. |
#8
|
||||
|
||||
Excelente exposición.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizar los puestos de un programa instalado en el servidor | VRO | Conexión con bases de datos | 3 | 19-07-2005 20:53:16 |
Refresco automático en todos los puestos??? | burasu | Conexión con bases de datos | 6 | 10-02-2005 11:19:40 |
|