dccharacter писал(а):Ну на си же можно все то же самое сделать
Конечно! На любом Полном по Тюрингу языке можно сделать что угодно. Слышали про такой язык, как
Brainfuck?
dccharacter писал(а):Пока не понимаю прикола. Может быть от того, что в принципе не знаю и не понимаю разные парадигмы программирования (о как сказал).
Точно. Дело в том, что со времён Си постепенно происходила своего рода эволюция языков программирования, концепций и подходов. Благодаря ей в современных языках программирования гораздо ниже порог входимости. Появились концепции, позволяющие работать со структурами данных, как с объектами реального мира.
dccharacter писал(а):Но имхо _меньше_ изучить - не получится
_проще_ не выйдет
В том-то и дело, что если с нуля, то выйдет и проще и меньше. А если ломать старые догматы... Питон -- это язык с очень высокой интроспекцией.
Даже если программист не знает, что за объект он получил и что с ним можно сделать, у него есть в распоряжении система автодокументации, встроенная на уровне языка. Достаточно написать help(любой_объект) и напечатается подробное описание класса и всех методов с указанием какие нужны оргументы и для чего.
dccharacter писал(а):Ты вот там объектики всякие и т.д. делаешь. Но что мешает на си в функцию передать указатель на структуру? Все то же самое получится...
Ну и какой код получается более читабельным м понимабельным? Да, в сущности указатель на структуру и отдельная функция -- это тот же объект, но "по отдельности".
До процедурного стиля был ассемблер, а ещё раньше первокарты с машинными кодами. И на них тоже можно было программировать. И суть та же. Просто не так читабельно. Это вопрос низкого/высокого уровня. На ассемблере тоже писали очень крутые программы. А на современных ассемблерах можно вполне себе полноценное десктопное приложение с окнами и графикой написать. Тем не менее народ переезжает на уровни повыше.
Добавлено спустя 25 минут 37 секунд:Тут же ещё вон какое дело. Перейдя с ассемблера на Си в контроллерах мы повысили уровень (читабельность, писабельность, разбирабельность), а вместе с тем немного понизили наш контроль ситуации в коде (теперь мы не сами решаем, где и как в памяти хранятся константы, в какие регистры попадают значения). Так и с переходом на питон.
Если питон на какой-нибудь атмеловской восьмибитке с клочком памяти -- это форменный слон в посудном киоске (ни пошевелиться, ни встать, но в принципе дышать можно). Си в этом случае -- это толстая продавщица. А ассемблер м-м-м... тощий таджык? Грациозная фея?=). Что-то я увлёкся аналогиями. Но теперь уж отступать поздно.
На контроллере рангом поввыше (магазин!) толстая продавщица (Си) чувствует себя отлично, а слон по-прежнему громит всё. В торговом центре, в принципе, слон особых разрушений уже не принесёт.
Эти примеры ничего не говорят о полезных качествах слона или продавщицы. Разве что если провести аналогию с грузоподъёмностью? Чем больше строк кода, тем тяжелее его держать на языке низкого уровня. При п риближении некоторого порогового значения программист просто теряет контроль над своим кодом. Не может запомнить как и что устроено из-за малого уровня абстрации. Конечно качество кода тут тоже сказывается. Качественного кода можно уложить до порога немного больше. Языки высокого кровня поднимают этот самый порог на порядки.