tokyo studio embarcadero edition community architect c++ visual-studio c++builder

c++ - studio - embarcadero community



C++ Builder o Visual Studio (12)

Poseo una compañía de desarrollo de software. Desarrollamos software para otras compañías que lo califican bajo su nombre / títulos. Y también tenemos un par de títulos de marca propia en el mercado de contabilidad / ERP. Nuestro software de contabilidad es aproximadamente el 60% de nuestro negocio y está escrito en C ++ Builder.

Quienes lo saben, se dan cuenta de que C ++ Builder ha tenido un camino muy difícil para cambiar de manos de Borland, a CodeGear, a Embarcadero y, posiblemente, algunas veces entre ellas. C ++ Builder nos ha fastidiado varias veces con nuestro software de contabilidad. El QuickReports fue notoriamente defectuoso, su descripción de compilación XML no está estrechamente acoplada a la GUI, lo que hace que las compilaciones no funcionen, generalmente una interfaz con fallos.

Durante los últimos 8 años, hemos hecho incursiones constantemente para eliminar nuestra dependencia de los componentes VCL y buggy; sin embargo, algunos componentes VCL de terceros simplemente no son fácilmente reemplazables. Usamos un paquete GRID de Developer Express - gran producto.

Estoy casi en una encrucijada y con la última versión de C ++ Builder XE en el mercado, me está costando mucho justificar el precio cuando nos fijamos en la historia de este producto.

Así que estoy buscando consejos o pasos que alguien más haya seguido y que puedan estar en una situación similar y haya realizado con éxito el cambio a Visual Studio.

Hemos movido lentamente la mayor parte de nuestra aplicación a wxWidgets excepto a las herramientas Developer Express. Y hemos escrito nuestra propia abstracción de TSQL que también podemos trasladar.

¿Alguna idea o sugerencia? ¿Ha movido su proyecto a Visual Studio o ha jugado con el nuevo Builder XE para encontrar que muchas de sus deficiencias anteriores ya han desaparecido?

Buscando "estado allí, hecho eso" consejos.


Actualizamos de C ++ Builder 6 a XE hace un año. Muy contento con XE. El traslado a UnicodeString no fue demasiado difícil. También convertimos todo nuestro código BDE a BDExpress (DBX). Eso llevó mucho tiempo y mucha reescritura, pero valió la pena. Lo que hay que recordar es que ninguno de los dos es perfecto. Como dice el dicho, la hierba siempre se ve más verde al otro lado de la cerca. Si desea eficiencia de desarrollo, use C ++ Builder y el VCL. Si desea seguridad a largo plazo, o encontrar fácilmente programadores, entonces Visual Studio. Mi opinión: conserva lo que te gusta y reemplaza lo que no. Por ejemplo, mantenga C ++ Builder y reemplace QuickReport. Por cierto, si ha tomado una decisión, háganoslo saber.


C ++ Builder PM aquí.

C ++ Builder tiene algunas fortalezas específicas:

  • Es genial para el diseño de interfaz de usuario. Ya sea con la VCL (controles nativos de Windows) o FMX (multiplataforma, a menudo también controles nativos si es necesario). Visual C ++ no se acerca a nada, y MFC aún está diseñando las interfaces de usuario como lo hizo en 1995.

  • Está enfocado en multiplataforma. Visual C ++ lo está publicitando, pero C ++ Builder proporciona la ''pila completa'': no ​​solo compilación, sino bibliotecas completas, IU, todo. VC ++ es multiplataforma hasta que necesitas algo que no lo es.

  • Es ampliamente utilizado por personas que necesitan trabajo en la base de datos u otros elementos "empresariales", principalmente porque las bibliotecas de bases de datos (FireDAC) están muy bien diseñadas y son compatibles con muchas bases de datos.

  • Utiliza Clang para todas las plataformas aparte de macOS, que todavía tiene un compilador antiguo. También se dirige a la actualización a C ++ 17.

  • Tiene características como Vista previa en vivo (diseñe su aplicación, vea la aplicación en vivo en un dispositivo conectado como su teléfono) que parecen haber inspirado en gran medida algunas características recientes de MS;) No se preocupe, Visual Studio, lo amamos :) Así que en muchas áreas realmente lidera, especialmente para el desarrollo de x-plat.

Debilidades:

  • El IDE solo se ejecuta en Windows. Puede implementar en cualquier lugar y depurar en cualquier cosa, pero el IDE es Windows.

  • Es solo C ++ 11, aunque se dirige hacia C ++ 17. MacOS es (jadeo) C ++ 98. Está en la hoja de ruta. Puede confiar en que esté actualizado a tiempo.

  • La finalización del código y la comprensión del código son más débiles que Visual C ++. Trabajando en ello.

  • Tiene la reputación de ser un buggy, que es algo en lo que se está trabajando activamente en lanzamientos recientes y una unidad personal mía que eliminar. Pero una reputación es difícil de perder.


