среда, 13 мая 2009 г.

Мысли о фишках C++0x

Прочитал тут материалы проходящего БустКона и подумалось:

Сейчас много идёт обсуждений о том, что будет реализовано в новом стандарте: лямбды, статические ассерты, концепты, аспектное программирование, rvalue references, variadic templates, новое поведение цикла for  и т.д. и т.п.

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

  • auto типизация - не морочим голову с тем как же пишется определения возвращаемых итераторов и лямбд, и смерть применению auto для локальных переменных;
  • списки инициализации - наконец-то простое заполнение контейнеров;
  • лямбда-функции и новое поведение for/for_each - перестаём ломать голову с функторами в обощённых алгоритмах;
  • строгая типизация enum - нет извращениям в преобразованиям к целочисленным типам и назад при работе с enum;
  • shared_ptr - garbage collector уже рядом.

Эти "мелочи" за счёт своей легкости применения и чрезвычайно малого порога вхождения окажут наибольшее влияние на пишущих на C++. А вот тяжеловесные "новости" окажут очень слабое влияние - просто потому, что их будут применять чрезвычайно редко. Вон аспекты уже года 4 есть в C# - а как много людей пишет с их применением? Так что простота продолжит управлять миром.

Вот если бы работу с шаблонами сделать ещё проще, то с помощью вариативных шаблонов, можно было бы грохнуть, наконец, макросы, несущие функциональную нагрузку окончательно. А сколько они крови попили...

PS

Вот интересно, как концепты уживутся с range'ами, которые начинает продвигать Александреску?

вторник, 5 мая 2009 г.

книга "My Job Went to India"

Закончил чтение "My Job Went to India" Chad Fowler.

Книга довольно хорошая, хотя часть советов были ожидаемы - видно что было написано в рамках "Pragmatic Programmer". Но вот главы с советами, которые касаются именно взаимодействия с людьми, как с точки зрения взаимодействия с коллегами, так и с точки зрения взаимодействия с менеджерами, - довольно неожидано и свежо, по крайней мере для меня. В частности всплыла притча-загадка "кто есть ученик для учителя".

А глава "If You Can’t Beat ’Em" достойна отдельного упоминания, т.к. показала причины проблем комуникаций с заказчиками в offshore программировании - честно говоря не ожидал такого хорошего разбора полетов. Сколько же наступал на эти грабли...

Может кризис сказался, может мое общепасмурное настроение, но впечатление осталось депресивное от книги. Хотя книги в целом из серии обязательных к прочтению. Жаль что её перевод выйдет не скоро, а если и выйдет, то будет классическим тяп-ляпским.