Jump to content


Photo

Delphi + MySQL vs PHP + MySQL (Experiencia personal)


  • Please log in to reply
9 replies to this topic

#1 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 posts

Posted 16 January 2014 - 02:14 PM

Hola a todos, un saludo.

Brevemente les comento, en el trabajo estamos dos programadores, con conocimientos generales uno con Delphi (YO  (h)) y mi compañero que trabaja con PHP ( *-)), un dia platicamos de que ventajas tenia una plataforma de desarrollo sobre la otra, cual era mas rapida o mas facil de desarrollar, etc, lo clasico, cada quien defiende su lenguaje :)

Pues decidimos probar cual era "mejor" para el desarrollo de una aplicacion de ejemplo, la idea era montar un pequeño servidor, con MySQL, una base un par de tablas, etc, metimos campos CHAR, numeric, Text o Memo y por supuesto BLOB con imagenes, en realidad solo eran 10 registros con diferentes tamaños de imagenes pero generados aleatoriamente hasta cargar 50,000 :)

Partiendo de ahi el crearia la interfas de acceso a la base de datos via PHP y yo lo propio pero desde Delphi, debiamos crear una interfas digamos presentable, y funcional (agregar/editar/borrar, imprimir etc) con imagenes de fondo para la interfase etc.

Les cuento sobre el tiempo

Yo con Delphi me puse una tarde y en cuestion de un par de horas ya tenia funcionando la conexion a la base de datos y podria realizar las operaciones agregar/editar/borrar, etc sin ningun problema, al siguiente dia en otro rato que pude me enfoque en la presentacion,  y listo con un par de forms y quickreport ya estaba listo.

* Recuerden que partimos desde CERO ambos

El con los mismos tiempos libres y por lo que note un par de desvelos de su parte :D, una semana despues casi estaba listo para que mostraramos los resultados, el sabia que el 2 dia ya estaba listo el mio (Nota, no soy experto en delphi pero pues lo basico si lo manejo jajaja)

* Por cierto ambos ocupamos maquinas similares que igual no viene al caso pero por si alguien lo quiere tomar en consideracion, no tanto para el desarrollo si no para la ejecucion de ambos programas.

Bien ambos ejecutamos nuestra aplicacion en nuestras maquinas similares y misma conexion de internet a la misma velocidad, y despues lo ejecutamos en la maquina del otro de la misma manera, ambos programas funcionaron correctamente y realizaban las mismas funciones, no me sorprende pues solo era conectarse y trabajar con los datos de la base de datos.

Bueno pues segun nuestra percepción mi programa hecho en delphi corria un poco mas rapido que el de el, no mucha diferencia pero si, por el tiempo y las prisas tal ves a el le falto depurar su codigo PHP para optimizarlo, en fin cuando manejabamos un solo registro es decir buscarlo y mostrarlo ambos lo hacian casi instantaneamente, pero cuando haciamos una consulta que requeria buscar varias condiciones  y despues mostrarlo en una lista los resultados Delphi se llevo las palmas, supongo porque al cargar los datos en la memoria o en el DataSet mostrarlos en la form con solo mover las teclas de cursor aun mostrando las imagenes fue realmente rapido, con PHP supongo igualmente que por las prisas no pudo pulir esa parte, ya que mostraba los datos en una lista y al tocar con el Mouse cada linea del registro encontrado los datos se tardaban mas en mostrarse, repito no creo que sea asi de por si yo le atribuyo a que le falto tiempo para pulir esas partes.

PRE- Conclusion: En maquinas similares misma conexion la diferencia de velocidades fue relativamente similar, pero Delphi le gano a nuestro parecer por un poquito, en cuanto al desarrollo Delphi se llevo de calle a PHP... si lo se al ser RAD pues te ahorras mucho tiempo en crear los formularios diseñando los controles etc etc etc, en cuanto a lineas de codigo igual Delphi para conectarme y hacer las operaciones basicas, una cantidad extremadamente pequeña de lineas... mi compañero en PHP...muchas muchas muchas muchas muchas mas.

