The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз Firefox 90, opennews (??), 13-Июл-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


5. "Релиз Firefox 90"  +/
Сообщение от Жироватт (ok), 13-Июл-21, 16:36 
> В JavaScript реализована поддержка пометки методов и полей класса приватными, после чего доступ к ним будет открыт только внутри класса. Для пометки следует указать перед именем знак "#":

Ну не прошло и двадцати лет.

Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз Firefox 90"  –11 +/
Сообщение от Аноним (37), 13-Июл-21, 17:19 
Ограничение доступа к членам класса - это карго-культ, пошедший из решения Трупа Страуса, когда он сидел в/на Крестах. Никакой пользы от него нет, один вред. Только в крестах есть легальный обход, http://www.gotw.ca/gotw/076.htm , в жабе/остром можно обойти через рефлексию с оверхедом и/или патчингом байткода, а тут что? Не нравится - делай вообще свою библиотеку, свой луна-парк и свой лунный модуль и таскай это говно с собой и другим людям пользоваться не давай, потому что с ***ли мне пользоваться форком от какого-то мутного типа, раз Диктатор либы решил, что private - значит private.
Ответить | Правка | Наверх | Cообщить модератору

51. "Релиз Firefox 90"  +6 +/
Сообщение от Ananimasss (?), 13-Июл-21, 17:54 
А может просто ленивой макаке лень пользоваться чем разрешили, вместо того чтобы лезть кривыми руками в приватные свойства.
Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз Firefox 90"  –1 +/
Сообщение от Аноним (75), 13-Июл-21, 18:38 
зачем тогда класс нужен и ООП? вместо конструктора сразу все свойства проинитить как надо, геттеры и сеттеры заменить на обращение к значениям... в общем сразу переписать работу методов с нуля на процедурном языке с глобальными переменными...
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

86. "Релиз Firefox 90"  +/
Сообщение от Аноним (83), 13-Июл-21, 18:47 
И в самом деле - зачем? Что в C, что в асме, что в форте или модуле-2 с адой прекрасно обхожусь без этого ненужного уже лет 30.
Ответить | Правка | Наверх | Cообщить модератору

194. "Релиз Firefox 90"  +1 +/
Сообщение от Аноним (194), 14-Июл-21, 03:13 
Что ты такое, что 30 лет на Форте кодишь?!
Ответить | Правка | Наверх | Cообщить модератору

284. "Релиз Firefox 90"  +1 +/
Сообщение от пох. (?), 14-Июл-21, 11:29 
> Что ты такое, что 30 лет на Форте кодишь?!

"просто повезло, наверное"

Ответить | Правка | Наверх | Cообщить модератору

298. "Релиз Firefox 90"  +/
Сообщение от Аноним (83), 14-Июл-21, 13:36 
А вот фишка так легла, что ни разу ни пыхпых, ни питон, ни прочее подобное не потребовалось (включая MFC, QT и дельфи). Прав был Дейкстра: "Объектно-ориентрованное программирование — это исключительно плохая идея, которую могли придумать только в Калифорнии".
Ответить | Правка | К родителю #194 | Наверх | Cообщить модератору

212. "Релиз Firefox 90"  +/
Сообщение от kissmyass (?), 14-Июл-21, 06:19 
в принципе я тоже могу жопу лопухом, не нужны фабрики по переработке древесины, титановые белила, экология и мильен других аргументов от адептов
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

288. "Релиз Firefox 90"  +/
Сообщение от iPony129412 (?), 14-Июл-21, 12:17 
так лучше
Ответить | Правка | Наверх | Cообщить модератору

300. "Релиз Firefox 90"  +/
Сообщение от Аноним (83), 14-Июл-21, 13:51 
Объектно-ориентированные программы предлагаются в качестве альтернативы правильным.

Эдсгер В. Дейкстра, пионер информатики

Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

