Paweł Borawski

Paweł Borawski Student, Uniwersytet
w Białymstoku

Temat: Po co teraz nam Visual C++ 2012?

Witam!
Mam pytanie dotyczące środowiska VS C++ 2012 . Skoro celowym działaniem MS było usunięcie możliwości tworzenia aplikacji w C++\CLI tj. Winforms to do czego służy teraz VS C++ ? Co można pisać w VS C++? Tylko aplikacje Win32 API? Proszę o odpowiedzi.
Pozdrawiam, Paweł Borawski.

konto usunięte

Temat: Po co teraz nam Visual C++ 2012?

Po pierwsze nie myl pojęć. C++/CLI to język będący częścią platformy .Net, VS to IDE, VC++ to kompilator(cl) i IDE do języków C++ i C++/CLI, a czegoś takiego jak VS C++ nie ma.

C++/CLI od zawsze był małym potworkiem mającym tylko garstkę zapalonych użytkowników i miał służyć jako interop pomiędzy językami zarządzanymi i natywnym C++. Jako taki nie powinien być wybierany jako główny język nowych projektów a już szczególnie nie do UI.
Plan był taki, że jeśli masz jakiś natywny moduł, którego chcesz koniecznie użyć w zarządzanym projekcie to tworzysz cienki wrapper w C++/CLI.

Moim zdaniem ten język to kompletna pomyłka (ani to C++, ani C#). Sam MS chyba nie wie co z nim zrobić, bo choć jeszcze go wspierają (nawet przywrócili intellisense w VS2012, lol) to oficjalnych informacji o nim szukać ze świecą i wróżę z fusów, że w VS201X go wytną.
Teraz jest modny kolejny ukośnik - C++/CX, choć moim zdaniem czeka
go taka sama smutna przyszłość jak C++/CLI, tylko trochę później.

Jeśli możesz - nie pchaj się w to.Krzysztof Kawa edytował(a) ten post dnia 18.11.12 o godzinie 14:48
Sławomir Orłowski

Sławomir Orłowski PhD, physicist,
software
developer/architect
team leader...

Temat: Po co teraz nam Visual C++ 2012?

Krzysztof Kawa:
C++/CLI od zawsze był małym potworkiem mającym tylko garstkę zapalonych użytkowników i miał służyć jako interop pomiędzy językami zarządzanymi i natywnym C++. Jako taki nie powinien być wybierany jako główny język nowych projektów a już szczególnie nie do UI.
Nie zgadzam się. Składnia C++/CLI jest bardzo logiczna. Język spokojnie można wybrać do wszelakich projektów typu middleware, gdzie liczy się dostęp do natywnych składników Windows, dostęp do sterowników urządzenia oraz szybkość wykonywanego kodu i łatwość zarządzania natywnymi składnikami. C++/CLI jest do tego stworzony. Na pewno nie ma sensu wybierać do UI, ponieważ C# jest prostszy składniowo w tym aspekcie. Jednak po wejściu w wyżej wymienione rejony okazuje się, że C# ma męczącą składnie, za to C++/CLI czuje się jak ryba w wodzie.
Plan był taki, że jeśli masz jakiś natywny moduł, którego chcesz koniecznie użyć w zarządzanym projekcie to tworzysz cienki wrapper w C++/CLI.
C++/CLI ma znacznie większe możliwości niż C#. Nie chodzi tylko o proste wrapperki.

Moim zdaniem ten język to kompletna pomyłka (ani to C++, ani C#). Sam MS chyba nie wie co z nim zrobić, bo choć jeszcze go wspierają (nawet przywrócili intellisense w VS2012, lol) to oficjalnych informacji o nim szukać ze świecą i wróżę z fusów, że w VS201X go wytną.
E nie. Jest sporo książek. Na MSDN można wszystko znaleźć. Jest niszowy, ponieważ jest do zadań specjalistycznych.
Teraz jest modny kolejny ukośnik - C++/CX, choć moim zdaniem czeka
go taka sama smutna przyszłość jak C++/CLI, tylko trochę później.

Jeśli możesz - nie pchaj się w to.
Wydaje mi się, że koledze C++/CLI po prostu do niczego nie był potrzebny. Tak jak dla przykładu ja nie potrzebuję ... koparki, bo nie muszę kopać dużych dołów ;)

Jeśli potrzebujesz języka do zadań specjalnych na przełomie WinAPI/.NET + sterowniki urządzeń + rozbudowane obliczenia itd a całość chciałbyś udostępnić jakiemuś GUI napisanym w C#, to C++/CLI jest tym, czego szukasz.

(ja jestem tym zapaleńcem kochającym tego małego potworka - jest śliczny)

konto usunięte

Temat: Po co teraz nam Visual C++ 2012?

Jak napisałem - jest garstka, której się nie przekona, że są niszą nie bez powodu ;)
Wszystko co napisałeś - natywne api windows, sterowniki itp. można podejść w czystym C++. Z bibliotekami takimi jak Qt jaka jest zaleta hybrydowania native/managed? Tylko więcej potem zależności dla end usera...

