LINUX.ORG.RU
ФорумTalks

вышло интервью со Столяровым про СПО, кодинг и паранойю

 


1

2

Ъ: использует Devuan, оба окружения не смог распарсить (на 1:30:50), свой почтовый сервер и Jabber, нетбук с 1гб ОЗУ и браузер без JS, бабушкофон, всё современное гоняет в изолированной среде, а лучшим языком считает Tcl (вроде бы, мог неверно распарсить), потому что C испортился. Топит за СПО и независимые p2p сети на замену монополистам.

В целом выпуск интересный, прям таки русский Столлман. Раньше я знал его только по новостям на ЛОРе, где, как и всегда, был срач. Интересно, знает ли он про уязвимости в бабушкофонах?

Прозвучала интересная идея о информационном насилии, по которому у него кандидатская, и почему на C теперь нельзя писать.

https://www.youtube.com/watch?v=o111yYPqLHU

★★★★

Последнее исправление: InterVi (всего исправлений: 1)

Ответ на: комментарий от InterVi

Думаешь гуглу не наплевать на очередного шиза? Я не удивлюсь если он сам рассылал письма с просьбой о донате на новые книги, а юзерам надоело и они начали помечать спамом

elfmaid
()
Ответ на: комментарий от ashot

О том как его восстановить написано в одной из его книг?

grem ★★★★★
()
Ответ на: комментарий от Djanik

И всё это есть в Анси си, которому и будут учить школьника вместо Паскаля.

luke ★★★★★
()
Ответ на: комментарий от elfmaid

Ты из под какого камня вылез? Про то, что гмыл любит без причины слать письма в спам, уже лет 10 все рассказывают.

А обзывать человека спамером - это уже чересчур.

Legioner ★★★★★
()
Ответ на: комментарий от EXL

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

AKonia ★★
()
Ответ на: комментарий от praseodim

ставьте х2 и о чудо - останеться полтора часа

AKonia ★★
()
Ответ на: комментарий от elfmaid

Думаешь гуглу не наплевать на очередного шиза?

LOR, 2021, итоги.

Parthen
()
Ответ на: комментарий от Legioner

Вроде же правильно сказал, не ? «Выбор языка программирования не влияет на безопасность» - та же жаба с дырами в песочнице как бы та и говорит о себе, да и сейчас свежа история про умышленные уязвимости в ядре, которые для демонстрации рисков рабочего процесса. Аналогично и с растом - окажется в «сверхбезопасном» расте косяк на уровне компилятора и финитао ля комедия.

AKonia ★★
()
Ответ на: комментарий от fernandos

тут полагаю логика в том, что выбор языка становится не принципиальным, но вот выбор например Си/Си++ - позволяет при более глубоком чем «print ‘hello’» погружении в тему - покрыть шире область, с самого начала покрывать вопрос усидчивости и ответственности, различных идей и концепций, возможностей и рисков.

AKonia ★★
()
Ответ на: комментарий от AKonia

Правильнее будет сказать, что особенности языка позволяют совершать меньше ошибок, которые приводят к проблемам с безопасностью. Он не самодостаточен, что-то может всплыть, например, в llvm.

InterVi ★★★★
() автор топика
Ответ на: комментарий от EXL

Скорее всего хейтит, потому что там магия под копотом. Он же по этой причине хейтит сишку - что она слишком абстрагировалась от железа благодаря оптимизаторам.

Это общая беда всех ЯП: я сталкивался с магией в высокоуровневых языках, когда рабочий код не работал. Например, TS компилировался не с тем контекстом и класс не видел своих полей. Шерпотребу простительно, но вот нативные языки такое поведение делает непредсказуемыми.

InterVi ★★★★
() автор топика
Ответ на: комментарий от AKonia

Вроде же правильно сказал, не ? «Выбор языка программирования не влияет на безопасность»

Ну я, например, с этим не согласен. Влияет.

та же жаба с дырами в песочнице как бы та и говорит о себе

Дыры жабьей песочницы это тот уровень, до которого C даже не близко не дошёл. Уровень C это ActiveX. Где про безопасность даже никто не заикался, вся безопасность исключительно на доверии. Java хотя бы пыталась в песочницу. Ну не смогла, да, плохая архитектура у этой песочницы была. Ну и ладно, выбросили уже давно жава апплеты.

