powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Народ, никак не могу уловить причину выразительности Python
25 сообщений из 51, страница 2 из 3
Народ, никак не могу уловить причину выразительности Python
    #39679185
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЫ2Если вы пишите, что-то изначально более-менее одноразовое, вам нет дела до оптимизации — на нее уйдет больше времени, чем на сами вычисления. И пишите так, как вам же удобнее отлаживать.
А когда беретесь делать инструмент — подходы меняются. В моей области сейчас очень много активно развиваемых инструментов на Python, полагаю, их код регулярно пересматривается, и живет он массово на github.
Вы считаете, что господа чучуные пишут библиотеки ("инструмент" в вашей терминологии)? Нет, конечно! Их чудо- код кое- как заработал- и слава Богу. При этом используется процедурный стиль, в котором все сущности перемешаны в одной большой функции, а код представляет из себя код- лапшу.
Вы это сами видели, или вам «Рабинович напел»? Друг в МФТИ и «источники с хабра» это еще не вся наука. Ученые — сюрприз — бывают разные. Вероятно, многие пишут одноразовую лапшу, кто-то — многоразовую, а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39679225
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ы2.. а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди.

Вы фантазер.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39679228
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле, правда, учёные склонны производить не очень качественный код, реализуя свои вычисления на практике.
Учёные -- не инженеры, они не задумываются о всяких там удобствах, совместимостях и прочем.
Именно поэтому, в здоровом проекте нужны и учёные и инженеры.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39679308
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЫ2.. а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди.

Вы фантазер.
Я — пользователь этих инструментов.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39679973
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ы2Я — пользователь этих инструментов.

Библиотеки для ученых пишут опытные программисты. Например, у компании Intel есть хорошая математическая библиотека. Подобным образом поступают и другие гиганты: создают продукты общего назначения для собственной популяризации. Как это их рекламирует? Да очень просто: в институтах студентам дают задачки исключительно академического характера (перемножить матрицы, транспонировать, решить систему уравнений....) и как раз для этого подходят все эти математические библиотеки. На студентов основная ставка: скоро они уйдут работать и именно от их решения зависит какой продукт купят организации. Не было бы пулов студентов в виде ВУЗ- ов, тогда не было бы и научных библиотек.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680498
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На Физтехе есть форум, где тусят выпускники / студенты. Там большое количество программистов разного направления + большое количество ученого люда. Предлагаю заглянуть в тему обсуждения научного программирования :

авторПотому что настоящий учёный даже даже на хаскеле напишет программу на фортране. А питон вполне соответствует.

авторЯ пытался переубедить одного из своих коллабораторов. Он сказал, что если он НЕ будет на Фортране писать, то никто его кодом в комьюнити пользоваться не будет. Ну еще так же мотивировал, что там сразу с матрицами удобно работать.

авторте, кто пишут на фортране, -- как программисты профнепригодны, это бесспорно

Другими словами, когда я выше достаточно резко высказывался о программистских навыках ученых, то не выдумывал. Такая реальность в МФТИ, где я учился и могу уверенно сказать, что значит так по всей России.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680511
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL, если вы обратили внимание, я не утверждаю, что все ученые пишут отличный код, я утверждаю другое:
Ученые — сюрприз — бывают разные. Вероятно, многие пишут одноразовую лапшу, кто-то — многоразовую, а кто-то — снова сюрприз — библиотеки, потому что так удобнее делать инструмент, который будут годами использовать не только авторы, но и совершенно незнакомые им люди.
Вы смотрите на ситуацию снаружи, я — изнутри. Когда я выбираю инструмент для себя, то смотрю в том числе на список авторов. В моей области среди них обычно есть как прямые коллеги, так и люди с PhD по Computer Science.
Если хотите убедиться, что ученые помимо лапши пишут и библиотеки, загляните в раздел academic в репозитории любого большого дистрибутива Linux, и посмотрите список авторов десятка выбранных наобум инструментов для решения более-менее широкого круга задач (напр., R, NLTK, HFST). В России тоже не все так однозначно, как вам кажется после просмотра одного форума.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680512
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLНа студентов основная ставка: скоро они уйдут работать и именно от их решения зависит какой продукт купят организации. Не было бы пулов студентов в виде ВУЗ-ов, тогда не было бы и научных библиотек.
Это явное заблуждение. Масса библиотек изначально была написана учеными для себя и коллег, компании же присоединяются к разработке, когда видят в этом выгоду для себя, и, да, это часто ведет к улучшению качества кода. Профессиональный программист в научном проекте бывает весьма полезен.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680718
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЛысый дядькапропущено...

Я бы посмотрел, как команда набранных по объявлению вчерашних студентов пишет потрясающе гибкий, читабельный, поддерживаемый код на Scala. Golang для того и создавался, чтобы быть бесхитростным, как палка-копалка, что, безусловно, лишает пылкие умы свободы творчества, но позволяет оставаться инструментом для достижения поставленных перед проектом целей кратчайшим путем.

Отсутствие многих удобных вещей в go никак не гарантирует тот факт, что вчерашние студенты будут закладывать в приложение грамотную архитектуру. В конечном счете получится такая поделка, в которой еще сложнее разобраться.
Да нет же, в том и смысл подобной технологии - направлять пользователя в нужное русло. Пользователь, он как электрический ток, идет по пути наименьшего сопротивления, и в этом смысле, чем стандартней, чем более "по колее" - тем лучше. Java в этом плане столь же показательна: тупо, без вариантов, многословно (ну и чёрт бы с ним), но "как по книге" делать гораздо проще, чем изобретать. Энтерпрайз - это поточная реализация большого количества довольно тупых маленьких частных задач, и здесь чем меньше у разработчика вариантов выдумывать "архитектуру", тем лучше. У меня имеется довольно богатый опыт общения с питоном в качестве основы для корпоративных решений, и как многие (видимо, недалекие или малоопытные люди) "открывают" для себя питон и восторгаются открывающимися возможностями, я кричал от восторга, когда довелось после этого вести проект на Спринге - настолько стабильнее и управляемей получается структура приложения. Есть опыт участия в средней мощности проекте на голанге в качестве аутсорсера, и я скажу - это здорово: понятно, просто, адекватно, сложностей разбираться в чужом коде у меня не возникало, а вот в питоне с этим бывают проблемы. В питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом, потому что импорт происходит не всегда, а только в иф-ветке при наличии неких условий в файле настоек, которые твой коллега придумал в рамках решения своей задачи (это я еще не говорю, про то, что с помощью всей мощи интроспекции можно навесить хуков на какие угодно события, а ты потом выясняй, где же оно тормозит). Причем это делается в прикладном модуле, никто не перепиливает библиотечный код. Надо ли мне такой волюнтаризм - нафиг не надо.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680740
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаВ питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом, потому что импорт происходит не всегда, а только в иф-ветке при наличии неких условий в файле настоек, которые твой коллега придумал в рамках решения своей задачи (это я еще не говорю, про то, что с помощью всей мощи интроспекции можно навесить хуков на какие угодно события, а ты потом выясняй, где же оно тормозит). Причем это делается в прикладном модуле, никто не перепиливает библиотечный код. Надо ли мне такой волюнтаризм - нафиг не надо.
За манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680844
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZЗа манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох.
Да хоть расстреливай, если есть возможность проявлять кипучую творческую натуру - будут проявлять, организационными мерами нельзя решить технические проблемы.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680883
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаNekZЗа манки патчинг и сайд эффекты импорта без крайней необходимости в питоновом сообществе обычно ставят коленями на горох.
Да хоть расстреливай, если есть возможность проявлять кипучую творческую натуру - будут проявлять, организационными мерами нельзя решить технические проблемы.
Так в любом языке есть возможности, которые можно использовать не по назначению и получить кучу проблем в будущем и питон в этом плане не
является чем-то неординарным.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39680885
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаДа нет же, в том и смысл подобной технологии - направлять пользователя в нужное русло. Пользователь, он как электрический ток, идет по пути наименьшего сопротивления, и в этом смысле, чем стандартней, чем более "по колее" - тем лучше.

Что конкретно в golang направляет пользователя и куда? Строгий синтаксис: не на той строке скобку закрыл - не скомпилируется. На этом все. Питон тоже довольно требователен в этом плане. В плане архитектурного решения приложения каким образом язык куда-то вас направит? Язык наоборот дает свободу творчества и никак не ограничивает разработчика в полете его мысли.


