Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.09 07:56
Оценка: -6
Здравствуйте, Tilir, Вы писали:

T>Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют.

С чего ты взял?

T>Ошибки? Их не бывает только у тех, кто ничего не делает. А свобода программиста, которую даёт C, ну да в том числе и свобода ошибаться, это самое ценное что у меня, например, есть.

Тоже чушь, MS активно использует верификатор кода C, количество таких ошибок снижается на порядки.

Программирование уже давно не искусство, тут рулят надежные решения. На свободу насрать.
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: metaprogrammer  
Дата: 06.11.09 07:58
Оценка:
Здравствуйте, Tilir, Вы писали:

T>Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют.


А с какой радости? Чем плох JIT в ядре? Чем плох realtime GC в ядре? Мало было в линухе утечек?

Все эти предрассудки против управляемых сред давно уже пора бы пресечь.

T> Ошибки? Их не бывает только у тех, кто ничего не делает. А свобода программиста, которую даёт C, ну да в том числе и свобода ошибаться, это самое ценное что у меня, например, есть.


Си слишком мало чего даёт кроме этой свободы.
Re: За нашу свободу!
От: Pavel Dvorkin Россия  
Дата: 06.11.09 08:09
Оценка: 56 (11) +3 :))
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а? А то получится как с ядром линукса
Автор: kochetkov.vladimir
Дата: 05.11.09
:


Что там получилось — обсуждать сейчас не буду, так как жду ответа на мое утреннее письмо. Ну а о прочем порассуждаем.

Нужна ли нам свобода ? Для того, чтобы ответить, надо задать другой вопрос — а что вообще надо ?

Говорить буду от своего имени. Согласные могут присоединиться

Мне надо

1. Иметь возможность делать все, что я хочу. Разумееется, в рамках того, что мне позволяет аппаратура и (возможно) операционная система, а также мои мозги. Слово "возможно" здесь не случайно. В определенных границах я могу изменить поведение ОС, добавив к ней свой модуль (драйвер)
2. Чтобы это работало как можно более быстро и потребляло ресурсов как можно меньше. Я пишу не серверное ПО, а моя ОС не MS-DOS, так что работать это все будет в коммунальной квартире, а поэтому ванную занимать на 3 часа нечего и свет в туалете надо тушить.
3. Чтобы в этом коде было как можно меньше ошибок. Говорить "чтобы не было ошибок" не буду, так как программа без ошибок есть абстрактное теоретическое понятие.
4. Чтобы я на это потратил как можно меньше своего времени.

Замечу, что эти пожелания выстроены мной строго в соответствии с моими приоритетами. Иными словами, если мне предлагается нечто, резко улучшающее пункт i+1 за счет ухудшения в пункте i — меня это не устроит.

Ты мне предлагаешь начать с пунктов 3 и 4. Обещаешь, что в коде будет меньше ошибок, и я смогу написать быстрее. Насчет второго не спорю, а первое еще обсудим, попозже.

Первый мой вопрос — а как с п.1 и 2 будет. Гарантируете ли вы, что я по-прежнему смогу делать все. что я умею делать, использовать все те возможности ОС, которые умею использовать ? И будет ли это работать столь же быстро и требовать ресурсов не больше ?

Как только я этот вопрос задаю, так сразу мои оппоненты начинают юлить. Сможешь , наверное, только вот иногда тебе придется на неуправляемый код переходить, а иногда и вообще не получится. Но ты мол, не огорчайся, если не получится, то это значит, что тебе такое и не надо, мы тебе другое предложим... И работать это будет быстрее. Ах, у тебя все же медленнее получается... Ну значит , ты неправильно меряешь, не на тех тестах , и вообще имей в виду — в светлом будущем наш код намного лучше будет. Светлое будущее обещать они очень любят.

