>Опять же всё с нуля и руками. Ассемблер не напоминает?Не совсем понял, что вы имели ввиду. При переходе с одного ЯВУ на другой, конечно, приходится многое переписывать. Но это не сравнимо с переписыванием на ассемблер, где приходится переписывать действительно _всё_ и учитывать еще и архитектуру конкретного процессора.
>Это шутка? Биологи, химики, физики, математики и все прочие смеются вместе с вами :-)
Не думаю. Во-первых, большинство биологов, химиков, физиков и пр. работают в _прикладных_ областях, где тайн действительно быть не должно, а должен быть предсказуемый результат их работы. А во-вторых, мы с вами здесь говорим о программировании, а не о переднем крае науки. Я думаю, я не ошибусь, если скажу, что компьютерное программирование - наиболее _предсказуемый_ вид человеческой деятельности. Здесь все по программе, какие могут быть тайны? :)
>Ну хорошо, замените свою ногу протезом и будете лучше понимать устройство и принцип действия.
Мне кажется, вы неправильно понимаете задачу программиста. Он не исследователь. И принцип действия чего-либо он должен понимать только для того, чтобы создать что-либо другое. Свойства этого "другого", как правило, уже известны заранее.
>А зачем учить физику? Знать из каких атомов мы состоим, когда можно срубить бабла и нажраться? Улучшение алгоритма, без знания основ, да...
Одно дело - знать основы и использовать уже готовые решения, другое - вычислять столбиком вместо того, чтобы воспользоваться калькулятором. Знать основы не значит проходить их каждый раз с нуля. Нужно двигаться дальше.
>Ну хорошо: "include super_mega_lib; super_get_any_file(name)" - это программа, которая может скачать любой файл откуда угодно, без регистрации, с докачкой и т.д. Она потребляет много памяти, тормозит и глючит, хотя в приведённом мной коде нет ошибок. Всё потому, что где-то они есть. А раз я отвечаю за работу своей программы, то пусть и ошибки там будут только мои.
В таком случае каждое приложение вам придется начинать с переписывания всех используемых библиотек, ядра операционной системы, а также с изготовления своими руками железа, на котором все это будет выполняться. Тогда ошибки в вашем продукте будут "только ваши". Такой подход крайне неэффективен и человечество давно уже перешло к принципу разделения труда.
>Очень часто разработчики библиотек понятия не имеют где и как вы их будете использовать. Переполнение буфера... Создатели ЯВУ, когда поместили строки в стек, как-то не подумали про сеть. Получили ошибку на все времена.
Не думаю, что в современных языках типа Питона, можно программно сорвать стек.
>Когда используете готовую функцию, не думайте, что ей автор умнее вас. Он по крайней мере не знает ситуации. А ЯВУ полностью состоят из готовых функций, выбора нет.
А переписывать все с нуля нет времени и - чаще всего - необходимости. На самом деле, я отчасти согласен с вам. Мне самому бывает печально смотреть на фанатов С++, для которых повторное использование кода есть догма, обязательная к исполнению во что бы то ни стало.
>Научится со временем, он хотя бы на правильном пути.
Нет времени учиться, тем более - повторять азы. Работать надо. Как сказал Райкин в свое время, забудьте про индукцию, давайте мне продукцию... :)
>Как не зная назначение переменных и причину их сложения можно сделать оптимально?
А чтобы сделать что-то оптимально, вовсе не обязательно знать _причину_. Вы сами можете не знать зачем вы складываете что-то. Как об этом может догадаться компилятор? :) Но даже и в этом случае умный компилятор может что-то сделать. Например, не генерировать код сложения, если его результат не используется, или выполнять его на этапе компиляции, если складываются константы.