Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
mamcx,
Con buenas prácticas de diseño y programación
Eso aplica también a los lenguajes? Dirías, con los datos expuestos, que es el caso?

Cita:
Empezado por nlsgarcia Ver Mensaje
En toda tu exposición te has basado en el hecho de que si un lenguaje deriva de C/C++ tiene fallas de base..
Mmmm... el debate surgió en parte de que tener limitadores es mejor que no, y entonces puse como los que usan la familia C no son superiores, y de hecho, tienen fallas en su implementación. No quise dar a entender que todos en lo absoluto de sus descendientes son malos, solo expuse que los mas comunes comparten ese problema.

Luego se mezclo que es culpa de nosotros no saber que esos delimitadores traen errores, entonces hay puse ejemplos donde es culpa de los compiladores/sintax los errores. Pero eso fue mezclar 2 cosas diferentes, aunque conectadas...

En donde si quise dar a entender que están todos los de la familia C, es en que los marcadores (de bloque) que usan no aportan mucho al programador, que tener que usarlos es algo que se expone como un problema común en varias guías sobre los mismos (que se olvidan, que hay que estar seguro de cerrar y abrir donde es, etc), y que en ciertos lenguajes tienen problemas importantes. Eso si es mas universal.

Asi que, aparte de decirle al compilador algo que se puede automatizar -donde termina un bloque- (y que personalmente he implementado, y no es tan difícil), que ganancia da, aparte de algo estético o de pura costumbre? Ahí es donde no me han dado ningún argumento, solo el decir: Es que X es muy bueno, mire como todo el mundo lo usa e igual tenemos Google Chrome.

Es claro ahora? Ademas expuse que el caso de Go & Rust esta mucho mejor pensado el asunto.

Cita:
Empezado por nlsgarcia Ver Mensaje
(sobre el erp)
..
¿Todo lo anterior no es responsabilidad del programador?, ¿No se puede verificar el uso de punto o coma como separador de decimales?, ¿No se puede verificar en un String si este tiene caracteres Null para evitar riesgos de seguridad?.
Exacto! No es culpa del usuario!. Eso es lo que debato. Ahora bien: Porque no pensar LO MISMO con respecto a un lenguaje? En este caso, el usuario somos nosotros!

Cita:
Empezado por nlsgarcia Ver Mensaje
deberemos aceptar que la computación poco ha avanzado desde la aparición de C/C++ y es un hecho que ha sido todo lo contrario.... son cada vez más complejos, potentes y seguros
La computación ha avanzado. La forma de hacerlo? Ni de locos. Estamos haciendo software con las mismas ideas de mas de 60 años...

FALSO.

Estamos haciendo software *olvidando* muchos de los avances en como hacer software, que se conocen desde hace mas de 50 años.

Te pregunto:

- Sabes que es una función pura?
- Sabes que se puede reemplazar, en su totalidad o parcialmente, sin detener el programa, o sea corriendo, aun cuando este soportando una enorme carga de trabajo, un programa, sin fallas ni downtime? Y eso es algo que se puede hace decadas. Lo hacen? Yo no. Y eso que se que existe, pero es que ninguna de las herramientas que uso pueden hacerlo!
- Sabes que el bound checking, que C/C++ no tiene, fue inventado hace mas de 3 décadas? Están usando los programadores de C "computación avanzada"?
- Sabes que no hay porque, en pleno siglo 21, preocuparse por un Null Exception, porque eso esta resuelto, hace décadas también?
- Sabes que se puede verificar que un programa no tiene errores de acceso de memoria?
- Y que es posible garantizar que no hay deadlocks?
- Sabes que hay muchos GC mejores de lo que imaginas? Que pueden hacer código MAS rápido que los que usan memoria manual?
- Saben que lo ultimo que implementa C# 4/5, Java 8, estaba disponible para gente en 1980? Pero porque desafortunadamente C/C++/JS/PHP "ganaron" en números, todo ese software escrito durante todo ese tiempo (y aun ahora) no goza de ninguno de los avances en la computación -para programadores-?

Saben cual es el estado del arte en nuestra área? Que tanto atrás o delante estamos, en herramientas y tecnología, con respecto a como eran las cosas hace 20 años?

