Привет, меня зовут Марат Зимнуров и я тимлид в кросс-функциональной команде HR Admin Tech Авито. Наверняка, вы уже сталкивались с термином «функциональное программирование» (ФП). Если посмотреть на популярные доклады (например, на HolyJS), тема функционального программирования раскрыта довольно поверхностно: immutable-структуры, transitions — и всё. В русскоязычном сегменте нет нормального baseline-гайда, с которого можно начать, да и в англоязычном ситуация не лучше: пара разрозненных курсов и несколько докладов про иммутабельность и монады от хаскелиста.
Рубрика «философия программирования»
От Аристотеля до Тьюринга: что такое функциональное программирование и как оно облегчает жизнь
2025-07-11 в 14:17, admin, рубрики: ненормальное программирование, теория, теория категорий, философия программирования, философия разработки, функциональное программирование, функциональщинаРазум без жизни: почему ИИ не станет хомо сапиенсом
2025-05-16 в 13:23, admin, рубрики: ИИ, искусственный интеллект, разум, роботы, философия программирования, философия разумаИскусственный интеллект стремительно сближается с образом разумного существа. Он решает задачи, пишет музыку, программирует, общается на человеческом языке, распознаёт эмоции, обучается на ходу. В тестах он уже превосходит нас. Он говорит красиво, точно. Всё это порождает соблазн: а не рождается ли новый разум? Не появляется ли новое существо — робосапиенс?
Но чтобы понять, что на самом деле происходит, надо задать фундаментальный вопрос: что отличает живого разумного человека от небиологического разума?Читать полностью »
Интерфейсное проектирование в абстрактных системах
2025-05-14 в 9:15, admin, рубрики: инженерия, оптимизация, Программирование, проектирование, проектирование систем, псевдонаука, разработка по, философия программирования, философия разработкиПредисловие
На Хабре есть много статей, часть из которых, как мне показалось, относится к обзорным, а часть к детальным реализациям. Первый вид чаще характеризуется словосочетанием «на подумать», второй — представляет собой статью‑справку. Данная статья больше относится к первому виду.
Переход с Python на Go: мысли человека, которому иногда сложно
2025-05-06 в 12:37, admin, рубрики: Go, python, критика, смена языка, философия программированияРешил перейти на Go. Причина простая — видел вакансии с зарплатой выше 100 тысяч, и почти везде Go. Я до этого писал в основном на Python. Немного Django, немного микросервисов, WordPress. Закончил онлайн-школу, работаю уже третий год. Решил, что пора прокачиваться и становиться программистом-полиглотом.
Вот мой опыт и небольшие замечания по языку:
Первый шок — это main
Когда я писал на Python, всё было просто: написал функцию — она работает. Хочешь — запускаешь что-то напрямую. Хочешь — импортируешь. А в Go сразу надо делать package main, потом func main(), и только внутри уже можно что-то писать.
Не пиши простой код
2025-04-23 в 17:08, admin, рубрики: Программирование, программисты, философия программированияПо мотивам статьи: Пиши простой код / Хабр
ПредПредПредисловие:
Это должен был быть пост, но не хватило 4000 символов. Прошу прощения за все отсутствующие запятые, отдельно за присутствующие, за ошибки грамматические, орфографические и стилистические.
ПредПредисловие:
Читать полностью »
Эпоха красивого кода прошла. Пришло время быдлокода
2022-02-16 в 12:45, admin, рубрики: android development, flutter, php, React, ReactJS, быдлокод, быдлокодерство, Программирование, Разработка под android, философия программирования, философия разработкиЯ работаю программистом 12 лет. Последние 2 года в мобильной разработке, а до этого php со всей своей экосистемой, фронт-энд - по мере необходимости.
И проблема конфликта между красотой кода и быстротой реализации новых фич давно меня занимала. Раньше были разговоры и даже холивары на эту тему. Однако сегодня поднимать этот вопрос уже моветон.
И вот конкретный пример.
Для мобильной разработки пользуюсь таким замечательным продуктом как Android Studio. И решил давеча отключить ненужные плагины в настройках. Снял галочки напротив плагинов которые для меня не нужны, IDE не предупредила ни о каких возможных проблемах.
Дао программирования
2021-01-08 в 15:02, admin, рубрики: Программирование, философия программирования, Читальный зал, юмор
Книга 1: Безмолвная пустота
Сказано мастером-программистом: "Уходи, когда поймёшь как найти код ошибки в трап фрейме"
1.1
Нечто загадочное сформировалось, зародилось в безмолвной пустоте. Оно одиноко ждёт без движения. Оно замерло, но постоянно двигается. Оно — источник всех программ. Я не знаю его имени и назову его Дао программирования.
Если Дао прекрасно — операционная система прекрасна.
Если операционная система прекрасна — компилятор прекрасен.
Если компилятор прекрасен — приложение прекрасно.
Пользователь доволен и в мире царит гармония.
Дао программирования уносится вдаль и возвращается с утренним ветром
Имитация Сложности — Антиномия Простого и Сложного
2020-03-23 в 19:47, admin, рубрики: Анализ и проектирование систем, архитектура приложений, практика программирования, Программирование, проектирование, Проектирование и рефакторинг, проектирование систем, Промышленное программирование, размышления, сложность, философия программированияПрограммисты много говорят про сложность решений. Мы можем часами размышлять о правильных шаблонах, красивых абстракциях и цепочках зависимостей. Однако, давайте поговорим открыто, всегда ли сложность обусловлена решаемой проблемой? Не оказываемся ли мы в плену наших стереотипов и убеждений?

