Haskell в массы!

Друзья,

вдогонку к теме прошлой встречи, специально для тех, кто хочет «укрепить свой мозг», представляю вниманию базовый курс видео-лекций по Haskell на Channel9. Ведет их Эрик Майер, гуру программирования из Microsoft по книге и слайдам Грахама Хаттона Programming in Haskell. Благодаря видео-лекциям, книга приобрела невероятный интерес и популярность по всему миру (пруфлинк).

Дабы не томить долгой прелюдией, далее список лекций по главам:

  1. Introduction
  2. First steps
  3. Types and classes
  4. Defining functions
  5. List comprehensions
  6. Recursive functions
  7. Higher-order functions
  8. Functional parsers
  9. Interactive programs
  10. Declaring types and classes
  11. The countdown problem
  12. Lazy evaluation
  13. Reasoning about programs

Слайды тут.

Всем приятного просмотра и не менее приятного программирования! 🙂

А на десерт — The Evolution of a Haskell Programmer

з.ы. этот пост будет обновляться по мере добавления новых глав.

Видео: Юрий Муленко. Функциональное программирование на C#

С# — это довольно гибкий язык программирования, в чём мы и убедились послушав доклад Юрия Муленко. Юра рассказал нам про несколько интересных фишек, которые позволяют писать программы на C# в функциональном стиле.


 

В презентации были упомянуты делегаты (указатели на функции), анонимные функции (замыкания), анонимные типы, и LINQ.

Видео: Александр Мочёнов. Дык это же Python!

«Это же Python — восклицал Александр Мочёнов. И действительно — Python — скажем мы. На этом языке можно сделать буквально всё. Python задействован в создании многих проектов, особенно с открытым исходным кодом. Python ещё очень интересен тем, что является мультипарадигменным языком программирования, в частности функциональный стиль никак не чужд Python-программистам.

 

А вот и бонус, несколько неплохих ресурсов по программированию на языке Python:

http://diveintopython.org/ – Старый-добрый Dive Into Python. Open Source Книга. Есть на русском.
http://diveintopython3.org/ – О последней версии питона – v.3. Если вы только-только знакомитесь с языком, то лучше изучайте сразу 3-ий – сообщество это оценит!
http://openbookproject.net//thinkCSpy/ – Интересное чтиво с научным углублением.
http://wiki.python.org/moin/RussianLanguage – всякие русскоязычные ресурсы.

Видео: Андрей Солнцев. Функциональное программирование на Java

Функциональное программирование — это парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций. В функциональном языке, при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат в обоих случаях, входные данные не могут измениться, выходные данные зависят только от входных.
Андрей Солнцев сделал отличную вводную — «ФП для чайников», показал разницу между императивным и функциональным стилями на примере алгоритма бутерброда, а так же рассказал как принципы ФП могут быть применены в программировании на языке Java. Java не предоставляет возможностей для ФП на уровне синтаксиса, и поэтому, приходится пользоваться сторонними библиотеками, такими как Google Collections.

 

Тут нельзя не процитировать Сергея Зефирова (он же thesz):

1. Программы лучше писать на Хаскеле.

2. То, что не получается написать на Хаскеле, лучше генерировать из описания на Хаскеле.

3. И только то, что совсем-совсем невозможно уложить в предыдущие два пункта, надо писать на другом ЯП.

От себя, желаю всем когда-нибудь освоить Хаскель. Как сказал Андрей, «если это не убьёт ваш мозг, то сделает его сильнее».

Обзор встречи 26.11.2009 — Функциональные элементы в ООП

В четверг состоялась очередная встреча нашего сообщества. Встреча прошла под названием «Функциональные элементы в ООП», именно потому, что доклады были не о функциональных языках программирования, а об использовании парадигмы функционального программирования в таких языках как Java, C# и Python.

Вечер открыл Андрей Солнцев с докладом «Функциональное программирование на Яве. Практикум на ЭВМ». Андрей популярно, с помощью бутербродного алгоритма, объяснил, в чём заключаются основные тезисы ФП, и рассказал как это можно использовать при написании программ на Java, с примерами Google Collections.