Я утрирую ? Нет. Ну насчет скорости — мы тут уже столько копий сломали, что вряд ли стоит еще одно ломать. А вот насчет возможностей... Никакой я не специалист в C# и .NET, я там просто дилетант, не более. Но тем не менее мне неоднократно доводилось давать советы в форуме по .NET, причем за эти советы я получал баллы в рейтинге. Разумеется, мне и в голову не придет давать совет, когда речь идет о каких-то итераторах или замыканиях, но вот когда речь заходит о взаимодействии с Windows, об использовании ее механизмов — мои советы порой звучат для некоторых там как откровение.

Так что , увы, по п. 1 и 2 ощущения у меня складываются ... как бы это помягче сказать... не очень. Цена отказа от свободы для меня слишком уж велика.

А теперь перейдем к п.3. Вот тут мои оппоненты сразу отыграться готовы. Да, пусть ты кое-что в плане свободы потеряешь, но это мелочи. Зато мы тебе взамен предлагаем безопасность. Ошибок будет меньше. Это же хорошо ?

Хорошо, конечно. Что я еще могу сказать! Вы предлагаете мне отказаться от свободы, но в ответ обещаете, что я смогу писать код без ошибок ? Да — мне в ответ.

Без любых ошибок ?

И тут опять мои опппоненты юлить начинают. Мемори ликов у тебя не будет. Ладно, говорю, спасибо, хотя у меня их и так не много, инструменты для их обнаружения есть. Индекс у тебя за пределы массива не выйдет. Тоже спасибо, отвечаю я, он и так у меня как правило не выходит, если только я сам не хочу, чтобы он выходил. Что там еще ? Уничтоженные объекты не будешь использовать. Тоже спасибо, хотя и так попытка взятия по NULL определяется без особого труда.

А от логических ошибок вы меня оградите ? От ошибок алгоритма или его реализации ? От того, что я при вычислении корней уравнения вместо b*b-4*a*c написал b*b+4*a*c ? От того, что я понимал эту задачу так-то, а она, оказывается, выглядит совсем не так, но это проявляется в одном случае на миллион ? С IndexOutOfRange я как-нибудь и так справлюсь, а вот с этим-то что делать ? Поможете ?

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

Кстати, и твой пример с пайпами. Я до конца не разобрался, в чем там ошибка, гипотеза — мютекс создается после защищаемого объекта (а надо до, эту ошибку я тоже как-то делал). Да, управляемый код скорее всего вместо UB и следующей за ним уязвимости просто устроит exception. Но при написании кода была допущена логическая ошибка (если это так). Помочь мне не допустить , чтобы я эту ошибку сделал, кто мне может ? Никто. Тот код, который ты показал, при определенных условиях вполне безупречен.

И вот эти логические ошибки меня больше всего и беспокоят. Они у меня львиную часть времени съели. А не выходы индексов и прочая чепуха.

Резюмирую. Готов ли я отдать свою свободу (в программировании, конечно, только там) за что-то ? Пока не дадите твердого ответа на п.1 и 2. — категорически не готов. А когда дадите — тогда поторгуемся по п.3. Пока хорошо не заплатите — тоже не отдам.

Но!

Если встретится задача, где можно ваши способы и методы использовать — а почему бы и нет ? Если п. 1-2 несущественны или не лимитируют — да бога ради. Попастись на вашем поле я вполне готов, но как только понадобится что-то серьезное сделать — на свободу! В пампасы . Там трава погуще, хотя и львы бегают.

И в заключение лирическое отступление.

Есть такая машина — вертолет называется. Летает себе куда хочет, садится — почти где хочет, взлетает там, где села. Жаль, не довелось мне на ней полетать. Вот представляю себе — летим, а внизу шоссе. И на нем — поток машин. Все в одном направлении едут. А вот здесь вообще стоят — пробка.

Ну зачем вы все как на параде, в одну сторону едете ? Вам же в разные места надо! Возьмите карту, проложите прямую (или геодезическую), да по прямой, по прямой! Ах, там дома, говорите. Ну и что ? У них же высота — жалкие десятки, ну сотни метров. А в горы вы сможете, а ? На Мерседесе — да прямо в горы, без дороги ? А как насчет речку пересечь ? Мост вам, оказывается нужен, или паром. А я пересек и не заметил. И чего вы так медленно едете ? Я , пока вы там в пробке стоите, вокруг вас несколько раз облетел и язык вам показал.

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

