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).