?

Log in

No account? Create an account
Google™ Code Jam 2006 - Олег Етеревский [entries|archive|friends|userinfo]
Oleg Eterevsky

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Google™ Code Jam 2006 [16 August 2006|15:58]
Oleg Eterevsky
[Tags|, , ]

Весной я участвовал в общеевропейском турнире по программированию, проводимом Google и TopCoder. Тогда я не очень преуспел — занял 86-е место, в то время, как в финал проходили первые 50. Несколько дней назад в качестве (утешительного) приза пришла по почте футболка.

Нынче открылась регистрация на Google™ Code Jam 2006 — на сей раз соревнование общемировое. В набор допустимых языков программирования добавился питон. На нём-то я и буду писать. Лишние минуты за счёт более простого и короткого кода, думаю, не помешают.

LinkReply

Comments:
[User Picture]From: ontumuct
2006-08-16 01:09 pm (UTC)
а что это за язык?
(Reply) (Thread)
[User Picture]From: eterevsky
2006-08-16 02:06 pm (UTC)
Самый популярный из «скриптовых» языков. См. python.org. Впрочем, он всё чаще используется за рамками традиционной сферы применений скриптовых языков. Например, я видел вполне вменяемый аудио-плеер, написанный на нём.
(Reply) (Parent) (Thread)
From: paranoid_ant
2006-08-17 10:32 am (UTC)

кхе-кхе ....

что то мне подсказывает, что самый популярный все таки perl (хотя в каких попугаях измерять популярность не ясно).

Если имелся в виду Quod Libet, то он не просто не плох. Местами он круче некуда (например в области поддержки ID3V2.4
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-17 11:19 am (UTC)

Re: кхе-кхе ....

На счёт перла — ещё пару лет назад я бы с тобой согласился, а сейчас — извини. :) Никаких больших приложений на перле сейчас, насколько мне известно, не пишется. Даже в CGI он стал использоваться меньше. На счёт измерения популярности — можно набрать название языка в Google и посмотреть количество результатов. Perl, конечно, немного выигрывает, но что-то мне подсказывает, что это следствие его популярности лет 5–10 назад.

А из плееров я имел в виду listen. Спасибо за наводку на Quod Libet — давно ищу приличный плеер под Linux. Сейчас вот mplayer'ом музыку слушаю. :)

(Reply) (Parent) (Thread)
From: paranoid_ant
2006-08-17 02:16 pm (UTC)

Re: кхе-кхе ....

Да, во многом по инерции, но не только. На perl написано очень много утилит и системного ПО. Редко какой Linux/BSD можно установить в самой минимальной конфигурации без perl, python практически везде - опционально.

"Наши люди" :) сообщают из США, что там Python распространен мало. На прошлой неделе слушал нытье коллеги из NY о том что из 20 резюме только в одном упоминался python.

http://radar.oreilly.com/archives/2005/06/the_rise_of_ope.html

Но безусловно в будущем python потеснит perl, особенно если питонеры (pythoneers) создадут такое же мощное комюнити.

Прочитал Requirement для listen, чур меня, чур :)
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-17 02:49 pm (UTC)

Re: кхе-кхе ....

На счёт питона при установке — не соглашусь. Вот в Gentoo Linux, которым я пользуюсь и который является самым популярным исходниковым дистрибутивом система поддерки/обновления пакетов (portage) написана именно на питоне. Надо сказать, по моим ощущениям, она на данный момент является наиболее гибкой и мощной из всех имеющихся.

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

(Reply) (Parent) (Thread)
From: paranoid_ant
2006-08-18 06:43 am (UTC)

Re: кхе-кхе ....

Опять же Gentoo это не мейнстрим, это мода пик которой уже прошел. Вот Anaconda в RedHat это да, это действительно стоит упомянуть.

Не надо сравнивать python c C++ и тем более с java. Когда его code base достигнет такого же объема как в С/C++ а кол-во библиотек приблизится к аналогам у java, когда на python можно будет писать для мобильных устройств и т.д. и т.п. Но я думаю это всего лишь вопрос времени, т.к. python активно растет.

IT менеджеру по большому счету наплевать на маленький и чистый код, ему нужно чтобы в сжатые сроки и с минимальными затратами был создан продукт который можно продать. Кстати, одна из причин по которой perl еще долго не сдаст своих позиций, это его оринтированность на задачу. Он позволяет решить задачу сейчас и быстро, без заморочек про стиль методологию и прочее.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 07:41 am (UTC)

Re: кхе-кхе ....

Если Генту — не мейнстрим, то что мейнстрим? Я вот несколько месяцев назад выбирал какой дистрибутив ставить. Ничего более вменяемого, чем генту не нашёл. Собственно, для начала я не нашёл ни одного другого свободного дистрибутива, поддерживающего x86_64.

На счёт библиотек — для питона легко обернуть любую C-библиотеку. На счёт мобильных устройств — а jython этого не позволяет? :)

На счёт проекта — что-то мне кажется, что питоне можно быстрее его написать, чем на джаве.

(Reply) (Parent) (Thread)
From: paranoid_ant
2006-08-18 08:53 am (UTC)

Re: кхе-кхе ....

давай сравним твои несколько месяцев и ... (ладно, не буду :))

Номер один на рынке - Redhat, номер два - SuSE. Следующим идет Debian (у него самое большое комюнити). Всё, расчет окончен.

