Тетрис из SKIY-комбинаторов

Сделал для андроида комбинаторную игрушечку: https://play.google.com/store/apps/details?id=ru.serge.ski_combinators (бесплатно без рекламы) по мотивам вот этого http://dirk.rave.org/combinatris/how-to-play.html У оригинальной веб-версии недостаток, что не сохраняется игра прежде всего, ну и нету никаких потенциальных возможностей, которые наличествуют в гугль плее.[…]

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

Почему C++/Java/C# слабые языки

первая часть В Java 8 так и не появились функции первого класса (функции как типы), однако поддерживаются объекты первого класса (в частности, интерфейсы). Для демонстрации уязвимости системы типов Java воспользуемся примером, предложенным Tony Morris-ом, одним[…]

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

Сколько монад в твоём коде?

Хоть и принято языки наподобие C++/Java/C#/… относить к языкам с сильной типизацией, но так ли это на самом деле? Далее мы убедимся, что эта «сильная типизация» повсеместно крайне уязвима, покритикуем мэйнстримовскую критику «сильной типизации», и[…]

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

Си: жёсткий разбор

Язык Си отличается богатым набором средств, которые способны сломать программу в самых разных местах и самым неочевидным способом. Это всевозможные побитовые операции и неочевидные реализации некоторых типов (например, процессор не умеет работать с 32-разрядными целыми,[…]

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

Проектируем мета-язык для полных идиотов

Сегодня в мэйнстриме модно разрабатывать easy-easy-easy-языки программирования наподобие Go — для команд из тысяч идиотов, которые должны разрабатывать более-менее устойчиво работающий софт в более-менее предсказуемое время, когда сам язык накладывает множество ограничений на свободу разработки.[…]

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

Python: жёсткий разбор

В качестве, пожалуй, абсолютной противоположности Haskell-у возьмём Python. Критика в его адрес довольно поверхностна, потому что и порог вхождения в язык небольшой. Когда разработчик с одним годом практики начинает выискивать в нём блох, с точки[…]

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