​Аналогично и с растом - окажется в «сверхбезопасном» расте косяк на уровне компилятора и финитао ля комедия.

Есть разница между «влияет на безопасность» и «даёт 100% гарантию». 100% гарантию не даёт никто и ничего. Даже в коде, у которого доказана правильность, может быть баг в доказательстве или в любом низлежащем слое. Или через измерение потребления процессором энергии вытащат твой приватный ключ, без всяких растов.

В программах на С есть огромный класс уязвимостей, обусловленных отсутствием в языке ряда проверок. Самое банальное - не проверяются индексы при обращении к массивам. И такого в C полно. В языках вроде Safe Rust или Java подобные баги невозможны. Да, в них возможны другие классы багов. Которые, скорей всего, будут так же возможны и в C.

Поэтому лично я считаю, что утверждение, что выбор языка программирования не влияет на безопасность, категорически неверное. Ну по крайней мере если не заниматься буквоедством, а понимать под языком программирования конкретную популярную реализацию вроде C/GCC, Rust/Rust, Java/OpenJDK и тд. Ещё как влияет. И в программе на Java багов будет намного меньше, чем в программе на C при той же квалификации программиста.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от InterVi

Ага, а оптимизаторы ллвма то безгрешные:) У меня блочное умножение матриц оптимизатор ллвма превращал в неработающее Г, поэтому ну такое - проблема наслаивания абстракций усложняет выявление ошибок внутри систем сложной иерархии

AKonia ★★
()
Ответ на: комментарий от InterVi

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

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 2)
Ответ на: комментарий от Legioner

Самое банальное - не проверяются индексы при обращении к массивам

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

AKonia ★★
()

Герой интервью отметился в теме. Вы же можете задавать вопросы непосредственно ему.

imul ★★★★★
()
Ответ на: комментарий от Legioner

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

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

причем тут вообще ллвм, гсс, и все такое???

alysnix ★★★
()
Ответ на: комментарий от alysnix

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

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от AKonia

Си, это язык «пред-ассемблерный» то есть между ним и асмом не может быть никакого другого языка. В этом его фишка и историческая функция.

Он опасен именно в силу своей мощности. безопасной мощи не бывает. чуть крутанул ручку и улетел. чуть повернул рычаг и взорвался.

Си удел смелых. Которые не боятся бросить вызов сущему и написать драйвер кофемолки для кернела линукса.

alysnix ★★★
()
Ответ на: комментарий от gremlin_the_red

Корован никуда не идёт, его грабят.

любой корован идет туда, где его будут грабить.

alysnix ★★★
()
Ответ на: комментарий от Legioner

Ну да, чего там, пошёл и написал.

Да. Что такого в написании компилятора?

Как перестали верить разработчики в свои силы. Совсем приучились к фреймворкам?

Джон Кармак верит в программистов:

An enormous virtue of plain old C is that most senior developers are capable of writing their own C compiler

https://twitter.com/id_aa_carmack/status/1078092777429311488

fsb4000 ★★★★★
()
Ответ на: комментарий от javascript

Ну ок, вариант допустимый - взять какой-нибудь старый стандарт С, добавить чего душе угодно и написать для него свой компилятор, а на нём уже писать свои программы. Конкретно для С это сделать действительно можно.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Ну ок, вариант допустимый - взять какой-нибудь старый стандарт С

так..одного уговорили. теперь надо уговорить столярова, чтобы он не приепывался со своими студентами к православной сишечке в исполнении Краснознаменного Ансамбля gcc.

не нравится исполнение - напиши свой компилятор. тем более, что два студента у тебя уже есть.

alysnix ★★★
()
Ответ на: комментарий от alysnix

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

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

в-третьих - аргументируйте пожалуйста свою позицию по делу, а не оценочными эпитетами без содержания, а лучше приведите пример который однозначно вызовет проблемы у новичка на си и не вызовет на паскале - лично я таких примеров не знаю, более того всё что чаще всего принимается не сразу, это индексы с 0 и указатели с динамической памятью, но повторюсь что их при начальном обучении не используют - пользуют стековые массивы с индексацией, а более продвинутый курс вынудит вас использовать указатели и динамическую память и на паскале. В остальном из достоинств си над пасалем отмечу большую интуитивность - будь то снятое в си99 ограничение на расположение объявлений переменных, более гибкие=управляемые циклы, равнозначные блоки(вспоминаем . и ; у блоков в паскале) и др. В общем рекомендую абстрагироваться от личной эмоциональной привязанности и отторжения и сравнивать языки сопоставляя их качества, интуитивность, а не замыкаясь на шаблонных штампах.