Cita:
Empezado por nlsgarcia Ver Mensaje
¿Si uniéramos las mejores características de todos los lenguajes actuales y se hiciera un lenguaje perfecto en todo sentido se eliminarían por completo las fallas de software
Poniendo en su sana perspectiva lo de perfecto? No te alcanzas a imaginar cuan cerca puede estar esa meta de lo que ahora piensas*.

* La respuesta pedante: Es NO. Combinar lenguajes no resuelve el problema. Sin embargo, por poner un ejemplo: Alguna vez has pensado porque puedes tener un valor NULL en cualquier momento? Y que tal si te dijera que es posible nunca, jamas, tener un NULL inesperado? Yo antes ni siquiera se me ocurriría tal cosa.

Asi aunque no es posible en su totalidad esa meta, ni C, C++, C#, Java, Python, Ruby, Delphi, Lua, y muchos otros lenguajes mas comunes son un ejemplo de que tan lejos se ha llegado, osea, hace varios años ya. Se podria decir que cada uno ha recibido solo un "pedazo" de esos avances, unos mas que otros.

Hay otros lenguajes que si están *mas* cerca. Pero no son populares. Es muy difícil. No tienen los números de su lado, o son muy bizarros en su sintaxis, o simplemente es muy difícil que un programador haga un cambio a algo nuevo. En especial si niega o ni siquiera puede concebir que existe un mejor camino. En especial lo segundo*.

* Por poner un ejemplo: Cuantos programadores VB se pasan a Pascal al darse cuenta lo mejor que es?

Naaaaa... miren cuanto software en VB esta hecho, y no le veo problemas.... Ademas si me esfuerzo mas, trabajo mas y escribo mas código hago lo mismo...
__________________
El malabarista.

Última edición por mamcx fecha: 16-05-2014 a las 04:52:59.
Responder Con Cita
  #2  
Antiguo 16-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx

Cita:
Empezado por mamcx
...Eso aplica también a los lenguajes? Dirías, con los datos expuestos, que es el caso?...
Si.

Revisa esta información:
Cita:
...The choice of programming language can have a profound effect on the occurrence of buffer overflows. As of 2008, among the most popular languages are C and its derivative, C++, with a vast body of software having been written in these languages. C provides no built-in protection against accessing or overwriting data in any part of memory; more specifically, it does not check that data written to a buffer is within the boundaries of that buffer. The standard C++ libraries provide many ways of safely buffering data, and C++'s Standard Template Library (STL) provides containers that can optionally perform bounds checking if the programmer explicitly calls for checks while accessing data. For example, a vector's member function at() performs a bounds check and throws an out_of_range exception if the bounds check fails. However, C++ behaves just like C if the bounds check is not explicitly called. Techniques to avoid buffer overflows also exist for C...

Tomado de : Buffer overflow
Es por lo tanto responsabilidad del programador que use C/C++ conocer todo lo anterior para programar de forma eficiente y segura en dichos lenguajes.

Cita:
Empezado por mamcx
...Así que, aparte de decirle al compilador algo que se puede automatizar -donde termina un bloque-...¿que ganancia da, aparte de algo estético o de pura costumbre?...Ahí es donde no me han dado ningún argumento...
Determinan visualmente los bloques de código, algo que en términos prácticos es muy útil al momento de programar y depurar.

Cita:
Empezado por mamcx
...Estamos haciendo software con las mismas ideas de mas de 60 años...
Es correcto , la evolución ha sido lenta en ese sentido pero aun así el software es cada día más complejo y sofisticado que en el pasado.

Cita:
Empezado por mamcx
...Estamos haciendo software *olvidando* muchos de los avances en como hacer software, que se conocen desde hace mas de 50 años...
Quizás el programador promedio si, pero los programadores profesionales de grandes empresas a nivel mundial de desarrollo de software, energía, telecomunicaciones, finanzas y centros de investigación no estaría tan seguro

Cita:
Empezado por mamcx
Te pregunto:

1- Sabes que es una función pura?

2- Sabes que se puede reemplazar, en su totalidad o parcialmente, sin detener el programa, o sea corriendo, aun cuando este soportando una enorme carga de trabajo, un programa, sin fallas ni downtime? Y eso es algo que se puede hace decadas. Lo hacen? Yo no. Y eso que se que existe, pero es que ninguna de las herramientas que uso pueden hacerlo!


3- Sabes que el bound checking, que C/C++ no tiene, fue inventado hace mas de 3 décadas? Están usando los programadores de C "computación avanzada"?


4- Sabes que no hay porque, en pleno siglo 21, preocuparse por un Null Exception, porque eso esta resuelto, hace décadas también?


5- Sabes que se puede verificar que un programa no tiene errores de acceso de memoria?


6- Y que es posible garantizar que no hay deadlocks?


7- Sabes que hay muchos GC mejores de lo que imaginas? Que pueden hacer código MAS rápido que los que usan memoria manual?


8- Saben que lo ultimo que implementa C# 4/5, Java 8, estaba disponible para gente en 1980? Pero porque desafortunadamente C/C++/JS/PHP "ganaron" en números, todo ese software escrito durante todo ese tiempo (y aun ahora) no goza de ninguno de los avances en la computación -para programadores-?


9- Saben cual es el estado del arte en nuestra área? Que tanto atrás o delante estamos, en herramientas y tecnología, con respecto a como eran las cosas hace 20 años?
La respuesta general a todas las preguntas es : Si, sin embargo lo mismo se aplica a toda la tecnología en general, supongo que el proceso de conocimiento e implementación del mismo es lento en términos generales independientemente del área de conocmiento en cuestión, es algo más humano que técnico

Cita:
Empezado por mamcx
...Hay otros lenguajes que si están *mas* cerca. Pero no son populares. Es muy difícil. No tienen los números de su lado, o son muy bizarros en su sintaxis, o simplemente es muy difícil que un programador haga un cambio a algo nuevo. En especial si niega o ni siquiera puede concebir que existe un mejor camino. En especial lo segundo*...
Estoy de acuerdo , sin embargo esto esta ligado a la respuesta anterior.

Cita:
Empezado por mamcx
...¿Poniendo en su sana perspectiva lo de perfecto?...La respuesta pedante: Es NO. Combinar lenguajes no resuelve el problema...
Es correcto

Cita:
Empezado por mamcx
...No te alcanzas a imaginar cuan cerca puede estar esa meta de lo que ahora piensas...


Pregunto: ¿Te has puesto a pensar que con toda la base instalada de aplicaciones y conocimiento en C/C++ y sus lenguajes derivados no es aconsejable en términos prácticos el dar un salto brusco a los lenguajes que mencionas como más evolucionados?, todo se resume a lo práctico versus a lo ideal, sin importar cuan poderoso sea Erlang para manejar la concurrencia (Por ejemplo) si mi base instalada es de C#, seguirá siendo de C# o un derivado de este, con las excepciones del caso, lo mismo aplica a otros lenguajes

En resumen: La fortaleza de C/C++ y sus derivados radica en sus extensas posibilidades de programación, no en su perfección de diseño, lo cual sumado a su gran base instalada, conocimiento acumulado y mejoras continuas hacen que estos lenguajes tengan asegurado un largo camino en el mundo de la computación del siglo 21.

Nelson.

Última edición por nlsgarcia fecha: 16-05-2014 a las 09:18:56.
Responder Con Cita
  #3  
Antiguo 16-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Unos consejos para los interesados en programar (bien)
Responder Con Cita
  #4  
Antiguo 16-05-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Esta buena la serie!

En resumen? Este es de LOCOS. Ayuda bastante ir aprendiendo sobre la marcha no solo como resolver el problema que se tenga al frente, sino el estado del arte y buenas practicas que en mucho caso ya esta "resuelto", aunque resuelto significa: Este es el lio, y no tenemos una respuesta perfecta pero ahi te damos algunas ideas.

Cuando se es novato, se esta mas enfocado en escoger esta o cual herramienta/libreria y en como hacer X que resulta interesante o es lo que esta de moda. Eso es muy bueno, pero tambien hay que aprender lo demas.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 17-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx,

Cita:
Empezado por mamcx
...Ayuda bastante ir aprendiendo sobre la marcha no solo como resolver el problema que se tenga al frente, sino el estado del arte y buenas practicas...
Es correcto

Cita:
Empezado por mamcx
...Cuando se es novato, se esta mas enfocado en escoger esta o cual herramienta/librería y en como hacer X que resulta interesante o es lo que esta de moda...
Depende de la formación recibida

Cita:
Empezado por mamcx
...¿En resumen? Este es de LOCOS...


Nelson.
Responder Con Cita
  #6  
Antiguo 18-05-2014
Thoronluin Thoronluin is offline
Miembro
 
Registrado: feb 2009
Posts: 39
Poder: 0
Thoronluin Va por buen camino
Thumbs up

Antes que nada pedir disculpas porque aunque iba entrando en el foro cada vez que tenía una notificación, no me llegaron a partir de la cuarta respuesta y no he visto el foro hasta anoche.

Muchas gracias a todos, la verdad que las respuesta me han sido muy útiles porque me indican que no estaba desencaminado y he aprendido cosas que no sabía.

Como la mayoría han apuntado la mejor opción por Delphi/Lazarus por amigabilidad, porque me parece un lenguaje claro, lo conozco, etc.

Yo particularmente empecé el Basic (8-9 años), seguí con Logo (10 años), vuelta al Basic, Pascal (decían que era uno de los lenguajes para enseñar a programar junto con ADA), lenguajes de ensamblador, Matlab, los entornos gráficos como Labview, lenguajes de descripción hardware (VHDL, Verilog), C, C++ (y librería System-C), Visual Basic, lenguajes de scripting para SCADA, Fortran, Delphi (Object Pascal para que los puristas no me digan nada ), Objetive-C (más o menos en ese orden ). Quizás de todos el más amigable y para enseñar a un adolescente o pre-adolescente es el Delphi ya que puedes ver una interfaz amigable funcionando en un par de pasos. Todavía recuerdo cuando a mis primos les enseñé lo que sabía hacer en programación (cuando empecé en la universidad) creando un programa en 5 minutos para consola en Pascal o C (me falla la memoria) en el que se mostraba una frase y un conteo y se quedaron tal cual. Las nuevas generaciones no se asombran con la tecnología, la dan por sentada y si pierden el interés no aprenden. Lenguajes como C, aunque son potentes, si no tienes la motivación suficiente o no le encuentras la utilidad los dejas de usar.

Estoy de acuerdo hay que enseñar a programar, ya que el lenguaje, el IDE o el entorno lo determinaran el objetivo (escritorio, aplicación Web, dispositivos móviles), por eso me quiero enfocar en ello y si le gusta y quiere más ya lo iré guiando según sus motivaciones.

También estoy de a cuerdo en que enseñar a programar con entornos de desarrollo de videojuegos no es enseñar a programar sino a usar una herramienta concreta (aunque de paso aprendas algo de programación) con lo que al final la esencia se pierde.

He leído artículos donde se recomiendan lenguajes de programación para niños y adolescente según las edades (si a alguno le interesa le incluyo los links) pero son entornos puramente gráficos y como en el caso anterior aunque puedas aprender algo de algorítmica no aprendes realmente a programar sino a juntar cajitas.

Sobre usar el propio Delphi 7, sería lo ideal ya que sé bastante (no puedo decir mucho porque ustedes me gana por goleada ) pero el problema es la licencia (es de la empresa) y no se por qué derroteros querrá ir el chico. Así que mi opción es Lazarus, he leído acerca de la distribución CodeTyphon (ahora viene otra pregunta ) ¿Qué me recomiendan Lazarus o usar la distribución CodeTyphon? Mi sentido común me dice que la distribución me ahorrará la instalación de muchas librería y por tanto los quebradores de cabeza que se suelen dar.

He accedido a la mayoría de los links propuestos y algunos de los blogs y links que incluyen en las firmas y he descubierto páginas para enseñar a programar que no conocía y entornos para programar juegos en Delphi.

Me parece interesante el link que envió Casimiro:

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Resumen muy bien lo que es aprender a programar pero en vez de hacerle caso Ricardo Galli sobre el entorno y el lenguaje voy a tirar por lo que hemos hablado aquí.

Muchísimas gracias de nuevo a todos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que me recomiendan? D-MO PHP 2 08-12-2005 14:50:28
Que me recomiendan ? Sundance Gráficos 2 06-08-2005 06:36:31
Me recomiendan un tutorial? marceloalegre C++ Builder 5 09-06-2005 08:56:23
Me recomiendan Web Sites? marceloalegre SQL 2 18-05-2005 23:19:57
Sistema en Red, Que me recomiendan.. BlueSteel Varios 6 01-03-2005 17:46:09


La franja horaria es GMT +2. Ahora son las 07:02:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi