2009-01-12 14 views
15

Zdecydowałem, że chcę uzyskać więcej w rozwoju kodu natywnego w C++. Próbuję zdecydować, czy będę lepiej obsłużony przy użyciu CodeGear C++ Builder 2009 lub Visual Studio 2008. Obecnie używam Delphi 2007, więc jestem bardzo zadowolony z IDE C++ Builder (jest taki sam jak Delphi), a także VCL i RTL.C++ Builder lub Visual Studio dla natywnego programowania C++?

Nigdy nie byłem wielkim fanem MFC (od pierwszego grania z nim w VS 6.0 dni), ale od tego czasu nie przyglądałem mu się od razu.

Jestem zainteresowany słuchaniem od niektórych ekspertów, którzy mają doświadczenie z obydwoma IDE, niezależnie od tego, czy są to najnowsze wersje, czy nie.

W tej chwili jestem skłonny do C++ Builder, ponieważ uważam VCL jest o wiele bardziej niezawodne i łatwiejsze w pracy niż MFC --- ale jak już powiedziałem, minęło trochę czasu odkąd użyłem MFC. Nie jestem zainteresowany budowaniem programów bazujących na .NET Framework, ponieważ częściowo uczę się rodzimego rozwoju. Czy MFC wciąż jest królem dla Windows C++? A może to jest WTL czy ATL?

Dowolni guru C++, którzy chcą podzielić się swoimi opiniami?

EDIT: Rozumiem, że MFC nie jest jedynym zestawem narzędzi GUI dla Visual Studio. Jednak szukam zaleceń opartych na zestawie narzędzi GUI + IDE. Dla C++ Builder istnieje tylko jedna realna opcja, którą jest C++ Builder + VCL. W przypadku VS 2008 jest to VS + MFC/ATL/WTL/QT .... mylące dla mnie, ponieważ nie wiem zbyt wiele na ich temat.

Odpowiedz

15

Pochodzących z Delphi, znajdziesz VCL proste do użycia z C++ Builder. Istnieje kilka osobliwości, takich jak C++ nie ukrywa faktu, że TObjecty są naprawdę wskaźnikami (które Delphi ukrywa przed tobą), a niektóre rzeczy, takie jak właściwości tablicy, są dostępne w różny sposób.

Dwa lub trzy lata wstecz, szukałem jakiejkolwiek drogi wyjścia z C++ Builder, ale teraz, z ostatnimi wydaniami (i zakupem Codegear przez Embarcadero), jestem zadowolony z produktu i kierunku.

Liczba typów łańcuchów i różne potencjalne niezgodności są dość bolesne w C++ Builder, ale przywykniesz do tego! (std :: string, char [], wchar_t [], TCHAR, AnsiString, WideString, UnicodeString i String, aby wymienić tylko kilka)

Osobiście zagłosowałbym na C++ Builder - z powodu dwukierunkowego RAD i VCL , chociaż może nie być najlepszym sposobem na poznanie nowoczesnych idiomów C++.

13

Visual Studio i MFC nie są takie same. Cały czas używam Studio i unikam MFC jak ognia. Możesz używać WTL, ATL, Win32 lub dowolnej liczby bibliotek do tworzenia aplikacji bez MFC.

+0

Jeśli nie używasz MFC, to jakie inne biblioteki GUI wolisz? – Mick

+3

+1 dla WTL. Nie jest to oficjalna obsługa, ale jedna z najlepszych bibliotek GUI, z jakimi kiedykolwiek pracowałem (trzecia po VCL, druga po TurboVision). –

+0

Zazwyczaj WTL (chociaż używałbym prostego Win32 lub robiłbym własne zanim sam wybierze MFC) – ctacke

2

Po drugie, pracuję dla C++ Builder, biorąc pod uwagę, że już znasz Delphi. MFC niewiele się zmieniło od czasów VS6, więc kod napisany przy użyciu MFC nadal wygląda jak gówno. Jednak VS się zmienił i jest teraz całkiem dobrym IDE.

Należy również pamiętać, że C++ Builder nie jest stabilny jako linia produktów. W przeszłości zdarzały się sytuacje, w których nie była ona utrzymywana/jej przyszłość nie była jasna itd. Więc ryzykujesz, jeśli chcesz zbudować coś, co trwa.

10

Prosta odpowiedź jest taka, że ​​dla czystego rozwoju C++ musi to być VC++.

Aby rozwinąć: jako czyste środowisko programowania w C++, po prostu nie można pokonać VC++, debugger jest lepszy, IDE jest lepszy (wszystkie IMHO, oczywiście).Używałem go do rozwijania bibliotek, które następnie używam z C++ Builder z tych powodów.

Jednak po rozpoczęciu rozwoju interfejsu użytkownika lub cokolwiek, co można rozwiązać za pomocą VCL lub składników C++ B jest lepszym wyborem. W porównaniu do VCL, MFC lub ATL są w porównaniu z nim straszne, więc pozostawiasz do używania .NET, który jest prawdopodobnie lepszym rozwiązaniem, ale nie jest to

Nie jestem pewien, czy poleciłabym zbudować nowy produkt przy użyciu C++ B lub Delphi na podstawie ostatnich kilku lat "kierunku" od dostawców. Wydaje się, że zmienia się to na lepsze, ale dopóki nie minie trochę czasu, trudno jest powiedzieć, w jaki sposób obietnice przekładają się na rzeczywistość.

+1

Masz na myśli darmowa wersja (Visual Studio Express) też? Znalazłem to zbyt ograniczone. –

1

Jeśli chodzi o tworzenie okien, nic tak naprawdę nie jest na szczycie Visual Studio. Jest bardzo bogaty w funkcje i ma doskonały debugger, nie wspominając o ogromnej społeczności użytkowników, którzy pomogą ci z problemami, które możesz napotkać. Jeśli narzędzia programistyczne firmy dla własnego systemu operacyjnego nie były dla niego najlepsze, obawiałbym się ich statusu w świecie oprogramowania. Ale jeśli nie potrzebujesz dodatkowych funkcji i absolutnie potrzebujesz narzędzia RAD z opcją przeciągnięcia & drop (oprócz MFC), budowniczy C++ nie jest zbyt daleko w tyle. Używanie wcześniejszego środowiska delphi to tylko korzyść dla ciebie.

5

Nie używałem C++ Buildera od lat, ale na temat debugowania C++, Visual Studio 2008 wychodzi przed innymi IDE i poprzednimi VS, szczególnie jeśli korzystasz z kontenerów STL, ponieważ bardzo łatwo sprawdzają ich zadowolony.

Jednak po stronie GUI C++ jest teraz bardzo językiem drugiej klasy dla Microsoft. Sposób na przyszłość to WPF i C++ is not supported as a XAML-friendly language: Będziemy nadal inwestować w C++/CLI, aby umożliwić programistom ekspozycję natywnych zasobów C++ na zarządzany świat i na odwrót. Wierzymy, że czysty rozwój .NET jest najlepiej wykonany przy użyciu języka skoncentrowanego na .NET, takiego jak C# lub VB. Inwestowanie w C++/CLI będzie odbywać się głównie w natywnie zarządzanych obszarach współdziałania.

Tak więc, aby stworzyć nowoczesnym wyglądzie C++ GUI, najlepszym rozwiązaniem może być rzeczywiście VCL - jeśli VCL kontynuuje zrobić takie możliwe ;-)

2

Tylko dla piekła tego, możemy rzucać w zaćmieniu do miksu?
Właśnie znalazłem pracę w Zaćmienie, aby być lepszym niż praca w visual studio.

Jeśli nie używasz VS2008 z winformami, obsługa GUI odbywa się poprzez szablony okien (zazwyczaj z zasobów), które są stare i prawdopodobnie nie chcesz ich używać. Więc obsługa GUI w VS2008 nie jest taka wyjątkowa.

chodzi o gui Toolkit, może zobaczyć What is a good GUI/widgets toolkit

1

jednej rzeczą ostatni C++ Builder przez CodeGear - mam na myśli wersję 2009 - jest to, że jego aktualizacje mogą naprawdę sprawiają, że nienawidzę tego IDE.
Po zainstalowaniu drugiej aktualizacji dowiedziałem się, że jeśli/else blok DOESNOT DZIAŁA PRAWIDŁOWO. Może wpisać instrukcję IF, ale nie może wpisać innej - i nie zależy od sytuacji - ta instrukcja języka w ogóle przestała działać. Czas, jaki potrzebowałem, aby to zrozumieć, wynosił dwie lub trzy godziny - i zacząłem opracowywać potrzebną aplikację Win32 w VS, uważam, że jest bardziej niezawodny niż produkt CodeGear. Druga funkcja Nie podoba mi się, że nie można wyłączyć obsługi Unicode i muszą używać ANSI wersji funkcji Win32 DOSKONAŁA (np. SendMessageA (...)), która jest bardzo nudna. Ledwie dotrzymuję terminu, aby ukończyć pracę przy użyciu VS2008.
To tylko moje doświadczenie, wybór do wykonania jest Twój

+0

Czy masz numer raportu QC dla problemu if/else? – Roddy

+4

Ponadto, jeśli ustawisz opcję "TCHAR = char", otrzymasz wywołania ANSI win32. ustaw go na "wchar_t" dla wywołań Wide Win32. – Roddy

6

Jeśli pracujesz nad czystym rozwojem C++ w systemie Windows, trudno jest pokonać VS. Kompilator jest szybki, spełnia standardy i tworzy dobrze zoptymalizowany kod. Debugger jest najlepszy na każdej platformie. IDE jest w porządku.

Jest to również najbardziej popularny program narzędziowy do kompilacji w systemie Windows. Pobierz dowolny projekt/bibliotekę open-source, a jeśli system Windows jest obsługiwany, prawdopodobnie został zbudowany i przetestowany przy użyciu VS. Jego popularność zapewnia również, że jest najbardziej przydatna do wznowienia.

Co daje Builder? Rozsądna biblioteka GUI. Cóż, to dobrze, ale istnieje wiele innych porządnych zestawów narzędzi GUI (wxWidgets, GTK, Qt itp.). Wiele z nich to rozwiązania open source i wieloplatformowe.

Jednak obecnie uważam, że lepiej jest zrestrukturyzować moje aplikacje, aby zapewnić interfejs API, a następnie zbudować GUI na nim w innym języku. Siła C++ jest nie w rozwoju GUI. Przynajmniej nie dzisiaj ...

Wybrałbym - i polecam - VS nad Builderem.

2

Cóż, można użyć Eclipse + MinGW + Qt4 + QT Eclipse integracja i uzyskać wszystkie rzeczy: debugger, wizualne projektant GUI itp

pamiętać, że Qt4 jest podwójnie licencjonowane: Open Source i licencji komercyjnej .

Możesz także połączyć Qt4 z Visual Studio (nawet z Expressem) i korzystać ze wszystkich zalet VS.

Dla mnie Qt4 to sposób na przejście i VS nad Builderem.

1

Kochałem C++ Builder kilka lat temu. To było fantastyczne. To było o wiele lepsze z VCL niż VS z niezgrabnym MFC. Potem co roku zmienia się sytuacja.

Konstruktor schodził w dół; 1. Builder nie został zaktualizowany o żadną rzeczywistą funkcjonalność. 2. Firma Borland zrezygnowała z przepisywania VCL w C++ do użytku z Kylix i Builderem. 3. CodeGear bałagan i niepewna przyszłość Buildera spowodowały, że wiele osób przestało działać.

VS jest coraz lepszy; 1. IDE został znacznie poprawiony 2. Kompilator z najmniej zgodnego ze standardem na platformie Windows stał się najbardziej zgodny z normami (nie licząc GCC na MinGW oczywiście) 3. Pojawił się .NET i był Managed C++ oraz następnie C++/CLI, aby umożliwić korzystanie z tej platformy z poziomu C++

Mamy nowych, silnych graczy 1. Eclipse 2.Qt Creator

i nowe zestawy narzędzi GUI

  1. wxWidgets
  2. Qt4 ma teraz również licencji open source,

podsumować; Builder jest martwy, ponieważ Borland

  1. myślał Delphi jest tak wspaniały, że naprawdę nie trzeba nic więcej zarabiać
  2. spadła do szumu Java i zainwestował zbyt wiele zasobów w nim
  3. nie rozumieli wielka moc C++ i zamiast tego stos do pascala, który zawsze był językiem akademickim, bez rzeczywistych produktów, które go stworzyły.
+0

Qt nie ma prawdziwych portów macierzystych, takich jak wxWidgets. Mamy na myśli to, że chociaż Qt rysuje je dość realistycznie, Qt tworzy własne widżety na każdej platformie. (http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits#Qt) – Mick

+0

"1. Builder nie został zaktualizowany o żadną rzeczywistą funkcjonalność" Tak było w 2004 roku, kiedy wyglądało na to, że Borland porzuci C++ Builder i pójdzie z C++ BuilderX. Od tego czasu wydarzyło się wiele rzeczy (C++ Builder 2006, 2007, 2009). –

3

C++ Builder jest znacznie lepszy od MS-VS, jeśli chodzi o aplikację opartą na interfejsie użytkownika i aplikacji zorientowanej na bazę danych. MFC jest do bani !! Jednak VS ma lepsze możliwości debugowania.

0

2012 prawie się kończy. Byłem użytkownikiem C++ Borlanda, a następnie przekierowałem do VC++ 6.0. Ostatnio istniał wymóg od klienta, który chciał mieć koniec GUI dla swojego produktu i nie chciał zależności od platformy .NET. więc zbadałem Embarcadero RAD Studio XE2.

Jeśli chodzi o programowanie w języku C++ RAD, nie sądzę, aby nawet MSVC++ było do niego zbliżone. To było jak bryza. chociaż znalazłem problemy podczas kompilowania szablonów. na przykład, jeśli zdefiniujesz funktora i chcesz połączyć konstruktor z wywołaniem funktora, nie możesz tego zrobić w C++ B, musisz stworzyć obiekt, a następnie osobno wywołać funktor. Były też inne problemy, ponieważ nie mogłem w pełni skompilować biblioteki Poco.

Znalazłem rozwiązanie, tworząc biblioteki DLL w VC++ i wywołując je z interfejsu C++ B. to daje to, co najlepsze.

Mam nadzieję, że Embarcadero wkrótce spełni normy.

1

Wypróbuj Łazarza. Napisz raz, skompiluj wiele. Działa na wielu platformach. Każdy, kto pochodzi z Delphi i Kylix, będzie czuł się jak w domu dzięki temu narzędziu RAD. Jeśli chodzi o przyszłość, jest to open source z silną społecznością, rozwój będzie kontynuowany bez ograniczeń komercyjnych.

Powiązane problemy