Вот, началось, использовать jуthon, написать биндинг ... "а давайте напишем на Scheme, это отличный язык". Любой IT менеджер задаст абсолютно справедливый вопрос: "Зачем это? Если можно написать все на Java/С++ используя готовые библиотеки и достаточное квалифицированных программистов".

Вобщем идем и читаем Joel Spolsky он уже 6 лет назад все написал (кстати, русское издание приятно поражает качеством первода и комментариев).
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 09:53 am (UTC)

Re: кхе-кхе ....

До этих нескольких месяцев я несколько лет вполне успешно пользовался разными *nix'ами удалённо. Не говоря уже о том, что на виндовой машине пользовался в основном программами из cygwin. :)

RedHat коммерческий, так что отпадает. В SuSE я не вполне понял что там с оперативным обновлением репозитория пактов. На счёт Debian я думал, там, кажется, нет 64-битной версии и мне хотелось сорцовый дистрибутив. :) В общем, сошёлся на Gentoo.

На счёт биндинга — все существенные библиотеки под питон и так доступны. GUI есть во всех вариантах, поддержка баз данных есть, сеть есть. Что ещё, по существу, нужно? Вот мне, например, нужна хорошая библиотека для решения задач линейного программирования. Ну так они вообще только на C/C++ есть, так что python, java и perl здесь в равных условиях. Точнее не совсем в равных: к питону сишную библиотеку легче привязать.

А что, Спольски на русском есть? Впочем, нафиг, мне и так хорошо, в оригинале.

(Reply) (Parent) (Thread)
From: paranoid_ant
2006-08-18 10:15 am (UTC)

wake up dude !

В начале обсуждения речи не шло о том что "Python популярен среди меня" и "gentoo мне нравится", с этим никто не спорит. Я сам люблю python и на лаптопе у меня не Fedora или не OpenSuSE. Но ситуация на РЫНКЕ совсем другая и python вовсе не "самый популярный" и gentoo "isn't enterprise ready".
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 10:22 am (UTC)

Re: wake up dude !

С этим я не спорю. Я утверждаю, что python достаточно хорошо подходит для написания и больших и маленьких проектов, и со временем он заслуженно набирает популярность. На данный момент он, на мой взгляд как минимум сравнялся с перлом, но до джавы, например, ему ещё далеко.

На счёт gentoo... Он определённо не настолько user friendly или enterprise ready, как некоторые другие дистрибутивы. С этим глупо спорить. Более того, с учётом его идеологии, вряд ли он станет тем или другим. В то же время, на мой вкус gentoo очень хорош как дистрибутив для программиста или гика.

(Reply) (Parent) (Thread)
[User Picture]From: mefbeztufel
2006-08-16 01:44 pm (UTC)
питон значить... а это мысль, эту мысль надо будет подумать
(Reply) (Thread)
[User Picture]From: menato
2006-08-18 12:30 pm (UTC)
Помешать-то не помешают, только они - o(скорость+чёткость решения)
(Reply) (Thread)
[User Picture]From: eterevsky
2006-08-18 12:43 pm (UTC)
Ой не факт. На предыдущих состязаниях из 75 минут последнего тура я минут 30–40 потратил на программирование/отладку. Если радикально уменьшить это время, это будет играть значительную роль. Тем более, что количество очков, полученных за задачу зависит от скорости реализации.
(Reply) (Parent) (Thread)
[User Picture]From: menato
2006-08-18 12:49 pm (UTC)
Я пока что не буду спорить, но при своей позиции останусь.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 01:20 pm (UTC)
Многое зависит от задач.
(Reply) (Parent) (Thread)
[User Picture]From: menato
2006-08-18 01:58 pm (UTC)
Конечно. Да та же длинная арифметика, реализованная в Java, команда, выинравшая последний финал, очень хорошо знала stl, и поэтому быстрее писала технику. Но всё же основная потеря времени на тестировании идёт отплохого продумывания структуры программы IMO.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 02:03 pm (UTC)
Тут есть несколько моментов. Если твой код в два раза короче, то ты: а) Пишешь его процентов на 20 быстрее. Не в два раза, конечно, поскольку думать нужно, но тем не менее. б) Делаешь в два раза меньше технических багов. Это мелочь. в) Используешь высокоуровневые функции для работы со списками, строками и т.д. Вот это уже существенно. В худшем случае это — STL, в лучше случае -- тот же питон. Если тебе не нужно думать над тем, сколько у тебя элементов в массиве и ты можешь просто дописать ещё один в конец — это освобождает слот у тебя в голове для более важных мыслей.
(Reply) (Parent) (Thread)
[User Picture]From: menato
2006-08-18 02:08 pm (UTC)
а) Это да, это очень круто, по-моему, даже чем меньше код, тем красивее, но это само собой.

б)Лично я за технические баги ругаюсь, пусть в полушутку, стараюсь их не допускать и, по-моему, это не так сложно. Главное думать о том, что пишешь.

в)Хорошо, ну в конец, а кто будет ждать, пока этот массив перекинется в памяти? Да, он толо стоит, но выигрышь от него не всегда лучший.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-08-18 02:13 pm (UTC)
а) Во-во. Питон стимулирует к тому, чтобы функции были не длиннее 10 строчек.

б) Я допускаю кучу технических багов (забытая скобка и т.д.) но на их исправление у меня уходит 5 минут на 2 часа кодирования.

в) В последние лет 5 (если не больше) я ни разу, ни на соревнованиях, ни в реальной жизни не сталкивался с ситуацией, когда подобное упрощение кода сказалось бы на производительности в достаточной степени, чтобы считать его вредным.
(Reply) (Parent) (Thread)