No ale - mi ten język nie przeszkadza, jeśli ktoś lubi to jego sprawa, cieszę się jego szczęściem :) Dla mnie poza wrapperami na natywne komponenty inne zastosowania są kombinowaniem na siłę.

Natomiast chyba widoczne gołym okiem jest jaki jest stosunek twórców do niego - nie jest priorytetem w żadnym temacie. Jeśli się uda przy okazji czegokolwiek innego coś dodać to ok, jak nie to nie będziemy się nawet oglądać. Widać to choćby w wywiadach z kimkolwiek z MS. Jest to temat, który zbywają czym prędzej przechodząc do jakiejkolwiek technologii XYZ by akurat nie reklamowali, zdawkowo tylko wspominając coś w stylu "tak tak, nadal wspieramy, a teraz popatrzcie na nasze nowe lśniące komponenty WinRT".
Herb Sutter i jego grupka mają ogromny talent do wymyślania nowych wariacji na temat C++ i C++/CLI jest już starą zabawką, którą nie są zainteresowani, ale ze względu na tę właśnie grupkę zapaleńców muszą ciągnąć. "The end is nigh" :)
Paweł Borawski

Paweł Borawski Student, Uniwersytet
w Białymstoku

Temat: Po co teraz nam Visual C++ 2012?

Czyli rozumiem że piszę GUI w C# a całą resztę mogę spokojnie pisać w C++/CLI. Ale gdybym nie chciał jednak pisać w C++/CLI a jednak użyć VS C++ 2012 w to w jakim celu? Czy ogólnie do wszystkiego?
Tomasz M.

Tomasz M. never go full
retard!

Temat: Po co teraz nam Visual C++ 2012?

Paweł Borawski:
Czyli rozumiem że piszę GUI w C# a całą resztę mogę spokojnie pisać w C++/CLI. Ale gdybym nie chciał jednak pisać w C++/CLI a jednak użyć VS C++ 2012 w to w jakim celu? Czy ogólnie do wszystkiego?

Do wszystkiego czyli do czego? Ogólnie do wszystkiego to możesz użyć C++/C. Ba! Nawet assemblera ;]Tomasz M. edytował(a) ten post dnia 19.11.12 o godzinie 11:25

konto usunięte

Temat: Po co teraz nam Visual C++ 2012?

Paweł Borawski:
Ale gdybym nie chciał jednak pisać w C++/CLI a jednak użyć VS C++ 2012 w to w jakim celu? Czy ogólnie do wszystkiego?

Nie wziąłeś sobie za bardzo do serca mojej uwagi o nazewnictwie...
W VS2012 są 3 "podobne" języki:

- C++/CLI - część platformy .Net, moim zdaniem tylko do interop, a jeśli się da to unikać. Sławomir ma tutaj inne zdanie i to jest ok. Możesz sobie w nim pisac nawet UI jeśli chcesz. Z VS2012 zniknęły tylko szablony projektów (pliki .vsz), nie obsługa Windows Forms. Możesz sobie zaimportować spokojnie szablon choćby z VS2010 Express albo pobrać z netu. Ludzie, którzy nie załapali, że MS już C++/CLI nie lubi zaczęli je robić i udostępniać.
- C++/CX - nowy potworek. Natywny kod + wygodna obsługa komponentów WinRT. MS podpowiada, by używac go "na styku" tych dwóch rzeczy choć w praktyce będziesz miał ^ porozsiewane po całym kodzie.
- C++ - w twojej nomenklaturze: "do wszystkiego"
Sławomir Orłowski