А автомобили — не падают. Сталкиваются — да, с обрыва летят — тоже бывает. Я так думаю, что они при этом очень хотят хоть напоследок полетать. Свободы им хочется. Той самой, о которой они уже и думать забыли.

Но не получается. Рожденный ползать — летать не может.
With best regards
Pavel Dvorkin
Re[2]: За нашу свободу!
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 06.11.09 08:18
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>И тут опять мои опппоненты юлить начинают. Мемори ликов у тебя не будет. Ладно, говорю, спасибо, хотя у меня их и так не много, инструменты для их обнаружения есть. Индекс у тебя за пределы массива не выйдет. Тоже спасибо, отвечаю я, он и так у меня как правило не выходит, если только я сам не хочу, чтобы он выходил. Что там еще ? Уничтоженные объекты не будешь использовать. Тоже спасибо, хотя и так попытка взятия по NULL определяется без особого труда.


PD>А от логических ошибок вы меня оградите ? От ошибок алгоритма или его реализации ? От того, что я при вычислении корней уравнения вместо b*b-4*a*c написал b*b+4*a*c ? От того, что я понимал эту задачу так-то, а она, оказывается, выглядит совсем не так, но это проявляется в одном случае на миллион ?


Проблема в том, что голова не безразмерная и чем больше думаешь про "мемори-лики", тем меньше про логику программы

PD>С IndexOutOfRange я как-нибудь и так справлюсь, а вот с этим-то что делать ? Поможете ?


ну и аргумент, охренеть — ваша кофеварка не умеет стирать бельё!??? в топку её!
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: Pavel Dvorkin Россия  
Дата: 06.11.09 08:19
Оценка: 15 (1) +1 :))) :))
Здравствуйте, Tilir, Вы писали:

T>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?


T>Не так давно от одного моего друга слесаря прозвучало


T>

T>Я бы так сказал — токарный станок дает мне свободу делать все, что я хочу. А это неизбежно сопряжено с возможностью сделать и ошибку. Чтобы свободой как следует воспользоваться, надо хорошо понимать, что при этом можно, и что нельзя делать. Например палец туда совать нельзя.


T>Вместо "палец" он употребил иное слово, но вы понимаете, слесарь...


Я совершенно согласен, но, думаю, это все же был токарь
With best regards
Pavel Dvorkin
Re[2]: За нашу свободу!
От: metaprogrammer  
Дата: 06.11.09 08:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>1. Иметь возможность делать все, что я хочу. Разумееется, в рамках того, что мне позволяет аппаратура и (возможно) операционная система, а также мои мозги. Слово "возможно" здесь не случайно. В определенных границах я могу изменить поведение ОС, добавив к ней свой модуль (драйвер)


И мне это надо. Но C++-ов мне при этом даром не надо.

PD>2. Чтобы это работало как можно более быстро и потребляло ресурсов как можно меньше. Я пишу не серверное ПО, а моя ОС не MS-DOS, так что работать это все будет в коммунальной квартире, а поэтому ванную занимать на 3 часа нечего и свет в туалете надо тушить.


Это точно не к C++.

PD>3. Чтобы в этом коде было как можно меньше ошибок. Говорить "чтобы не было ошибок" не буду, так как программа без ошибок есть абстрактное теоретическое понятие.


Ну тут вообще C++ не при делах.

PD>4. Чтобы я на это потратил как можно меньше своего времени.


C++ по части boilerplate-кода не имеет себе равных.

PD>Первый мой вопрос — а как с п.1 и 2 будет. Гарантируете ли вы, что я по-прежнему смогу делать все. что я умею делать, использовать все те возможности ОС, которые умею использовать ? И будет ли это работать столь же быстро и требовать ресурсов не больше ?


Например, с Ada? Ещё бы, как не гарантировать.