311. "Релиз Firefox 90"  –1 +/
Сообщение от Жироватт (ok), 14-Июл-21, 15:00 
> Шел 2021й год. Эдсгер В. Дейкстра, пионер информатики, а ныне вызванный из лап смерти в качестве бессмертного спасителя индустрии от г-нокодеов и криводелов пытался в 3927й раз повесится: его структурный код или рано или поздно мутировал к протообъектному, или сам Дейкстра взывал от отчаяния, когда его красивые программки с великолепными алгоритмами ну никак не ложились на новые предметные области. Пионер программирования тонул в абстрациях, плавал в мутных потоках relationships, но стиснув зубы отказывался признавать ООП.
> - Чертовы калифорнийцы, мать их за три ноги, - было самым цензурным из всего, что он произнес за сегодня, пытаясь справиться хотя бы с частью задач к майлстоуну. Он барахтался, оступался, больно падал, но упорно отказывался от концепции.
> - Инкостыляция, накостыливание, поликостылизм! - шипел он в пустоту между стеной и монитором. Паук Валерий, свивший там маленькую паутину, на каждое злобное шипение вжимался в прикрытое куском обоев оставшееся от выдернутого дюбеля углубление. Ему было страшно.
> К первопроходцу со скоростью локомотива приближался дедлайн...
Ответить | Правка | Наверх | Cообщить модератору

312. "Релиз Firefox 90"  +1 +/
Сообщение от Аноним (312), 14-Июл-21, 15:23 
> Инкостыляция, накостыливание, поликостылизм!

Именно так. Даже ведро линупca благополучно обходится без этого ненужного все три десятка лет своего существования. Линус в свое время ясно и понятно высказывался на эту тему.

Ответить | Правка | Наверх | Cообщить модератору

324. "Релиз Firefox 90"  +5 +/
Сообщение от DildoZilla (?), 14-Июл-21, 17:31 
ООП это жабаскрипт нормального программирования.
Ответить | Правка | К родителю #300 | Наверх | Cообщить модератору

326. "Релиз Firefox 90"  +/
Сообщение от Аноним (312), 14-Июл-21, 17:58 
When you see the code

    i = j * 5;

… in C you know, at least, that j is being multiplied by five and the results stored in i.
But if you see that same snippet of code in C++, you don’t know anything. Nothing. The only way to know what’s really happening in C++ is to find out what types i and j are, something which might be declared somewhere altogether else. That’s because j might be of a type that has operator* overloaded and it does something terribly witty when you try to multiply it. And i might be of a type that has operator= overloaded, and the types might not be compatible so an automatic type coercion function might end up being called. And the only way to find out is not only to check the type of the variables, but to find the code that implements that type, and God help you if there’s inheritance somewhere, because now you have to traipse all the way up the class hierarchy all by yourself trying to find where that code really is, and if there’s polymorphism somewhere, you’re really in trouble because it’s not enough to know what type i and j are declared, you have to know what type they are right now, which might involve inspecting an arbitrary amount of code and you can never really be sure if you’ve looked everywhere thanks to the halting problem (phew!).

(С)небезызвестный Джоэл Спольски

Ответить | Правка | Наверх | Cообщить модератору

335. "Релиз Firefox 90"  +/
Сообщение от Dzen Python (ok), 14-Июл-21, 19:43 
When you see the code

   this_is_my_first_awersome_struct_in_c.i = this_is_my_fusking_awersome_method_to_multiply_this_fusking_value_from_real_world_in_struct_field(this_is_my_second_awersome_struct_in_c.j, 5);

… in C you know, at least, that j is being multiplied by five and the results stored in i.
But if you see that same snippet of code in C++, you don’t know anything. Nothing. AND THIS IS GOOD, 'cause some types with owerrided types compacted from:
    obj2.i = obj1.DoThisMyltiplyShit(reiterpret_cast<int> (obj1.j), 5);
    obj4.i = obj3.DoThisMyltiplyShit(strlen(obj1.j), 5);
where obj2|obj1 non equal obj4|obj3
to simly:
    obj2.i = obj1.j * 5;
    obj4.i = obj3.j * 5;
incapsulate all logic from external user:


Ответить | Правка | Наверх | Cообщить модератору

336. "Релиз Firefox 90"  +/
Сообщение от Аноним (83), 14-Июл-21, 19:46 
"Внутри С++ сидит более компактный и понятный язык, отчаянно пытающийся выбраться наружу." — Бьерн Страуструп
Ответить | Правка | Наверх | Cообщить модератору

