Pull to refresh
65
0
Аскар Сафин @safinaskar

User

Send message

А вообще спасибо за статью. Я, конечно, по-прежнему не согласен. Но, кажется, теперь понял, почему почти во все языки добавили ООП. В C добавили (получился C++), в Pascal и даже в Caml (получился Ocaml). Потому что ООП - это способ писать большим коллективом взаимозаменяемых программистов, то же, что микросервисы, но на другом уровне. Ну то есть я это и раньше понимал, а теперь окончательно осознал. Наличие ООП в языке - это своего рода печать "Данный язык можно использовать в бизнесе". Все побежали эту печать получать

Автор, расскажу вам про один язык программирования, а точнее, про семейство языков, я думаю, вам понравится. Это Lisp. Из его вариантов я имел дело с Scheme. Динамически типизированный. И исключения имеются (по крайней мере в Scheme). Всё, как вы любите.

А самое главное, при помощи макросов в этом языке можно сотворить совершенно что угодно. Любую повторяющийся код можно выделить в отдельную абстракцию. Don't repeat yourself, возведённый в абсолют. Код на Lisp получается предельно сжатым, любую ошибку нужно будет исправлять только в одном месте. С помощью макросов вы по сути создаёте свой язык. И препроцессоры для добавления недостающих фич можно легко реализовать на самом Lisp с помощью этих макросов.

Программирование на Lisp происходит так: программист начинает писать программу, по мере надобности с помощью макросов добавляет нужные ему фичи (фичи самого языка). В результате пишет он не на данном варианте Lisp, а на своём языке. Полная свобода для творчества.

Продолжение этих мыслей можете найти тут: http://paulgraham.com/avg.html (есть такой русский перевод: https://nestor.minsk.by/sr/2003/07/30710.html , за качество перевода не ручаюсь).

А в чём же подвох? Подвох в том, что поскольку каждый пишет на своём языке, одному программисту сложно въехать в код, написанный другим. Из-за чрезмерной вседозволенности языка язык абсолютно неприступен для линтеров. И IDE тут малополезны. Словом, это абсолютный ад для бизнеса. Полный антипод микросервисного капиталистического рая.

Так что попробуйте, думаю, вам понравится.

Теперь по существу. С вашей статьёй не согласен. Согласен со многими вашими критиками-комментаторами. Сам я пробовал Scheme. Язык красивый, но использовать не буду, т. к. люблю статическую типизацию.

Добавлю, что в этом моём комменте нет шуток. Сарказм, может, есть, но шуток нет, т. е. каждое предложение нужно понимать буквально, а не наоборот

«данной сраны» — это опечатка?
О, раз уж вы тут объявились, давайте расскажу о несвязанной теме. В 2014-2015 гг. я использовал домашний интернет от Дом.ру в Казани на ноутбуке. Довольно часто (скажем, раз в день) вместо запрошенной страницы мне показывалась реклама Дом.ру. Я уже не помню, но подозреваю, что это работало только с http-сайтами, не с https. Вроде даже это приводило к тому, что команда wget в линуксе вместо нужного файла иногда скачивала вашу рекламу. Так вот, я надеюсь, вы перестали так делать?
Судя по этой статье meduza.io/feature/2021/01/29/esli-chelovek-prezident-emu-vse-mozhno, строители дворца Путина видели в нём тоже исключительно интересную инженерную задачу. А жалели лишь о том, что их труд не оценили
Использовал Дом.ру в Казани. Так они иногда (раз в месяц или, может, в день, не помню) вместо запрошенной страницы отдавали страницу от Дом.ру, сообщающую о чём-то, о каких-то акциях вроде. То есть набираешь какой-нибудь url, нажимаешь enter, и получаешь рекламу Дом.ру. Не помню, работало ли это с https (если работало с https, то не понятно, как они этого добились). Вроде даже wget из консоли в линуксе мог их страницу скачать вместо запрошенного сайта (а значит, любые скрипты для автоматической закачки чего либо ломались). Так вот, они это пофиксили?
Если чё, автор оригинальной статьи — тот самый чувак, который однажды выпустил разгромную статью про биткоин, обрушив курс биткоина процентов на десять. Та статья вот: blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7, советую почитать также её разборы. Так что советую Майку не доверять
В линуксах можно настроить, чтобы при зажатом правом альте печатались русские буквы. В винде тоже можно так сделать (если создать новую раскладку специальным простым инструментом). Я только так и живу (и коммент этот с правым альтом набираю)
даже wsl не помог

Очень странно. WSL совместим на уровне ABI, т. е. тупо запускает линуксовые бинарники как есть. Совместимость должна быть 100%, если вы не используете каких-то уж совсем corner cases, например, unshare/clone/cgroups/containers/docker, как я понимаю, в WSL работать не должны (впрочем, с учётом того, что WSL в определённый момент перешёл на поставку настоящего ядра Linux в комплекте с виндой [ядро линукс поставляется в комплекте с виндой, Карл! habr.com/ru/company/itsumma/blog/450846 ], возможно, заработало и это).

chroot и debootstrap, как я понимаю, должны работать в WSL. Так что попробуйте следующее: средствами линукса создайте chroot-окружение, в котором ваш софт собирается. Перенесите это чрут-окружение в WSL, войдите в него командой chroot и соберите в нём (понятное дело, может понадобиться что-то примонтировать, всякие там /proc и /dev, ну как и в линуксе). Должно работать
Что касается именно терминала, а не шела, то есть habr.com/ru/company/itsumma/blog/457150
Вообще, мой коммент был не про конечного пользователя. Я просто выразил тут свою досаду от того, что Linux всё никак не откажется от autoconf. Но всё же отвечу. Программы на autoconf медленно собираются (если учитывать этап конфигурации при подсчёте времени сборки). Значит, если отказаться от autoconf время сборки уменьшится, это сделает программистов эффективнее, и у них появится больше времени на то, чтоб реализовать фичи, непосредственно заметные для пользователя. Также, autoconf создаёт кучу проблем для программистов, он неудобен. Если от него уйти, опять-таки у программистов будет больше времени для user-visible features
Консоли нормальной нет, виндовс терминал немного спасает конечно, но ему до нормального линуксового терминала как до Китая пешком

Используйте PowerShell. Да, он непривычный по сравнению с bash, но он (если разобраться в нём, конечно), по своим возможностям гораздо круче. Плюс многое сделано по-правильному, в отличие от bash. В частности, аналоги линуксовых ls и прочих команд пишут структуированный вывод, с которым можно потом оперировать на уровне структуры. А не текст, который потом нужно регексами парсить с помощью grep, sed и т. д. Это та фича, к которой Linux только подбирается (уже есть прототипы шелов для Linux, которые работают на похожих принципах). См. также мою статью про UNIX habr.com/ru/post/321652, там есть раздел про шел
Коллективное производство без чёткого управления быстро обрастает коллективной ответственностью. А коллективная ответственность это когда никто ни за что не отвечает

А вот это блестящая мысль. И может даже было бы хорошо, если бы freecoder_xx (который одинаково хорошо умеет писать статьи за и против линукса) эту тему развил в новой статье.
Вот скажем, было бы хорошо, если бы все базовые программы в линуксе отказались от какой-нибудь устаревшей технологии, например, autoconf. Вот только это потребует изменения в куче программ, и к сожалению, нет никакой силы, способной принудить всех майнтейнеров к такому изменению. Никто не отвечает за экосистему Linux в целом!
> Окно приложения может открыться так, что его заголовок будет за пределами экрана, и вам придётся гуглить хоткеи, чтобы его сдвинуть

Зажмите левый Alt и переместите окно, схватив за любое его место
Попробуйте в Kate нажать Ctrl-Shift-B или Ctrl-B. Правда режим, который включится, какой-то уж очень странный
(Ваш баг репорт не смотрел.) Попробуйте написать в списке рассылки или тупо лично по почте мейнтейнерам, что готовы заплатить. С учётом того, что получатели могут жить в других странах, самый подходящий способ — в биткоинах. Думаю, откликнутся. Ещё один вариант: купить поддержку какого-нибудь дистрибутива Linux, и после этого отправить запрос в поддержку, мол, почините. Думаю, починят. Только с убунтой, думаю, это не прокатит, т. к. mc (когда я последний раз смотрел) относится к component'у под названием universe, т. е. неподдерживаемые. Ещё можно написать любому из платных консультантов debian'а www.debian.org/consultants. Если что-то сработает, отпишитесь, мне интересно
> Это всё равно выкидывание опыта
Раз не хочется выкидывать опыт, и хочется всё же оставаться в C++, оставайтесь. Ездите на встречи комитета C++, заставьте их исправить недостатки C++, которые вы видите (можно через РГ21 пытаться stdcpp.ru ). Участвуйте в проектах (и пишите свои), которые активно используют новые фичи C++, которые фиксят недостатки старых. По поводу UB, возникающих из всяких memcpy: есть подвижки: www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4303.html, en.cppreference.com/w/cpp/utility/launder, wg21.link/P0476. Советую этот блог: blog.regehr.org, автор почти все свои посты посвящает своим попыткам сделать C и C++ точнее (и его компиляторы). Пишет разнообразные новые инструменты для этого. Например, blog.regehr.org/archives/1667, blog.regehr.org/archives/1619, blog.regehr.org/archives/1520, blog.regehr.org/archives/1393, blog.regehr.org/archives/1292, blog.regehr.org/archives/1128, blog.regehr.org/archives/1678, blog.regehr.org/archives/631. Используйте свои знания, чтобы сделать лучше альтернативы C++, такие как Rust. Или создайте свою
antoshkka
Одна из выдающихся идей, которые нам посчастливилось представлять, — это идея Антона Жилина P2025

Поддерживаю. Часто пишу классы наподобие not_null_ptr, и подобные фичи мне очень нужны. Поэтому пришлось разобраться в теме. Дам список похожих предложений, которые связаны с написанием not_null_ptr-подобных классов: P1029, P1144, P0023.

Также советую толк от автора одного из пропозалов, разбирающий пропозалы по теме: www.youtube.com/watch?v=SGdfPextuAU. См. также quuxplusone.github.io/blog/2018/05/02/trivial-abi-101.

В общем, советую скооперироваться с авторами альтернативных пропозалов и послать какой-то единый пропозал
Согласен, что это дыра. Но я даже не надеюсь, что её пофиксят. Советую просто забить и жить дальше. Её не пофиксят, т. к. C и C++ изначально делались без особой оглядки на теорию языков программирования. Если бы создатели C и C++ знали теорию языков программирования, они бы вместо void сделали классический unit type из теории языков программирования. Его можно было бы создавать и делать с ним всё, что угодно. Если вас парит ситуация, используйте языки, где это продумано, напр. Haskell и SML/Ocaml

Information

Rating
Does not participate
Date of birth
Registered
Activity