Довольно важный тезис, который подчеркнул Андрей, это то, что ФП в языке Java хорошо подойдёт для написания бизнес-логики, но, к сожаению, программист не имеет полного контроля над тем как будет исполнятся программа — этот контроль берёт на себя компилятор.

«Это же Python!» начал свой доклад Александр Мочёнов. Александр поведал нам немного об истории и философии, а так же о фишках ООП и ФП в языке Python.

Мы узнали что Python — это мультипарадигменный язык программирования, имеющий обширную стандартную библиотеку. Сказать откровенно, код на Python действительно кажется на столько «чистым», что потом код на Java или C# кажется кучей мусора — кажется, что фигурные скобки это действительно лишнее, а все программисты являются достаточно взрослыми людьми для того чтобы делать отступы правильно.

Не смотря на то, что Python является довольно популярным языком программирования в мире, в нашем сообществе почти не оказалось Python-программистов. Я насчитал всего 2 человека — и те — QA-инженеры 🙂 Александр заметил, что Python не рекомендуется для написания приложений, где очень важна производительность — вероятно это и есть причина.

Третий доклад, «Функциональное программирование в C#». Юрий Муленко рассказал нам о функциональных конструкциях языка C# которые здорово облегчают разработку. Для многих, по всей видимости, эта презентация стала выносом мозга, но как сказал Андрей в самом начале, «если это не убьёт ваш мозг, то сделает его сильнее». Понадеемся, что после прошедшей встречи, мозги всех участников стали ощутимо сильнее 🙂

JAZOON 2010 Call for Papers

Конференция JAZOON — это аналог JavaOne в Европе. Я думаю не надо пояснять, на какую аудиторию программистов расчитана эта конференция 🙂

В июне JAZOON будет проводиться уже в 4й раз, и на данный момент открыта регистрация докладчиков. Поэтому, если кто то чувствует, что готов выступить перед тысячей программистов с техническим докладом по Java-технологии, дерзайте!

jazoon_subt_neg_red_web

2й год подряд на конференции проводится конкурс молодых докладчиков — Jazoon Rookies. Докладчик должен быть моложе 27 лет по состоянию на 1 июня 2010. Это хороший шанс для молодых специалистов проявить себя!

Google Developers Day 2009, Москва

Расскажу вам о поездке в Москву на мероприятие Google Developers Day 2009. Google Developers Day 2009 — это мероприятие проводимое компанией Google для продвижения своих технологий и продуктов. Целевая аудитория, как видно из названия — разработчики ПО. В этом году конференция проводилась в пяти местах: Пекин (Китай), Йокохама (Япония), Сан Паоло (Бразилия), Прага (Чехия), Москва (Россия). Параллельно с докладами, на конференции можно было пообщаться с инженерами из Google, которые непосредственно связаны с теми докладами, технологиями и продуктами, о которых говорилось на протяжении всего дня. Мне самому удалось пообщаться с координатором программы GTUG, которую так активно сейчас продвигает Google.

Для затравки — видеоролик который проигрывался в перерывах между докладами:

Основная тематика мероприятия, как я сказал выше, это продукты и технологии Google для разработчиков. Среди технологий, которым было уделено наибольшее внимание, можно выделить Google App Engine, OpenSocial, Chrome, Android, Wave и GWT. В добавок был упомянут новый проект — Chrome OS, который обещают запустить в конце года. А так же, Google не брезгует предоставлять возможность выступить с докладами и своим прямым конкурентам в России — Яндекс, линейка продуктов которого как зеркало повторяет технологии Google.

Вот список докладов, которые мне удалось посетить:

  1. От искры до 100 км/ч.: жизнь запроса App Engine. Fred Sauer. Серверная архитектура App Engine позволяет проводить автомасштабирование в режиме реального времени, не пользуясь виртуализацией. Довольно информативный доклад, чтобы узнать об инфраструктуре стоящей, за App Engine.
  2. OpenSocial, принципы и код. Chris Chabot. OpenSocial определяет общий набор API для создания социальных приложений на основе множества веб-сайтов. Крис — очень классный докладчик, слушать его одно удовольствие.
  3. Native Client. Виктор Хименко. Native Client — очень амбициозный проект. Идея в том, чтобы позволить запускать платформенно-зависимый код прямо из броузера. Проект имеет прямое отношение к Chrome OS, который планируется выпустить в скорому времени.
  4. Google Wave API. Вадим Герасимов. Google Wave несомненно наделал много шуму. Все только и говорят о волнах как о прорыве в свере обмена информацией на ряду с электронной почтой и службой обмена сообщениями. Понял, что API позволит делать довольные интеграции с другом ПО ориентированым на общение в команде — например с ПО для ведения проектов, такими как JIRA.
  5. Архитектура Google Web Toolkit: полезные советы по написанию вашего приложения на GWT. Fred Sauer. GWT — довольно амбизиозный проект, как и остальные проекты в Google. Идея транслирования Java в JavaScript, оставляя Java-разработчику возможность наслаждаться всеми прелястями разработки на своём любимом языке довольно заманчива. Но мы то (те кто успел опробовать GWT в реальных проектах) знаем, что не всё так гладко как хотелось бы. Приятно видеть что Google учитывает, пожелания разработчиков и старается улучшить GWT на сколько это возможно — а улучшать ещё можно много.

А вот и фотографии очевидца:

Организаторы конференции обещают в скором времени выложить видео докладов на веб-ресурсе мероприятия — советую посмотреть!

Следующая встреча состоится 26го ноября!

Господа! Коллеги! Друзья!

Спешим обрадовать вас известием, что следующая встреча нашего сообщества ожидается 26го ноября, а значит есть повод отметить этот день в своём календаре красным цветом! Cоответственно, регистрация будет открыта 20го ноября, и этот день стоит тоже отметить красным цветом, а может быть даже завести будильник на 12:00 😉

Темой следующего «заседания» станут ЯП — Языки Программирования. Нас ожидает 3 увлекательных доклада, каждый из которых будет посвящён отдельному ЯП, но все три доклада объединяет одна тема — функциональное программирование.

  1. Юрий Муленко расскажет о функциональных конструкциях языка C#. Компания Microsoft не дремлет и в дебрях гиганта по созданию ПО растёт и процветает платформа .NET, а так же язык C#. На волне инноватиных веяний язык программирования C# заимел в арсенале своих конструкций элементы функционального программирования. Юра с радостью поделится, какие из этих конструкций оказались на столько полезны при разработке ПО, что жизнь разработчика на C# стала на много радостней.
  2. cslogo

  3. Андрей Солнцев поведает о функциональном программировании на Java. Функциональные языки набирают популярность, но авторы Java не спешат добавлять в язык новые конструкции, аргументируя это тем, что язык должен остаться простым, и каждая новая конструкция должна быть тщательно продумана. Тем временем, матёрые Java-программисты, которые не хотят отставать от прогресса, придумали замену функциональным языковым конструкциям. Идея заключается в том, чтобы создать API который позволил бы писать код Java так, как будто это функциональный язык программирования.
  4. javalogo

  5. Александр Мочёнов сделает доклад о языке программирования Python. Александр надеется поделиться теми самыми «хорошестями» и «фишками», которые делают этот ЯП таким особенным по его мнению. Напомним, что Python является одним из основных языков разработки во многих ИТ-компаниях (например в Google), а многие Python-адепты считают что лучше языка нет во всём мире. Если среди участников найдутся эти самые адепты, то они обязательно поддержат Александра, а тем, кто с этим языком ещё не знаком, будет несомненно интересно узнать, что такое Python.
  6. python-logo-master-v3

    Итак, 20го ноября — регистрация, 26го ноября — встреча. Не пропустите! 🙂