TGViewer
Channel Public Channel
Лаборатория Математики и Программирования Сергея Бобровского

Лаборатория Математики и Программирования Сергея Бобровского

@lambda_brain

ЛаМПовое с Бобровским
Subscribers
1.41K
Photos
1.6K
Videos
28
Links
1.2K

Showing posts older than #1463 · Back to latest

Older Posts 16 shown
Post #1462 962
Те, кто ненавидит ООП, обычно не предлагают никаких других рабочих альтернатив, считая, что вообще всё ИТ такое. Ну, да, только не ИТ, а мэйнстрим. Программисты ненавидят прежде всего плохо написанные, плохо организованные, чрезмерно сложные и запутанные программы на Java/C#/C++, а не ООП.

Простое добавление кучи интерфейсов с массовым наследованием не делает программу объектно-ориентированной. Всё, что делают в мэйнстриме -- это фактически добавляют и добавляют ненужную сложность. Так называемые ОО-программы, которые разработчики так ненавидят, обычно как раз выбрасывают базовые принципы ООП на ветер, и в итоге закономерно получается хаотичный беспорядок.

Невероятно, но факт: существует такая вещь, как плохой software design и плохое программирование.
  • ❤ 54
  • 🤔 18
  • 👍 8
  • 🔥 7
  • ❤‍🔥 4
Post #1459 1.08K
Напомню базу:

-- статическая система типов: когда тайп-чекинг выполняется компилятором;
-- динамическая система типов: типы чекаются в рантайме;
-- сильная система типов: 42 + "42" = ошибка;
-- слабая система типов: 42 + "42" = 84.

Статическая слабая система типов: Си.
Динамическая слабая система типов: JavaScript.
Динамическая сильная система типов: Python.
Статическая сильная система типов: F#, Scala, Rust.

Куда попадает Java, решайте сами:
-- между примитивными типами допускается неявный тайпкаст;
-- автоматическое управление памятью хорошо в основном для мэйнстрима;
-- работает "высокоуровнево" через JVM.
  • ❤ 41
  • 🤔 23
  • 👍 7
  • 🐳 3
  • 💯 1
Post #1458 1.06K
Избавляемся от ORM-ов: SQLc (компилятор SQL в типо-безопасный код).

Пока поддерживается только Go, в перспективе обещают много разных языков, вот для F# например поддержка. Можете написать свой плагин (Java вроде там нету), как минимум, в резюме укажете крутую строчку.
  • 🤔 39
  • 🙏 16
  • 👍 6
  • ✍ 4
  • 🐳 1
Post #1457 1.02K
Язык Си -- это DSL для превращения массивов байтов в критические уязвимости безопасности.
  • 😁 79
  • ❤ 8
  • 🤔 7
Post #1456 1.14K
Использование подходов функционального программирования означает, что вы не способны правильно управлять мутабельным состоянием.
  • 🤔 61
  • ✍ 12
  • 👍 6
  • 😁 6
  • 🐳 2
Post #1455 1.27K
Функциональное программирование базируется на математических подходах. Оно было не "придумано инженерно", а открыто -- как любые другие математические открытия.

Но что насчёт императивщины и ООП? Лука Карделли например разработал сигма-исчисление для объектной модели (хотя само ООП никакой математической базы не имеет, конечно), а затем появилась более сильная модель "NOOP: A Domain-Theoretic Model of Nominally-Typed OOP".

Ну а этот ваш построчный пошаговый кодинг можно основать вообще на любом Тьюринг-формализме. От алгоритмов Маркова и комбинаторной логики (Смаллиана книжки очень рекомендую) до, конечно, лямбда-исчисления, и т.п.

Потому что на самом деле всё это -- про переписывание термов.

Уже совсем скоро AI придёт на рабочие места кодовых обезьянок, поверхностно зазубривших технический стек "чтобы поскорее начать зоробатывать".

Computer Science ценна сегодня как никогда раньше.
  • 🤔 52
  • ✍ 16
  • 👍 10
Post #1454 997
Разработка программного обеспечения -- это тонкий баланс между глубоким пониманием принципов работы сложных систем и быстрым выполнением задач.

Проблема в том, что тут антагонистическое противоречие: эти вещи в 98% проектов противоречат друг другу.

Вот например на днях на гитхабе появились исходники игры Rogue Legacy, в которую двое пацанов вложили полтора года работы и 15 тысяч долларов. Сам код, ужасающий в своей кривости )))

Однако расходы парни отбили уже в первый час продаж, а всего заработали на этой игре более 11 миллионов долларов.
  • 👍 55
  • 🤔 18
  • 🔥 10
  • ⚡ 1
Post #1453 954
— срочно! можешь оформить это тикетом в джире??
  • 🤯 40
  • 😁 28
  • ✍ 8
  • 👍 2
  • 🐳 2
Post #1451 1.4K
Пятница: отдыхаем и расслабляемся.
  • 😁 68
  • 🤝 5
  • 👍 3
  • 😎 3
  • 🔥 1
Post #1450 1.31K
Если вы не хотите использовать не просто функциональный, а function first язык (из чего его функциональность проистекает естественно), при этом прагматичный, с огромной экосистемой, с сообществом дружелюбных помощников, ощутимо меняющий программистское мышление в лучшую сторону...

ни в коем случае не берите F# !!1
  • ❤ 41
  • 😁 29
  • 👍 10
  • 👌 3
  • 💯 2
Post #1449 1.07K
В книге Стивена Клини "Математическая логика" (эквивалентность регулярных выражений и конечных автоматов и т.п.) упоминаются физические понятия в чисто математическом контексте ↑↑↑
  • ✍ 27
  • ❤ 20
  • 🤔 17
  • 👍 5
Post #1445 1.12K
  • 😎 26
  • ✍ 13
  • ❤ 3
  • 👌 1
Post #1444 1.12K
Существует прямая зависимость (по мнению ваших начальников) между тем, насколько громко работает ваша клавиатура, и тем, насколько хорошо вы умеете кодировать. Без шуток.
Неплохо также научиться 10-пальцевому методу (на русском), и когда мимо проходит начальник, очень быстро и громко фигачить код комментарии в коде. Реально работает, проверяйте. Боссы вас будут считать одним из наиболее продуктивных программистов.

P.S. Спрашивают, а какие это? Ну прежде всего механические конечно, Cherry MX или Kailh, можно также задавать звук нажатия для мультимедийных клавиатур, и по-моему даже, для обычных (скриптом AutoHotKey например)
  • 😁 66
  • 🔥 14
  • ✍ 7
  • ❤ 3
  • 🤯 3
Post #1443 1.04K
Кодирование раньше: копирование и вставка.

Кодирование сейчас: промпт и вставка.

Обе практики могут ускорить разработку; обе они -- костыли, которые приводят к раздуванию системы и поощряют поверхностное системное мышление.


-- Гради Буч, октябрь'24
  • ❤ 47
  • ✍ 18
  • 👍 8
  • 🔥 8
  • ⚡ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →