Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/07/2008, 09:28
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 7 meses
Puntos: 61
Respuesta: Orientacion para desarrollo casero

Es una pelea sin sentido.

Los lenguajes de programacion usualmente aparecen como respuesta a alguna necesidad, y casi ninguno resuelve todo bien. Algunos se aproximan mas a la maquina, otros al humano.

En el mundo de los compiladores, los primeros lenguajes inventados eran muy parecidos al Assembly de la maquina donde finalmente se ejecutaban, los compiladores chequeaban pocas cosas y dejaban hacer muchas, El lenguaje C es muy parecido al assembly de unas maquinas precursoras de las Vax, llamadas PDP.

C y C++ suponen que el programador sabe lo que esta haciendo y deja hacer muchas cosas, sin avisar. C es mas permisivo que C++. La experiencia indica que la gente no sabe lo que esta haciendo, no libera la memoria, no sabe usar los recursos, cuando tiene el poder para hacerlo, y por eso lenguajes como java, C#, visual Basic, etc. tienen cabida, pues permiten que muchas labores de mantencion sean hechas automaticamente, permitiendo que los programas sean (mas) faciles de escribir, de entender y mantener en el tiempo.

El C y C++ tienen poder, pero a veces a costa de la legilibilidad de los programas. Es normal que los programas (a nivel profesional) tengan que ser modificados en el futuro, y el que la sintaxis sea criptica va en contra tanto de la adopcion como de la mantencion.

Si requieres hacer algo rapido y legible? Tal vez no uses ni C++ ni C#, sino python. Manejo de expresiones regulares? Tal vez elijas Perl. Grandes volumenes de datos? Tal vez no hagas nada en C++ ni C#, sino que todo sea hecho en SQL del lado de la base de datos y solo dejes al cliente mostrar todo en un browser, usando JavaScript, php, etc.

El usar C++ no garantiza resultados optimos. Un algoritmo naive (cuadratico o superior) no le ganara a un algoritmo lineal, independiente del lenguaje usado.

Es facil hacer software ... malo.