Лысый дядька Java в этом плане столь же показательна: тупо, без вариантов, многословно (ну и чёрт бы с ним), но "как по книге" делать гораздо проще, чем изобретать. Энтерпрайз - это поточная реализация большого количества довольно тупых маленьких частных задач, и здесь чем меньше у разработчика вариантов выдумывать "архитектуру", тем лучше.

Некоторые вещи описаны на уровне спецификаций, тот же JPA, но каким образом тут ява как ЯП? В топике обсуждается язык, а не то, что на нем написано. Куда-то не туда поехали.
Опять же сама ява никаким образом не ограничивает разработчиков и никуда не направляет, можно так нагавнокодить на яве, что сам потом не разберешься. Архитектура приложения вообще никаким образом не привязана к языку: хочешь ты используй декомпозицию/агренирование в питоне, хочешь в гоу, хочешь в яве. Хочешь наследуйся до посинения хоть в яве, хоть в питоне, а потом страдай.

Лысый дядькаУ меня имеется довольно богатый опыт общения с питоном в качестве основы для корпоративных решений, и как многие (видимо, недалекие или малоопытные люди) "открывают" для себя питон и восторгаются открывающимися возможностями, я кричал от восторга, когда довелось после этого вести проект на Спринге - настолько стабильнее и управляемей получается структура приложения.


Спринг это фреймворк, а питон - это ЯП, как можно сравнивать совершенно разные вещи?


авторВ питоне можно внедрить в класс-родитель новые свойства (а можно и перегрузить !!!! ты никогда не знаешь этого заранее) на этапе импорта класса-потомка и потом затрахаться с дебагом
В яве как будто нельзя. Тут вопрос уже к разработчикам, а не к ЯП.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39681038
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНекоторые вещи описаны на уровне спецификаций, тот же JPA, но каким образом тут ява как ЯП?
Таким образом, что для питона таких спецификаций нет, а для джавы есть.

HettСпринг это фреймворк, а питон - это ЯП, как можно сравнивать совершенно разные вещи?
Я видел кучу попыток реализовать на питоне что-то похожее на фреймворк для корпоративных решений, все неудачные, тот же bluebrim давно и безнадежно мертв. Давай смотреть правде в глаза, питон - это Django, Flask и еще пара очень специфических вещей типа Keras. Любой проект хоть немного выходящий за рамки стандартного веб-сайта требует от команды разработчиков без конца изобретать велосипеды, например, лютым геморроем оборачивается хранение состояния объектов между запросами, ибо нормального стандартного механизма просто нет.

HettВ яве как будто нельзя. Тут вопрос уже к разработчикам, а не к ЯП.
При желании можно даже писюн сломать, вопрос в том, насколько тот или иной инструмент помогает выстрелить себе в ногу. Ты вызываешь метод, который может вызвать исключение. Java не позволит тебе отдать в продакшен код, в котором возможные исключения явно не обрабатываются, питон - да бога ради.

HettВ топике обсуждается язык, а не то, что на нем написано. Куда-то не туда поехали
Когда в языке нет контрактов как таковых, сочинять спецификации как-то глупо, не находишь?
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39681275
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТаким образом, что для питона таких спецификаций нет, а для джавы есть.
Ну это же не проблема языка.
Я в целом то с замечаниями согласен, но всё это не имеет прямого отношения к питону как к языку. Да и рассуждать ориентируясь только на веб, согласитесь, не очень корректно. Да и в чем тут питон хуже go?

PS^
Кстати пока писал вспомнил, что когда давно имел дело с питоном, сильно не понравился подход установки зависимостей глобально. Есть костыли, конечно, в виде env, но это все жутко не удобно. В чем проблема установить зависимости в папке с проектом я так и не понял.
С многопоточностью в питоне как-то тоже показалось грустновато (это был 2.7 питон, не знаю как в версии 3).
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39682057
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядькаПри желании можно даже писюн сломать...

К счастью, это не получится: там нет костей :)
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39682223
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЛысый дядькаПри желании можно даже писюн сломать...

К счастью, это не получится: там нет костей :)


...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39682228
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЛысый дядькаПри желании можно даже писюн сломать...

К счастью, это не получится: там нет костей :)Дай угадаю, у тебя и по математике тройка? =)

В программировании и биологии уже понятно
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39682232
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тему можно переносить в ПТ, если только кто-нибудь не нашёл способ сломать питона.