NOTA: el subio su aplicacion PHP al mismo servidor donde estaba la base de datos, yo desde el escritorio de windows jajajaja

Hasta ese punto pues lo normal ni tu ni yo :D

Pero decidimos hacer otra prueba.

LAPTOP + Banda Ancha Movil

Sacamos una laptop, le conectamos la banda ancha movil instalamos mi aplicacion y accedimos a la de el desde la misma maquina tambien....

Sorprendentemente incluso para mi, la velocidad de conexion y acceso a los datos y claro mostrarlos, si cambio drasticamente, mi aplicacion delphi se tardaba un par de segundos cuando mucho en hacer la consulta con varios criterios, y una ves mostrados pues nada instantanea la lectura al cambiar de un registro a otro... pero en la realizada en PHP se tardaba el el triple o cuadruple o mas solo en hacer la consulta, despues al cargar los datos pues al cambiar de registro era otra pausa y cargaba.

Conclusion: Supongo que no es la prueba definitiva ni tampoco es para entrar en controversia cual es mejor o cual no pero en este caso Delphi + MySQL trabajaron de forma superior, si tambien puede ser que el programador PHP sea bastante malo para programar y PHP no tiene la culpa de ello jajajaja  :D

El me decia que la ventaja es que su aplicacion jalaba en cualquier maquina Windows Linux Mac etc... Yo le conteste que en la oficina todas las maquinas tienen Windows para bien o para mal y que daba igual

El me decia que se podia acceder desde cualquier sitio a su aplicacion, yo le dije me mando por correo o meto en una USB mi aplicacion y en cualquier cibercafe o maquina prestada puedo accesar.

El me dijo que su aplicacion podria ser accesada desde una TABLET... ahi si no dije nada jajajajajaja pero le recorde que nunca habia visto una sola aplicacion GRANDE desarrollada para nuestro ambito solo para que fuera compatible con TABLETS ademas que las TABLETS son mas para consulta no para TRABAJO, en fin punto para PHP

El me decia que las aplicaciones de escritorio ya estan quedando en el pasado... Yo le dije mientras exista windows como tal existiran aplicaciones de escritorio :D

Bueno espero no haberlos aburrido con esta narracion, les repito Delphi o PHP se me hacen excelentes herramientas cada uno para el fin que le den al final, ni mas ni menos.

Aqui pues pido sus opiniones: SEGURIDAD

Mi programa se compilo y lo empaque con UPX para reducir su tamaño pero pues para aplicar ingenieria inversa pues habria que descomprimir desensamblar y trabajar duro para extraer los datos, tal ves si puedan reconstruir los formularios (DeDe  ;)) pero de ahi a sacar el codigo fuente pues lo dudo

En el caso de PHP pues como no lo trabajo y solo se lo basico, el tema de la seguridad ahi si se complica, segun entiendo si el programador no tiene un buen metodo de trabajo y no sabe depurar bien su codigo pues quedara mas expuesto y propenso a los ataques.

Bueno espero sus comentarios, saludos y buen dia  (b)
  • 0

#2 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1750 posts
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Posted 16 January 2014 - 02:26 PM

...Bueno espero sus comentarios, saludos y buen dia  (b)...


¿Diferencia abismal? Compilado contra interpretado. Ése sería mi criterio para dilucidar cualquier empate, si es que se diese el caso...  :D :p ;)
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 16 January 2014 - 03:02 PM

Hola, interesante prueba hicieron.

Mi opinión:

1. PHP y Delphi son dos mundos diferentes, creados cada uno para un nicho en específico, PHP web y Delphi Desktop, en ese rubro cada uno debería ser el rey.

2. RAD = Rapid Application Development, bueno su nombre lo dice todo, en la creación de proyectos nadie le gana a Delphi en cuanto a tiempo de desarrollo.

3. Las aplicaciones de escritorio son del pasado, sin embargo aún hay un mercado enorme que espera aplicaciones para ese nicho.

4. Delphi XE5 ya tiene todo para desarrollar aplicaciones para MAC, iOS y Android, y lo más importante, con el mismo código base, no necesitas aprender otros lenguajes para que hacer tu aplicación funcione en esos sistemas.

5. Delphi para Linux ya está en el roadMap, así que pronto estarémos en todos lados.

¿Que Delphi ha muerto?, ¿Que es cosa del pasado? si ajá.

Saludos

PD, Todo lo demás es vanidad :D :D :D


  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 16 January 2014 - 04:02 PM

Me parece interesante la prueba que hicieron amigos. En php el tiempo de desarrollo es mucho más alto que en delphi. Pues debes preocuparte por la presentación, por la lógica del programa, por la seguridad y por el rendimiento. En delphi las cosas son mucho más sencillas y en ello supera a php.

Yo desarrollo con delphi desde desde hace 15 años y con  php desde hace 10
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 16 January 2014 - 04:10 PM

Jajaja al parecer la pelea PHP VS Delphi se da en más de un lugar (aquí en mi trabajo también es un tema "delicado"  *-))...

Definitivamente generar una interfaz presentable, por no decir bonita, es mucho más simple en Delphi donde sólo hacer drag & drop de los componentes ya tienes botones, rejillas, etiquetas, combos, etc. y no tienes que generarlos por código, pero bueno, hay que darle su mérito a PHP sobre todo con lo de la accesibilidad desde casi cualquier punto (equipo sin red = no acceso), pero el tema de seguridad par PHP es todo un reto, cosa que en Delphi se maneja de manera mucho más sencilla.

Y qué me dicen del debuggeo ??? En PHP es mucho más complicado que en Delphi (benditos breakpoints  :D)...

Aunque debo darle su mérito a PHP en cuanto a consumo de WebServices, muy superior de Delphi (o al menos eso dice un experto que tengo cerquita  *-)  ;))...

En fin, no creo que Delphi sea la solución a todas las necesidades de los usuarios, pero tampoco creo que PHP sea la panacea , así que dependerá mucho de lo que se necesite desarrollar (y), pero si a mi me dan a elegir, por supuesto que prefiero la comodidad de Delphi...

Saludox ! :)
  • 0

#6 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 posts

Posted 16 January 2014 - 05:07 PM

Muchas gracias a todos por sus comentarios, como bien dicen Delphi y PHP son cosas distintas para necesidades distintas, por tanto no hay mejor ni peor, ya depende del programador, lo que si estamos creo que todos de acuerdo es que Delphi es mas rapido para crear la interfase.

Como bien menciona egostar pues con delphi se puede hacer tambien para aplicaciones de Android Mac o Iphone, aun no he tenido la oportunidad de probar la version XE5 de Delphi pero espero poder pronto darle una checada, por los videos que vi parece muy prometedor, sobre todo para consultas desde Smartphones o Tablets espero que desarrollarlas no implique un monton de configuraciones adicionales al proyecto de delphi y sea igual de facil que pasar de 32 a 64 bits a la hora de compilar :)

Y si ahora en un futuro proximo tambien permitira compilar para linux directo desde windows para solo pasar a linux, me voy a volver CHANGO literalmente jajajajajaja asi no aprendere nada mas y me concentrare en perfeccionar mis codigos :D

Saludos a todos

  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 16 January 2014 - 08:48 PM

Como bien menciona egostar pues con delphi se puede hacer tambien para aplicaciones de Android Mac o Iphone, aun no he tenido la oportunidad de probar la version XE5 de Delphi pero espero poder pronto darle una checada, por los videos que vi parece muy prometedor, sobre todo para consultas desde Smartphones o Tablets espero que desarrollarlas no implique un monton de configuraciones adicionales al proyecto de delphi y sea igual de facil que pasar de 32 a 64 bits a la hora de compilar :)

Y si ahora en un futuro proximo tambien permitira compilar para linux directo desde windows para solo pasar a linux, me voy a volver CHANGO literalmente jajajajajaja asi no aprendere nada mas y me concentrare en perfeccionar mis codigos :D


Quiero precisar algo acerca de "transportar" nuestras aplicaciones a multiplataforma.

