Полковник
  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    Ради перформанса, я бы в embedded c ФП не ходил. Одним кейзом меньше. Опять же с тем же Rust так же быстро как С++ но еще и безопасно

    Но для 90% остальных случаев вполне более удачная замена ООП: web-dev, cloud, APIs, microservices, enterprise, machine learning и т.п.

    Підтримали: Stanislav Tkach, Denys Poltorak
  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    Вообще хоть и достаточно трудно дать четкое определение что такое ООП не уходя в философию. Для меня ООП предполагает некую стадию дизайна от классов, иерархий и их взаимоотношений до моделирования поведения системы, в то время как в более низкоуровневых языках начинаешь с определения сигнатур функций и подходу снизу-вверх. Ну и конечно все вот эти SOLID они не из Си выросли, а как дубинка чтобы ненапортачить в ООП, из-за его куда более высокой сложности чем тот же ФП отчасти

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    Что ваc смущает в калькуляторе-то или телефоне? С состоянием в ФП тоже можно отлично работать и моделировать, если намекаете на это. Есть полно примеров калькуляторов тех же

    Возможно где ФП пока не очень хорош это интенсив десктоп ГУИ с интерактивностью и где очень много стейта. А для того же embedded на арену вышел Rust , многообещающий и мультипарадигменный.

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    Те же сложные кобольные программы — вполне себе объекто-ориентированные. Сложный сишный код (типа, ядро юникса) тоже.

    А можете привести примеры объектной ориентации в коде ядра линукса например? Я конечно могу себе представить структуры, указатели, dispatch таблицы и много другого интересного. Но где там ОО?

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    В современном контексте, взлетел это что-то популярное и для масс. Взять Пайтон, достаточно посредственный язык, не взлетал, а в течении 20 лет стабильно набирал обороты. Попса популярна, а классика вечна, лентяев всегда будет больше чем тех кто хочет учиться. Это не мешает делать отличные продукты на тех языках которые более предсказуемы.

    Підтримав: Roman Pavlyuk
  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    Когда я в джс делаю:

    init.bind({args, opts})

    это ОО программирование, потому что я превращаю функцию в объект с состоянием.
    Но не ОО проекирование, потому что никаких «китов сурового ООП» мне не нужно для этого.

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

    Підтримав: Sergey Lysak
  • Нищая Европа 2021

    Согласен. Так будет точнее, политика страховых и гос-ва. Я всегда поражался тому как местные хвалят свою Healthcare систему как лучшую в мире. Смешно. Причем смешно всем экспатам. Мы ездим лечиться обратно в Украину, турки в Турцию и так далее.

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    ОО дает весьма так себе абстракции для моделирования сущностей реального мира и в довесок кучу велосипедов чтобы как-то это склеить. Domain-driven-design куда тяжелее делать на ООП чем на ФП, благодаря их алгебраическим типам данных.

    Вот вам пример кода для описания типов в карточной игре:

    module CardGameWarDomain =   type Suit = Club | Diamond | Spade | Heart   type Rank =     | Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten     | Jack | Queen | King | Ace   type Card = Suit * Rank   type Deck = Card list   type PlayerName = string   type Player = {Name:PlayerName; Deck:Deck}   type Pile = (PlayerName option * Card list) list   type Deal = (Deck * Player list) -> Player list   type Battle = Player list -> (Player list * Pile)   type War = (Player list * Pile) -> (Player list * Pile)   type PickPile = (Player * Pile) -> Player   type Game = (Deck * Player list) -> Player

    Имплементация самой игры с раздачей карт на руки из колоды, логики и подсчета еще 100 строк.
    Теперь удачи вам в ООП сделать тоже самое с классами, иерархиями и т.п. :)

    Собственно, поэтому ООП-подход использовался для создания софта, задолго до появления ОО-языков.

    Вы сами поняли что сказали? :) Как можно использовать несуществующий подход? До ОО было только процедурное (fortran, algol, cobol) и ФП (lisp)

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    По этой же причине — не взлетел и Лисп

    Причины это опять же история... популярность C++, Java, C#, Ruby из-за относительной легкости изучения для масс и набора тулзов, библиотек и фреймворков.

    Хотя вот вам Clojure и есть осовремененный Lisp

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    В смысле, не взлетел? Именно этот „С с классами” — и есть самый нормальный/портабельный и работающий вариант „плюсов”. Поэтому он и используется в наиболее мишн-критикал вещах, типа эмбеда (если уж вообщe используются „плюсы”).

    Из интервью с Бьерном.

    CUJ: When/how did you notice that C with Classes was becoming something that was going to consume much of your time, if not your career (in other words, not just a temporary interest)?
    BS: Somewhere in 1982, I realized that support of the C with Classes user community was becoming an unacceptable drain on me. As I saw it, the user population had become too large for one person to serve well while also doing research, but too small to support an infrastructure. I had to decide whether to develop C with Classes into a more flexible and expressive language, or to drop it. Fortunately, I didn’t think of a third alternative — which people point out is the conventional solution — which is to gather more users through hype. Through C with Classes, I decided to further develop the combination of valuable ideas from C and Simula that I had experienced. The result was C++. I tried to "escape’’ to other work on several later occasions, but always the growth of the C++ community and the challenges of new applications kept me involved.

    C с классами трансформировался в C++, где оброс многими фичами и после чего обрел свою популярность, но не благодаря классам в первую очередь. Иначе бы C with Classes был бы в топе. А то что где-то в embedded его еще используют об этом мало кто знает и опять же вопрос зачем? Там чистый C куда эффективней. Мнение Линуса Торвальдса думаю тоже всем известно, все линуксы и юниксы и иже на Сях.

    Сейчас все заточено чтобы писать в ООП парадигме, даже когда в этом нет смысла. Только сейчас началась движуха в осознание этого, например в последних версиях C# появилась такая штука как top-level statements — больше не нужно писать static void main() {..} и все это обрамлять классом Program. Можно one лайнером: Console.WriteLine("Hello, World!"); Опять же из примеров как развивается C#, то в последних 4-5 релизах они в основном тягают фичи из F#... ибо нечего более предоставить ОО парадигме.

  • Нищая Европа 2021

    Даже там нужен referral от GP так или иначе на приём. Еще та задача уломать его. И это что, одна клиника общего типа на Нидерланды и то в Амстердаме? Максимум диагностика, возможно частично стационар. Если операция или чё-то более серьезное чем насморк то все равно в длинную очередь станете в гос. больничку к специалисту.

    Сравните с Украиной, где в каждом городе частных клиник как грибов, но тем не менее можно найти пару достойных с хорошими спецами и все быстро решить.

  • Функціональне чи об’єктно-орієнтоване програмування: що обрати і чому варто звернути свою увагу на Clojure. Поради для початківців

    До C++ был C with Classes, который никто не знает и который не взлетел. Т.е. сама по себе ОО как концепция не сделала бума в истории программирования. По словам Бьерна Страуструппа, только после того как он добавил уйму других фич и на базе C with Classes создал C++, тогда взлетело. Но это было не потому что ОО. Тогда еще никто не понимал как это все вот использовать, а авторы ныне бестселлера Design Patterns: Elements of Reusable Object-Oriented Software тогда еще в школу ходили. Далее была Java, которая была направлена изначально на C++ аудиторию, ибо самая большая популяция и монетизация. Далее .NET версия Java и теже мотивы. Brad Cox стремился к модулярности и все что он знал на то время был Smalltalk по стечению обстоятельств. Так и вышел Objective-C. Опять же, не из-за популярности ОО. Прекрасный исторический анализ почему ФП не являектся дефолтом сейчас в этом видео: www.youtube.com/...​q0v7Z4&ab_channel=Metosin

    От себя добавлю, будучи 15 лет ООП евангелистом, преимущественно C++ и C#, я только сожалею о том что так поздно подсел на ФП. Последние 3-4 года в теме и хочу сказать что это в первую очередь парадигма которая позволяет писать действительно архитектурно чистый (onion, hexagonal, clean по дефолту, без костылей), поддерживаемый и сжатый код, а главное не выстрелить себе в ногу на продакшне. ФП со строгой типизацией такие как Haskell, Scala, F#, позволяют уже на уровне системы типов описывать домен с помощью ADT, а компилятор как правило куда более строже чем в том же C# или Java.

    А ФП был всегда, Lisp был еще задолго до первых попыток ОО.

  • В FAANG после 36

    Сабджект вроде по теме как обстоят дела с наймом в FAANG, не так ли? Если активно приглашают, учитывая возраст, это намекает о том что потенциально заинтересованы.

    А если бы были оферы, то наверное я бы пополнил армию литкодовских дрочеров и пел бы оды о том как хорошо где-нибудь в фейсбуке.

  • Нищая Европа 2021

    У нас тут, в Нидерландах, ровно 0 частных, отсюда 0 конкуренции, монополия и все остальные «ништяки»

  • Нищая Европа 2021

    Это не чистый минус, это чистый плюс, что оно вообще есть. Как можно это рассматривать в негативном ключе?

    Если вы отдавая кому-то 200 евро считаете это плюсом, то я приверженец классической школы математики :)
    По личному опыту скажу что за 5 лет данная страховка не помогла ни разу. Есть понятие собственного риска — суммы ниже которой все расходы ты оплачиваешь сам, вне зависимости от страховых отчислений. Обычно это 385 евро в год. 95% болезней типа ОРВИ или пальчик поранил тут. Так платите и страховку и лечение до 385 евро сами. Вообще медицинские услуги любые неоправданно завышены тут изначально.

    Да ну нафиг, нигде такого нет, а вот в Нидерландах есть :)

    Т.е. у вас дети ходят в школу в Нидерландах или в садик и вы ничего не платите за это, я правильно понял?

    Если ты про всю коммуналку, то 700-1000 евро нормальная цена за год, даже в Украине такие цены в новых ЖК (15-20 грн за кв.м. в месяц). А если только про мусор и стоки, то это чисто нидерландские заморочки, в других странах это намного, даже на очень много дешевле.

    Не не, это только мусор и стоки. Коммуналку даже сюда не включал. Коммуналка здесь это услуги — свет, газ: де-то 60-100 евро в месяц, в зависимости от квадратуры и другого

    Если можно, то с этого места по подробнее плиз...)

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

  • Вигорання? Це вже не модно!

    Молодец что спортом занимаешься, да еще и на чемпионатах выступаешь. Респект. А все кто лайкнули каммент про тискание с мужиками похоже что и сами латентные геи по дядюшке Зигмунду.

    Підтримав: Yaroslav
  • Scrum: применять или не применять, вот в чем вопрос

    Scrum более-менее приемлем для еще несработанных комманд с разным уровнем специалистов и нечетким представлением о продукте который собираются делать.

    Для остальных случаев был давно придуман Agile — набор из 12 принципов. Это не методология и не фреймворк, а способ максимально быстро адаптироваться под изменяющиеся требования бизнеса и рынка. Те же компании ФААНГ и другой Big Tech. преимущественно не используют скрам, а нечто вроде Plan->Build (Iterate)->Ship или Kanban, но не формальные методологии типа скрама.

    А по поводу самого требовательного метода это вы погарячились. Есть такое SAFe (Scaled Agile Framework) который нифига не agile и в котором конечного пользователя продукта и не видно в принципе. Но зато он имеет дикий оверхеад по ненужным процессам, терминологии и сертификации.

    Підтримав: Alexandr Volkov
  • В FAANG после 36

    Ну судя по тому что мне 42 и за последний год было несколько официальных приглашений на интерввью в Facebook и Amazon то не поздно. Другой вопрос а нужно ли ? :)

  • Український переклад книги по програмуванню

    Как идея подтянуть свой английский — супер, как финальный результат — зачем? Книги на любом языке кроме оригинала не передают всей сути и деталей

  • Этапы отбора кандидатов в JetThoughts

← Сtrl 1... 345678 Ctrl →