Модератор: Зачем... Можно просто закрыть топик. Только вот, сама тема "уловить причину выразительности" так и осталось не вполне понятной. А жаль. Думается, в причинах что-то должно быть общее с улыбкой Джоконды.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39684057
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, выразительность Pythona- миф. Например, вот как выглядит первый попавшийся код из SciPy Cookbook :

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
from numpy import r_, sin
from scipy.signal import cspline1d, cspline1d_eval
%pylab inline

x = r_[0:10]
dx = x[1]-x[0]
newx = r_[-3:13:0.1]  # notice outside the original domain 
y = sin(x)
cj = cspline1d(y)
newy = cspline1d_eval(cj, newx, dx=dx,x0=x[0])
from pylab import plot, show
plot(newx, newy, x, y, 'o')
show()



Этот код нечитаем. Код должен читаться как обычная книга, и тогда он легко воспринимается (спасибо, Боб Мартин!). Тут же мы видим кашу из инструкций, которую надо при повторном использовании ВСЮ перечитывать и в голове воссоздавать идею работы программы.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39684060
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, в большей мере тут от автора кода зависит, можно хоть на чем написать так, что потом сложно прочитать.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39684297
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЭтот код нечитаем.Это Вы, наверно, забористый перловый код ещё не читали
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39684326
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКороче, выразительность Pythona- миф. Например, вот как выглядит первый попавшийся код из SciPy Cookbook :

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
from numpy import r_, sin
from scipy.signal import cspline1d, cspline1d_eval
%pylab inline

x = r_[0:10]
dx = x[1]-x[0]
newx = r_[-3:13:0.1]  # notice outside the original domain 
y = sin(x)
cj = cspline1d(y)
newy = cspline1d_eval(cj, newx, dx=dx,x0=x[0])
from pylab import plot, show
plot(newx, newy, x, y, 'o')
show()



Этот код нечитаем. Код должен читаться как обычная книга, и тогда он легко воспринимается (спасибо, Боб Мартин!). Тут же мы видим кашу из инструкций, которую надо при повторном использовании ВСЮ перечитывать и в голове воссоздавать идею работы программы.

Вот тебе такой же код на плюсах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
// Куча непонятных инклудов
using namespace std;
decltype(r_) x;
copy_n(begin(r_), 10, back_inserter(x));
auto dx = x[1] - x[0];
decltype(r_) newx;
copy_n_with_step(rbegin(r_) + 3, 13, 0.1, back_inserter(newx, 0.1));  // Предположим, что такой есть
auto y = sin(x);
auto cj = cspline1d(y);
auto newy = cspline1d_eval(cj, newx, /*dx=*/dx, /*x0=*/x[0]);  // Заметь, что в твоём C++ нет kwargs
plot(newx, newy, x, y, 'o');
show();



ИМХО, любой вычислительный научный код выглядит везде одинаково плохо. Но в C++ пришлось написать гораздо больше, но выразительности это,
скорее, убавило.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39686734
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZВот тебе такой же код на плюсах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
// Куча непонятных инклудов
using namespace std;
decltype(r_) x;
copy_n(begin(r_), 10, back_inserter(x));
auto dx = x[1] - x[0];
decltype(r_) newx;
copy_n_with_step(rbegin(r_) + 3, 13, 0.1, back_inserter(newx, 0.1));  // Предположим, что такой есть
auto y = sin(x);
auto cj = cspline1d(y);
auto newy = cspline1d_eval(cj, newx, /*dx=*/dx, /*x0=*/x[0]);  // Заметь, что в твоём C++ нет kwargs
plot(newx, newy, x, y, 'o');
show();



ИМХО, любой вычислительный научный код выглядит везде одинаково плохо. Но в C++ пришлось написать гораздо больше, но выразительности это,
скорее, убавило.

Это не на плюсах, а на С. На плюсах код изначально мыслится объектами со своими свойствами и методами.
...
Рейтинг: 0 / 0
Народ, никак не могу уловить причину выразительности Python
    #39686742
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL
Это не на плюсах, а на С. На плюсах код изначально мыслится объектами со своими свойствами и методами.
Где ты в C видел ключевые слова "auto" и "using namespace"
Как видишь, на C++ тоже можно писать в процедурном стиле. Так же как и на питоне. Это вопрос к авторам этой библиотеки, а не к самому языку.
Так шта...(С)
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Народ, никак не могу уловить причину выразительности Python
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]