Como dije, puedes hacer que tus aplicaciones corran en MAC, iOS y Android utilizando el código base, ¿que quiero decir con ésto? que tus métodos, funciones y/o procedimientos los podrás reusar casi al 100%, sin embargo, debes de cambiar los componentes Vcl, para utilizar los componentes Firemonkey, ya que dichos componentes son los que nos permitirán desarrollar la multiplataforma.

Quiero decir, para aplicaciones ya hechas, podras reusar código, en aplicaciones nuevas, desarrollas en una plataforma y las demás simplemente son ajustar la parte visual para los dispositivos móviles y lo demás es coser y cantar, simplemente compilas y tendrás una aplicacion para ser ejecutada en Windows 32 y 64 bits, Windows Metro, MAC oSX, iOS y Android.

Y estoy tan seguro que es así porque ya hice una pequeñita aplicación para dichas plataformas, puedes verla en mi bitácora.


Construir una App iOS paso a paso
Construir una App de escritorio OSX paso a paso
Construir una App de escritorio Metrópolis paso a paso
Construir una App de escritorio Windows 32 y 64 Bits paso a paso

Cada uno de los tutoriales cuenta con el Código fuente y ejecutable, aún no monto la versión de Android, pero un día de estos lo haré :D :D :D

Saludos


  • 0

#8 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 posts
  • LocationCali, Colombia

Posted 16 January 2014 - 11:59 PM

Hola Amigos, interesante discusión, hay una cosa que tengo clara es que Delphi no está diseñado para aplicaciones WEB como lo está PHP, aunque se pueden hacer desarrollos interesantes en el tema con Intraweb, RAI y otras implementaciones, pero en es punto le doy el punto a PHP.

Sin embargo Delphi está diseñado para hacer aplicaciones "Sobre Internet" que cumplen con los mismo fines de una aplicación WEB en el sentido de poder ejecutarse remotamente.

http://hyperbasesuit...ones-sobre.html

Por otro lado considero que el futuro no está en WEB a menos que cambie la tendencia actual,  el futuro está en los dispositivos móviles y en aplicaciones nativas desarrolladas directamente para estos, lo que no se puede hacer en PHP u otros lenguajes para WEB.

les presento algunas "Ventajas" de los lenguajes Interpretados como PHP con respecto a Delphi y cómo ya no son tan ciertas.

Portabilidad: Esta es la principal ventaja que presenta este tipo de lenguajes, porque puede ser compilado en y para cualquier plataforma o sistema operativo.


R./ Delphi es un lenguaje que se puede compilar en forma nativa (binaria en código de máquina) para las plataformas que soporta actualmente como Windows 32 y 64 bits, MAC OSX, IOS (IPhone,  IPad) y Android, en poco tiempo estará disponible para Windows Phone, BlackBerry y Linux versión server. 


Con una ventaja adicional, todo se realiza desde el mismo IDE de desarrollo de Delphi, así se puede mantener un código único y compilarlo en cualquiera de las plataformas requeridas.


Compatibilidad: al ser interpretado es la máquina virtual o framework el que se encarga de que las instrucciones sean ejecutadas por el software y el hardware.


R./ Porque dejar el trabajo a otro programa? el pretender mantener la compatibilidad no permite el uso del 100% de los recursos del sistema, en especial de la CPU, GPU y la memoria.


Delphi por su parte genera código nativo especifico para cada plataforma, sin la necesidad de máquina virtual, lo que hace el código más compacto, eficiente y mucho más rápido en tiempo de ejecución.


Una ventaja adicional es la seguridad que representa no exponer el código fuente, que eventualmente puede ser modificado por algún usuario experto. (hacker).


Independencia de plataforma. en teoría los lenguajes interpretados son independientes de la plataforma, sin embargo dependen de la disponibilidad de la máquina virtual en cada una de las plataformas.


R./ La independencia de la plataforma está sujeta a la instalación de la máquina virtual en cada una de las plataformas para las cuales esté disponible, y dichas máquina virtuales pueden llegar a ser de tamaños de varios gigabytes, presentando incompatibilidad de librerías y de versiones.  lo cual redunda en costos de soporte y tiempos de instalación y actualización.


