*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***

среда, 17 ноября 2010 г.

Активный язык

В интервью проекту "OpenQuality" в сказал, что не имею особого пристрастия к конкретному языку. Важен проект, а не язык, на котором он реализуется.

А как насчет вопроса «а на каком языке вы наиболее продуктивны»?

Например, спортивное программирование, где нужно как можно быстрее выдать работающий код, нагруженный часто сложными алгоритмами.

Кстати, есть распространенное заблуждение, что спортивное программирование – это обычно куча корявого и запутанного, хоть и работающего кода, который совершенно непригоден для «обычного» программирования. Это не так, и зависит от конкретного человека. Можно, например, посмотреть код двух ТопКодеровских лидеров – ACRush и Petr. Код второго очень чистый, начиная от нормального форматирования и заканчивая общей понятной структурой решения. Код же первого же – обычно по внешнему виду оставляет желать лучшего (хотя это нисколько не умаляет его бесспорного лидерства), и читать его гораздо сложнее.

Так вот, я задал себе вопрос – а на каком языке я бы мог участвовать в контестах, где идет учет времени, и нет возможности копаться в документации по языку или библиотеке? И честно говоря, С++ находится далеко впереди Java и C# (Си не берем из-за бедности стандартной библиотеки). Мой уровень «погружения» в С++ (моменты языка, бесчисленные шаблоны уже виденного кода, знание библиотеки и т.д.) не сравним с той же Java.

А сколько языков у вас «живут в пальцах»?

9 комментариев:

  1. Этот комментарий был удален автором.

    ОтветитьУдалить
  2. А может быть от языка?) Петр раньше насколько я помню на C# писал, сейчас правда в профиле ява стоит. Те же самые макросы C++ - и доп. функциональность и обфукусация (для challenging).

    ОтветитьУдалить
  3. PS. Мнение Петра:
    http://codeforces.ru/blog/entry/316
    (чуть вниз пролистать)

    ОтветитьУдалить
  4. На данный момент я бы скорее всего участвовал в совревнованиях на Python, С# или C++ (последний - сильно слабее), на языках, в которых можно либо использовать лямбда-функции, либо передавать функцию в качестве аргумента.

    Не далее как вчера мучался с Джавой, надо было просплитить строчку по ";" и вернуть массив, убрав всякие там ненужные пробелы.
    На любом из вышеперечисленных языков это бы выглядело как-то вроде map( trim, string.split( ";" ) ), а на джаве целый огород пришлось городить.

    ОтветитьУдалить
  5. @Игорь "dotSimpl" Мандригин:

    На Джаве это делает класс java.util.StringTokenizer ;)

    ОтветитьУдалить
  6. @Игорь:
    Тот же split() позволяет делить регулярками, в которые можно и лишние пробелы вокруг разделителя поместить

    ОтветитьУдалить
  7. Язык?? С++, однозначно, хотя смотря для чего. Многие вещи на плюсах(после других языков) делать все-таки долго и это раздражает).

    Начал работать в виме, руки стали привыкать к его горячим клавишам. Интересно замечать, как на автомате удаление строки делается не Delete-ом, а dd, или как в простом текстовом редакторе руки начинаются тянутся к Esc для перехода в командный режим. :)

    ОтветитьУдалить
  8. кстати, давайте дружить блогами =)

    ОтветитьУдалить
  9. Один язык: C#. Когда-то давно вместо него был Delphi.

    ОтветитьУдалить