Языковые слои
2019-11-20 в 8:40, admin, рубрики: изучение языков, перевод, Программирование, философия программирования, философия языка, Читальный залПривет!
Предлагаю вашему вниманию перевод статьи «Language Layers» автора Robert C. Martin (Uncle Bob).
«Мир есть совокупность фактов, а не вещей»: Витгенштейн и операционно-ориентированное программирование
2016-10-13 в 7:21, admin, рубрики: Витгенштейн, ооп, Программирование, Совершенный код, философия программирования, метки: бизнес-логикаНаши программы моделируют мир. Каждый, принявший постулаты ООП близко к сердцу, быстро столкнется с тем, что процесс моделирования в рамках этого метода принципиально не поддается детерминации. Обсудим подробнее.
Здесь и далее я буду рассматривать общекнижный пример с сотрудниками предприятия, писать будем на чем-то СИ-подобном. Наследовать класс Сотрудник (Employee) от класса Человек (Person) – прекрасная идея, особенно если хранить данные исключительно в памяти: SQL имеет некоторые проблемы с наследованием таблиц, но речь не об этом — ООП со своим иерархизмом, агрегациями, композициями и наследованиями предлагает идеальный способ организации данных. Проблемы с методами.
За каждым методом бизнес-логики стоит факт мира, который этот метод (чаще не в одиночку) моделирует. Факты программирования – это операции: дальше будем называть их так. Делая метод членом класса, ООП требует от нас привязать операцию к объекту, что невозможно, потому что операция – это взаимодействие объектов (двух и более), кроме случая унарной операции, чистой рефлексии. Метод ВыдатьЗарплату (PaySalary) может быть отнесен к классам Сотрудник (Employee), Касса (Cash), БанковскийСчет (Account) – все они равнозначны в праве владения им. Дилемма о расположении методов сопутствует всему процессу разработки: неловкое ее разрешение может оказаться критичным и даже фатальным.
В книгах по программированию честные авторы стыдливо признают, что «объекты – это как бы не совсем объекты», а ООП – всего лишь способ организации кода, а не механизм моделирования. Но все дело том, что «мир есть совокупность фактов, а не вещей» – отсюда принципиальная неспособность построить адекватную модель, применяя ООП в том виде, как этого требуют писатели учебников. Важно понять: в коде возможно моделировать мир, но атомами модели должны стать факты, а не объекты.
Читать полностью »