Comencé como ingeniero de cliente de C ++ para Windows. Estoy de acuerdo con el comentario de que MFC es bastante malo. En varios de mis proyectos, hemos escrito nuestros propios motores de interfaz de usuario con plantillas basadas en XML en lugar de utilizar MFC para que los diseñadores gráficos puedan jugar con la interfaz de usuario sin necesidad de ingenieros de software.

En mi opinión personal, C # .Net es el mejor para el desarrollo de la interfaz de usuario de Windows. IDE es genial. La codificación de la interfaz de usuario en C ++ requiere demasiado esfuerzo. Aún puede mantener piezas de C ++ que requieren un alto rendimiento.

PD. Acabo de notar esto en la página wiki para VCL. ".NET se basa en VCL, ya que uno de los arquitectos principales de las primeras versiones de Delphi, Anders Heijlsberg, fue a Microsoft y fue uno de los arquitectos principales de NET".


Estamos en un movimiento lento hacia VS2008 y wxWidgets. Para cada componente que se puede comprar para C ++ Builder (Developer Express, etc.), nuestros planes son contratar a alguien para construir esa pieza o contratar al fabricante de componentes para construir un componente wxWidget para nosotros.

Sin embargo, C ++ Builder es la mejor manera de programar visualmente en Windows en este momento. Sin embargo, no es compatible con x64bit ni con mac, soporte para linux. Supuestamente van a construir una versión crossx ... ¿cuánto tiempo podemos esperar?


Esto significa que el lanzamiento de Visual Studio 2010 crea una nueva pregunta: ¿Tiene sentido actualizar Visual Studio incluso si no está actualizando a .NET 4? La respuesta es "sí", y por muchas razones. Pero si va a .NET 4, encontrará mucho soporte en Visual Studio 2010.

Tan pronto como inicie Visual Studio 2010, notará que la página de inicio ahora es más útil que el menú Archivo (consulte la Figura 1). La página de inicio aún proporciona acceso a las plantillas de proyecto, pero el resto de la página ahora brinda acceso organizado a los recursos de capacitación para las principales tecnologías .NET.

Una vez que abra un archivo, encontrará que, gracias a Windows Presentation Foundation (WPF), hay más comentarios visuales en la ventana de edición. Por ejemplo, si hace clic en un nombre de variable, se resaltan todos los usos de ese nombre de variable. Esta función no se limita a las variables: al hacer clic en el encabezado de un método, se resaltan automáticamente todas las cláusulas de retorno y el final del método. Pero este resaltado adicional no es sin un inconveniente. Al depurar, por ejemplo, a veces perdí la línea actual porque su resaltado fue anulado por el resaltado agregado para el elemento seleccionado actualmente. tatuajes aztecas


He trabajado en C ++ Builder 2006, 2009, XE6 y RS10.

Recomendaría convertir tus proyectos fuera de él. He tenido numerosos problemas durante muchos años, como el choque del entorno y muchos otros comportamientos extravagantes. Además, si necesita ayuda con algo, la comunidad de usuarios es casi inexistente, por lo que normalmente tiene que esperar 24 horas y esperar que Remy le responda :) O intente leer el código delphi y traducirlo a C ++ (sí su entorno de delphi es más popular ... nada como pascal orientado a objetos ...).

No importa a qué entorno lo conviertas, probablemente no será tan limpio o tan fácil como te gustaría. Por lo tanto, saber que habrá mucho trabajo, por lo que sugiero considerar su estrategia a largo plazo.

