реклама на сайте
подробности

 
 
7 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Python для разработчика, зачем?
dxp
сообщение Mar 14 2018, 13:37
Сообщение #46


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(andrew_b @ Mar 14 2018, 20:18) *
Справедливости ради надо сказать, что юниксовый принцип гласит: "Программа делает что-то одно, но делает это хорошо". Это совсем не то, что вы написали.

Там же не один принцип. Про программу - да. А мы не про программу говорили. Не отношу себя к знатокам традиций UNIX, но мне попадалась мантра "There is more than one way to do it" как один из философских принципов этой темы. Например:

Код
touch slon.txt
:> slon.txt



Цитата(one_eight_seven @ Mar 14 2018, 20:20) *
Однако, при разработке Py3, согласно этому принципу были удалены многие дублирующиеся модули и конструкции.

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
_pv
сообщение Mar 14 2018, 13:37
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(dxp @ Mar 14 2018, 16:59) *
Ну, питон с луной сравнивать как бы не совсем правильно.
А вот как объемлющий-расширяемый язык питон имеет преимущества - более гибок (у луны по сути один тип на все случаи),

тут не соглашусь, с метатаблицами у луа ещё посмотреть надо что там более гибкое.
Цитата(dxp @ Mar 14 2018, 16:59) *
несравнимо большее количество библиотек, прекрасно расширяется через С++ (так, что плюсовые объекты напрямую доступны из питона с очень хорошей производительностью - проводил замеры, т.к. нам было критично) сообщество намного шире.

тут пожалуй да, но есть ffi, swig, так что не самая большая проблема.
Цитата(dxp @ Mar 14 2018, 16:59) *
Т.ч. луна - встраиваемый язык, а питон - язык-манагер (фронтэнд).

ну не знаю чем тут луа хуже дергать сторонние библиотеки, а вот с jit по скорости можно даже требовательные по скорости вычисления задачи решать прямо.
церн вон в части задач с питона перелез:
https://mediastream.cern.ch/MediaArchive/Vi...ftime=00:13:25#
Цитата(dxp @ Mar 14 2018, 16:59) *
Ну, это ж специализированный тул, это скорее тот же computational notebook, а питон - язык общего назначения.

ну это не я в качестве примера Jupyter привел sm.gif
Цитата(dxp @ Mar 14 2018, 16:59) *
Для широкого класса задач специализированный проиграет.

математика по сравнению с питоном класс задач может решать думаю не менее широкий.
Цитата(dxp @ Mar 14 2018, 16:59) *
Одно из важнейших достоинств питона состоит в том, что его код понимает большинство людей, знакомых с программированием, даже без особой подготовки.

это только пока код выглядит как
for i = 1, 10
a = b + c
а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 14 2018, 13:59
Сообщение #48


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё.

Смотря как писать. SageMath - достаточно понятен (если понимаешь тему, в которой производятся вычисления/моделирование)
Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 14 2018, 14:49
Сообщение #49


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(_pv @ Mar 14 2018, 14:22) *
и как там, всё работает с открытыми nouveau драйверами?
или же принципиальный непримиримый линуксоид понаставил себе закрытых проприетарных блобов от нвидии для игровых приставок sm.gif))

Естественно, блоб. Потому что нафиг покупать карту от nvidia, если нуво собираешься использовать?

Цитата(dxp @ Mar 14 2018, 15:12) *
А он (матлаб) уже научился быть многопоточным?

Уже давно. Я, правда, octave использую, но друг сидит на матлабе. Там сейчас и CUDA вовсю работает на особо числодробильных алгоритмах, которые можно хорошо распараллелить!
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 14 2018, 15:24
Сообщение #50


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(alexunder @ Mar 14 2018, 14:39) *
Конечно. Запустите расчет коэффициентов какого-нибудь фильтра или просто обмен по COM (не путать с Component object model) в отдельном потоке.

Может у вас опыт от XP, но в API WinRT все коммуникации работают под COM т.е. в своих потоках.
C# да, достойный язык, тем более странно зачем тут нужен питон. За уши притягиваете?
Пока достойных примеров, кроме как желания вывалить в опенсорс я для питона не видел.
Это чем то напоминает хайп ардуинщиков.
Go to the top of the page
 
+Quote Post
Leka
сообщение Mar 14 2018, 15:43
Сообщение #51


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Имхо, самостоятельный выбор языка должен с этой (и тп) странички начинаться:
http://rosettacode.org/wiki/Keyboard_input/Keypress_check

Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 15 2018, 03:09
Сообщение #52


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(_pv @ Mar 14 2018, 20:37) *
тут не соглашусь, с метатаблицами у луа ещё посмотреть надо что там более гибкое.

