eao197 on the Web
Сайт Евгения Охотникова
[ Главная | Проекты | Описания | Об авторе ]

В поисках лучшего языка / Прощай C++?

В поисках лучшего языка
Почему я ищу новый язык?
Что не так с C++?
Что хочется найти?
Прощай C++?
Связано ли это с SObjectizer?
Языки
Тестовые программы

Значит ли все описанное здесь, что я говорю C++ "прощай"? Пока нет.

Прошел год после создания данного раздела, а я по-прежнему программирую на C++. И это не случайно.

За минувший год я написал на C++, наверное, больше кода, чем за два предыдущих. Во многом это связано с тем, что раньше я часто использовал Ruby -- было больше мелких задач, для которых более важными было быстрое написание кода, чем быстрая работа созданного кода. Сейчас ситуация значительно изменилась. Возрасли требования к ПО, написанному мной с использованием C++ и SObjectizer. Скорость работы программ становится критически важным фактором. В таких условиях недостатки C++ менее заметны по сравнению с возможностью создавать быстрый код. Как бы мне не нравился Ruby, но на нем не создаются системы с пропускной способностью в тысячи транзакций в секунду (на одном процессоре).

Искать альтернативу C++ я начал где-то в конце 2006 года. За это время я плотно познакомился с такими языками, как Scala, D, Eiffel, Nice. Менее плотно удалось взглянуть на C#, OCaml и Oberon. Пока еще не нашлось времени для изучения Ada 2005. Тем не менее, соскочить с иглы C++ не довелось. И, чесно говоря, не нашлось такого языка, ради которого это захотелось бы сделать -- у каждого языка есть какие-то недостатки или факторы, которые мешают мне в моих условиях предпочесть C++ одному из них

Но наиболее важной причиной является следующая: сменить язык разработки я смогу, наверное, только сменив место работы. А менять место работы очень не хочется (слишком много труда было вложенно, слишком хороший коллектив, слишком амбициозные планы и задачи стоят перед нами, чтобы просто так от них отказаться). Несмотря на все недостатки C++, продолжать развитие имеющихся у нас программных проектов, написанных когда-то на C++, гораздо выгоднее переписывания их на каком-то другом языке (пусть даже постепенное, растянутое на несколько лет). Я ощутил это очень четко и ясно некоторое время назад, когда мне в течении нескольких дней довелось перелопатить большой объем кода в поисках узких мест. Просто с течением времени я подзабыл, сколько же всего было написано, отлажено и внедрено. А тогда мне довелось об этом вспомнить и осознать весь масштаб этого безнадежного предприятия.

За прошедшее время мое отношение к C++ так же несколько изменилось. Я стал менее категоричен и более лоялен к C++. Наверное, это произошло по следующим причинам:

  • познакомившись с различными языками я стал лучше понимать сильные стороны C++ и преимущества, которые можно получить с его помощью для достижения высокой производительности кода;
  • язык C++ продолжает свое развитие и грядущий C++0x устраняет часть раздражающих меня недочетов в C++98/2003. В частности, очень радует добавление в язык лямбда-функций;
  • продолжается широкое развитие C++ библиотек. Регулярно выходят новые версии таких библиотек, как ACE, Qt, Poco, Boost и др. Что вселяет надежду на то, что ситуация с библиотеками различной направленности для C++ будет улучшаться.

Тем не менее, язык C++ далек от идеала, который бы хотелось использовать в работе каждый день. Но сменить его все равно пока не на что. Так что попрограммируем еще пару-тройку лет на C++ ;)

© 2007-2008 Е.А. Охотников
LastChangedDate: 2008-08-11 21:39:08
e-mail

К сожалению я не силен в грамматике, поэтому если вы увидели здесь какие-либо орфографические или синтаксические ошибки, то не сочтите за труд -- сообщите мне. Ваша помощь поможет мне сделать этот текст гораздо лучше.

Hosted by uCoz