|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Прошу не воспринимать мой вопрос, как спор или противостояние, мне действительно не понятно и хочется разобраться. Много где слышал, что программы на Python являются короткими и простыми (по сравнению с тем же С++). Собственно именно читаемость кода была поставлена на первое место при разработке языка. Изучил синтаксис языка и не понял откуда эта читаемость появляется. Я опишу отличия синтаксиса Python от С++ (остальное у них совпадает): 1. В Python можно не писать типы, но типизация строгая и за любым "разнотиповым" действием кроется конвертация. Неужели эти невидимые типы / конвертации, которые надо додумывать повышают читаемость? 2. Объекты представляют из себя "хранилища" данных (без инкапсуляции), что приводит к возможности написать такой код: предметная область произвольно дробится на объекты и пишется "основная" функция, которая дергает данные из нескольких объектов, реализуя в себе как бизнес- логику приложения, так и огрызки логики каждого объекта (иначе зачем она таскает чужие данные). Короче получится код- лапша. В Enterprise- решениях подобный подход просто не допустим, потому что невозможно проанализировать 10 000 страниц кода А4, на поиски каких- то присваиваний или считываний данных. Неужели необходимость "штудировать весь код" улучшает читаемость? Все остальное точно такое, как и в С++: есть кортежи tuple, контейнеры any, возможность использовать тип auto (в том числе для создания шаблонов), циклы по коллекциям, встроенные коллекции. Короче количество кода и тут и там по остальным пунктам одинаковое. Нет только фигурных скобочек и точки с запятой. Поэтому мне и непонятно, откуда эта читаемость появляется? Может я чего- то не доглядел? Опытные Python- разработчики, пожалуйста, подскажите где от меня сокрыто ускорение разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2018, 10:45 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
У Python'а грамматика намного проще, в отличие от грамматики C++. Python интерпретируемый язык, не компилируемый (по крайней мере Pyston так и не взлетел). Это сразу развязывает руки в плане типизации объектов. И кстати, она там утиная (динамическая), а не строгая. Python создан для программирования, а не для решения технических проблем и постоянной борьбы с инструментом, как этот ваш C++. То есть, на питоне проще выразить свои идеи в коде, нежели в C++, где нужно сначала описать сценарий сборки на том же CMake, прилинковать нужные либы, прописать INCLUDEPATH'ы, и ещё не забыть про остальные платформы. В питоне же просто в большинстве случаев требуется запустить Код: plaintext
Ну а за интроспекцию типов вообще можно не волноваться в Python'е. Чего не скажешь про C++ с его метапрограммированием и compile-time вычислениями, когда нужно постоянно помнить где код "выполняется" во время компиляции, а где в рантайме. Работа с variadic template'ами также здесь далеко не светлая сторона С++, в то время как Python обходится *args и **kwargs на изи. А вообще, это сравнение тёплого с мягким, так как, у каждого языка своё назначение ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2018, 19:10 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQL, просто нет всяких begin/end'ов и изкоробки удобные структуры данных -> программы короче проще синтаксис кое-где учат в школе из обратного - медленнее в 100 раз, и удачно сохранив программу не тем редактором с другим размером табов - навернешь ее безвозвратно из второго пункта следствие - особое удовольствие при совместной разработке еще "удачно" выполнив pip пакет, можно подтянуть полинтернета всякого говна себе в питоновские каталоги =) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 08:55 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Siemarglпросто нет всяких begin/end'ов Да в плюсах, как бы, тоже нет. Всё достигается отступами, а если нужен RAII делаешь with ...: с объектом, у которог оперегружены __enter__ и __exit__ Siemarglиз обратного - медленнее в 100 раз Так это смотря что делать. Если тебе нужна числоробилка -- используй NumPy. Тяжёлые части critical path'ов всегда можно вынести в C extension. Но только когда нужно. Siemarglи удачно сохранив программу не тем редактором с другим размером табов - навернешь ее безвозвратно Современные IDE уже давно умеют справляться с такими, даже запортившимися скриптами. Например, в PyCharm, можно нажать шоткат Ctrl(Cmd)+Shift+F и он сам всё отформатирует. Siemarglиз второго пункта следствие - особое удовольствие при совместной разработке Да на питоне писать вообще одно сплошное удовольствие. Просто сидишь и пишешь, не выкручивая себе мозг этими вашими плюсами Siemarglеще "удачно" выполнив pip пакет, можно подтянуть полинтернета всякого говна себе в питоновские каталоги =) Судя по тому, что ты здесь пишешь, у тебя либо давно не было опыта разработки на питоне, либо его вообще нет и все рассуждения на уровне клюквы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 10:47 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZУ Python'а грамматика намного проще, в отличие от грамматики C++. Их грамматика отличается только указанием типа (хотя в С++ теперь можно использовать auto), фигурными скобками и точкой с запятой. Остальное все тоже самое. NekZPython интерпретируемый язык, не компилируемый (по крайней мере Pyston так и не взлетел). Это сразу развязывает руки в плане типизации объектов. И кстати, она там утиная (динамическая), а не строгая. В Python строгая типизация, просто имена объектов в процессе выполнения могут "привязываться" к другим объектам. В современных IDE (анализирующих только измененные файлы) компиляция С++ программ занимает пару секунд. NekZ... нежели в C++, где нужно сначала описать сценарий сборки на том же CMake, прилинковать нужные либы, прописать INCLUDEPATH'ы, и ещё не забыть про остальные платформы. В питоне же просто в большинстве случаев требуется запустить Код: plaintext
Никаких сценариев сборки в С++ никто не пишет. Это все делает IDE. NekZНу а за интроспекцию типов вообще можно не волноваться в Python'е. Чего не скажешь про C++ с его метапрограммированием и compile-time вычислениями, когда нужно постоянно помнить где код "выполняется" во время компиляции, а где в рантайме. Работа с variadic template'ами также здесь далеко не светлая сторона С++, в то время как Python обходится *args и **kwargs на изи. Оба пункта настолько редко используются, что представляют исключительно академический интерес. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 11:38 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLИх грамматика отличается только указанием типа (хотя в С++ теперь можно использовать auto), фигурными скобками и точкой с запятой. Остальное все тоже самое. Я говорил про грамматику БНФ . Так вот, у C++ она намного сложнее. Не зря были приведены ссылки на грамматики обоих языков. AlekseySQLВ Python строгая типизация В питоне нет строгой типизации. AlekseySQL просто имена объектов в процессе выполнения могут "привязываться" к другим объектам. Это одно из преимуществ утиной типизации. AlekseySQLВ современных IDE (анализирующих только измененные файлы) компиляция С++ программ IDE не компилируют программы. AlekseySQLзанимает пару секунд. Ага, то-то я и смотрю, что чтобы собрать, скажем, фреймворк Qt, требуется (примерно) 40 минут. Компиляция каждого C++ файла занимает время, а затем ещё и линковка, которая тоже немало времени берёт. Современные продукты собираются долго, особенно, если кто-то поменял какой-нибудь хедер, который много где используется. AlekseySQLНикаких сценариев сборки в С++ никто не пишет. Это все делает IDE. В кроссплатформенной цепочке сборки с использованием известных CI, скажем, Jenkins, сценарий сборки необходим чтобы сгенерить Makefile для Linux, Xcode проект для мака и Visual Studio проект для винды. Не нужны, говоришь? AlekseySQLОба пункта настолько редко используются, что представляют исключительно академический интерес. Чувак, ты точно профессиональный C++ программист, или просто толсто троллить пытаешься? Для Hello world'а не нужны, а на практике приходится прибегать к ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 12:01 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZЯ говорил про грамматику БНФ . Так вот, у C++ она намного сложнее. Не зря были приведены ссылки на грамматики обоих языков. "Форма Бэкуса — Наура - формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории." В С++ одни синтаксические конструкции НЕ определяются через другие, исключение составляют классы и структуры (точно также присутствующие в Python), которые представляют совокупность полей и методов. Все остальное находится на одном уровне. NekZAlekseySQLВ Python строгая типизация В питоне нет строгой типизации. В Python строгая типизация, это знает любой грамотный программист. NekZAlekseySQL просто имена объектов в процессе выполнения могут "привязываться" к другим объектам. Это одно из преимуществ утиной типизации. Неужели так сложно выдумать новое название переменной, чтобы потом не гадать над пониманием того, что в ней хранится? Использовать одну и туже переменную для разных нужд- антипаттерн программирования, который снижает читаемость кода. NekZAlekseySQLВ современных IDE (анализирующих только измененные файлы) компиляция С++ программ IDE не компилируют программы. Что за детские придирки к словам? IDE в настройках хранит путь к компилятору и по нажатию кнопочки его вызывает. Так пойдет? NekZAlekseySQLзанимает пару секунд. Ага, то-то я и смотрю, что чтобы собрать, скажем, фреймворк Qt, требуется (примерно) 40 минут. Компиляция каждого C++ файла занимает время, а затем ещё и линковка, которая тоже немало времени берёт. Современные продукты собираются долго, особенно, если кто-то поменял какой-нибудь хедер, который много где используется Разговор был о скорости разработки своих пакетов, компиляция при которой занимает секунды. К тому же сборки чужих пакетов распрастраняются уже в бинарниках и только для редких платформ их надо собирать самостоятельно. Кстати, если на С++ что-то собирается 40 минут, то на Python это будет РАБОТАТЬ 100 * 40 минут. NekZAlekseySQLНикаких сценариев сборки в С++ никто не пишет. Это все делает IDE. В кроссплатформенной цепочке сборки с использованием известных CI, скажем, Jenkins, сценарий сборки необходим чтобы сгенерить Makefile для Linux, Xcode проект для мака и Visual Studio проект для винды. Не нужны, говоришь? В топике поставлен вопрос выразительности разработки на Python, а не его возможности для применения как интегратор различных компонентов. Зачем подменять понятия? NekZAlekseySQLОба пункта настолько редко используются, что представляют исключительно академический интерес. Чувак, ты точно профессиональный C++ программист, или просто толсто троллить пытаешься? Для Hello world'а не нужны, а на практике приходится прибегать к ним. "Hello world" правильно пишется так: "Hello, world". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 12:33 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQL"Форма Бэкуса — Наура - формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории." В С++ одни синтаксические конструкции НЕ определяются через другие, исключение составляют классы и структуры (точно также присутствующие в Python), которые представляют совокупность полей и методов. Все остальное находится на одном уровне. То есть ты не понял, что имелся в виду синтаксис формы БНФ, а не целевого описываемого языка. AlekseySQLВ Python строгая типизация, это знает любой грамотный программист. Можешь привести ссылку где это утверждается? У Python'а отродясь не было строгой типизации. Во всех учебниках по Python'у описывается утиная (динамическая) типизация. Тянет на очень жирный троллинг, либо синдром Дедала с его FVMas. AlekseySQLНеужели так сложно выдумать новое название переменной, чтобы потом не гадать над пониманием того, что в ней хранится? Использовать одну и туже переменную для разных нужд- антипаттерн программирования, который снижает читаемость кода. Тебя никто не принуждает пользоваться этой фичей. Ограничений на количество переменных нет. AlekseySQLЧто за детские придирки к словам? IDE в настройках хранит путь к компилятору и по нажатию кнопочки его вызывает. Так пойдет? Это не придирки, это твоё непонимание что такое IDE. IDE -- вещь опциональная. Ею можно и не пользоваться, отдав предпочтение Makefile'ам. Тот же Eclipse умеет создавать проекты на основе Makefile'ов, при учёте, что синтаксис Makefile является полным по Тьюрингу. IDE лишь один из инструментов, которым можно собрать C++ проект. Под виндой, например, ты можешь в консоли вызвать msbuild для сборки студийного проекта. На маке xcodebuild. Заметь, IDE в этом процессе, по факту не участвует. Проект IDE является сценарием сборки для перечисленных консольных утилит. И именно так и собираются пакеты в современном продакшне, без ручной сборки через IDE, а через вызовы скриптов сборки, которые уже вызывают эти самые команды. В большинстве случаев это Код: plaintext 1.
AlekseySQLРазговор был о скорости разработки своих пакетов, компиляция при которой занимает секунды. Как обычно, всё зависит от обстоятельств. AlekseySQLК тому же сборки чужих пакетов распрастраняются уже в бинарниках и только для редких платформ их надо собирать самостоятельно. Питоновые тоже. У pip'а нет ограничений ставить питоновые скрипты в пакетах, или уже готовые бинарные модули .so/.pyd. AlekseySQLКстати, если на С++ что-то собирается 40 минут, то на Python это будет РАБОТАТЬ 100 * 40 минут. Очередная клюква от незнакомого с Python'ом. AlekseySQLВ топике поставлен вопрос выразительности разработки на Python, а не его возможности для применения как интегратор различных компонентов. Зачем подменять понятия? Оно всё связано. Программист же не только пишет программный код, он способствует также его распространению, и чтобы он работал у других людей, публикуя код на гитхабе, и стараясь поддержать современные целевые платформы. AlekseySQL"Hello world" правильно пишется так: "Hello, world". AlekseySQLЧто за детские придирки к словам? В общем, слив. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 13:04 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZТо есть ты не понял, что имелся в виду синтаксис формы БНФ, а не целевого описываемого языка. Я все отлично понял. И могу десятый раз написать: синтаксис С++ ничем не сложнее синтаксиса Python, за исключением указания типа переменной (что является очень большим плюсом, потому что позволяет ловить ошибки во время двухсекундной компиляции), фигурных скобок и точки с запятой. NekZМожешь привести ссылку где это утверждается? У Python'а отродясь не было строгой типизации. Во всех учебниках по Python'у описывается утиная (динамическая) типизация. Тянет на очень жирный троллинг, либо синдром Дедала с его FVMas. В ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 13:44 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLсинтаксис С++ ничем не сложнее синтаксиса Python Ноу комментс AlekseySQLВ этом курсе автор рассказывает, что объект и его имя- раздельные сущности. Когда происходит конвертация данных, то старый объект удаляется, новый создается, а имя старого объекта "переподвязывается" к новому объекту. Почитай что такое Reference counting. Объекты однозначно индентифицируются по id (built-in функция id). Привязанные имена являются ссылками на объект. AlekseySQLВсе объекты имеют тип, который строго определен. Утиная типизация (все что крякает, летает и плавает- будем называть уткой) не имеет ничего общего с динамической. Это разные понятия. Утиная типизация отталкивается не от свойств объекта, а от тех возможностей, которые у него есть. То, что объект имеет определённый тип и при этом может крякать, если умеет , говорит от сильной динамической типизации, но никак не о чисто сильной. AlekseySQLХотели сделать читаемый язык, а сделали нечитаемый. Субъективное мнение ниасилившего. AlekseySQLКстати, если на С++ что-то собирается 40 минут, то на Python это будет РАБОТАТЬ 100 * 40 минут. AlekseySQLЯ написал "на Python", а не на С / С++. Сам себе противоречишь? AlekseySQLЭто у вас непонимание как происходит работа всего комплекса. 7+ лет опыта разработки C/C++ экстеншнов для CPython под Linux, macOS, Windows для индустрии VFX для Python-скриптинга в разных C++-хостах. Не надо мне говорить, что я не понимаю как оно работает под капотом. Перестать уже сравнивать тёплое с мягким, это смотрится непрофессионально, как и рассуждения Дедала о "дырявом C++" и "кишке танка". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 14:03 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZSiemarglи удачно сохранив программу не тем редактором с другим размером табов - навернешь ее безвозвратно Современные IDE уже давно умеют справляться с такими, даже запортившимися скриптами. Например, в PyCharm, можно нажать шоткат Ctrl(Cmd)+Shift+F и он сам всё отформатирует.Сказки не рассказывай только. Неоднострочные блоки он не восстановит. Да и я говорил про "не тот редактор" (вроде ноутпада, mc-edit итп), а не про несуперзаточенное чудо. NekZ7+ лет опыта разработки C/C++ экстеншнов для CPython под Linux, macOS, Windows для индустрии VFX для Python-скриптинга в разных C++-хостах. Не надо мне говорить, что я не понимаю как оно работает под капотом. Перестать уже сравнивать тёплое с мягким, это смотрится непрофессионально, как и рассуждения Дедала о "дырявом C++" и "кишке танка".Наверное ты этим (костыли пишешь) занимаешься, потому что иначе работает непростительно паршиво =) Мое мнение - хороший учебный язык, но ничего серьезного на нем затевать не стоит. И наоборот - программы "одного дня" - сегодня написал и проверил - завтра стер - очень даже. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 21:38 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
SiemarglСказки не рассказывай только. Неоднострочные блоки он не восстановит. Да и я говорил про "не тот редактор" (вроде ноутпада, mc-edit итп), а не про несуперзаточенное чудо. mcedit... Ну да, ну да, наверное не стоит пейсать код в mcedit'е и коммитить сразу в продакшн. SiemarglНаверное ты этим (костыли пишешь) занимаешься, потому что иначе работает непростительно паршиво =) Это нужно для пользовательского скриптинга. Как например тот же VBA в MS Office, или JS в OpenOffice. Так и тут, но в VFX инструментах, Python является стандартом для скриптинга и построения пайпланов для пост-процессинга рендеринга видео, как и низкоуровневой работы с пиксельными данными. SiemarglМое мнение - хороший учебный язык Согласен. Siemarglно ничего серьезного на нем затевать не стоит. Тренды показывают обратное. Мало того, что у него огромное коммьюнити, так ещё и крупные корпорации активно контрибьютят в него. SiemarglИ наоборот - программы "одного дня" - сегодня написал и проверил - завтра стер - очень даже. Просто скриптовый язык. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2018, 21:53 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
SiemarglМое мнение - хороший учебный язык, но ничего серьезного на нем затевать не стоит. И наоборот - программы "одного дня" - сегодня написал и проверил - завтра стер - очень даже. Тоже пришел к такому мнению: язык для ученых, которые 1 раз напишут программу и потом ее выбросят, никогда не перечитывая код. Python- замена их любимого Фортрана. Самое смешное, что Python создавался как легкочитаемый язык, но получилось наоборот: Код: python 1.
У меня сложилось впечатление, что те, кто ругает С++ за сложность просто не знакомы с книгой Боба Мартина "Чистый код". Исходя из его книги, за надпись сверху надо бить по рукам, потому что она совсем не читаема. Популярность Python объясняется также, как и популярность Javascript: шашлычных, блинных, чебуречных.... всегда в десятки раз больше, чем нормальных столовых и ресторанов. А эти языки используются как раз для мелких, но частых дел. В лекции представленной ниже преподаватель Python так и говорит: программы до 1000 строк набиваю на Python, а больше 1000 строк- беру Java. Другими словами, Python не годится для Enterprise. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 10:16 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
авторИзучил синтаксис языка и не понял откуда эта читаемость появляется. возможно, из принудительного визуального структурирования, выбора коротких ключевых слов. Но - на вкус и цвет фломастеры разные, кому не по душе - не пользуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 10:37 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Вот что характерно, месяцев так десять назад топикстартер писал такие вот пассажи , человек только-только начал погружаться в профессию, делает первые шаги в С++. Года не прошло - с**а, эксперт! Дорогой, AlekseySQL, потрать день, пройди туториал по Django, сделай хоть что-нибудь, потом уже рассуждай. Какой тебе энтерпрайз, кто тебя туда пустит, если ты рассуждаешь о выборе технологии по количеству предполагаемых строк кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:16 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLязык для ученых, которые 1 раз напишут программу и потом ее выбросят, никогда не перечитывая код. Вы очень странно представляете себе программирование в науке :) AlekseySQLСамое смешное, что Python создавался как легкочитаемый язык, но получилось наоборот: Код: python 1.
…за надпись сверху надо бить по рукам, потому что она совсем не читаема. Я, например, Python не знаю, но «надпись» прочитал и понял. Может, все дело в том, что я ученый? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 15:54 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Ы2, Да, читаемость у Питона очень хорошая - логично сложено построение выражений. Но я бы после Питона посмотрел на D - там есть все это (правда и овердофига больше и есть сложные концепции), и скорость С. Т.е. при >1000 условных строк D >> Java >> Python ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 16:34 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
SiemarglНо я бы после Питона посмотрел на D - там есть все это (правда и овердофига больше и есть сложные концепции), и скорость С. Зачем, когда есть православный Go? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 16:42 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZSiemarglНо я бы после Питона посмотрел на D - там есть все это (правда и овердофига больше и есть сложные концепции), и скорость С. Зачем, когда есть православный Go?го примитивен, примитивнее питона в т.ч ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 17:24 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Siemarglго примитивен, примитивнее питона в т.ч Я бы посмотрел, как команда набранных по объявлению вчерашних студентов пишет потрясающе гибкий, читабельный, поддерживаемый код на Scala. Golang для того и создавался, чтобы быть бесхитростным, как палка-копалка, что, безусловно, лишает пылкие умы свободы творчества, но позволяет оставаться инструментом для достижения поставленных перед проектом целей кратчайшим путем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 18:29 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаSiemarglго примитивен, примитивнее питона в т.ч Я бы посмотрел, как команда набранных по объявлению вчерашних студентов пишет потрясающе гибкий, читабельный, поддерживаемый код на Scala. Golang для того и создавался, чтобы быть бесхитростным, как палка-копалка, что, безусловно, лишает пылкие умы свободы творчества, но позволяет оставаться инструментом для достижения поставленных перед проектом целей кратчайшим путем.Как это соотносится с темой топика ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 23:26 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
[quot Ы2]AlekseySQLязык для ученых, которые 1 раз напишут программу и потом ее выбросят, никогда не перечитывая код. Вы очень странно представляете себе программирование в науке :) Я учился в МФТИ, и сейчас у меня там есть друг, который продолжает работать в лаборатории. Кстати, он не знал ни одного языка, но по необходимости в 35 лет выучил Python. Есть также источники с habr: авторPython «хорош» в научных вычислениях из-за низкого порога вхождения. Для большинства людей, занимающихся наукой (даже теорией), необходим инструмент для каких-никаких расчетов, да чтоб еще графики рисовал. В моей области когда-то давно был такой монстр как IDL, но сейчас все поголовно пишут на Python. При этом зачастую не используются никакие фичи языка кроме стандартных циклов/ветвлений, функций и многомерных (в лучшем случае) массивов. Всё. Т.к. никто не хочет тратить время на «это ваше программирование», ни об ООП, ни об оптимизации, ни о чем либо еще люди даже не слышали. К исследованиям Python не побуждает, т.к. почти всё нужное среднестатистическому учёному можно найти в той или иной библиотеке. Провал между средним «научным» программированием и средним «профильным» программированием настолько велик, что, измеряя его в годах задержки, эквивалентен лагу в хороших лет 30. Такие дела. Всё вышенаписанное — личное мнение, основанное на личном опыте. авторЯ на Matlab работал с 1989 года с версии 2.0 до примерно 2005. В течение 12 лет я не встречал ни одного человека, который бы тоже работал в Matlab, за исключением своего универовского друга, который меня и "подсадил", коллег, с которыми я сам поделился сей радостью, и своих студентов. авторПо своему опыту научной работы могу сказать, что когда над задачей работает от одного до нескольких человек, он повторном использовании кода речи не идёт. Пишут как получится, используются минимальные возможности языка, о системах контроля версий большинство не знает. Да и в общем потоке информации которую необходимо изучать ( математика, физика) для программирования места почти нет. Может быть, если бы на первых курсах универа больше уделяли этому внимания, ситуация могла быть лучше. Почему Python так хорош в научных вычислениях ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 07:58 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаSiemarglго примитивен, примитивнее питона в т.ч Я бы посмотрел, как команда набранных по объявлению вчерашних студентов пишет потрясающе гибкий, читабельный, поддерживаемый код на Scala. Golang для того и создавался, чтобы быть бесхитростным, как палка-копалка, что, безусловно, лишает пылкие умы свободы творчества, но позволяет оставаться инструментом для достижения поставленных перед проектом целей кратчайшим путем. Отсутствие многих удобных вещей в go никак не гарантирует тот факт, что вчерашние студенты будут закладывать в приложение грамотную архитектуру. В конечном счете получится такая поделка, в которой еще сложнее разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 08:29 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЯ учился в МФТИ, и сейчас у меня там есть друг, который продолжает работать в лаборатории. Кстати, он не знал ни одного языка, но по необходимости в 35 лет выучил Python. Есть также источники с habr … Если вы пишите, что-то изначально более-менее одноразовое, вам нет дела до оптимизации — на нее уйдет больше времени, чем на сами вычисления. И пишите так, как вам же удобнее отлаживать. А когда беретесь делать инструмент — подходы меняются. В моей области сейчас очень много активно развиваемых инструментов на Python, полагаю, их код регулярно пересматривается, и живет он массово на github. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 17:07 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Ы2Если вы пишите, что-то изначально более-менее одноразовое, вам нет дела до оптимизации — на нее уйдет больше времени, чем на сами вычисления. И пишите так, как вам же удобнее отлаживать. А когда беретесь делать инструмент — подходы меняются. В моей области сейчас очень много активно развиваемых инструментов на Python, полагаю, их код регулярно пересматривается, и живет он массово на github. Вы считаете, что господа чучуные пишут библиотеки ("инструмент" в вашей терминологии)? Нет, конечно! Их чудо- код кое- как заработал- и слава Богу. При этом используется процедурный стиль, в котором все сущности перемешаны в одной большой функции, а код представляет из себя код- лапшу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 17:23 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЫ2Если вы пишите, что-то изначально более-менее одноразовое, вам нет дела до оптимизации — на нее уйдет больше времени, чем на сами вычисления. И пишите так, как вам же удобнее отлаживать. А когда беретесь делать инструмент — подходы меняются. В моей области сейчас очень много активно развиваемых инструментов на Python, полагаю, их код регулярно пересматривается, и живет он массово на github. Вы считаете, что господа чучуные пишут библиотеки ("инструмент" в вашей терминологии)? Нет, конечно! Их чудо- код кое- как заработал- и слава Богу. При этом используется процедурный стиль, в котором все сущности перемешаны в одной большой функции, а код представляет из себя код- лапшу. Вы это сами видели, или вам «Рабинович напел»? Друг в МФТИ и «источники с хабра» это еще не вся наука. Ученые — сюрприз — бывают разные. Вероятно, многие пишут одноразовую лапшу, кто-то — многоразовую, а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 17:46 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Ы2.. а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди. Вы фантазер. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 18:46 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
На самом деле, правда, учёные склонны производить не очень качественный код, реализуя свои вычисления на практике. Учёные -- не инженеры, они не задумываются о всяких там удобствах, совместимостях и прочем. Именно поэтому, в здоровом проекте нужны и учёные и инженеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 18:50 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЫ2.. а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди. Вы фантазер. Я — пользователь этих инструментов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 22:54 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Ы2Я — пользователь этих инструментов. Библиотеки для ученых пишут опытные программисты. Например, у компании Intel есть хорошая математическая библиотека. Подобным образом поступают и другие гиганты: создают продукты общего назначения для собственной популяризации. Как это их рекламирует? Да очень просто: в институтах студентам дают задачки исключительно академического характера (перемножить матрицы, транспонировать, решить систему уравнений....) и как раз для этого подходят все эти математические библиотеки. На студентов основная ставка: скоро они уйдут работать и именно от их решения зависит какой продукт купят организации. Не было бы пулов студентов в виде ВУЗ- ов, тогда не было бы и научных библиотек. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2018, 07:56 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
На Физтехе есть форум, где тусят выпускники / студенты. Там большое количество программистов разного направления + большое количество ученого люда. Предлагаю заглянуть в тему обсуждения научного программирования : авторПотому что настоящий учёный даже даже на хаскеле напишет программу на фортране. А питон вполне соответствует. авторЯ пытался переубедить одного из своих коллабораторов. Он сказал, что если он НЕ будет на Фортране писать, то никто его кодом в комьюнити пользоваться не будет. Ну еще так же мотивировал, что там сразу с матрицами удобно работать. авторте, кто пишут на фортране, -- как программисты профнепригодны, это бесспорно Другими словами, когда я выше достаточно резко высказывался о программистских навыках ученых, то не выдумывал. Такая реальность в МФТИ, где я учился и могу уверенно сказать, что значит так по всей России. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2018, 08:59 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQL, если вы обратили внимание, я не утверждаю, что все ученые пишут отличный код, я утверждаю другое: Ученые — сюрприз — бывают разные. Вероятно, многие пишут одноразовую лапшу, кто-то — многоразовую, а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди. Вы смотрите на ситуацию снаружи, я — изнутри. Когда я выбираю инструмент для себя, то смотрю в том числе на список авторов. В моей области среди них обычно есть как прямые коллеги, так и люди с PhD по Computer Science. Если хотите убедиться, что ученые помимо лапши пишут и библиотеки, загляните в раздел academic в репозитории любого большого дистрибутива Linux, и посмотрите список авторов десятка выбранных наобум инструментов для решения более-менее широкого круга задач (напр., R, NLTK, HFST). В России тоже не все так однозначно, как вам кажется после просмотра одного форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2018, 11:39 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLНа студентов основная ставка: скоро они уйдут работать и именно от их решения зависит какой продукт купят организации. Не было бы пулов студентов в виде ВУЗ-ов, тогда не было бы и научных библиотек. Это явное заблуждение. Масса библиотек изначально была написана учеными для себя и коллег, компании же присоединяются к разработке, когда видят в этом выгоду для себя, и, да, это часто ведет к улучшению качества кода. Профессиональный программист в научном проекте бывает весьма полезен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2018, 11:44 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
HettЛысый дядькапропущено... Я бы посмотрел, как команда набранных по объявлению вчерашних студентов пишет потрясающе гибкий, читабельный, поддерживаемый код на Scala. Golang для того и создавался, чтобы быть бесхитростным, как палка-копалка, что, безусловно, лишает пылкие умы свободы творчества, но позволяет оставаться инструментом для достижения поставленных перед проектом целей кратчайшим путем. Отсутствие многих удобных вещей в go никак не гарантирует тот факт, что вчерашние студенты будут закладывать в приложение грамотную архитектуру. В конечном счете получится такая поделка, в которой еще сложнее разобраться. Да нет же, в том и смысл подобной технологии - направлять пользователя в нужное русло. Пользователь, он как электрический ток, идет по пути наименьшего сопротивления, и в этом смысле, чем стандартней, чем более "по колее" - тем лучше. Java в этом плане столь же показательна: тупо, без вариантов, многословно (ну и чёрт бы с ним), но "как по книге" делать гораздо проще, чем изобретать. Энтерпрайз - это поточная реализация большого количества довольно тупых маленьких частных задач, и здесь чем меньше у разработчика вариантов выдумывать "архитектуру", тем лучше. У меня имеется довольно богатый опыт общения с питоном в качестве основы для корпоративных решений, и как многие (видимо, недалекие или малоопытные люди) "открывают" для себя питон и восторгаются открывающимися возможностями, я кричал от восторга, когда довелось после этого вести проект на Спринге - настолько стабильнее и управляемей получается структура приложения. Есть опыт участия в средней мощности проекте на голанге в качестве аутсорсера, и я скажу - это здорово: понятно, просто, адекватно, сложностей разбираться в чужом коде у меня не возникало, а вот в питоне с этим бывают проблемы. В питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом, потому что импорт происходит не всегда, а только в иф-ветке при наличии неких условий в файле настоек, которые твой коллега придумал в рамках решения своей задачи (это я еще не говорю, про то, что с помощью всей мощи интроспекции можно навесить хуков на какие угодно события, а ты потом выясняй, где же оно тормозит). Причем это делается в прикладном модуле, никто не перепиливает библиотечный код. Надо ли мне такой волюнтаризм - нафиг не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2018, 19:14 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаВ питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом, потому что импорт происходит не всегда, а только в иф-ветке при наличии неких условий в файле настоек, которые твой коллега придумал в рамках решения своей задачи (это я еще не говорю, про то, что с помощью всей мощи интроспекции можно навесить хуков на какие угодно события, а ты потом выясняй, где же оно тормозит). Причем это делается в прикладном модуле, никто не перепиливает библиотечный код. Надо ли мне такой волюнтаризм - нафиг не надо. За манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2018, 20:26 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZЗа манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох. Да хоть расстреливай, если есть возможность проявлять кипучую творческую натуру - будут проявлять, организационными мерами нельзя решить технические проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 08:40 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаNekZЗа манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох. Да хоть расстреливай, если есть возможность проявлять кипучую творческую натуру - будут проявлять, организационными мерами нельзя решить технические проблемы. Так в любом языке есть возможности, которые можно использовать не по назначению и получить кучу проблем в будущем и питон в этом плане не является чем-то неординарным. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 09:59 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаДа нет же, в том и смысл подобной технологии - направлять пользователя в нужное русло. Пользователь, он как электрический ток, идет по пути наименьшего сопротивления, и в этом смысле, чем стандартней, чем более "по колее" - тем лучше. Что конкретно в golang направляет пользователя и куда? Строгий синтаксис: не на той строке скобку закрыл - не скомпилируется. На этом все. Питон тоже довольно требователен в этом плане. В плане архитектурного решения приложения каким образом язык куда-то вас направит? Язык наоборот дает свободу творчества и никак не ограничивает разработчика в полете его мысли. Лысый дядька Java в этом плане столь же показательна: тупо, без вариантов, многословно (ну и чёрт бы с ним), но "как по книге" делать гораздо проще, чем изобретать. Энтерпрайз - это поточная реализация большого количества довольно тупых маленьких частных задач, и здесь чем меньше у разработчика вариантов выдумывать "архитектуру", тем лучше. Некоторые вещи описаны на уровне спецификаций, тот же JPA, но каким образом тут ява как ЯП? В топике обсуждается язык, а не то, что на нем написано. Куда-то не туда поехали. Опять же сама ява никаким образом не ограничивает разработчиков и никуда не направляет, можно так нагавнокодить на яве, что сам потом не разберешься. Архитектура приложения вообще никаким образом не привязана к языку: хочешь ты используй декомпозицию/агренирование в питоне, хочешь в гоу, хочешь в яве. Хочешь наследуйся до посинения хоть в яве, хоть в питоне, а потом страдай. Лысый дядькаУ меня имеется довольно богатый опыт общения с питоном в качестве основы для корпоративных решений, и как многие (видимо, недалекие или малоопытные люди) "открывают" для себя питон и восторгаются открывающимися возможностями, я кричал от восторга, когда довелось после этого вести проект на Спринге - настолько стабильнее и управляемей получается структура приложения. Спринг это фреймворк, а питон - это ЯП, как можно сравнивать совершенно разные вещи? авторВ питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом В яве как будто нельзя. Тут вопрос уже к разработчикам, а не к ЯП. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 10:01 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
HettНекоторые вещи описаны на уровне спецификаций, тот же JPA, но каким образом тут ява как ЯП? Таким образом, что для питона таких спецификаций нет, а для джавы есть. HettСпринг это фреймворк, а питон - это ЯП, как можно сравнивать совершенно разные вещи? Я видел кучу попыток реализовать на питоне что-то похожее на фреймворк для корпоративных решений, все неудачные, тот же bluebrim давно и безнадежно мертв. Давай смотреть правде в глаза, питон - это Django, Flask и еще пара очень специфических вещей типа Keras. Любой проект хоть немного выходящий за рамки стандартного веб-сайта требует от команды разработчиков без конца изобретать велосипеды, например, лютым геморроем оборачивается хранение состояния объектов между запросами, ибо нормального стандартного механизма просто нет. HettВ яве как будто нельзя. Тут вопрос уже к разработчикам, а не к ЯП. При желании можно даже писюн сломать, вопрос в том, насколько тот или иной инструмент помогает выстрелить себе в ногу. Ты вызываешь метод, который может вызвать исключение. Java не позволит тебе отдать в продакшен код, в котором возможные исключения явно не обрабатываются, питон - да бога ради. HettВ топике обсуждается язык, а не то, что на нем написано. Куда-то не туда поехали Когда в языке нет контрактов как таковых, сочинять спецификации как-то глупо, не находишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 13:24 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
авторТаким образом, что для питона таких спецификаций нет, а для джавы есть. Ну это же не проблема языка. Я в целом то с замечаниями согласен, но всё это не имеет прямого отношения к питону как к языку. Да и рассуждать ориентируясь только на веб, согласитесь, не очень корректно. Да и в чем тут питон хуже go? PS^ Кстати пока писал вспомнил, что когда давно имел дело с питоном, сильно не понравился подход установки зависимостей глобально. Есть костыли, конечно, в виде env, но это все жутко не удобно. В чем проблема установить зависимости в папке с проектом я так и не понял. С многопоточностью в питоне как-то тоже показалось грустновато (это был 2.7 питон, не знаю как в версии 3). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 20:01 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Лысый дядькаПри желании можно даже писюн сломать... К счастью, это не получится: там нет костей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 14:44 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЛысый дядькаПри желании можно даже писюн сломать... К счастью, это не получится: там нет костей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 19:59 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЛысый дядькаПри желании можно даже писюн сломать... К счастью, это не получится: там нет костей :)Дай угадаю, у тебя и по математике тройка? =) В программировании и биологии уже понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 20:11 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Тему можно переносить в ПТ, если только кто-нибудь не нашёл способ сломать питона. Модератор: Зачем... Можно просто закрыть топик. Только вот, сама тема "уловить причину выразительности" так и осталось не вполне понятной. А жаль. Думается, в причинах что-то должно быть общее с улыбкой Джоконды. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 20:15 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Короче, выразительность Pythona- миф. Например, вот как выглядит первый попавшийся код из SciPy Cookbook : Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Этот код нечитаем. Код должен читаться как обычная книга, и тогда он легко воспринимается (спасибо, Боб Мартин!). Тут же мы видим кашу из инструкций, которую надо при повторном использовании ВСЮ перечитывать и в голове воссоздавать идею работы программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 09:15 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
ИМХО, в большей мере тут от автора кода зависит, можно хоть на чем написать так, что потом сложно прочитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 09:24 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLЭтот код нечитаем.Это Вы, наверно, забористый перловый код ещё не читали ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 15:05 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQLКороче, выразительность Pythona- миф. Например, вот как выглядит первый попавшийся код из SciPy Cookbook : Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Этот код нечитаем. Код должен читаться как обычная книга, и тогда он легко воспринимается (спасибо, Боб Мартин!). Тут же мы видим кашу из инструкций, которую надо при повторном использовании ВСЮ перечитывать и в голове воссоздавать идею работы программы. Вот тебе такой же код на плюсах Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
ИМХО, любой вычислительный научный код выглядит везде одинаково плохо. Но в C++ пришлось написать гораздо больше, но выразительности это, скорее, убавило. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 15:31 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
NekZВот тебе такой же код на плюсах Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
ИМХО, любой вычислительный научный код выглядит везде одинаково плохо. Но в C++ пришлось написать гораздо больше, но выразительности это, скорее, убавило. Это не на плюсах, а на С. На плюсах код изначально мыслится объектами со своими свойствами и методами. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2018, 11:08 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
AlekseySQL Это не на плюсах, а на С. На плюсах код изначально мыслится объектами со своими свойствами и методами. Где ты в C видел ключевые слова "auto" и "using namespace" Как видишь, на C++ тоже можно писать в процедурном стиле. Так же как и на питоне. Это вопрос к авторам этой библиотеки, а не к самому языку. Так шта...(С) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2018, 11:16 |
|
Народ, никак не могу уловить причину выразительности Python
|
|||
---|---|---|---|
#18+
Поискал аналог книги "Чистый код" Боба Мартина, но не нашел (эта книга показывает как писать код, который очень легко читается и понимается). Есть подобная книга для языка Python? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2018, 12:52 |
|
|
start [/forum/topic.php?all=1&fid=23&tid=1460194]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 465ms |
0 / 0 |