LINUX.ORG.RU

Избранные сообщения mky

О вреде ООП надо говорить! Это - слишком важная тема, чтобы отмалчиваться.

 

Здравия всем!

Я редко пишу на этом форуме, никого здесь не знаю… Но всё-таки решил попробовать. Удалят - и ладно.

Хочу лишь обратиться к молодому поколению программистов: в университете вам будут впаривать ООП - не ведитесь. Я много лет жизни потерял пытаясь понять что это за зверь. Это настоящая религия. Тебя убеждают что это хорошо, а когда ты понимаешь что это плохо - тебе говорят: ну ты просто ещё не знаешь паттернов, 5 принципов дяди Боба и т.д.

Много лет спустя, я поизучал эти паттерны, принципы и пришёл к выводу. Всё это демагогия. Это реально секта. Создана парадигма, которая не работает из-за противоречия в самой своей сути. И чтобы оправдать её существование была создана куча теорий, которые добавляют сложность в систему.

Есть много статей, разбирающих по косточкам различные аспекты ООП. Это тяжелое чтиво и мало кто из студентов сможет понять о чём речь. Тут сессии, курсовые, языки, вечеринки. Не до философии. Но всё сводится именно к философии:

информация ничего не значит без контекста.

В классическом примере ООП используется для пользовательского интерфейса. ООП объект хочет быть самостоятельным, «знать» как себя отобразить. Но это зависит от размера экрана, а если вывод в документ PDF, то предпочтительнее вектор, а не растр и так далее. Рано или поздно работа с ООП постоянно натыкается на конфликт: как передать контекст объекту.

Об этом много сказано, есть много примеров и разборов. Я уверен что студентам некогда читать длинные статьи где много буков. Они легко гуглятся и вот одна из наиболее кратких со ссылками на более подробные https://habr.com/ru/post/451982/

В идеале, хочу создать новую статью, ещё короче но с конкретными примерами. Просто реально трудно общаться с ООП-зомбированными людьми. Их так учили 5 лет и они даже не допускают мысли что их разводили все эти годы…

Перемещено xaizek из development

svyatozar
()

Потянет ли старый одноядерный ноутбук 1080p с ютуба?

 , , , ,

Вот мне тоже стало интересно, и вот в один прекрасный день на авито нашел объявление что целых 4 ноутбука продавались за 1100 рублей (275 каждый). Я не мог удержатся и купил их…

Я запустил archlinux32 с флешки (ide-винты были полностью мертвы) и заработало оно шустрее чем я изначально ожидал.

Просто много раз читал (и здесь тоже) что даже core 2 duo «разве что на помойку» и т.д. Вот я решил развеить мифы:

https://youtu.be/om1Y5VNZ5pM

~14:00 я запускаю fullhd, причём онлайн. Без загрузки. И в интернет прекрасно выхожу.

Характеристики пациента:

  • Pentium m 1.7 Ghz
  • 2 GB DDR2 ram
  • intel gma915 graphics

P.s. Специально для @eco_dd mpv hardware acceleration на вяленом (комментарий) я на этом же ноутбуке сравнил одно и тоже видео в mpv (как gpu, так и xv) и в mplayer. Mpv однозначно сливается.

gtk3
()

Какой VPN сервис юзает ЛОРовец в конце 2020 года?

 , ,

Сабж. Где нормально работает WireGuard под линуксом, где меньше проблем с капчами и т. д.

Pacmu3ka
()

Медленно масштабируются X11 окна

 ,

Программы на голом протоколе X11 или Motif (xclock, acme, nedit) медленно меняют размер окна и содержимое дёргается. С программами на Qt/GTK такого не наблюдается. Кто нибудь знает, чем это вызвано? X.Org сломали?

openSUSE, KDE

X512
()

В питон завозят паттерн-матчинг

 

Кто бы мог подумать, ещё лет 5 назад, что питон получит типизацию и функциональщину. Но нет:

def is_tuple(node: Node) -> bool:
    match node:
        case Node(children=[LParen(), RParen()]):
            return True
        case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]):
            return True
        case _:
            return False

История показывает, что участь любого популярного ЯП - С++ ужас.

https://www.python.org/dev/peps/pep-0622/

RazrFalcon
()

2 ip и 2 шлюза на 1 машине

Подскажите, возможно ли поставить 2 ip и 2 шлюза (с разных диапазонов) на 1 интерфейс. rhel6, 2.6.32 kernel

xZergx
()

wildcard, ksh, прогулка по файлам, aix

 ,

Чойта я туплю отчаянно. AIX (ох, сейчас камней будет). ksh. Хочу в скрипте сделать что-то с каждым файлом *.dat в каталоге.

Вариант 1:

for f in /dir/*.dat; do

работает хорошо, если файлы есть. Но если нет - тело цикла вызывается один раз с параметром /dir/*.dat. Приходится внутри делать какое-нибудь глупое if [ -f $f ]

Вариант 2:

ls /dir/*.dat | while read $f; do

тоже работает, но, если файлов нет, ls ругается. Приходится перенаправлять 2>/dev/null, что не очень красиво

Вариант 3:

find /dir -name '*.dat' | while read $f; do

не совсем то, ибо лезет вглубь, а я не хочу (тамошний find не знает про maxdepth).

Как кошерно? Я понимаю, что надо использовать нормальный linux, bash, find и т.д. Но условия в задачке именно такие.

svu
()