|
Народ, никак не могу уловить причину выразительности 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 |
|
|
start [/forum/topic.php?fid=23&fpage=22&tid=1460194]: |
0ms |
get settings: |
32ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
148ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 256ms |
0 / 0 |