Да, всего один тип - ассоциативный массив. В питоне - это словарь. Помимо него есть ещё списки, кортежи, строки, простые типы и классы. Согласитесь, арсенал средств куда богаче.

Цитата(_pv @ Mar 14 2018, 20:37) *
тут пожалуй да, но есть ffi, swig, так что не самая большая проблема.

Cюда загляните. sm.gif И это только один из наборов библиотек для научно-инженерных задач. Помимо этого ещё есть биндинг OpenCV (cv2), PyQt/PySide для разработки полноценных приложений. Кроме того, и стандартная библиотека питона исключительно богата и разнообразна - вплоть до таких "мелочей", как модуль парсинга аргументов (argparse).

Цитата(_pv @ Mar 14 2018, 20:37) *
ну не знаю чем тут луа хуже дергать сторонние библиотеки

Тем, что их набор гораздо беднее. Например, можете написать на Lua полноценное GUI приложение, приём без извратов, а прямым путём, как на тех же плюсах? Сомневаюсь. И дело тут не в языке как таковом, с ним всё в порядке, а существовании для этого соответствующих графических фреймворков, приспособленных под этот язык. Всё-таки Lua проектировался как встраиваемый язык, в этом его сила. Его конкурент - JavaScript. Да, на обоих языках можно писать stand-alone приложения. Но до возможностей питона этом поприще им обоим далеко - повторюсь, не по причине, что языки ущербные (нормальные языки), а по причине отсутствия соответствующего контекста для этого, который не возник из-за иной целевой направленности обоих этих языков.

Цитата(_pv @ Mar 14 2018, 20:37) *
, а вот с jit по скорости можно даже требовательные по скорости вычисления задачи решать прямо.

Ну, jit - отдельная тема. Для питона тоже есть способы увеличения производительности вычислений - от прямого расширения на С/C++ и до применения CUDA (scikit-cuda, есть по ссылке выше), включая компиляцию модулей Cython, jit и прочее.

Кстати, если упирать на вычисления, то тут альтернативу питону составляет скорее Julia (убийца матлаба sm.gif ), а не Lua. Вот там нативный jit с возможностью доступа до ассемблера и встроенная в язык фича по распределению вычислений на удалённые хосты/фабрики.

Цитата(_pv @ Mar 14 2018, 20:37) *
ну это не я в качестве примера Jupyter привел sm.gif

Ясно. В качестве вычислительного блокнота математика сильна, спору нет, это её ниша. Но в качестве языка общего назначения ей тягаться с языком общего назначения тяжело.

Цитата(_pv @ Mar 14 2018, 20:37) *
математика по сравнению с питоном класс задач может решать думаю не менее широкий.

И что, на ней можно и удобно писать утилиты командной строки работы с текстами и файлами? На ней можно и удобно писать законченные приложения? Что на ней можно делать так же легко, как и на питоне, кроме вычислений?

Цитата(_pv @ Mar 14 2018, 20:37) *
это только пока код выглядит как
for i = 1, 10
a = b + c
а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё.

Код не валиден для питона. sm.gif

Ну, покажите учОный код? sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
makc
сообщение Mar 15 2018, 04:47
Сообщение #53


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Интересно, почему никто не упоминает GIL (еще см. тут) в контексте этого обсуждения?
Множество людей больно наступили на эту проблему при использовании Python в многопоточных приложениях.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Mar 15 2018, 04:55
Сообщение #54


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(dxp @ Mar 15 2018, 06:09) *
Ну, покажите учОный код? sm.gif

Можете поискать, на гитхабе есть такое. Я здесь не помощник, т.к. уже говорил — меня от одного вида пхытона тянет извергнуть съеденное накануне…
Но даже у нас в обсерватории можно 2-3 человека найти, применяющих пхытон с тем или иным успехом. Но все-таки, на первом месте по использованию у нас стоят С и С++, далее уже всякие матлабы/октавы/IDL'и/MIDAS'ы/IRAF'ы. Делаем с коллегой сейчас юниксвейную управлялку одним прибором: я написал сишные низкоуровневые утилиты, он на С++ сделал над всем этим GUI (я принципиально не лезу в GUI, т.к. это — та еще клоака: либо С++ с культяпками, либо С с говнотыками, либо мучения с OpenGL напрямую; нормального человеческого GUI-фреймворка до сих пор не существует, увы).
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 15 2018, 05:40
Сообщение #55


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(makc @ Mar 15 2018, 11:47) *
Интересно, почему никто не упоминает GIL (еще см. тут) в контексте этого обсуждения?

https://electronix.ru/forum/index.php?s=&am...t&p=1551144

Цитата(makc @ Mar 15 2018, 11:47) *
Множество людей больно наступили на эту проблему при использовании Python в многопоточных приложениях.