Personalmente recomendaría migrar a java y usar SWT ( https://www.eclipse.org/swt/ ), si necesita una aplicación de escritorio. También recomendaría apegarse a las bibliotecas de código abierto con licencias amigables, para que no tenga que preocuparse por pagar dinero cada año y le permita escalar su negocio. Si no necesita un sistema cliente, entonces recomendaría Java, ya que lo hace con toda la pila y es muy poderoso. Desde mi experiencia, la comunidad java tiende a tener personas más inteligentes (en su mayor parte) con respuestas claras. He visto un montón de cosas piratas que usan .Net :)

Mencionaste Visual Studio, si no puedes hacer java, entonces recomendaría C # como tu mejor alternativa. Pero luego aún debe pagar a MicroSoft por las licencias y también tratar con el grupo de usuarios.


La mayoría de las respuestas aquí combinan compiladores, IDE y biblioteca (y la pregunta tiene un subtexto importante: cómo elegir el entorno para aplicaciones empresariales / GUI). Las preguntas y respuestas combinan los lenguajes de Visual Studio y los tipos de proyectos: C ++ con poco soporte para GUI, C # con un maravilloso ecosistema, etc. (Básico, F #, etc.), todo bajo el paraguas de Visual Studio.

Bibliotecas GUI:

MFC es una biblioteca, bastante antigua y poco productiva. Su envoltorio de bajo nivel sobre * .RES y WM_Envents. Probablemente todavía no se pueda compilar sin MS C ++ (y tal vez la licencia lo prohíba)

VCL es la biblioteca más importante para la filosofía Borland / Enbecaro y participación de mercado en un área: crear aplicaciones GUI. Parece ser un buen uso de las bibliotecas de interfaz gráfica de usuario de opensurce portátiles, pero casi todas no tienen tan buen soporte en IDE seleccionable

IDE:

Sentimiento personal parece mejor respuesta. De acuerdo, solo el IDE del productor tiene un control óptimo sobre sus propios componentes GUI. Muchos IDE independientes se citan aquí, voy a ser corto.

Compilador:

El compilador Brland C ++ durante muchos años estuvo lejos de los estándares de c ++ (no se puede compilar el código c ++ de flujo principal como impulso). Creo que muchos objetivos son contradictorios: la coexistencia con el código Object Pascal o los estándares C ++.

Para decir la verdad: la mayoría de los proyectos de los mundos de C ++ Builder no requieren el uso de códigos altamente "piratas informáticos" como boost y similares, personalmente trato el lenguaje Borland / Embecareo C ++ como lenguaje independiente parcialmente basado en C ++ (parcialmente en VCL). General, este mundo está cerrado (cada vez más), sin controladores, sin bibliotecas compatibles, sin protocolos de red modernos, etc.

Mi opinión: los compiladores de MS C ++ (en el pasado y ahora) soportan mejor los estándares.

Yo era (tal vez bueno) programador de Borland C ++. Ahora uso C # / WinForms Visual Studio (a veces, Java SWT o Swing raros) y Microsoft C ++ para proyectos de bajo volumen C / C ++ que no sean GUI

Palabras finales: ¿Está limitado a la sintaxis de C ++ o puede cambiar? Yo sí, cambiar a C #. Si debe ser C ++ y una GUI de alta productividad, pague (más y más) a Embecadero


Lo que dijo @casablanca, pero también debe considerar alternativas muy buenas, si dice que no está satisfecho con los programas que está usando ahora:

  1. Eclipse ( CDT ): producto muy bueno y completo.
  2. NetBeans : a menudo en comparación con eclipse
  3. Code::Blocks : más simple, pero a menudo recomendado, no creo que sea una integración del sistema de compilación, pero está muy integrado con wxWidgets
  4. QtCreator : mi favorito personal (limpio y rápido y funciona con git), pero actualmente solo se usa para un proyecto personal y aplicaciones pequeñas, tal vez no sea ideal para wxWidgets, aunque tampoco uso Qt :)

Una advertencia: el depurador de Visual Studio se considera "tan bueno como es posible", pero usted paga por ello. 1-4 arriba son todos productos gratuitos y altamente aclamados.


Moverse a wxWidgets tiene sus ventajas, una de ellas es que no estará vinculado a un IDE como C ++ Builder o Visual Studio. C ++ Builder ha tenido varios problemas, su principal fortaleza es el marco VCL, que en mi opinión todavía se encuentra entre los mejores marcos GUI para C ++. El problema, por supuesto, es que requiere C ++ Builder, que, para decirlo suavemente, tiene algunos problemas con la estabilidad y el rendimiento del compilador.

Sin embargo, Visual Studio no es el IDE definitivo, la versión más reciente tiene, en el mejor de los casos, buggy, y muchas de las herramientas de RAD que le proporciona C ++ Builder simplemente no existen en Visual C ++ (a menos que esté dispuesto a utilizar los lenguajes .net) .

Puedo entender perfectamente su deseo de hacer que su código sea menos dependiente de C ++ Builder, para decirle la verdad, dudo que siga existiendo por mucho tiempo. Sin embargo, por lo que parece en su publicación, la mayor parte de su desarrollo realmente se basa en aplicaciones desarrolladas rápidamente, y en el universo C ++ C ++ Builder es una de las mejores herramientas para este requisito en particular.