AKonia ★★
()
Ответ на: комментарий от AKonia

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

Когда я учился, мы программирование учили по паскалю, но параллельно с этим была дисциплина по изучению сишечки. Так вот, типичный студент пишет лабу на паскале, запускает, и видит результат, часто даже правильный. А вот когда запускает лабу на сишечке, видит ошибку защиты памяти, ибо накосячил с printf (с функцией вывода, карл!). Но что он там накосячил, он конечно же не знает, просто шайтан машина не хочет работать. И тогда слышал народную мудрость, что программу на C мало написать, ее еще надо запустить)

Но я в общем за то, чтобы заменить паскаль чем-то более актуальным, например Go.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 3)
Ответ на: комментарий от AKonia

в-третьих - аргументируйте пожалуйста свою позицию по делу, а не оценочными эпитетами без содержания, а лучше приведите пример который однозначно вызовет проблемы у новичка на си и не вызовет на паскале - лично я таких примеров не знаю…

я тут говорю не про овеянный легендами паскаль вирта, а про free pascal - куда более продвинутую систему, с которой си и рядом не стоит.

си имеет смысл изучать студентам железячных специальностей, поскольку это и есть ниша си.

что плохого в си?

  1. препроцессор и слишком высокая его важность - без него никуда.

  2. макросы.

  3. нет нормальных типизированных констант.

  4. нет нормального булевского типа, соместимость була с интом = это неправильно.

  5. операции не типизированы. смысл операции определяется целиком ее мнемоникой, а не типом операндов. то есть си - не вполне типизированный язык.

  6. плохой синтаксис для указателей. попробуйте сравнить запись функционального типа в си и в паскале.

  7. нет модулей…

  8. указатель на массив, есть указатель на его первый элемент и совместим по типу. ничоси типизация… указатель на int и указатель на массив интов - одно и тоже!!!

ну это навсидку… если б не легаси, си можно было б на помойку выносить. но функцию - быть «предассемблерным» языком он выполняет исправно. потому и живет.

но учить программировать на нем - нельзя, если только не железячников.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от InterVi

контент для умных, всё так и должно быть

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

no-such-file ★★★★★
()
Ответ на: комментарий от alysnix

ну это навсидку

Так это специально так задумано, по идеологическим причинам.

учить программировать на нем - нельзя, если только не железячников

Смотря для чего. Как язык для обучения программированию он конечно не годится сейчас, но по совершенно другим причинам. В нем просто нет того разнообразия фич, которые должен знать программист сегодня и которые нужно показывать «на пальцах». ООП, исключения, асинхронщина, многопоток и т.д. Более-менее сносно на роль учебного языка сегодня подходит только ненавистный JS (ну и может быть жаба, но она тяжёлая).

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

ООП, исключения, асинхронщина, многопоток и т.д.

все это есть у фрипаскаля.

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

все это есть у фрипаскаля

А, да? И async/await завезли? Ну ок, если так.

так зачем вам ява

Мне не надо, я же сказал, она тяжёлая. Ты слепой?

PS: а где-то есть вменяемая мурзилка по современному FPC?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

async/await

Вот хочется тебе пожелать, чтобы ты хоть раз в жизни объяснил, что такое async/await какой-нибудь фигуристой студентке первого курса, которая концепцию массива никак не может воспринять. Хорошо так объяснил, нормально, чтобы она могла сесть и начать промисы ваять.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

которая концепцию массива никак не может воспринять

Вероятно она выбрала не тот факультет. Ничего страшного, поступит на более подходящий. (Интересно как она вообще поступила?)

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Вероятно она выбрала не тот факультет.

Или преподаватель выбрал не ту профессию.

Интересно как она вообще поступила?

Набрала нужное число баллов по математике, физике и русском языку.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Набрала нужное число баллов по математике

Т.е. понять что такое предел и производная она может, а массив нет? Так не бывает.

Или преподаватель выбрал не ту профессию

Возможно.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Т.е. понять что такое предел и производная она может, а массив нет? Так не бывает.

Ещё как бывает.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.