воскресенье, 9 мая 2010 г.

Про баньян с джемом

С Днём Победы!

Закончился квалификационный раунд Google Code Jam. Это такая всемирная олимпиада с алгоритмическим уклоном. Решать весело — алгоритмы не часто встречаются в повседневной работе. Организовано хорошо. Рабочему человеку отойти от повседневной рутины трудно: надо выделить время, подготовить рабочее место и т.д. Для этого добавили квалификационный раунд. Длится он целых 24 часа: можно без спешки настроить инструменты и приступить к решению собственно задач.

В контексте Джема этом году меня порадовали два события: появилась народная Идея — свободная (и бесплатная) IDE с открытыми исходными кодами. Задачи Джема разрешено решать только с помощью свободных инструментов. Второе, разработчики Гугола открыли доступ к guava-libraries аж 4 релиза. Теперь (двадцать лет спустя) в Яве можно легко и просто читать строки входного файла:
Files.readLines(in, Charsets.UTF_8, new LineProcessor() {

    public boolean processLine(String line) throws IOException {
        // обрабатываем стоку
        return true;
    }

    public Integer getResult() {
        return null;
    }
});

или в одну строчку отсортировать список, оставив в нём уникальные элементы:
    times = Ordering.natural().sortedCopy(Sets.newHashSet(times));

Уже похоже на языки высокого уровня, такие как Перл или Питон, правда? В строке нет и следа того, что список times на самом деле генерализирован для BigInteger. Когда пишешь код, в Идее работает автодополнение и проверка типовой безопасности. В какой IDE для Перла или Питона настолько же удобно, быстро и безопасно писать код?

В общем, в этом году пересел с Перла на Яву. Квалификацию прошёл, посмотрим, что будет в первом раунде.

С Днём Победы!

Комментариев нет: