Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Felicidades

    (Puntos:3, Interesante)
    por JAM (999) el Martes, 27 Julio de 2004, 22:57h (#330235)
    ( http://barrapunto.com/ )
    C++ no es "lo que dices" de forma tan generalista. C++ tiene sus puntos fuertes y sus puntos flacos pero aún así sigue siendo uno de los mejores lenguajes que existen.

    Entre sus puntos flacos están la complejidad del lenguaje, no sólo por la cantidad de características y posibilidades que ofrece (lo que de por si no tendría porque ser malo) sino porque la forma en la que se han implementado siendo otro temible caso de diseño por comité en el que muchas de las características no casan bien con otras, síntaxis poco uniforme para algunas de las "novedades" y lo peor de todo, por la cantidad de efectos laterales nada obvios que existen a lo largo del lenguaje y que te pueden hacer pasar muchas entretenidas tardes depurando un error (olvidarse de un constructor de copia, o crearlo cuando no hay que hacerlo, un objeto "colgante" por culpa de una excepción, etc.)

    Otro punto flaco de C++ es que no cuenta con una librería estándar al nivel de otros lenguajes como Java o C#. La STL es una auténtica maravilla tanto de diseño como de implementación, pero a veces en el mundo real hacen falta más cosas que estructuras de datos y functors matemáticamente perfectos, y la librería de C no es la solución. En este punto sin embargo quisiera recalcar que yo tanto en proyectos libres como en comerciales (pagando en estos últimos) uso siempre las Qt que son otra auténtica maravilla y me proporcionan el 80% del API que necesito para casi cualquier cosa (no son sólo botoncitos).

    Entre sus puntos positivos están: Tiene una colección de características intrínsecas que no tiene ningún otro lenguaje "del mundo real" y que combinadas entre si pueden hacer maravillas, derivado de esto otro punto positivo es su tremenda expresividad, no desde el punto de vista de la claridad sintáctica sino desde el punto de vista que cuanto más complicado sea el diseño de un proyecto y más dificil sea plasmarlo en otros lenguajes, más fácil es hacerlo en C++. Las plantillas de Java y C# por ejemplo aún no estan al nivel de las de C++.

    Otro punto que nadie puede obviar (aunque parece que está de moda hacerlo), y que automáticamente convierte en muchas ocasiones a C++ en la única opción viable es el rendimiento. De acuerdo que con las máquinas que se manejan hoy en día la velocidad de los lenguajes anteriores es "suficiente" para el 80% de los proyectos pero para el 20% que no lo es no queda otra opción (si queremos hacerlo orientado a objetos y encontrar programadores experimentados en el lenguaje.) El que piense que Java y C# son aptos para el 100% de los proyectos quizás debería intentar ampliar sus horizontes e intentar participar en algún proyecto que no sea el típico corporativo. Y no, Java no tiene el mismo rendimiento que C++ ni lo tendrá nunca por muchas comparativas de fibonacci que nos saquen, eso es algo de cajón...[1]

    [Ahora viene el Spam :)]
    En definitiva lo que C++ necesita desesperadamente es una renovación, que no limite a los programadores a paradigmas forzados (como java, todo objetos por cojones, portable por cojones, excepciones manejadas por cojones, etc) sino que le de libertad, que no pierda ni una sóla de las múltiples características de C++, añadiendo si es posible alguna más, que de un lavado general a la sintaxis para hacer más uniforme, clara, sencilla, que incluya estructuras de datos (y CADENAS) intrínsecas al lenguaje y no en bibliotecas, que se cepille el preprocesador y lo sustituya por algo más moderno como los mixins, que soporte "programming by contract", unittest y demás también sin bibliotecas y a ser posible que mejore el rendimiento de C++ y que compile como C++ a código nativo (después que compile a bytecode o CIL .NET es más sencillo si se tiene lo primero) permitiendo programación de sistemas a muy bajo nivel pero sin requerirla para cosas que sencillamente no la necesiten.

    La buena noticia (para el que piense que se me va la olla) es que algo así ya existe (bueno, casi, se espera la 1.0 para finales de año) y se llama lenguaje de programación D (http://digitalmars.co
    [ Padre ]