PD>Как только я этот вопрос задаю, так сразу мои оппоненты начинают юлить. Сможешь , наверное, только вот иногда тебе придется на неуправляемый код переходить, а иногда и вообще не получится.


Что плохого в "иногда на неуправляемый код переходить"? Особенно если он генерится в динамике из управляемого.

PD>И вот эти логические ошибки меня больше всего и беспокоят. Они у меня львиную часть времени съели. А не выходы индексов и прочая чепуха.


Сейчас thesz про Agda расскажет.

PD>Резюмирую. Готов ли я отдать свою свободу (в программировании, конечно, только там) за что-то ? Пока не дадите твердого ответа на п.1 и 2. — категорически не готов. А когда дадите — тогда поторгуемся по п.3. Пока хорошо не заплатите — тоже не отдам.


Какая же это на фиг свобода? Вот метапрограммирование, при наличии среди целевых языков и сколь угодно низкоуровневых — это свобода. А один примитивненький низкоуровневый язык — это не свобода, а фигня.
Re[3]: За нашу свободу!
От: Курилка Россия http://kirya.narod.ru/
Дата: 06.11.09 08:30
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>И вот эти логические ошибки меня больше всего и беспокоят. Они у меня львиную часть времени съели. А не выходы индексов и прочая чепуха.


M> Сейчас thesz про Agda расскажет.


Думаю, не расскажет , подробности у него в ЖЖ.
Re[4]: За нашу свободу!
От: metaprogrammer  
Дата: 06.11.09 08:45
Оценка: +3
Здравствуйте, Курилка, Вы писали:

M>> Сейчас thesz про Agda расскажет.


К>Думаю, не расскажет , подробности у него в ЖЖ.


Вот жеж блин.

Ну я понимаю трепачей удалять. Но без интересных людей rsdn совсем ненужным ведь станет, с его и без того тормозным и постоянно лежащим интерфейсом.
Re[3]: За нашу свободу!
От: Pavel Dvorkin Россия  
Дата: 06.11.09 08:48
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Проблема в том, что голова не безразмерная и чем больше думаешь про "мемори-лики", тем меньше про логику программы


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

PD>>С IndexOutOfRange я как-нибудь и так справлюсь, а вот с этим-то что делать ? Поможете ?


OE>ну и аргумент, охренеть — ваша кофеварка не умеет стирать бельё!??? в топку её!


Если меня больше всего интересует, как постирать белье , а ты мне предлагаешь кофеварку — в топку!
With best regards
Pavel Dvorkin
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: GlebZ Россия  
Дата: 06.11.09 09:52
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

GZ>>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.

G>Ага, пример на .NET в студию.
Net — это не язык. Net — это платформа исполнения.

GZ>>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?

G>Там где сборка мусора такое сделать почти невозможно.
Тут вопрос цены ошибки. Если ты получишь NullReferenceException в ядре в неожиданном месте, то ненамного лучше не станет. В С++ кроме указателей есть много других опасностей.
Re[2]: За нашу свободу!
От: Ehudi Россия  
Дата: 06.11.09 09:55
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

Мне надо

1. Иметь возможность делать все, что я хочу. Аппаратура мне нужна только постольку поскольку она поддерживает высокоуровневые конструкции языка.
2. Чтобы в этом коде было как можно меньше ошибок. Это для меня самое важное.
3. Чтобы программа имела хорошую архитектуру.
4. Чтобы я на это потратил как можно меньше своего времени.
5. Чтобы это работало как можно более быстро и потребляло ресурсов как можно меньше.

Вывод: есть разные типы программистов с разными приоритетами.
Re[4]: За нашу свободу!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.11.09 10:06
Оценка: -8
Здравствуйте, Курилка, Вы писали:

К>Думаю, не расскажет , подробности у него в ЖЖ.


Редкий неадекват.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[5]: За нашу свободу!
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.11.09 10:06
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M> Ну я понимаю трепачей удалять.


