Цифровой скиталец

Мы живём, пока мы летаем

MapReduce, LINQ, фнукциональные языки

В последнее время как-то на одну тему попадаются интересные вещи.

Вот, например, что такое великий программистский принцип MapReduce, который позволил компании Гугль заиметь цену акций в 500 долларов за штуку?

Это очень просто, читаем Джоэля. Он кстати гомик, но мы любим его не за это (TM). А вот то, что он часто гиперболизирует и фантазирует не стесняясь, ему стоит поставить в минус.

У него там написано, что это всё пошло от функционального программирования, которые многие крутые программмисты считают куда более мощным и правильным средством, чем наши родные императивные языки вроде Си.

Я вообще Солженицына не читал, но не согласен. Может, функциональные языки и стоит знать, но для повседневного применения и читабельности их могут использовать считанные единицы математичски подкованных разработчиков. Я писал про таких недавно; сам я на это не способен.

А вот что интересно, так это то, что в третью версию С# Microsoft добавит LINQ. Это крайне интересное и мощное средство, которое делает много чего. Можно даже назвать его уникальным; такого ещё  не было.

Оно  привносит в с# элементы функциональных языков  вроде лямбда-выражений. Лябда-выражение применительно к нашим баранам это всего лишь сверхсокращённое определение функции.

Например, выражение  s=> s >5 определит функцию
bool Func1(int s)
{
   return s >5;
}

Привносит элементы скриптовых языков в виде динамического определения типа по присваемому выражению
Например, после выражения
var a="text";
тип переменной а станет string , а значение - "text"
(Ох, как этим будут злоупотреблять)

Позволяет манипулировать данными в коллекциях и XML, используя SQL-подобный синтаксис (это завязано на возможности , описанные выше)

И даже частично решает проблеу Object-Relational mapping, то есть автоматического соотнесения строк в таблице базы данных и членов класса.  Обычно это делает программист, корябая кучу кода вручную.

В LINQ запрос выглядит как sql, записанный прямо в код, и транслируется в настоящий sql, выполняющийся в базе. Как результат создаётся автоматически и возвращается новый класс, в котором поля являются колонками таблицы в базе. А строки - это коллекция таких классов.

Ко всему этому стоит добавить, что LINQ содержит встроенные  Map и Reduce. Правда, называются они там по-другому. (Это те самые легендарные MapReduce от Гугля, см. выше.)

Таким образом, Майкрософт не только в очередной раз тырит хорошие идеи, а улучшает их и в чём-то даже революционизирует.

Но на мой сугубо дилетантский взгляд это вызовет следующие проблемы: хотя простое применение LINQ улучшает читабельность и упрощает работу с данными, понимание и углублённое использование LINQ требует немало дополнительных усилий от неподготовленных разработчиков. То есть M$ сделала C# ещё сложнее, мощнее и в чём-то запутаннее.

А цель-то была сделать его простым и читабельным, нет? Если они  хотели мощи, надо было сразу пропагандировать и внедрять функциональный язык вроде OCAML или Haskell.
Правда у M$ есть свой такой язык - F#, который является диалектом OCaml'а.

Но это прекрасный, прекрасный, прекрасный инструмент. Я стану пользоваться им, я уверен. 

Читать дальше →

Всякости

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

Впрочем, это всё  неважно.
Вот лучше послушайте: у меня счастье в жизни.

«Я купил новые спортивные штаны взамен порвавшихся, и могу снова ходить в спортивный кружок, тем самым невозбранно достигнув желаемого 

А вы говорите: майбах, майбах.

И ещё: когда выхожу из спортивного кружка, в лужах отражаются жёлтые натриевые фонари. Это  по-киберпанковски красиво.

We of cyborgs always enjoy watching. 

Куда там  несчастным поругаемым в ЖЖ акварелистам.

Читать дальше →

Наркомания

Пиздец до чего дожил - поднимаю с пола рассыпанные семечки и ем.
Натуральный нарик. Семечковый. С завтрашнего дня завязываю.

Читать дальше →

Фигня

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

Читать дальше →