Какого рода грабли? Пытались выжать производительность, чтобы на i7 все 12 аппаратных потоков были задействованы? sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
makc
сообщение Mar 15 2018, 07:13
Сообщение #56


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(dxp @ Mar 15 2018, 08:40) *


Пардон, не заметил и поиск не показал.

Цитата(dxp @ Mar 15 2018, 08:40) *
Какого рода грабли? Пытались выжать производительность, чтобы на i7 все 12 аппаратных потоков были задействованы? sm.gif


На тему производительности довольно много написано и это не самая страшная проблема.
Беда была при встраивании интерпретатора в многопоточное приложение, в котором ряд функций по обработке данных дописывалось на питоне для обеспечения большей гибкости. В итоге были очень странные и непонятные падения, которые решились синхронизацией многопоточного доступа к функциям интерпретатора.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 15 2018, 08:13
Сообщение #57


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(makc @ Mar 15 2018, 14:13) *
На тему производительности довольно много написано и это не самая страшная проблема.

Да, хорошая переводная статья. А вот ещё одна от гуру питона. Букв немало, если неинтересно, можно сразу перематывать на заключение, где выводы. В общем, никаких чудес или фатальных трабл нет, если есть понимание темы, проблем не возникает.

Цитата(makc @ Mar 15 2018, 14:13) *
Беда была при встраивании интерпретатора в многопоточное приложение, в котором ряд функций по обработке данных дописывалось на питоне для обеспечения большей гибкости. В итоге были очень странные и непонятные падения, которые решились синхронизацией многопоточного доступа к функциям интерпретатора.

Ну, встраивание питона - отдельная головная боль. Не очень он для встраивания годен. Язык-фронтэнд, Тут лучше "жабий скрип", луна или белка.sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
alexunder
сообщение Mar 15 2018, 09:39
Сообщение #58


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(AlexandrY @ Mar 14 2018, 16:24) *
Может у вас опыт от XP, но в API WinRT все коммуникации работают под COM т.е. в своих потоках.

причем тут XP? sm.gif COM-технология существует со стародавних времен.
Сделайте на лучезарном матлабе програмку с GUI, чтобы она в фоновом режиме читала данные с COM-порта и выкладывала их на график в GUI. Только без использования Parallel Computing Toolbox sm.gif

Цитата(AlexandrY @ Mar 14 2018, 16:24) *
C# да, достойный язык, тем более странно зачем тут нужен питон. За уши притягиваете?

Вы, кажется, так и не поняли. В моем примере на C# делаются "формы", которые потом "отливаются" в DLL. Последняя прицепляется к фремворку на Питоне, который состоит из всевозможных скриптов для измерения и обработки данных. Этот фреймворк используется на разных машинах, разными пользователями, которые могут добавлять или модифицировать скрипты. Реализовавыть это все с C# потребует гораздо больше времени и будет менее гибким решением.

Цитата(AlexandrY @ Mar 14 2018, 16:24) *
Пока достойных примеров, кроме как желания вывалить в опенсорс я для питона не видел.

Возможно, у Вас еще не было подходящих задач. Примеров выше было приведено достаточно.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
_pv
сообщение Mar 15 2018, 10:14
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(dxp @ Mar 15 2018, 10:09) *
Да, всего один тип - ассоциативный массив. В питоне - это словарь. Помимо него есть ещё списки, кортежи, строки, простые типы и классы. Согласитесь, арсенал средств куда богаче.

Тут дальше спор будет становиться всё более бессмысленным, потому что похоже что питон я знаю так же хорошо, как вы луа sm.gif
Есть там строки, а благодаря метатаблицам в луа есть и классы, списки, кортежи, и выносить их в отдельные сущности нет особого смысла, но они там есть.

Цитата(dxp @ Mar 15 2018, 10:09) *
Cюда загляните. sm.gif И это только один из наборов библиотек для научно-инженерных задач. Помимо этого ещё есть биндинг OpenCV (cv2), PyQt/PySide для разработки полноценных приложений. Кроме того, и стандартная библиотека питона исключительно богата и разнообразна - вплоть до таких "мелочей", как модуль парсинга аргументов (argparse).

Биндинги для openCV и Qt есть и для луа, для того чтобы звать сторонние библиотеки, питон ничем особо не лучше.
Да, стандартная библиотека у луа, мягко говоря довольно скромная, и для питона библиотек заметно больше, но у луа не настолько всё плохо. И раз в ванильные аж целых 200кБ не напихали всего-всего не значит что совсем ничего нет.