Delphi genera ejecutables compactos, que no requieren ningún tipo de maquina virtual, el código es autónomo en cada una de las plataformas para las cuales esté disponible.


Reflexión y uso reflexivo del evaluador (ej. una función eval de primer orden)


R./ En Delphi se ha implementado el uso del RTTI (Run-Time Type Information), funcionalidad que permite obtener la información necesaria del código en tiempo de ejecución, y por supuesto implementar la funcionalidad de Reflection disponible en los lenguajes Interpretados.

Posibilidad de generación de código in-situ, sin necesidad de recurrir a una compilación (ie. Spring).

R./ Efectivamente es muy difícil generar código in-situ en un lenguaje que no ha sido diseñado para eso, sin embargo es extremadamente sencillo embeber lenguajes de script dentro de la aplicación, para aquellas posibles oportunidades donde se pueda requerir.

De hecho existen librerías como la DWS que implementa pascal interpretado dentro de un ejecutable, igualmente está FastScript de FastReport y por supuesto es fácil embeber PHP, Java y otros lenguajes interpretados, ya que están diseñados para ser embebidos.

Es posible también desde Delphi ejecutar funciones escritas en los lenguajes interpretados, como desde algunos lenguajes ejecutar funciones escritas en Delphi.


Tipos Dinámicos:  Los lenguajes interpretados tienen la posibilidad de crear tipos dinámicamente en tiempo de ejecución.


R./ En Delphi están implementados los Generics, el RTTI y los DinArrays, además el manejo de estructuras de datos es bastante fuerte y por si fuera poco, la programación orientada a objetos está muy bien diseñada, cosa que no ocurre en otros lenguajes interpretados.  así que los tipos dinámicos es un tema que está más que solucionado.


Facilidad en la depuración (es más fácil obtener información del código fuente en lenguajes interpretados).


R./ Delphi tiene uno de los mejores depuradores que hay en el mercado, incluso es posible depurar y hacer deploy en otros entornos, así desde el IDE de Delphi se puede compilar y depurar aplicaciones corriendo remotamente en un MAC, un IPhone o un Android.


Incluso si no se tiene MAC para compilar y depurar sus aplicaciones en OSX o IOS, es posible contratar servicios en la nube para tales fines, los cuales tiene tarifas por horas.


Pequeño tamaño del programa (puesto que los lenguajes interpretados tienen flexibilidad para elegir el código de instrucción)


R./ En la práctica esto no es tan cierto, es posible que para instalar una pequeña aplicación sea necesario instalar todo el framework o librerías que pueden llegar a pesar varios Gigabytes.


Con Delphi puede seleccionar si hacer el Deploy todo en un solo ejecutable o dividirlo en librerías, dos métodos disponibles, aunque en la práctica casi el 90% siempre eligen un solo ejecutable que no depende de ninguna librería para su ejecución.

Como podemos apreciar, no existen objeciones con respecto al lenguaje Delphi,  cumple tanto las ventajas de un lenguaje compilado como las ventajas de un lenguaje interpretado.  Hasta el día de esta publicación, es el único lenguaje dentro de lo que he conocido que tiene estas características.


http://hyperbasesuit...erpretados.html



  • 0

#9 erikmx

erikmx

    Member

  • Miembros
  • PipPip
  • 48 posts

Posted 17 January 2014 - 04:58 PM

Egostar, genriquez excelentes observaciones y comentarios, personalmente estoy interesado en desarrollar las mismas aplicaciones de escritorio para Iphone y Android por lo menos para cuestiones de consulta de datos estaria excelente, ya que muchos clientes o jefes luego salen con cada peticion que da dolor de cabeza :D

Muchas gracias por sus comentarios saludos  (b)
  • 0

#10 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 17 January 2014 - 06:52 PM

Gracias genriquez, muy ilustrativas e inspiradoras tus conclusiones.

Un saludo.
  • 0




IP.Board spam blocked by CleanTalk.