А хамло удалять нужно тем более. Товарищь получил совершенно заслуженный бан.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
AVK Blog
Re[3]: За нашу свободу!
От: Pavel Dvorkin Россия  
Дата: 06.11.09 10:15
Оценка:
Здравствуйте, Ehudi, Вы писали:

E>Вывод: есть разные типы программистов с разными приоритетами.


Совершенно верно. И именно это я пытаюсь уже несколько лет здесь кое-кому объяснить.
With best regards
Pavel Dvorkin
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: rfq  
Дата: 06.11.09 12:45
Оценка:
Здравствуйте, metaprogrammer, Вы писали:

M>Здравствуйте, Tilir, Вы писали:


T>>Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют.


M> А с какой радости? Чем плох JIT в ядре? Чем плох realtime GC в ядре? Мало было в линухе утечек?


Вот только и JIT и GC сами-то пишутся на C++.
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: remark Россия http://www.1024cores.net/
Дата: 06.11.09 13:35
Оценка: 1 (1) +2
фсЗдравствуйте, gandjustas, Вы писали:

KV>>>"Суслика видите? А он есть..."

GZ>>Уважаемый. А вам не кажется что вышеописанное ортогонально языку, и подобное можно сделать практически на любом языке.
G>Ага, пример на .NET в студию.

GZ>>Хотя для некоторых придется проявить выдержку, спокойствие и сообразительность?

G>Там где сборка мусора такое сделать почти невозможно.


Что невозможно? Гонку сделать? Чего ж тут невозможного?
Ну будет не падать программа, а деньги переводить на неправильный счёт. Если она падает — это ещё лучший исход.



1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: За нашу свободу!
От: SiAVoL Россия  
Дата: 06.11.09 14:33
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В общем, лучше вертолет, чем автомобиль. Намного лучше. Но один недостаток у него есть. Серьезный. Иногда они падают. Не часто, но бывает. И последствия обычно тяжелые.

Только вертолеты на несколько порядков дороже сами по себе и в эксплуатации. Да и далеко на нем не улетишь. Ну 500 км. А что бы 1000-2000 надо уже или самолет, который тоже очень дорогой, да и взлететь/сесть можно далеко не везде. Или автомобиль. Поэтому в большинстве случаев именно автомобиль является оптимальным выбором.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[2]: За нашу свободу!
От: IT Россия linq2db.com
Дата: 06.11.09 15:02
Оценка: +2 -2
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Замечу, что эти пожелания выстроены мной строго в соответствии с моими приоритетами. Иными словами, если мне предлагается нечто, резко улучшающее пункт i+1 за счет ухудшения в пункте i — меня это не устроит.


С такими низкоуровневыми приоритетами можно решать только низкоуровневые задачи. Для узкой группы задач вроде ковыряния в железках это возможно будет работать. О решении бизнес и ряда системных задач можно сразу забыть навсегда.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Павлу Дворкину: о понимании того что делаешь и просты
От: blackhearted Украина  
Дата: 06.11.09 15:35
Оценка: +1 :))
Здравствуйте, A13x, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>...

KV>>Я вот сижу и думаю, а может ну ее нафиг эту свободу, а?

A>А может тогда сразу нафиг программирование — и в дворники?


блин...а я прочитал — ...в Дворкины...
Re[3]: Павлу Дворкину: о понимании того что делаешь и просты
От: blackhearted Украина  
Дата: 06.11.09 15:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Tilir, Вы писали:


T>>Это ядро Linux. Ещё раз -- ядро. Операционной системы. То самое место, где любые "управляемые решения" с JIT, сборкой мусора и прочими подгузниками просто не роляют.

G>С чего ты взял?

T>>Ошибки? Их не бывает только у тех, кто ничего не делает. А свобода программиста, которую даёт C, ну да в том числе и свобода ошибаться, это самое ценное что у меня, например, есть.

G>Тоже чушь, MS активно использует верификатор кода C, количество таких ошибок снижается на порядки.

G>Программирование уже давно не искусство, тут рулят надежные решения. На свободу насрать.


Ну уменьшается,но всё же не всё найдёт верификатор
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.