Цитата(dxp @ Mar 15 2018, 10:09) *
Тем, что их набор гораздо беднее. Например, можете написать на Lua полноценное GUI приложение, приём без извратов, а прямым путём, как на тех же плюсах? Сомневаюсь. И дело тут не в языке как таковом, с ним всё в порядке, а существовании для этого соответствующих графических фреймворков, приспособленных под этот язык. Всё-таки Lua проектировался как встраиваемый язык, в этом его сила. Его конкурент - JavaScript. Да, на обоих языках можно писать stand-alone приложения. Но до возможностей питона этом поприще им обоим далеко - повторюсь, не по причине, что языки ущербные (нормальные языки), а по причине отсутствия соответствующего контекста для этого, который не возник из-за иной целевой направленности обоих этих языков.

Для луа так же есть как и совсем простые iuplua и fltk, так и wxWidgets и Qt.
Как пример, IDE для lua на lua же написанной, https://studio.zerobrane.com/features
Да и всякие löve, corona.
А вот как будет выглядеть полноценное GUI приложение на питоне, ну чтобы его просто взял скачал и запустил обычный пользователь, да ещё и под виндами, или вообще каким-нибудь андроидом?
Ну и про нормальность javasripta это очень спорное утверждение sm.gif

Цитата(dxp @ Mar 15 2018, 10:09) *
Ну, jit - отдельная тема. Для питона тоже есть способы увеличения производительности вычислений - от прямого расширения на С/C++ и до применения CUDA (scikit-cuda, есть по ссылке выше), включая компиляцию модулей Cython, jit и прочее.

Продолжим фаллометрию, lua-torch, terracuda

Цитата(dxp @ Mar 15 2018, 10:09) *
И что, на ней можно и удобно писать утилиты командной строки работы с текстами и файлами? На ней можно и удобно писать законченные приложения? Что на ней можно делать так же легко, как и на питоне, кроме вычислений?

Да можно там и законченные приложения, и в веб, и гуй свой какой никакой есть. приташит только свой рантайм на многие сотни МБ, впрочем как и питон.
Не то чтобы удобно, но вот облагородить какую-нибудь считалку кнопочками/окошками чтобы хоть кто-нибудь кроме автора пользоваться мог, вполне может оказаться проще, чем перетаскивать в тот же питон всю "арфметическую" часть из математики.
Но да, как замена какому-нибудь awk/sed, конечно не самая подходящая sm.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 15 2018, 10:37
Сообщение #60


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(_pv @ Mar 15 2018, 17:14) *
Есть там строки, а благодаря метатаблицам в луа есть и классы, списки, кортежи, и выносить их в отдельные сущности нет особого смысла, но они там есть.

Ну, самодельные костыли всё же не так удобны, безопасны и просты для понимания и использования, как встроенные в язык средства.

Цитата(_pv @ Mar 15 2018, 17:14) *
А вот как будет выглядеть полноценное GUI приложение на питоне, ну чтобы его просто взял скачал и запустил обычный пользователь, да ещё и под виндами, или вообще каким-нибудь андроидом?

Выглядеть будет обычно. Конечно, рантайм ему потребуется. У меня есть опыт только с Qt, так вот когда я запускал программу под вендой, мне достаточно было установить питон и PyQt, дальше всё запустилось без вопросов. Для венды придётся слепить инсталлятор, который установит вышеупомянутое, но инсталляторы для венды - обычное дело.

Цитата(_pv @ Mar 15 2018, 17:14) *
Ну и про нормальность javasripta это очень спорное утверждение sm.gif

Однако на нём успешно пишут приложения (Node.js). И жабоскрипные приложения мне попадались много чаще, чем на луа.

Цитата(_pv @ Mar 15 2018, 17:14) *
Да можно там и законченные приложения, и в веб, и гуй свой какой никакой есть.

Ну, так вон народ и на Tcl лабает приложения, и объекто-ориентированные, и с гуями... Но, полагаю, вы не будете сторонником этого подхода. sm.gif

Цитата(_pv @ Mar 15 2018, 17:14) *
Но да, как замена какому-нибудь awk/sed, конечно не самая подходящая sm.gif

О, а я на питон как раз внимание обратил именно из-за того, что эти оба так достали при обработке многострочных текстов. Собственно, питон именно для этих случаев и начал использовать. А потом пошло-поехало - сперва простые утилиты, потом как интерактивная среда для вычислений, исследований, а потом и полноценные GUI приложения. До момента знакомства с питоном утилиты писал на С++, с тех пор исключительно на питоне.

Цитата(_pv @ Mar 15 2018, 17:14) *
Тут дальше спор будет становиться всё более бессмысленным, потому что похоже что питон я знаю так же хорошо, как вы луа sm.gif

Согласен. sm.gif Поэтому не буду. (Lua изучал поверхностно - исключительно с целью ковырять плагины для mc).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

7 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016