Ако трябва да разсъждаваме в краткосрочна перспектива, наистина въпросът за преносимостта между платформите става особено болезнен. И не само заради 64 битовите архитектури, но, също, и заради дву- и многопроцесорните системи, да не говорим за кашата, съществуваща при мобилните устройства.
На пръв поглед всичко е много просто. Имаш перфектен сорс за една платформа, пипваш го леко с оглед особеностите на новата, компилираш със съответния компилатор, тестваш и толкова...
От подобна гледна точка C++ изглежда безспорен. Езикът е толкова силно разпространен, че едва ли има платформа, за която да няма разработен компилатор, при това добре изпипан. При това има универсални възможности - от програмиране "до желязото" до засукани потребителски интерфейси. Плюс това е усъвършенстван до степен да спре да се развива съществено (
).
Комай единственият конкурент на C++ е Делфи. С това уточнение, че ми се вижда доста по-дървен, а и въпросът с компилаторите за различни машини е доста по-мътен.
От друга страна, можем да погледнем откъм лекотата и разходите по преноса. Тук вече Java и C# (като че ли пък има някаква разлика ) започват да изглеждат за предпочитане. Не е нужно да прекомпилираш и тестваш новия компилат. Не е нужно да бърникаш по текста преди това. Всички такива грижи са на съвестта на разработчиците на съответната VM (сега ще последва, може би, възражението, че това са интерпетиращи езици). Още повече, това са, засега, езиците на мобилните устройства, а към днешна дата там има големи пари за прибиране. Но пък трудно те пускат "до желязото". Инвестицията на време за научаване може да се окаже огромна. В същност няма научаване (не говоря за ядрото на езика, то се учи за 1-2 седмици). Само в C# има няколко десетки хиляди специализирани функции - върви ги запомни! За щастие inlinе-help-ът на VS решава проблема до голяма степен. Подобно е положението и с Java...
Инвестицията в IDE. Общо взето за всички изброени тя е около нулата. Студиото на Sun е доста по евтино от VS на M$, но това едва ли е от значение. И за двете има безплатни заместители, при това съвсем не по-лоши.
Пакетът VS има един огромен недостатък - привързва те към софтуерната среда на M$, съответно към ориентирания към нея хардуер.
Развитие и усъвършенстване. Тук, струва ми се, C++ вече запецна на място. Чета из Мрежата, че пускат някои дребни подобрения на възможностите за multithread с оглед приложения върху многоядрени процесори и толкова. Вярно, че не следя много-много въпроса. Java се развива доста бързо, версията 6 се появи по-малко от половин година след 5-ицата, обновяванията й вървят горе-долу през 2 месеца. C# се обновява при всяка нова версия на VS, но несъществено. Изглежда от M$ избягват да го разбутват преди да са издухали Java от мобилния пазар, за да не отблъснат разработчиците.
Ами, стига толкова.