357. "Релиз Firefox 90"  +/
Сообщение от Аноним (83), 14-Июл-21, 22:10 
Если ты используешь глобальные переменные не в бейсике 80-х или в фортране-77 - ты точно все правильно делаешь? Ибо еще Керниган с Ритчи против этого всячески предостерегали.
Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

81. "Релиз Firefox 90"  +1 +/
Сообщение от Аноним (75), 13-Июл-21, 18:39 
в Си можно и константу через операции с указателями или ассемблерные вставки поменять, но зачем?
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

201. "Релиз Firefox 90"  +4 +/
Сообщение от Аноним (201), 14-Июл-21, 05:04 
Это из серии все идиоты, один я умный.

В современных книгах по архитектуре ПО интерфейсу класса уделено особое место. (Загляните, например, в J.Ousterhout - A philosophy of software design.)

Если коротко. public - публичный интерфейс должен быть наипростейшим и минималистичным. Для снижения когнитивной нагрузки на программиста, который пользуется этой библиотекой (классом). Т.е. человеку должно быть достаточно посмотреть в раздел public класса.

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

287. "Релиз Firefox 90"  +/
Сообщение от Аноним (37), 14-Июл-21, 12:11 
>Если коротко. public - публичный интерфейс должен быть наипростейшим и минималистичным. Для снижения когнитивной нагрузки на программиста, который пользуется этой библиотекой (классом). Т.е. человеку должно быть достаточно посмотреть в раздел public класса.

В питоне эта проблема решается просто именованием - приватные члены надо начинать с подчёркивания, автодополнение их по-умолчанию не отображает. А то, что кто-то может в чужие либы влезть и поковыряться - это не недостаток, а достоинство, ибо we are all consenting adults (у некоторых SJW-овуляшек активно подгорает от такой формулировки, ведь это могут прочитать ДЕТИ, и подумать что они тоже adults и что им тоже можно, а мама им ещё не разрешает) и в результате можем на свой страх и риск пользоваться библиотеками чужих людей без их одобрения и разрешения и благословения на такой вид использования. Это здорово и очень хорошо. Ибо люди несовершенны и не могут вообразить, как я буду использовать их либу, и даже если могут, они могут такое использование не одобрить.

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

Ответить | Правка | Наверх | Cообщить модератору

301. "Релиз Firefox 90"  +1 +/
Сообщение от Аноним (83), 14-Июл-21, 13:54 
Мне очень жаль, что давным давно я ввёл термин «объекты», потому что они заставляют многих людей сосредоточиться на менее важной идее. Основная же идея — обмен сообщениями.

Алан Кей, изобретатель ООП

Ответить | Правка | К родителю #201 | Наверх | Cообщить модератору

290. "Релиз Firefox 90"  +/
Сообщение от Аноним (290), 14-Июл-21, 12:35 
>есть легальный обход, http://www.gotw.ca/gotw/076.htm

То, что private, значит, разработчик библиотеки оставил за собой право изменить это в следующих версиях. И если у хакира, вдруг, потом перестанет его прога правильно работать, ну его же предупреждали, ССЗБ.

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

410. "Релиз Firefox 90"  +/
Сообщение от And (??), 15-Июл-21, 14:16 
> ... Ограничение доступа к членам класса ...
> ... пользы от него нет, один вред ...
> ... раз Диктатор либы решил, что private - значит private.

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

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

113. "Релиз Firefox 90"  +1 +/
Сообщение от морошка ягодка такая (?), 13-Июл-21, 20:20 
я один нахожу эту решётку немного спорным синтаксисом?
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

294. "Релиз Firefox 90"  +1 +/
Сообщение от Аноним (290), 14-Июл-21, 12:50 
Не один. Уж больно прочно она ассоцииируется с коментами в скриптовых языках.
Ответить | Правка | Наверх | Cообщить модератору

387. "Релиз Firefox 90"  +/
Сообщение от InuYasha (??), 15-Июл-21, 11:44 
Таки, да. Даже на Сишные препроцессорные команды не похоже.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру