![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
http://web.mit.edu/~simsong/www/ugh.pdf Cita:
![]()
__________________
El malabarista. |
|
#2
|
||||
|
||||
|
No sé qué le estaban preguntando para contestar eso. Evidentemente no tiene sentido ni tiene nada que ver con lo que estamos hablando.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Noteví fecha: 15-05-2014 a las 23:25:46. |
|
#3
|
|||||
|
|||||
|
mamcx,
Cita:
Cita:
1- ¿C# tiene problemas de Buffer Overflow? , creo que no si simplemente se usa código gestionado.2- ¿Java y D tiene problemas de Buffer Overflow? , creo que los lenguajes modernos derivados de C/C++ se han construido sobre las lecciones aprendidas de sus antecesores, luego hablar que todos ellos tienen problemas de base por compartir un ancestro común creo que no es una apreciación muy justa con dichos lenguajes.Cita:
Cita:
, pero hoy en día Microsoft esta desarrollando un nuevo SO llamado Midori y este se construye sobre un lenguaje derivado de C#, que a su vez es derivado de C/C++ que es M#, Pregunto : ¿Por que se siguen usando derivados de C/C++ si tienen tantos problemas de base?, la respuesta es que son versiones mejoradas de sus antecesores, cada vez más potentes, especializadas y seguras, y por lo tanto mas confiables.Cita:
Un programador debe conocer las fortalezas y debilidades del lenguaje que usa para hacer un mejor uso de el y construir software de calidad. Si aceptamos la tesis de que todo lenguaje derivado de C/C++ tiene problemas de base entonces 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, los sistemas son cada vez más complejos, potentes y seguros no necesariamente perfectos, sin embargo el factor humano siempre esta presente en ellos y la complejidad creciente de los sistemas hace cada vez mas necesaria una mayor disciplina en el desarrollo de software de calidad. Pregunto: ¿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, es decir: Los sistemas serían a prueba de fallas, eficientes, seguros y cumplirían a cabalidad las metas para los que fueron concebidos? ![]() Nelson. Última edición por nlsgarcia fecha: 15-05-2014 a las 23:01:10. |
|
#4
|
||||
|
||||
|
Eso aplica también a los lenguajes? Dirías, con los datos expuestos, que es el caso?
Cita:
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:
Cita:
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:
* 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. |
|
#5
|
|||||||||
|
|||||||||
|
mamcx
Cita:
Revisa esta información: Cita:
Cita:
Cita:
, 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:
![]() Cita:
![]() Cita:
, sin embargo esto esta ligado a la respuesta anterior.Cita:
Cita:
![]() 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. |
|
#6
|
||||
|
||||
|
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
Cita:
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. |
|
#8
|
||||
|
||||
|
A proposito: La cita es del "Unix haters handbook". Una recolección de expertos en unix acerca de todos los lios de diseño de este. Esa cita es famosa por expresar la mentalidad común de la gente de *nix de despreciar al usuario por cometer errores, aun cuando defenderse de los tales requiere una serie de bizarros conocimientos del porque las cosas son como son. Es una de las lecturas recomendadas para todo programador.
__________________
El malabarista. Última edición por mamcx fecha: 16-05-2014 a las 05:23:04. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|