Sławomir Orłowski PhD, physicist,
software
developer/architect
team leader...

Temat: Po co teraz nam Visual C++ 2012?

Krzysztof Kawa:
Jak napisałem - jest garstka, której się nie przekona, że są niszą nie bez powodu ;)
Wszystko co napisałeś - natywne api windows, sterowniki itp. można podejść w czystym C++. Z bibliotekami takimi jak Qt jaka jest zaleta hybrydowania native/managed? Tylko więcej potem zależności dla end usera...
Czasem takie zależności są nie do uniknięcia. W .NET wszystkiego się napisać nie da. Taki pomost w C++/CLI to fajna sprawa.

No ale - mi ten język nie przeszkadza, jeśli ktoś lubi to jego sprawa, cieszę się jego szczęściem :) Dla mnie poza wrapperami na natywne komponenty inne zastosowania są kombinowaniem na siłę.
Żeby nie było: cenię C# za prostą składnie i C# + VS za RAD całą gębą. Nie utrudniam sobie życia na siłę (nie liczyć kredytu hipotecznego).

Natomiast chyba widoczne gołym okiem jest jaki jest stosunek twórców do niego - nie jest priorytetem w żadnym temacie. Jeśli się uda przy okazji czegokolwiek innego coś dodać to ok, jak nie to nie będziemy się nawet oglądać. Widać to choćby w wywiadach z kimkolwiek z MS. Jest to temat, który zbywają czym prędzej przechodząc do jakiejkolwiek technologii XYZ by akurat nie reklamowali, zdawkowo tylko wspominając coś w stylu "tak tak, nadal wspieramy, a teraz popatrzcie na nasze nowe lśniące komponenty WinRT".
Herb Sutter i jego grupka mają ogromny talent do wymyślania nowych wariacji na temat C++ i C++/CLI jest już starą zabawką, którą nie są zainteresowani, ale ze względu na tę właśnie grupkę zapaleńców muszą ciągnąć. "The end is nigh" :)
No właśnie ogólnie czuje się, że Microsoft będzie teraz promowało tzw. "natywne" rozwiązania. W związku z tym, my programiści C++/CLI zejdziemy do podziemia i zaczniemy się organizować ;)
Sławomir Orłowski

Sławomir Orłowski PhD, physicist,
software
developer/architect
team leader...

Temat: Po co teraz nam Visual C++ 2012?

Paweł Borawski:
Czyli rozumiem że piszę GUI w C# a całą resztę mogę spokojnie pisać w C++/CLI. Ale gdybym nie chciał jednak pisać w C++/CLI a jednak użyć VS C++ 2012 w to w jakim celu? Czy ogólnie do wszystkiego?
Zależy od konkretnego projektu. Musisz się zastanowić.

konto usunięte

Temat: Po co teraz nam Visual C++ 2012?

Paweł Borawski:
Witam!
Mam pytanie dotyczące środowiska VS C++ 2012 . Skoro celowym działaniem MS było usunięcie możliwości tworzenia aplikacji w C++\CLI tj. Winforms to do czego służy teraz VS C++ ? Co można pisać w VS C++? Tylko aplikacje Win32 API? Proszę o odpowiedzi.
Pozdrawiam, Paweł Borawski.

C++ jako jezyk ogolnego przeznaczenia przezywa kryzys. Ogolnie jego zastosowanie mozna z grubsza podzielic na cztery segmenty:
- przetwarzanie danych
- gry
- sterowniki
- kody embedded
Na kazdym froncie toczy on w tym momencie walke.

Na przetwarzanie danych w sposob klasyczny (tj. super server) decyduja sie raczej instytucje, ktore z jakis powodow zyja ciagle w XX wieku i ktore nie do konca musza przeliczac koszty. Firmy komercyjne najczesciej korzystaja z rozwiazan takich jak AWS, gdzie moc obliczeniowa mozna kupic jak jest potrzebna i pozbyc sie szybko jak staje sie zbedna. Tutaj kroluje JAVA/C#, musze przyznac, ze chociaz nieoficjalny port (libs3) dla C++ istnieje, nie znam nikogo kto by z niego korzystal.

W grach jest tez ciezko. Popularnosc platformy iOS (+ ew. Android) jako mikro-konsoli zmienia rynek gier. ObjectiveC wchodzi szturmem na rynek. Nawet na Google Play (wartosciowo circa 1/4 rynku AppStore) "zaledwie" 20% gier korzysta z kodu C++. Dzisiaj oczywiscie duzo ludzi gra na PC/Xbox360/PS3, ale ich nastepnym urzadzeniem bedzie pewnie iPad, a tam znowu ObjectiveC. C++ pewnie zachowa sie w "powaznym" graniu, gdzie studia beda wydawac dziesiatki milionow na produkcje kolejnego hitu. Taka nisza w niszy.

Sterowniki: najbardziej popularne ARMowskie SoC nie tylko nie potrzebuja, ale nie umozliwaja w prosty sposob pisania sterownikow. Zostaja sterowniki do x86/x64, ktorego rynek, zarowno w deskopach (tablety) jak i serwerach sie kurczy.

W urzadzeniach wbudowanych przyszlosc tez wyglada nieciekawie dla C++. Wystarczy popatrzec na popularnosc takich urzadzen jak netduino (http://www.netduino.com/hardware/). Do prostych i srednio zaawansowanych zastosowan nie musisz wydawac fortuny (np. na Opc Servera), za £25 masz sterownik, ktorego programowanie jest smiesznie tanie, zuzycie energii znikome i ktory z latwoscia komunikuje sie przez siec z innymi urzadzeniami.

Microsoft od zawsze staral sie grac na wszystkie fronty, bo kazda zmiana spotykala sie z ogromnym oporem (Windows 8 nie jest wyjatkiem). Oni wiedza co robia, jezeli programiste sprobuja zmusic do drastycznej zmiany przyzwyczajen (np. jezyka programowania) to istnieje duze ryzyko, ze on wyemigruje poza ekosystem Wintela. Stawiam, ze stad bierze sie wsparcie dla Visual Basic jak i Visual C++.

Wg opinii rekruterow US dzisiaj lepiej postawic na JAVA/C#/.NET. Co ciekawe mialem okazje przeczytac pare artykulow ostrzegajacych przed wiazaniem sie w 100% tylko z platformami Microsoftu. W e-commerce 66% decyzji o zakupie (w US) podejmowane jest na urzadzeniu mobilnym (iPhone/iPad/Android). W jezyku angielskim nazywa sie to "disruptive change", chodzi z grubsza o to, ze zasady wg jakich dziala rynek przechodza dynamiczne zmiany. Istnieje realne ryzyko, ze w przyszlosci caly ekosystem Microsoftu (a z nim C++) zostanie zepchniety do niszy, dzialan korporacyjnych (w malych firmach coraz czesciej spotkac mozna BYOD = Bring Your Own Device, a to najczesciej iPad).

konto usunięte

Temat: Po co teraz nam Visual C++ 2012?

Sebastian Pienio:

Dużo w tym racji, ale jest wiele aplikacji w C++ pisanych całymi latami. Te aplikacje wciąż będą utrzymywane. Nikt nie wyrzuci ich do kosza i nie postanowi przepisać od zera w C#. Do ich utrzymania będzie wciąż potrzebna rzesza programistów...
Skoro nawet takie języki jak COBOL są jeszcze używane, tym bardziej C++ nie zginie przez najbliższe 10 lat.Adam Michalski edytował(a) ten post dnia 24.11.12 o godzinie 01:48
Paweł Borawski

Paweł Borawski Student, Uniwersytet
w Białymstoku

Temat: Po co teraz nam Visual C++ 2012?

Dzięki za wyczerpującą odpowiedz Panowie.

Następna dyskusja:

VS 2012 na tablecie




Wyślij zaproszenie do