¿ Por qué Delphi y Visual C++ ya no son como antes ?
Por Manuel López Michelone
Yo soy un programador de Pascal, de Turbo Pascal en MsDOS y de Delphi, cuando la herramienta original de Borland se pasó a Windows. Y en muchos años de desarrollo de este tipo de sistemas para los programadores, he visto cómo Delphi llegó a ser una herramienta por demás popular, pero algo pasó y de pronto muchos desarrolladores empezaron a migrar a otros sistemas y a otros fabricantes de lenguajes y herramientas de programación. ¿Qué fue lo que pasó? La historia que tengo presente es más o menos ésta: Borland comenzó con Turbo Pascal, un compilador de Pascal completo, que cabía en unos 12K si mal no recuerdo, incluyendo el editor y el “linker”. Este primer sistema generaba archivos .com y costaba 49.99 dólares. Fue un éxito impresionante y pronto empezaron a salir mejores versiones del Turbo Pascal, creación a todo esto de Anders Hejlsberg, quien estudió ingeniería en la Universidad Técnica de Dinamarca, pero nunca se recibió. Borland así de pronto se convirtió en una empresa que hacía herramientas de bajo costo, que eran muy robustas y que compilaban “a velocidad de rayo”. Debido al éxito de Turbo Pascal la compañía desarrolló un producto similar al que llamó “Turbo C“, el cual de nuevo, fue un gran éxito. Yo soy un programador de Pascal, de Turbo Pascal en MsDOS y de Delphi, cuando la herramienta original de Borland se pasó a Windows. Y en muchos años de desarrollo de este tipo de sistemas para los programadores, he visto cómo Delphi llegó a ser una herramienta por demás popular, pero algo pasó y de pronto muchos desarrolladores empezaron a migrar a otros sistemas y a otros fabricantes de lenguajes y herramientas de programación. ¿Qué fue lo que pasó? La historia que tengo presente es más o menos ésta: Borland comenzó con Turbo Pascal, un compilador de Pascal completo, que cabía en unos 12K si mal no recuerdo, incluyendo el editor y el “linker”. Este primer sistema generaba archivos .com y costaba 49.99 dólares. Fue un éxito impresionante y pronto empezaron a salir mejores versiones del Turbo Pascal, creación a todo esto de Anders Hejlsberg, quien estudió ingeniería en la Universidad Técnica de Dinamarca, pero nunca se recibió. Borland así de pronto se convirtió en una empresa que hacía herramientas de bajo costo, que eran muy robustas y que compilaban “a velocidad de rayo”. Debido al éxito de Turbo Pascal la compañía desarrolló un producto similar al que llamó “Turbo C“, el cual de nuevo, fue un gran éxito. Esto llevó a que Borland decidiera vender “Turbo Basic“, escrito por Bob Zale y “Turbo Prolog”, producto creado por una empresa que después sacaría lo que se llamaría Visual Prolog. Quizás fueron muchos productos o tal vez salieron todos demasiado pronto, pero algo pasó y eventualmente Borland se quedó con Turbo C y Turbo Pascal. Los otros productos los descontinuó. Y ahí empezaron las dificultades. Borland se convirtió en la compañía “Inprise” y separó las herramientas de programación a las que tenían como manejadores de bases de datos, “Interbase” y “DBase”. Después se convirtieron en CodeGear y sacaron versiones de sus compiladores para Windows. Pero parece ser que estos cambios no les gustaron a los usuarios y tanto movimiento se empezó a ver con desconfianza. No hay peor cosa que hacer dudar del desarrollo continuo de una herramienta de programación en la cual los programadores han depositado su confianza, para que de pronto, de golpe y porrazo, desaparezca o no se le vuelva a dar mantenimiento. Y pudiese haber sido esto, o una combinación de factores, que llevaron a muchos a migrar a otras plataformas de programación. Finalmente CodeGear se deshizo y vendió sus activos a una empresa en San Francisco llamada “Embarcadero”. Embarcadero ha hecho un gran trabajo con los compiladores que compró y hoy en día son multiplataforma: pueden compilar para Windows, Mac OS X, iOS y Android. Prácticamente el código no cambia y esto hace felices a los programadores pues el sueño de “write once, run everywhere” parece finalmente cumplirse. Pero todo esto tiene un costo. Los compiladores de Embarcadero son muchísimos más costosos que los que vendía Borland. Y no dudo que la tecnología inmersa en estas herramientas y la cantidad de trabajo realizado merezca estos precios pero en el fondo esto no colabora a revivir la herramienta. Si el costo es demasiado grande, los programadores tendrán que ir a alternativas más económicas. Por ejemplo, Microsoft tiene una versión de su herramienta de programación, Visual Studio, que es gratuita y que es idéntica a la versión comercial en términos prácticos. Con solamente esta opción… ¿por qué habría de hacerme de Delphi o Visual C++ de Embarcadero? En mi opinión, el problema de vender compiladores cae en dos posibilidades: “vender 1000 de a peso o vender 1 de a 1000”. ¿Qué será más fácil? Probablemente lo primero. Tal vez no venda 1000 de a peso, pero si vendo unos 800 quizás ya esté en buenas posibilidades de seguir vendiendo pero además, promoveré mi herramienta más que si me pongo elitista y vendo uno de a 1000 pesos. Supongo que la analogía es clara. En mi opinión, Embarcadero tiene grandes productos pero sus precios son muy altos. Eso no ayuda a que los desarrolladores que se fueron regresen. Me parece que hay que buscar alternativas al modelo de negocios que han establecido porque no permite que muchos puedan regresar a programar en unas de los mejores entornos creados en Pascal y C. |
Bien, es el tema de siempre que tanto hemos hablado en muchas ocasiones a lo largo de los años.
Por suerte, ahora está la versión "Comunity" de Delphi, aunque falta publicidad, promocionarla, hacerla conocer, etc. |
Cita:
|
Hola a todos,
Hombre... vamos a ver... ¿Qué me ofrece Delphi que no me ofrezca Visual Studio? Básicamente, el dominio (poco o mucho) que pueda tener en el lenguaje: muchos llevamos años programando con Delphi. Cambiar a otro lenguaje no es imposible, de hecho es bien saber cuanto más, mejor, pero, lo cierto es que con Delphi, a bote pronto, puede resultar uno más productivo. Existe una versión "Community" de Delphi que puede usarse hasta para programas comerciales, siempre que no superes un umbral de beneficios anuales / "volumen de negocio", creo que de unos 6000 dólares americanos. Hace poco un compañero puso una oferta que había en Embarcadero, que, permitía comprar Delphi Profesional por unos 900 dólares: en España unos 1200 Euros con impuestos. Yo creo que ese precio es bastante razonable ya para la herramienta de que estamos hablando. Al fin y al cabo, si uno no es un profesional, con la versión "Community" tiene acaso más que suficiente. Y si uno es un profesional, esos 1200 euros no dejan de ser una inversión: el IVA se desgrava y el resto se puede tratar perfectamente como una inversión: deduciéndote el gasto. Personalmente, no voy a engañar a nadie, desde XE2 no he vuelto a comprar una licencia de Delphi, pero, en el momento en que este soporte binarios de 64 bits en mac OS (y parece que esto será así en la próxima versión), creo que voy a volver a comprar una licencia, puesto que, ¿qué herramienta me permite crear binarios para Windows y mac OS de 32 y 64 bits? Visual Studio, no... ¡Y además usando mi lenguaje preferido! O uno de ellos... yo creo y espero de veras que Delphi tenga mucho futuro: mucho pasado ya ha demostrado que tiene. :) |
Cita:
Lo que no es posible, facilmente, es hacer GUIs. MS compro xamarin que con forms medio se puede pero le falta mucho. Aunque hay esfuerzos de la comunidad para saltar la brecha. La UI es la parte mas fuerte de Delphi! Cita:
|
Hola a todos,
Cita:
Lo que me echó para atrás en ese momento (porque realmente me sorprendió lo bien que iba en mac OS) fue que el sistema operativo "se quejaba" de que el binario era de 32 bits, "Contacte con el desarrollador para que le proporcione una app actualizada", decía un mensaje que aparece al ejecutar la app por vez primera: pero esto parece que va a solucionarse en la siguiente versión de Delphi. Estoy de acuerdo en que algo de mercado cautivo hay, sin embargo, también es verdad que Delphi es mucho Delphi, o sea, que es una buena herramienta, y, eso también debe contar algo, creo yo. A mí siempre me llamó la atención eso de darle al "play" y ver el programa funcionar... y en mac OS es exactamente así también. En fin, vuelvo a decir que en lo del mercado cautivo llevas razón, al menos en parte, pero, quizás esto tenga unas connotaciones negativas que no se merece del todo. Es como un pintor que usa espátulas Palmera, porque, simplemente, tiene confianza en ellas, sabe que nunca defraudan. ¿Está cautivo? ¿O está contento? :) |
Hola a todos,
Voy a añadir algo en un mensaje nuevo, por si me lo banean o algo. :D No... es broma. Digo que también somos medio cautivos de Windows. Pero, ¿es que Microsoft no lo hace bien? ¿Qué otro sistema operativo te permite correr aplicaciones con más de 20 años sin problemas? ¡Sin problemas! Delphi 7, por ejemplo, se publicó hace 16 años. Y no sólo sigue funcionando, ¡es que los programas que genera podrán correr perfectamente en la última versión de Windows 10! Desde hace poco soy usuario también de mac OS... pues bien, me quedo con Windows, ¡pero de largo! No sólo no encuentro en mac OS la productividad de que soy capaz en Windows (hay cosas que son clamorosas), no sólo no veo en mac OS lo que otros parecen ver, una especie de octava maravilla para unos pocos... os juro que no soy capaz de ver nada de eso. Sin embargo, sí sé que Microsoft Windows, hasta el momento, no ha hecho sino ir a mejor. ¡Y sin abandonar nunca (en mi experiencia) la compatibilidad hacia atrás! Me hace gracia eso de mac OS de "Contacte con el desarrollador... pronto sólo se soportarán apps de 64 bits"... ¿Y qué pasa con las de 32 bits? En Windows conviven perfectamente las aplicaciones de 32 y de 62 bits, ¡y aun las de menos! Sin problema alguno. Hace poco no pude actualizar al último mac OS porque mi ordenador no era compatible. Un ordenador con 1 TB de disco duro y 16 GB de RAM... no puede correr la última versión de mac OS. A pasar por caja, de nuevo, obviamente... En fin, perdonad que me haya salido del tema completamente, pero, en realidad no lo quería yo ver así: quiero mostrar, con este mensaje, mi admiración por Microsoft Windows y por Delphi, es decir, por la gente que tienen detrás. ¿Y para mac OS? ¿Y para su XCode? Pues, de momento, lo que he dicho... tal vez dentro de otros veinte años puedo decir otra cosa. :D |
Cita:
|
Cita:
Bueno otro punto que desanima tanto a usuarios nuevos y los que se han ido a otros entornos, es que la ayuda no está en español, curiosamente creí haber entendido perfecto el método ExecSQL y ahora que lo vuelvo a leer me encontré con el error que he cometido. |
Te aconsejo el libro de Ian Marteens de Delphi para bases de datos. Es esencial.
|
Cita:
https://www.joelonsoftware.com/2004/...t-the-api-war/ Cita:
https://news.ycombinator.com/item?id=14202707 ---- Apple, por el contrario, prioriza el avanzar al futuro. En vez de quedarse con bugs por muchos años, sube tan rapido como puede a su comunidad a las nuevas versiones. De ahi, que es rapidisimo el lograr que se avance y se apliquen nuevas APIS. Esto es una lata para quienes quieren o necesitan quedarse con algo viejisimo, pero es una bendicion tambien, porque es claro que la mayoria esta con Safari ultimo modelo y no hay "nadie" con una version muy obsoleta. Por otro lado, estamos de acuerdo que Apple a perdido el pulso con desarrolladores y ahora estan en un lio de que hacer con las maquinas pa nosottros, asi que estan que sacan un nuevo mac pro y mac mini especial. |
Cita:
Hola amigo: En mi humilde opinion el declive de Delphi ha sido por 2 grandes causas, primera la fuga de cerebros de Borland-Inprise, etc a Microsoft con su lider Anders Helsberg, tambien Chuck Jadseski (Perdon no se escribirlo bien). Estos al ir a Microsoft ya sabes la historia crearon la plataforma .NET el lenguaje C# y eso quito muchisimos usuarios a Delphi y otra y no se sino mas importante el precio, el cual se multiplico varias veces. Yo compre el Delphi 7 por unos 330 Euros (en oferta, siempre compro en oferta :-) ) y luego cuando me di cuenta y pensaba actualizar ya casi costaba 1.000 Euros, ultimamente el precio de la version Pro ( y sin acceso remoto a Databases) y sacar la version Community costaba 1.800 Euros. Si los directores de Marketing del producto creen que eso esta en el mercado, que venga Dios y los vea cuando un entorno parecido de Microsoft cuesta 600 Euros y se puede encontrar en oferta por poco mas de 400 Euros. Que pasara ?, me gustaria que Delphi reviviese, pero sin ser alarmista para mi es un poco tarde, entonces la version Community es en vano, no. Creará lo que la palabra dice, Comunidad, mas recursos para que la gente que tenga el entorno pueda consultar foros, cursos, proyectos open Source, librerias etc. Esto es un gran valor añadido para el producto, por supuesto. ¿Como podria revivir Delphi y aumentar mucho sus usuarios de pago, bajando el precio, arriesgado?, muchisimo. Ya que tendria que ir acompañado de una gran campaña por redes sociales youtube, y tambien funcionaria el boca a boca, porque es arriesgado?, porque tendria que bajar el precio para las compañias que actualemte estan pagando su licencia y esperar aumentar significativamente el parque usuarios. ¿Que haria yo si fuera el CEO de Embarcadero?, por supuesto bajar precios con un producto que siempre ha sido tan bueno pero que actualmente lo sigue siendo muchos programadores y empresas que se quedaron en el camino invertirian esa cantidad razonable en volver a Delphi. De todas maneras con la version Community creo que mucha gente hemos vuelto a instalar Delphi, ellos tendran estadisticas de registros y podran calcular el impacto de estos cambios. Larga vida a Delphi. Saludos. |
Solo un par de cosas:
1° Borland era una marca reconocida. Que el producto cambiase de mano una y otra vez, repercutió bastante. Porque Borland = Turbo Pascal = Fama. Al borrar Borland, se dió la sensación que Turbo Pascal desapareció. 2° Cuando hablo con otro programadores y les evangelizo sobre Delphi, me salen con que es "Pascal" del viejo MSDOS. Es decir, se quedaron con la imagen de que es Turbo Pascal y que no sirve para nada actual. 3° En universidades e Institutos, solo enseñan las herramientas de Micro$oft. |
Cita:
Puedes decirle que lean esto: Delphi desactualizado, ¡quién lo dice! También: Por qué los programadores C# deberían callar sobre Delphi Además, Por qué muchas personas odian/minusvaloran Delphi El enlace al original, en inglés, aquí. También sería conveniente que aprendieran cómo funciona la programación desde sus inicios para que comprendieran en qué posición está cada lenguaje. Para que quede claro, esta es la pirámide de lenguajes de programación: |
Entiendo el sentimiento casimiro, pero la descripcion de la piramide es incorrecta. Se puede de alto nivel producir bajo nivel. De hecho, se usa C++ para producir C todo el tiempo.
https://llvm.org/ Incluso puedes usar haskell (https://www.kitlang.org) javascript (https://kripken.github.io/llvm.js/demo.html) y asi por el estilo. La "ley" que expresan en la imagen es totalmente errada. Un compilador no dependen de su target. |
Cita:
Código:
{-# LANGUAGE CPP #-} |
Cita:
Y como es posible que Delphi estuviera hecho en Delphi? Porque se puede hacer: https://en.wikipedia.org/wiki/Bootstrapping_(compilers) Y entonces, es posible compilar de Ruby a Rust a Scala y asi atavesar 128 lenguajes de programacion terminando en REXX y luego en Ruby de nuevo: https://github.com/mame/quine-relay porque un compilador es: Cita:
Un interprete, por el contrario, si se beneficia de "bajar" de nivel, puramente porque necesita un runtime. |
Creo que no me has entendido, o no me he explicado.
Lo que quiero decir es que el día que decidieron crear "el lenguaje que sea", abrieron el IDE de un compilador y empezaron a teclear, ¿qué compilador era? Porque obviamente es imposible crear Delphi con Delphi, al principio tuvieron que usar turbo pascal, ensamblador, etc. y una vez que tienes una base mínima para trabajar, ya sí, ahí puedes abrir esa mínima base de Delphi y seguir creando/ampliando Delphi. Además que el compilador de delphi es totalmente básicamente el mismo que el de C builder, por lo que ya estaba hecho. Y así con todos, cuando fueron a crear Haskell, por ejemplo, ¿qué compilador usaron? pues si miras el código fuente y ves cabeceras CPP, eso es lo que quiero decir. Ahora bien, que hoy en día con tantas mezclas, derivaciones, clones, etc. sea posible crear algo de "abajo" con algo de "arriba", pues no lo dudo. Cosas más difíciles se han hecho. |
Hola amigos:
Yo por lo que he entendido cuando un lenguaje o compilador esta hecho en si mismo, normalmente se hace un pequeño kernel en lenguaje C, entonces con esta herramienta ya se puede usar el futuro compilador de una manera muy basica, entonces este software crea ya el exe del compilador en el propio lenguaje en esta caso Delphi y a partir de ahi se genera todo, esto es explicado a grandes rasgos. Entonces creo haber leido que el kernel de delphi se hizo en Ensamplador (Todavia mejor que en C) y a partir de ahi con instrucciones Delphi se genero su propio compilador. La mayoria de los lenguajes ya digo que usa C, un ejemplo ultimo es el lenguaje Go de google al principio se uso durante mas de un año una version hecha totamente en C aunque luego tuvieron la santa paciencia de reescribirlo en el propio Go, por eso esta hecho en Go como le pasa a Delphi, otros ejemplos , el lenguaje Rust esta hecho en Rust. No conozco mas ejemplos. Pero el 90% estan hechos en lenguaje C, Haskell, Java, Scala, Julia, Kotlin, etc.etc. Javascript por supuesto. |
Cita:
|
Cita:
Se hace en C por inercia, y acceso a ecosistema. Pero puedes arrancar con CUALQUIER lenguaje. El punto es que la implicacion de la imagen no es correcta (aunque se puede argumentar que historicamente fue la sequencia que nos toco. Pero perfectamente pudo haber sido diferente: Lisp pudo haber sido el "c" para hacer lenguajes). Ahora, para *interpretes* si es mas cierto. Se pueden hacer interpretes metacirculares, en su propio lenguaje, y en un lenguaje mas "arriba", pero para hacerlos eficientes, necesitas hacer un bytecode y tener un lenguaje con la maquinaria de operar eficiente en eso ( y para especificar la estructuras y manipulacion memoria). Si tiene GC, este interfiere con el tema, porque los GC estan ajustados a su lenguaje, asi que si te desvias mucho termina afecto negativamente. Ahora, esto es puramente por eficiencia. Se puede totalmente hacer un interprete de C en Java y con bytecode, no ser tan lento en su generalidad (solo sufrir en manipulacion intensiva). P.D: Llevo como 3 años ya leyendo del tema y prototipando lenguajes en varios entornos. P.D: Si hablamos de que *realmente* hace un lenguaje bueno para hacer lenguajes, tenemos que estas son sus familas/versiones: Todos los lenguajes con Homoiconicidad (https://es.wikipedia.org/wiki/Homoiconicidad): - Derivados Lisp, por su enorme facilidad de metaprogramacion - Forth y derivados, trivial de hacer bootstraping - ML y derivados: Uso de tipos algebraicos hacen para lenguajes tipados lo que lisp para no tipados: Trivial de operar en AST Y lenguajes con capacidad de operar en estructuras de "bajo" nivel. C, C+, Pascal, Delphi... pero se puede en C#, Java con extenciones y soportes como https://github.com/dotnet/roslyn que operan al nivel del AST y no del lenguaje de alto nivel como tal. Osea, lo que hace a un lenguaje bueno pa hacer lenguajes? Que permita manipular AST de forma eficiente y natural. |
Cita:
|
Cita:
Cita:
Cita:
No es sorprendente, porque incluso la afirmación de que C es un "lenguaje de bajo nivel" usandola como suposición de que significa "permite programar mas cerca de la maquina" no es correcta: http://lambda-the-ultimate.org/node/5534 https://queue.acm.org/detail.cfm?id=3212479 Cita:
El punto? "Alto" y "bajo" es relativo. Estamos amarrados a C no por ser de "bajo" nivel, sino porque es el estandar de la industria. Se me olvido de mencionar la razon ppal por la que se usa C/C++ para estas tareas. Por el ABI! Ya que tantos componentes y OS estan hechos en C, para hacer llamadas a esas interfaces, en C, tienes que emitir y entender C! Y es un ASCO! C es un pesimo lenguaje para conectar apps! Pero como es lo que hay, es lo que hay. Asi que toca aguantaselo. Asi, que si usas un lenguaje que ya tiene la maquinaria para entender C, pues te ahorras un problema menos. ------ Es posible hacer codigo en otros lenguajes que permiten emitir mucho mas eficiente assembler, simplemente porque son mas "cerca al metal" de la arquitectura moderna de los computadores: http://www.lighterra.com/papers/modernmicroprocessors/ Y en este caso, C es una barrera para explotar esas nuevas capacidades. |
Yo llevo tiempo con un par de lenguajes de programación rondándome la cabeza. Todavía no los he puesto en práctica (y tardaré en hacerlo :(), pero mi idea no es ir a C, principalmente porque no pretenden ser lenguajes de sistema sino para extensiones (scripting), aunque pretendo que la implementación final sea en C por razones explicadas por varios de vosotros más arriba. Sólo uno de los dos lenguajes podría ser "compilado" ya que el otro tiene un objetivo demasiado específico.
Mi idea es hacerlo "a la Wirth", una máquina virtual/intérprete sencilla, con inspiración RISC, sobre la que funcionen los programas y con la que poder comunicarse. Tengo una ya hecha (mi BAScript) con inspiración en FORTH y escrita en Pascal, pero no termina de gustarme para estos proyectos. En los foros y listas de correos de FreePascal es ya tradición que algún novato proponga (o imponga, que también ha pasado) cambios al lenguaje con ideas procedentes de lenguajes como ADA, Eifel, LISP, Python (de verdad que no entiendo por qué tanto fan de este lenguaje), PHP (en serio, ha pasado), Java (si se aceptara, ¿se consideraría endogamia?) y C++ (sobre todo de las últimas ISO, que son el horror digan lo que digan) entre otros (quería poner algún lenguaje "funcional", pero no recuerdo ninguno ahora; ¿LISP se puede considerar funcional?), amén de que ya han metido soporte para el lenguaje ese intermedio que se re-compila cuando va a ejecutarse que usa GCC. "¿Y a qué viene esto?" os estaréis preguntando. Bueno, en el proceso de crear mis lenguajes he estado investigando sobre lenguajes de programación, nuevos y viejos. La cosa es que no termina de gustarme la deriva que están siguiendo, siendo cada vez menos concretos: cada vez hay menos lenguajes con variables fuertemente tipadas, e incluso están siendo cada vez más comunes lenguajes en los que el programador sólo da una indicación de lo que quiere hacer y luego el "ejecutor" (por ponerle un nombre) decide cómo hacerlo (algo así como SQL, pero más bestia). Están aplicando técnicas de inteligencia artificial, como redes neuronales y sistemas de aprendizaje, que son realmente quienes traducen el programa escrito por el programador al código que realmente se ejecuta con la escusa de la optimización, y la verdad es que no es un tema que termine de gustarme (en el mejor de los casos estas IA terminarán cometiendo los mismos errores que los humanos, tiempo al tiempo). Luego están los lenguajes que usan gráficos en vez de palabras, que Scratch tiene un pase, pero luego están los que son cajas unidas con flechitas y esos ya son para mear y no echar gota (algún día os tengo que contar lo del becario que tenemos en el trabajo ahora...) En fin, que las cosas evolucionan, y no siempre estaremos de acuerdo. Lo curioso es que son los lenguajes al estilo clásico los que se terminan llevando la pana, por ahora... Y ahora me voy a poner tiquismiquis. Cita:
Cita:
Venga, ya me callo. :rolleyes::D |
Cita:
Y todo lenguaje puede ser compilado. Cita:
Lo del "ejecutor" se llama https://en.wikipedia.org/wiki/Type_inference. Todo esto lo mueven en especial academicos que tratan de averiguar esto o aquello. Con el Type inference, se especula no solo que se puede programar con un lenguaje fuertemente tipado, sino que se puede al estilo de uno dinamico. Y va mas alla, que se puede no solo tener tipos fuertes, sino efectos fuertes: https://coq.inria.fr/ Esta el la comunidad donde se mueven estos temas: http://lambda-the-ultimate.org P.D: Creo que seria bueno retomar esta discusión en otro hilo. |
La franja horaria es GMT +2. Ahora son las 15:09:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi