А как насчет вопроса «а на каком языке вы наиболее продуктивны»?
Например, спортивное программирование, где нужно как можно быстрее выдать работающий код, нагруженный часто сложными алгоритмами.
Кстати, есть распространенное заблуждение, что спортивное программирование – это обычно куча корявого и запутанного, хоть и работающего кода, который совершенно непригоден для «обычного» программирования. Это не так, и зависит от конкретного человека. Можно, например, посмотреть код двух ТопКодеровских лидеров – ACRush и Petr. Код второго очень чистый, начиная от нормального форматирования и заканчивая общей понятной структурой решения. Код же первого же – обычно по внешнему виду оставляет желать лучшего (хотя это нисколько не умаляет его бесспорного лидерства), и читать его гораздо сложнее.
Так вот, я задал себе вопрос – а на каком языке я бы мог участвовать в контестах, где идет учет времени, и нет возможности копаться в документации по языку или библиотеке? И честно говоря, С++ находится далеко впереди Java и C# (Си не берем из-за бедности стандартной библиотеки). Мой уровень «погружения» в С++ (моменты языка, бесчисленные шаблоны уже виденного кода, знание библиотеки и т.д.) не сравним с той же Java.
А сколько языков у вас «живут в пальцах»?
Этот комментарий был удален автором.
ОтветитьУдалитьА может быть от языка?) Петр раньше насколько я помню на C# писал, сейчас правда в профиле ява стоит. Те же самые макросы C++ - и доп. функциональность и обфукусация (для challenging).
ОтветитьУдалитьPS. Мнение Петра:
ОтветитьУдалитьhttp://codeforces.ru/blog/entry/316
(чуть вниз пролистать)
На данный момент я бы скорее всего участвовал в совревнованиях на Python, С# или C++ (последний - сильно слабее), на языках, в которых можно либо использовать лямбда-функции, либо передавать функцию в качестве аргумента.
ОтветитьУдалитьНе далее как вчера мучался с Джавой, надо было просплитить строчку по ";" и вернуть массив, убрав всякие там ненужные пробелы.
На любом из вышеперечисленных языков это бы выглядело как-то вроде map( trim, string.split( ";" ) ), а на джаве целый огород пришлось городить.
@Игорь "dotSimpl" Мандригин:
ОтветитьУдалитьНа Джаве это делает класс java.util.StringTokenizer ;)
@Игорь:
ОтветитьУдалитьТот же split() позволяет делить регулярками, в которые можно и лишние пробелы вокруг разделителя поместить
Язык?? С++, однозначно, хотя смотря для чего. Многие вещи на плюсах(после других языков) делать все-таки долго и это раздражает).
ОтветитьУдалитьНачал работать в виме, руки стали привыкать к его горячим клавишам. Интересно замечать, как на автомате удаление строки делается не Delete-ом, а dd, или как в простом текстовом редакторе руки начинаются тянутся к Esc для перехода в командный режим. :)
кстати, давайте дружить блогами =)
ОтветитьУдалитьОдин язык: C#. Когда-то давно вместо него был Delphi.
ОтветитьУдалить