Сводная статистика —смотреть здесь
Месяц: Ноябрь 2009 Страница 1 из 2
Друзья,
вдогонку к теме прошлой встречи, специально для тех, кто хочет «укрепить свой мозг», представляю вниманию базовый курс видео-лекций по Haskell на Channel9. Ведет их Эрик Майер, гуру программирования из Microsoft по книге и слайдам Грахама Хаттона Programming in Haskell. Благодаря видео-лекциям, книга приобрела невероятный интерес и популярность по всему миру (пруфлинк).
Дабы не томить долгой прелюдией, далее список лекций по главам:
- Introduction
- First steps
- Types and classes
- Defining functions
- List comprehensions
- Recursive functions
- Higher-order functions
- Functional parsers
- Interactive programs
- Declaring types and classes
- The countdown problem
- Lazy evaluation
- Reasoning about programs
Слайды тут.
Всем приятного просмотра и не менее приятного программирования! 🙂
А на десерт — The Evolution of a Haskell Programmer
з.ы. этот пост будет обновляться по мере добавления новых глав.
С# — это довольно гибкий язык программирования, в чём мы и убедились послушав доклад Юрия Муленко. Юра рассказал нам про несколько интересных фишек, которые позволяют писать программы на C# в функциональном стиле.
В презентации были упомянуты делегаты (указатели на функции), анонимные функции (замыкания), анонимные типы, и LINQ.
«Это же 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 не предоставляет возможностей для ФП на уровне синтаксиса, и поэтому, приходится пользоваться сторонними библиотеками, такими как Google Collections.
Тут нельзя не процитировать Сергея Зефирова (он же thesz):
1. Программы лучше писать на Хаскеле.
2. То, что не получается написать на Хаскеле, лучше генерировать из описания на Хаскеле.
3. И только то, что совсем-совсем невозможно уложить в предыдущие два пункта, надо писать на другом ЯП.
От себя, желаю всем когда-нибудь освоить Хаскель. Как сказал Андрей, «если это не убьёт ваш мозг, то сделает его сильнее».
В четверг состоялась очередная встреча нашего сообщества. Встреча прошла под названием «Функциональные элементы в ООП», именно потому, что доклады были не о функциональных языках программирования, а об использовании парадигмы функционального программирования в таких языках как Java, C# и Python.
Вечер открыл Андрей Солнцев с докладом «Функциональное программирование на Яве. Практикум на ЭВМ». Андрей популярно, с помощью бутербродного алгоритма, объяснил, в чём заключаются основные тезисы ФП, и рассказал как это можно использовать при написании программ на Java, с примерами Google Collections.
Довольно важный тезис, который подчеркнул Андрей, это то, что ФП в языке Java хорошо подойдёт для написания бизнес-логики, но, к сожаению, программист не имеет полного контроля над тем как будет исполнятся программа — этот контроль берёт на себя компилятор.
«Это же Python!» начал свой доклад Александр Мочёнов. Александр поведал нам немного об истории и философии, а так же о фишках ООП и ФП в языке Python.
Мы узнали что Python — это мультипарадигменный язык программирования, имеющий обширную стандартную библиотеку. Сказать откровенно, код на Python действительно кажется на столько «чистым», что потом код на Java или C# кажется кучей мусора — кажется, что фигурные скобки это действительно лишнее, а все программисты являются достаточно взрослыми людьми для того чтобы делать отступы правильно.
Не смотря на то, что Python является довольно популярным языком программирования в мире, в нашем сообществе почти не оказалось Python-программистов. Я насчитал всего 2 человека — и те — QA-инженеры 🙂 Александр заметил, что Python не рекомендуется для написания приложений, где очень важна производительность — вероятно это и есть причина.
Третий доклад, «Функциональное программирование в C#». Юрий Муленко рассказал нам о функциональных конструкциях языка C# которые здорово облегчают разработку. Для многих, по всей видимости, эта презентация стала выносом мозга, но как сказал Андрей в самом начале, «если это не убьёт ваш мозг, то сделает его сильнее». Понадеемся, что после прошедшей встречи, мозги всех участников стали ощутимо сильнее 🙂
Конференция JAZOON — это аналог JavaOne в Европе. Я думаю не надо пояснять, на какую аудиторию программистов расчитана эта конференция 🙂
В июне JAZOON будет проводиться уже в 4й раз, и на данный момент открыта регистрация докладчиков. Поэтому, если кто то чувствует, что готов выступить перед тысячей программистов с техническим докладом по Java-технологии, дерзайте!
2й год подряд на конференции проводится конкурс молодых докладчиков — Jazoon Rookies. Докладчик должен быть моложе 27 лет по состоянию на 1 июня 2010. Это хороший шанс для молодых специалистов проявить себя!
До чего дошёл прогресс! Хотя чему тут удивляться — мы же в 21м веке! 🙂
Расскажу вам о поездке в Москву на мероприятие 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.
Вот список докладов, которые мне удалось посетить:
- От искры до 100 км/ч.: жизнь запроса App Engine. Fred Sauer. Серверная архитектура App Engine позволяет проводить автомасштабирование в режиме реального времени, не пользуясь виртуализацией. Довольно информативный доклад, чтобы узнать об инфраструктуре стоящей, за App Engine.
- OpenSocial, принципы и код. Chris Chabot. OpenSocial определяет общий набор API для создания социальных приложений на основе множества веб-сайтов. Крис — очень классный докладчик, слушать его одно удовольствие.
- Native Client. Виктор Хименко. Native Client — очень амбициозный проект. Идея в том, чтобы позволить запускать платформенно-зависимый код прямо из броузера. Проект имеет прямое отношение к Chrome OS, который планируется выпустить в скорому времени.
- Google Wave API. Вадим Герасимов. Google Wave несомненно наделал много шуму. Все только и говорят о волнах как о прорыве в свере обмена информацией на ряду с электронной почтой и службой обмена сообщениями. Понял, что API позволит делать довольные интеграции с другом ПО ориентированым на общение в команде — например с ПО для ведения проектов, такими как JIRA.
- Архитектура Google Web Toolkit: полезные советы по написанию вашего приложения на GWT. Fred Sauer. GWT — довольно амбизиозный проект, как и остальные проекты в Google. Идея транслирования Java в JavaScript, оставляя Java-разработчику возможность наслаждаться всеми прелястями разработки на своём любимом языке довольно заманчива. Но мы то (те кто успел опробовать GWT в реальных проектах) знаем, что не всё так гладко как хотелось бы. Приятно видеть что Google учитывает, пожелания разработчиков и старается улучшить GWT на сколько это возможно — а улучшать ещё можно много.
А вот и фотографии очевидца:
Организаторы конференции обещают в скором времени выложить видео докладов на веб-ресурсе мероприятия — советую посмотреть!
Господа! Коллеги! Друзья!
Спешим обрадовать вас известием, что следующая встреча нашего сообщества ожидается 26го ноября, а значит есть повод отметить этот день в своём календаре красным цветом! Cоответственно, регистрация будет открыта 20го ноября, и этот день стоит тоже отметить красным цветом, а может быть даже завести будильник на 12:00 😉
Темой следующего «заседания» станут ЯП — Языки Программирования. Нас ожидает 3 увлекательных доклада, каждый из которых будет посвящён отдельному ЯП, но все три доклада объединяет одна тема — функциональное программирование.
- Юрий Муленко расскажет о функциональных конструкциях языка C#. Компания Microsoft не дремлет и в дебрях гиганта по созданию ПО растёт и процветает платформа .NET, а так же язык C#. На волне инноватиных веяний язык программирования C# заимел в арсенале своих конструкций элементы функционального программирования. Юра с радостью поделится, какие из этих конструкций оказались на столько полезны при разработке ПО, что жизнь разработчика на C# стала на много радостней.
- Андрей Солнцев поведает о функциональном программировании на Java. Функциональные языки набирают популярность, но авторы Java не спешат добавлять в язык новые конструкции, аргументируя это тем, что язык должен остаться простым, и каждая новая конструкция должна быть тщательно продумана. Тем временем, матёрые Java-программисты, которые не хотят отставать от прогресса, придумали замену функциональным языковым конструкциям. Идея заключается в том, чтобы создать API который позволил бы писать код Java так, как будто это функциональный язык программирования.
- Александр Мочёнов сделает доклад о языке программирования Python. Александр надеется поделиться теми самыми «хорошестями» и «фишками», которые делают этот ЯП таким особенным по его мнению. Напомним, что Python является одним из основных языков разработки во многих ИТ-компаниях (например в Google), а многие Python-адепты считают что лучше языка нет во всём мире. Если среди участников найдутся эти самые адепты, то они обязательно поддержат Александра, а тем, кто с этим языком ещё не знаком, будет несомненно интересно узнать, что такое Python.