Щом сте отворили линка, за да прочетете тази статия, значи със сигурност сте си задавали тези въпроси или подобни. Може би сте пускали търсачките в опит да намерите бърз и лесен отговор – няма лошо – в наши дни всички го правим. По всевъзможни поводи….
Но все пак, знаем, пак от опит, че истината или най-правилния отговор далеч не винаги излиза в топ резултатите на търсачките, а често не е най-правилния отговор, поне пречупено през призмата на индивидуалните потребности, възможности и интереси, така, че, прочитайки тази статия, тя може да ви даде отговора, който търсите ако някак от до сега видяното и прочетеното, все още се колебаете заслужава ли си С++, отживелица ли е щом има по-нови/модерни езици, или има ли бъдеще С++?
Краткия отговор, който никоя търсачка няма да ви даде, е: няма еднозначен отговор! Все пак, определено C++ е МНОГО далеч от залязване. Всеки, който твърди обратното, просто е лаик или изразява лично пристрастно мнение към единствения друг език, който владее. Не случайно С++ вече над 25 години е фаворит сред търсените и ценени езици за програмиране. А последните 10, твърдо се е „заковал“ на почетната 4-та позиция от над 243 съществуващи езици за програмиране (виж „Very Long Term History“).
Не е толкова въпроса до дали трябва да уча С++, а по скоро, защо ми трябва езика, за какво ще го ползвам?
C ++ е изключително мощен език за програмиране, който е отличен избор за ситуации, когато е необходима висока производителност и прецизен контрол върху паметта и други компютърни ресурси.
Ето няколко често срещани типа приложения, които са писани и най-вероятно ще продължат да бъдат писани, разширявани или поне поддържани на C++:
- Браузъри – тези, за които се сещате, да, Google Chrome също!
- Видео игри като Counter Strike, Warcraft III и още стотици други!
- Гейм енджини;
- Графични приложения и симулации, например всички продукти от криейтив сюитата на Adobe (Photoshop, Illustrator, InDesign, Premiere Pro, Acrobat Reader и т.н.);
- Високо производителни офис приложения като най-популярния продукт на Microsoft – Microsoft Office;
- Десктоп приложения за възпроизвеждане на аудио и видео, например VLC media player;
- Системи за управление и следене в реално време (например за транспорт, производство и др.)
- Финансови приложения за следене и прогнозиране на трендове, които са незаменим инструмент в банковата и финансовата сфера на всички нива;
- Още десетки десктоп приложения- всъщност, С++ е един от водещите езици в това отношение и изпреварва по-модерния C# поради факта, че последния се ползва само под Windows OS и се поддържа от една единствена софтуерна компания-гигант – Microsoft, докато на С++ се създават всякакви десктоп приложения за различни операционни системи.
- Нещо повече, на С++ са написани доста от днешните операционни системи, например Apple – OS X, Windows също. Наред с прародителя си – езикът С, С++ се използва в много Linux дистрибуции.
- Като споменахме С, който все още е лидер в програмирането на вградени системи (Embeded systems programming), другия лидер в това отношение е С++.
За разлика от С обаче, С++ е обектноориентиран и съдържа вградена в езика поддръжка на обектно-ориентирано програмиране. В C++ са добавени класове, множествено наследяване, виртуални функции, overloading, шаблони (templates), обработка на изключения (exceptions) и вградени оператори за работа с динамична памет. Поради заимстване на множество концепции от C++, езикът Java има много общи черти със C++. Ето защо тези, които знаят Java, изключително лесно и бързо научават и започват да пишат и на С++ и обратно.
В „The Design and Evolution of C++ (1994)“ Бярне Строуструп, създателя на този език, изяснява някои от правилата, според които той е моделирал C++:
- C++ е моделиран като статичен език за общи цели, като запазва ефикасността и преносимостта на C
- C++ е създаден да поддържа множество стилове на програмиране (процедурно програмиране, абстракция на данните, обектно-ориентирано програмиране и обобщено програмиране)
- C++ е създаден да дава избор на програмиста, дори той да е неправилен
- C++ е моделиран като умерен преход от C
- C++ избягва функции, които са платформенозависими
- C++ е създаден да работи без сложна среда за разработка
Има много среди за разработка на С++ (тези за обучителни цели са напълно безплатни), а самият той е сред предпочитаните езици за писане на среди за разработка. Така например Microsoft Visual Studio, най-мощната интегрирана среда за разработка (integrated development environment, IDE) на софтуерни приложения за Windows и за платформата .NET Framework, е писана на С++.
Основната философия на дизайна на C ++ може да се обобщи като „доверете се на програмиста“ – което е едновременно прекрасно и опасно. C ++ е проектиран да позволи на програмиста висока степен на свобода да прави това, което иска. Това обаче означава, че езикът често няма да ви спре да правите неща, които нямат смисъл, защото ще предположи, че го правите по някаква причина, която не разбира.
Има доста клопки, в които има вероятност новите програмисти да изпаднат, ако не бъдат хванати. Това е една от основните причини, поради която да знаеш какво не трябва да правиш в C ++ е почти толкова важно, колкото да знаеш какво трябва да правиш. По тази причина е препоръчително езикът да се учи най-добре от опитни преподаватели в учебни центрове, специализирани за целта.
Идеално е да започнете курс по C ++ в учебен център, защото там ще ви научим на всичко, което трябва да знаете (включително клопки, които да избягвате) по пътя. Освен това усвояването на знания е далеч по-бързо и ефективно, отколкото самотното четене на дебели книги или ровене в сайтове, където нещата невинаги са систематично поднесени и коректни, а обратната връзка с автора, доколкото я има, е доста по-бавна, отколкото директния контакт с преподавателя от учебния център.
Разбира се, винаги остава опцията „питай приятел“, но тук се връщаме в началото на статията, където вече посочих, че това е свързано с много субективизъм, а и зависи колко наистина опитен и знаещ е вашия приятел…… Винаги е по-добре да разчитате на няколко източника на знания.
Ето още няколко полезни съвета от водещи специалисти каква е рецептата за успешния и добре реализиран (разбира се и добре платен) програмист:
- Научи поне пет или шест езика за програмиране. Сред тях да има език като C++ или Java с абстракция чрез класове.
- Може, ако искаш, да отделиш четири години за университет. Това ще ти осигури достъп до работни места, за които се изисква образователен ценз, а ще ти даде и по-дълбоко разбиране на областта. Ако пък училището не ти допада, можеш да придобиеш подобни умения и на курс, стига да бъдеш достатъчно отдаден на това.
- Във всеки случай ученето само от учебник няма да стигне. „Образованието по информатика не може да направи никого истински програмист, поне доколкото и чрез изучаване на четки и бои не се става художник “– това казва Ерик Реймънд, авторът на „Нов речник на хакера“.
- Един от най-добрите наемани от мен програмисти беше с едва средно образование, но той написа множество страхотни програми. Сега има фенгрупа в мрежата и спечели достатъчно на борсата, че да си купи нощен клуб. (Става дума за Джейми Завински (Jamie Zawinski).
В заключение ако все още се чудите, знайте, че работа за C++ програмисти винаги ще има, но хората, които се занимават с него, ако започват от нулата, е логично да се водят начинаещи по-дълго време. Курс по програмиране на С++ би ускорил значително времето за започване и надскачане на първите стъпки.