Вариации типов обобщений в C# и Java

Есть множество вещей в программировании, которые мы интуитивно понимаем и используем. Так, понятия, о которых пойдёт речь часто касаются нас во время программирования. Мы поговорим о типах и о их преобразованиях. Страшные слова в следующих абзацах пришли из теории категорий, однако мы — программисты, а не математики, поэтому будем рассматривать всё это в контексте реальных языков программирования. Читать далее

ParallelFX, или как я испытывал параллельности

О существовании параллельных миров или пространств мы ничего наверняка сказать не можем, однако, если разговор заходит о компьютерах, то тут всё становится уже более определённо. Современные операционные системы поддерживают многозадачность (пусть иногда даже и псевдопараллельную). А в последнее время всё больше и больше ядер появляется в процессорах наших компьютеров. Читать далее

C# 3.0 и LINQ: для тех, кто ещё не в курсе

Что было бы, если проснувшись утром, вы обнаружили в языке, на котором говорите, возможность декларативно описывать те вещи, которые вы хотите получить? На самом деле, в русском языке существует такая возможность, и мы пользуемся ей ежедневно. Но на практике она не всегда работает: мы приходим в магазин и говорим: «Дайте мне книги Дональда Кнута, вышедшие позже 1970 года, в заголовке которых встречается слово программирование». Наверняка, продавец косо на нас посмотрит (хотя, всё зависит от магазина), подведёт к книжной полке и предложит самим найти то, что нам требуется :). Читать далее