the - stroustrup c++
¿Alguien está trabajando en una biblioteca estándar de alto nivel para C++? (11)
STL / Boost cubre todas las cosas de bajo nivel.
Pero ¿qué pasa con los conceptos de nivel superior?
Windows: Tenemos varias librerías de ventanas
- KDE (Qt)
- Gnomo
- Motivo (C pero escrito en estilo OO)
- MS Windows
- etc
Pero, ¿alguien está trabajando en un estándar unificado para ventanas? Algo que envolviera todo lo anterior sería aceptable. (Incluso si solo accediera a cosas comunes, sería un punto de partida).
Redes:
Hay un par por ahí (incluyendo las cosas de bajo nivel de Boost).
Pero, ¿hay alguien trabajando en una capa de red basada en servicios?
Todas las otras cosas que Java / C # tiene en sus bibliotecas estándar.
Las cosas que hacen que sea más sencillo para un principiante saltar y decir Wow hecho y funciona en todas partes (casi).
De todas formas. Aquí con la esperanza de que hay algunos proyectos interesantes por ahí.
Editar
Tal vez no hay uno. Pero si hay una pareja que podría agruparse como punto de partida (y potencialmente modificarse con el tiempo (donde está esa palabra clave en desuso)) en un buen conjunto consolidado.
Nota: Windows es solo una pequeña parte de lo que estoy buscando. Los lenguajes Java / C # se consolidan mucho más bajo el capó que solo la GUI. Lo que sería un buen conjunto de bibliotecas para obtener toda la funcionalidad en un solo lugar.
¿Qué tiene de genial la estandarización? Claro, si los programadores principiantes desean descargar un SDK para crear aplicaciones portátiles, permítales descargar Qt (o algo similar) y permanecer para siempre dentro de su entorno de paredes finas. Pero sería una tragedia si el mundo de C ++ girara alrededor de esa biblioteca y boost y POCO y wxWidgets y clutter and blitz ++ y eigen y 101 otras cosas maravillosas (sí, gtkmm y ACE incluso) fueron sofocados al nacer porque los guardianes de La Biblioteca Estándar no consideraba oportuno admitirlos.
La diversidad es buena, creo (aunque al tratar con ella, es útil tener un buen gestor de paquetes; he pasado horas configurando dependencias de compilación en Windows, que solo necesitaban unos segundos de apt-get en Debian).
Bueno, es casi 2010 y C ++ casi tiene hilos.
Probablemente me rechacen por esto, pero C ++ se mueve demasiado lento, en detrimento propio y de su base de usuarios. Reconozco fácilmente la dificultad de los problemas técnicos y políticos involucrados, pero esa es todavía la sucia realidad de esto. El lenguaje no puede incorporarse en conceptos de nivel superior cuando se necesitan de 5 a 10 años para ponerse de acuerdo e implementar los componentes básicos.
Las razones para esto se han debatido sin cesar, pero la triste verdad es que C ++ se ha relegado a un lenguaje de nicho. Me gusta C ++, pero observo el progreso que C #, Java e incluso Python y Ruby han logrado en los últimos 5 años y cada vez más cuestiono si C ++ vale la pena.
El proyecto Poco C ++ apunta a entregar todo lo que pidas, excepto para Windowing:
Las bibliotecas POCO C ++ pretenden ser para el desarrollo de software C ++ multiplataforma y centrado en la red, lo que es Cocoa de Apple para el desarrollo de Mac, o Ruby on Rails es para el desarrollo web: una plataforma potente y fácil de usar para desarrollar sus aplicaciones.
Existen diferencias demasiado grandes entre las plataformas para obtener un estándar de C ++ definitivo para la programación de GUI. Creo que Qt es lo más cercano a lo que obtendrás en el futuro previsible. wxWidgets es otra opción popular, pero como yo lo entiendo, están usando características menos modernas de c ++.
En cuanto a las redes, creo que estás siendo un poco vago. Si te refieres a los servicios web a través de HTTP, echaría un vistazo a Pion .
No creo que sea posible crear una biblioteca de GUI portátil realmente completa. Los sistemas operativos son demasiado diferentes. ¿Te imaginas una biblioteca de GUI que cubra todo, desde iPhone a Windows 7 y no se sentiría raro en ninguno de ellos?
Para ventanas multiplataforma, hay wxWidgets . (anteriormente wxWindows).
Qt podría ser el único marco lo suficientemente completo para ser lo que sugieres.
Solo todos y su hermano, pero casi ninguno de ellos llega a ninguna parte.
Supongo que hay algún tipo de búsqueda de palabras clave que impulsa la publicidad aquí porque veo un anuncio de REALbasic , que es el que generalmente uso para las GUI multiplataforma en la actualidad.
He pasado mucho tiempo en los últimos 15 años trabajando en GUI de C ++, incluyendo la venta de mi propia capa de portabilidad para CodeWarrior PowerPlant y trabajando en los dos generadores de código GUI basados en Macintosh, incluida la adición de la generación de Windows a AppMaker . He trabajado con wxWidgets, principalmente con wxPython. Por lo tanto, mi opinión sobre las dificultades en la GUI multiplataforma está bastante bien calificada :-)
Los marcos de la interfaz gráfica de usuario multiplataforma son difíciles hasta el punto de ser casi imposibles sin un compromiso significativo: los problemas se reducen a cuestiones sutiles de comportamiento que generalmente molestan a los usuarios en un nivel donde algunos de ellos no pueden cuantificar, pero saben que la aplicación no se siente. a la derecha Esto es mucho más difícil de arreglar que simplemente representar controles nativos.
Comencé a usar REALbasic porque su marco hace un mejor trabajo para sentirse bien que cualquier otra cosa que haya probado (no entré en Qt debido a la costosa licencia comercial).
La razón por la que las cosas han evolucionado tanto tiempo no tiene nada que ver con que el mundo de C ++ se mueva lentamente, es solo un problema intratable. Las mejores aplicaciones Java multiplataforma hacen algunas cosas de manera condicional para OS / X y todavía es bastante obvio para un usuario experimentado que no son una aplicación nativa de Mac, aunque algunas son muy fáciles de usar y están muy cerca de parecer nativas - Oxygen XML editor y DeltaWalker son dos de mis favoritos.
Una biblioteca de Boost Gui aparece ocasionalmente.
La opinión general parece ser que los problemas son demasiado amplios (¿está dirigido a teléfonos celulares, juegos FPS o estaciones de trabajo CAD) y que es demasiado trabajo? Qt / wxWidgets ha tardado 10 años.
vea http://lists.boost.org/Archives/boost/2005/09/94453.php para una discusión.
Hubiera sido bueno porque GUI generalmente significa multiplataforma y subprocesos, por lo que todos los kits de herramientas de GUI han inventado sus propias plataformas multiplataforma, sistema de archivos y clases de subprocesos. Por otro lado, si se hubiera introducido una GUI estándar en C ++, ¡probablemente se vería como TK!
ACE es ideal para la comunicación y las redes concurrentes.