Personalmente, nunca pensé realmente en C ++ como la mejor solución para las aplicaciones GUI desarrolladas rápidamente en Windows, tal vez no debas centrarte en encontrar un IDE diferente, sino en encontrar un lenguaje más apropiado, sugeriría Delphi, al utilizar Delphi serás capaz de compilar sus proyectos existentes de c ++ builder, e incluso reutilizar sus componentes VCL existentes.

Delphi - confío - estará por más tiempo que C ++ Builder, ya sea en forma de Delphi o en forma de Lázaro (IDE para freepascal) que es incluso multiplataforma y brinda soporte para el desarrollo de 64 bits.

Sin embargo, si un cambio de idioma no es una opción, me quedaría con C ++ Builder por ahora, pero sin actualizar a la versión XE, que simplemente no creo que esté justificada por el precio. (Por supuesto, ya trabajas en una versión relativamente nueva).


Odio decir esto, pero mi propia compañía está en esta misma encrucijada. Hemos estado utilizando C ++ Builder durante muchos años (nunca se ha actualizado más allá de v6), y nuestra gente de administración recientemente ha apretado el gatillo para hacer que el cambio a Visual Studio avance :-( No creo que estemos portando nuestra C ++ Aplicaciones de Builder para VC ++ en el corto plazo, ya que sería una reescritura importante, pero nuestros nuevos productos en el futuro estarán en VC ++ / .NET ahora.


Si se apega a C ++ y espera el mismo tipo de IDE en Visual Studio para C ++ que RAD Studio proporciona, se sorprenderá.

Para ser honesto, C ++ Builder nunca ha sido un mal entorno de desarrollo de GUI para C ++. Es probable que haya sido el mejor para C ++. ¿Por qué? Porque puedes aprovechar todos los excelentes componentes de Delphi.

No hay sustituto para ExpressQuantumGrid ™ Suite para C ++ en Visual Studio.

La mayoría de las quejas serias sobre C ++ Builder se han centrado a menudo en su cumplimiento con estándares como el STL y Boost.

No creo que Embarcadero renuncie a apoyar a C ++ Builder. Los problemas generalmente han estado relacionados con la forma en que los chicos de Delphi (terceros) han codificado cosas. Sinceramente, solo recuerdo que una versión de DevExpress fue un problema.

Corto y dulce: si desea usar C ++ y algún tipo de cosa RAD / GUI se adhiere a C ++ Builder.


Visual Studio no es realmente comparable a C ++ Builder.

Sí, ambos son compiladores de C ++ pero:

  1. Visual Studio solo es RAD cuando se usan lenguajes .NET
  2. MFC es ''semi-rad'' pero no se acerca a la facilidad de uso de VCL
  3. El compilador de Visual Studio es mejor para producir código optimizado, pero C ++ Builder usa Clang, que es bastante bueno
  4. Visual Studio y C ++ Builder son compatibles con los estándares (CB que usa compiladores basados ​​en Clang)
  5. C ++ Builder viene con Boost
  6. C ++ Builder XE es mucho mejor que las versiones anteriores (sin incluir Builder C ++ 6.0)
  7. No se pueden superar las herramientas RAD en C ++ Builder para el desarrollo de C ++, nada se acerca.

Las diferencias en los compiladores probablemente no lo dañarán demasiado para el código no dependiente de VCL. Tengo una DLL que compilo para clientes bajo VC6, VS2008 y Builder 2010 / XE. He tenido que lanzar algunos #ifdefs, pero la mayoría de ellos son en realidad para VC6.

La mayor recomendación que puedo hacer es NO MOVERSE A MFC, que es donde comienza el dolor.

Piensa en la capacitación para desarrolladores también. Sus desarrolladores se volverán significativamente más lentos en la producción de código de trabajo mientras aprenden las idiosincrasias de un nuevo compilador.

Con todo lo dicho, cuando me dieron una opción para un cliente entre cambiarme a VS2008 / 2010 o Builder C ++ para un nuevo producto, elegí Builder, solo para el IDE de RAD.

Buena suerte.

Actualizado para C ++ Builder 10.2 (2017):

  1. Windows de 32 bits y 64 bits utilizan Clang / LLVM (al igual que iOS y Android)
  2. Windows de 32 bits y 64 bits ambos usan Boost 1.55
  3. 10.2 es muy estable, mejorando cada lanzamiento.

Esto sigue apareciendo en las búsquedas de Google, por lo que se actualizó nuevamente para Berlin 10.1:

  1. El código de 32 bits y 64 bits ahora usa CLANG / LLVM para Windows
  2. El código de 32 bits para OS X todavía usa el compilador antiguo
  3. Las compilaciones de Android y iOS usan CLANG / LLVM