Привет!
Вот мои пять копеек...
Чтобы избежать наездов, кратенько о себе...
12 лет опыта промышленного программирования, 5 лет опыта управления разработкой, сейчас являюсь главой департамента аутсорсинга в крупной (по меркам России) software фирмы, непосредственно у меня работает около 40 человек программистов.
Я непосредственно участвовал или руководил в 9-ти крупных (начиная с 2 чел/лет) проектами. Мелких - лень считать. Самый крупный как раз связан с топиком - RescueWare - система реинжиниринга т.е. перевода приложений со старых платформ на новые (>400 чел/лет разработки).
Из нерабочих достижений - 2 года подряд участие в международных олимпиадах по программированию, лучшее достижение - 5й по головам.
Кроме того я еще и преподаватель Санкт-Петербургского Гос. Университета, кафедра Системного Программирования.
Уф, надеюсь я не совсем лох по местным меркам.
Так вот.
Для начала парочка фактов.
На данный момент абсолютным рекордсменом по объемам разработки является язык Cobol - около 30%. Если я правильно помню, то второе место делят С/С++ и Asm (10-15%). PL/1 тянет на 7%, Java быстро набирает обороты - уже около 4.5%
Точные значения оценок у разных экспертов варьируются, но общая картина одна и та же.
Так что получается, что если брать мировую практику, то самый лучший язык - Cobol
А так, из моего опыта - НЕТ однозначно лучшего языка/среды. Каждый хорош в своей конкретной области.
Жизнь сложилать так, что из всех С/С++ наиболее популярен именно MSVC - более 60% разработки. Затем вариации GNU.
Если кто-то останавливается на чем-то одном, а о другом говорит, что это, мол, полный сакс, то это значит лишь то, что он мало сталкивался с реальными задачами.
Вот очень типичный пример из жизни. Мы работаем сейчас с одной крупной промышленной конторой (не могу называть иемни, sorry). Мы занимаемся системой оптимизации/автоматизации производства. Так вот, в этой системе есть куски на следующих языках:
- PL/1 и CA-EARL, SDF II, CICS -
для OS/390 на IBM mainframe
- Cobol + Visual Basic + NonStop SQL -
для Himalaya K2004
- ANSI C/C++, Informix, Motif/Borland C++ Builder -
для HP-UX на HP 9000 cluster
- Fortran77 + G2 + ANSI C + Motif/Visual Basic -
для Digital Unix на Compaq 4000 cluster
Вот такой вот коктейль. И что самое забавное - все это по делу. Просто одни куски проще (и дешевле) делать на одном, а другие на другом. На одном только С или одной только Java или чем угодно еще это все не напишешь, так что НЕТ лучшего языка.
Выбор языка для обучения - совсем отдельный вопрос.
IMHO, если готовить
хорошего программиста, то начинать надо с ASM'а, затем С (без плюсов!) и Паскаль (не Delphi), затем - С++, Java, Delphi, Visual Basic.
Почему?
Все очень просто.
ASM'у надо учить для того, чтобы человек понимал
во что будет превращаться его будущие программы. А также для того, чтобы он упарился, осознал, что программирование - сложная штука и приобрел
чувство быстрой программы.
Затем, обучаясь С и Паскалю, человек испытает великое облегчение и поймет, что АЯВУ - великая польза, но при этом он, имея асмовский опыт не будет писать наворотов.
Обучать плюсам надо уже осторожно.
Я знаю ОГРОМНОЕ количество молодых, которые не знают ничего кроме С++ и считают, что ОО - это круто! это панацея! надо писать
только ОО, потому что это круто!
Человек, прошедший асм и С без плюсов будет гораздо более скептически относиться к ОО и применять
только там, где надо, а не везде.
Я уже сейчас вижу толпу адептов ОО, которые предадут меня анафеме как еретика, так сто знайте, 7 лет назад я сам был великим фанатом ОО, но жизнь заставила признать, что ОО нельзя злоупотреблять.
Это сравнимо с тем, как в свое время похоронили самолеты - ведь есть же ракеты, ракеты могут все, пусть будут только ракеты!
Снова повторюсь - все хорошо в своей области. Нет лучшего языка. Нет лучшей технологии. Нет лучшего IDE и т.п.
Правда, есть откровенно плохие языки, технологии и IDE.
Например, Cobol или Watcom IDE.
Спасибо за внимание.