dxp 58 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Справедливости ради надо сказать, что юниксовый принцип гласит: "Программа делает что-то одно, но делает это хорошо". Это совсем не то, что вы написали. Там же не один принцип. Про программу - да. А мы не про программу говорили. Не отношу себя к знатокам традиций UNIX, но мне попадалась мантра "There is more than one way to do it" как один из философских принципов этой темы. Например: touch slon.txt :> slon.txt Однако, при разработке Py3, согласно этому принципу были удалены многие дублирующиеся модули и конструкции. А, ну в этом смысле согласен, конечно - ни к чему иметь в стандартных библиотеках код, который делает одно и то же, но через различающийся интерфейс - это только запутывает пользователя. То же самое и по элементам языка. Я говорил только о способах применения языковых конструкций, тут каждый сам может выбрать себе на вкус и цвет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 75 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Ну, питон с луной сравнивать как бы не совсем правильно. А вот как объемлющий-расширяемый язык питон имеет преимущества - более гибок (у луны по сути один тип на все случаи), тут не соглашусь, с метатаблицами у луа ещё посмотреть надо что там более гибкое. несравнимо большее количество библиотек, прекрасно расширяется через С++ (так, что плюсовые объекты напрямую доступны из питона с очень хорошей производительностью - проводил замеры, т.к. нам было критично) сообщество намного шире. тут пожалуй да, но есть ffi, swig, так что не самая большая проблема. Т.ч. луна - встраиваемый язык, а питон - язык-манагер (фронтэнд). ну не знаю чем тут луа хуже дергать сторонние библиотеки, а вот с jit по скорости можно даже требовательные по скорости вычисления задачи решать прямо. церн вон в части задач с питона перелез: https://mediastream.cern.ch/MediaArchive/Vi...ftime=00:13:25# Ну, это ж специализированный тул, это скорее тот же computational notebook, а питон - язык общего назначения. ну это не я в качестве примера Jupyter привел :) Для широкого класса задач специализированный проиграет. математика по сравнению с питоном класс задач может решать думаю не менее широкий. Одно из важнейших достоинств питона состоит в том, что его код понимает большинство людей, знакомых с программированием, даже без особой подготовки. это только пока код выглядит как for i = 1, 10 a = b + c а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 6 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё. Смотря как писать. SageMath - достаточно понятен (если понимаешь тему, в которой производятся вычисления/моделирование) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба и как там, всё работает с открытыми nouveau драйверами? или же принципиальный непримиримый линуксоид понаставил себе закрытых проприетарных блобов от нвидии для игровых приставок :))) Естественно, блоб. Потому что нафиг покупать карту от nvidia, если нуво собираешься использовать? А он (матлаб) уже научился быть многопоточным? Уже давно. Я, правда, octave использую, но друг сидит на матлабе. Там сейчас и CUDA вовсю работает на особо числодробильных алгоритмах, которые можно хорошо распараллелить! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Конечно. Запустите расчет коэффициентов какого-нибудь фильтра или просто обмен по COM (не путать с Component object model) в отдельном потоке. Может у вас опыт от XP, но в API WinRT все коммуникации работают под COM т.е. в своих потоках. C# да, достойный язык, тем более странно зачем тут нужен питон. За уши притягиваете? Пока достойных примеров, кроме как желания вывалить в опенсорс я для питона не видел. Это чем то напоминает хайп ардуинщиков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Имхо, самостоятельный выбор языка должен с этой (и тп) странички начинаться: http://rosettacode.org/wiki/Keyboard_input/Keypress_check Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба тут не соглашусь, с метатаблицами у луа ещё посмотреть надо что там более гибкое. Да, всего один тип - ассоциативный массив. В питоне - это словарь. Помимо него есть ещё списки, кортежи, строки, простые типы и классы. Согласитесь, арсенал средств куда богаче. тут пожалуй да, но есть ffi, swig, так что не самая большая проблема. Cюда загляните. :) И это только один из наборов библиотек для научно-инженерных задач. Помимо этого ещё есть биндинг OpenCV (cv2), PyQt/PySide для разработки полноценных приложений. Кроме того, и стандартная библиотека питона исключительно богата и разнообразна - вплоть до таких "мелочей", как модуль парсинга аргументов (argparse). ну не знаю чем тут луа хуже дергать сторонние библиотеки Тем, что их набор гораздо беднее. Например, можете написать на Lua полноценное GUI приложение, приём без извратов, а прямым путём, как на тех же плюсах? Сомневаюсь. И дело тут не в языке как таковом, с ним всё в порядке, а существовании для этого соответствующих графических фреймворков, приспособленных под этот язык. Всё-таки Lua проектировался как встраиваемый язык, в этом его сила. Его конкурент - JavaScript. Да, на обоих языках можно писать stand-alone приложения. Но до возможностей питона этом поприще им обоим далеко - повторюсь, не по причине, что языки ущербные (нормальные языки), а по причине отсутствия соответствующего контекста для этого, который не возник из-за иной целевой направленности обоих этих языков. , а вот с jit по скорости можно даже требовательные по скорости вычисления задачи решать прямо. Ну, jit - отдельная тема. Для питона тоже есть способы увеличения производительности вычислений - от прямого расширения на С/C++ и до применения CUDA (scikit-cuda, есть по ссылке выше), включая компиляцию модулей Cython, jit и прочее. Кстати, если упирать на вычисления, то тут альтернативу питону составляет скорее Julia (убийца матлаба :) ), а не Lua. Вот там нативный jit с возможностью доступа до ассемблера и встроенная в язык фича по распределению вычислений на удалённые хосты/фабрики. ну это не я в качестве примера Jupyter привел :) Ясно. В качестве вычислительного блокнота математика сильна, спору нет, это её ниша. Но в качестве языка общего назначения ей тягаться с языком общего назначения тяжело. математика по сравнению с питоном класс задач может решать думаю не менее широкий. И что, на ней можно и удобно писать утилиты командной строки работы с текстами и файлами? На ней можно и удобно писать законченные приложения? Что на ней можно делать так же легко, как и на питоне, кроме вычислений? это только пока код выглядит как for i = 1, 10 a = b + c а как только что-нибудь посерьёзнее, особенно если какие-нибудь учОные пишут что-нибудь для расчётов - тут всё. Код не валиден для питона. :) Ну, покажите учОный код? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 218 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Интересно, почему никто не упоминает GIL (еще см. тут) в контексте этого обсуждения? Множество людей больно наступили на эту проблему при использовании Python в многопоточных приложениях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Ну, покажите учОный код? :) Можете поискать, на гитхабе есть такое. Я здесь не помощник, т.к. уже говорил — меня от одного вида пхытона тянет извергнуть съеденное накануне… Но даже у нас в обсерватории можно 2-3 человека найти, применяющих пхытон с тем или иным успехом. Но все-таки, на первом месте по использованию у нас стоят С и С++, далее уже всякие матлабы/октавы/IDL'и/MIDAS'ы/IRAF'ы. Делаем с коллегой сейчас юниксвейную управлялку одним прибором: я написал сишные низкоуровневые утилиты, он на С++ сделал над всем этим GUI (я принципиально не лезу в GUI, т.к. это — та еще клоака: либо С++ с культяпками, либо С с говнотыками, либо мучения с OpenGL напрямую; нормального человеческого GUI-фреймворка до сих пор не существует, увы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Интересно, почему никто не упоминает GIL (еще см. тут) в контексте этого обсуждения? https://electronix.ru/forum/index.php?s=&am...t&p=1551144 Множество людей больно наступили на эту проблему при использовании Python в многопоточных приложениях. Какого рода грабли? Пытались выжать производительность, чтобы на i7 все 12 аппаратных потоков были задействованы? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 218 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба https://electronix.ru/forum/index.php?s=&am...t&p=1551144 Пардон, не заметил и поиск не показал. Какого рода грабли? Пытались выжать производительность, чтобы на i7 все 12 аппаратных потоков были задействованы? :) На тему производительности довольно много написано и это не самая страшная проблема. Беда была при встраивании интерпретатора в многопоточное приложение, в котором ряд функций по обработке данных дописывалось на питоне для обеспечения большей гибкости. В итоге были очень странные и непонятные падения, которые решились синхронизацией многопоточного доступа к функциям интерпретатора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба На тему производительности довольно много написано и это не самая страшная проблема. Да, хорошая переводная статья. А вот ещё одна от гуру питона. Букв немало, если неинтересно, можно сразу перематывать на заключение, где выводы. В общем, никаких чудес или фатальных трабл нет, если есть понимание темы, проблем не возникает. Беда была при встраивании интерпретатора в многопоточное приложение, в котором ряд функций по обработке данных дописывалось на питоне для обеспечения большей гибкости. В итоге были очень странные и непонятные падения, которые решились синхронизацией многопоточного доступа к функциям интерпретатора. Ну, встраивание питона - отдельная головная боль. Не очень он для встраивания годен. Язык-фронтэнд, Тут лучше "жабий скрип", луна или белка.:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Может у вас опыт от XP, но в API WinRT все коммуникации работают под COM т.е. в своих потоках. причем тут XP? :) COM-технология существует со стародавних времен. Сделайте на лучезарном матлабе програмку с GUI, чтобы она в фоновом режиме читала данные с COM-порта и выкладывала их на график в GUI. Только без использования Parallel Computing Toolbox :) C# да, достойный язык, тем более странно зачем тут нужен питон. За уши притягиваете? Вы, кажется, так и не поняли. В моем примере на C# делаются "формы", которые потом "отливаются" в DLL. Последняя прицепляется к фремворку на Питоне, который состоит из всевозможных скриптов для измерения и обработки данных. Этот фреймворк используется на разных машинах, разными пользователями, которые могут добавлять или модифицировать скрипты. Реализовавыть это все с C# потребует гораздо больше времени и будет менее гибким решением. Пока достойных примеров, кроме как желания вывалить в опенсорс я для питона не видел. Возможно, у Вас еще не было подходящих задач. Примеров выше было приведено достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 75 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Да, всего один тип - ассоциативный массив. В питоне - это словарь. Помимо него есть ещё списки, кортежи, строки, простые типы и классы. Согласитесь, арсенал средств куда богаче. Тут дальше спор будет становиться всё более бессмысленным, потому что похоже что питон я знаю так же хорошо, как вы луа :) Есть там строки, а благодаря метатаблицам в луа есть и классы, списки, кортежи, и выносить их в отдельные сущности нет особого смысла, но они там есть. Cюда загляните. :) И это только один из наборов библиотек для научно-инженерных задач. Помимо этого ещё есть биндинг OpenCV (cv2), PyQt/PySide для разработки полноценных приложений. Кроме того, и стандартная библиотека питона исключительно богата и разнообразна - вплоть до таких "мелочей", как модуль парсинга аргументов (argparse). Биндинги для openCV и Qt есть и для луа, для того чтобы звать сторонние библиотеки, питон ничем особо не лучше. Да, стандартная библиотека у луа, мягко говоря довольно скромная, и для питона библиотек заметно больше, но у луа не настолько всё плохо. И раз в ванильные аж целых 200кБ не напихали всего-всего не значит что совсем ничего нет. Тем, что их набор гораздо беднее. Например, можете написать на Lua полноценное GUI приложение, приём без извратов, а прямым путём, как на тех же плюсах? Сомневаюсь. И дело тут не в языке как таковом, с ним всё в порядке, а существовании для этого соответствующих графических фреймворков, приспособленных под этот язык. Всё-таки Lua проектировался как встраиваемый язык, в этом его сила. Его конкурент - JavaScript. Да, на обоих языках можно писать stand-alone приложения. Но до возможностей питона этом поприще им обоим далеко - повторюсь, не по причине, что языки ущербные (нормальные языки), а по причине отсутствия соответствующего контекста для этого, который не возник из-за иной целевой направленности обоих этих языков. Для луа так же есть как и совсем простые iuplua и fltk, так и wxWidgets и Qt. Как пример, IDE для lua на lua же написанной, https://studio.zerobrane.com/features Да и всякие löve, corona. А вот как будет выглядеть полноценное GUI приложение на питоне, ну чтобы его просто взял скачал и запустил обычный пользователь, да ещё и под виндами, или вообще каким-нибудь андроидом? Ну и про нормальность javasripta это очень спорное утверждение :) Ну, jit - отдельная тема. Для питона тоже есть способы увеличения производительности вычислений - от прямого расширения на С/C++ и до применения CUDA (scikit-cuda, есть по ссылке выше), включая компиляцию модулей Cython, jit и прочее. Продолжим фаллометрию, lua-torch, terracuda И что, на ней можно и удобно писать утилиты командной строки работы с текстами и файлами? На ней можно и удобно писать законченные приложения? Что на ней можно делать так же легко, как и на питоне, кроме вычислений? Да можно там и законченные приложения, и в веб, и гуй свой какой никакой есть. приташит только свой рантайм на многие сотни МБ, впрочем как и питон. Не то чтобы удобно, но вот облагородить какую-нибудь считалку кнопочками/окошками чтобы хоть кто-нибудь кроме автора пользоваться мог, вполне может оказаться проще, чем перетаскивать в тот же питон всю "арфметическую" часть из математики. Но да, как замена какому-нибудь awk/sed, конечно не самая подходящая :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 15 марта, 2018 Опубликовано 15 марта, 2018 · Жалоба Есть там строки, а благодаря метатаблицам в луа есть и классы, списки, кортежи, и выносить их в отдельные сущности нет особого смысла, но они там есть. Ну, самодельные костыли всё же не так удобны, безопасны и просты для понимания и использования, как встроенные в язык средства. А вот как будет выглядеть полноценное GUI приложение на питоне, ну чтобы его просто взял скачал и запустил обычный пользователь, да ещё и под виндами, или вообще каким-нибудь андроидом? Выглядеть будет обычно. Конечно, рантайм ему потребуется. У меня есть опыт только с Qt, так вот когда я запускал программу под вендой, мне достаточно было установить питон и PyQt, дальше всё запустилось без вопросов. Для венды придётся слепить инсталлятор, который установит вышеупомянутое, но инсталляторы для венды - обычное дело. Ну и про нормальность javasripta это очень спорное утверждение :) Однако на нём успешно пишут приложения (Node.js). И жабоскрипные приложения мне попадались много чаще, чем на луа. Да можно там и законченные приложения, и в веб, и гуй свой какой никакой есть. Ну, так вон народ и на Tcl лабает приложения, и объекто-ориентированные, и с гуями... Но, полагаю, вы не будете сторонником этого подхода. :) Но да, как замена какому-нибудь awk/sed, конечно не самая подходящая :) О, а я на питон как раз внимание обратил именно из-за того, что эти оба так достали при обработке многострочных текстов. Собственно, питон именно для этих случаев и начал использовать. А потом пошло-поехало - сперва простые утилиты, потом как интерактивная среда для вычислений, исследований, а потом и полноценные GUI приложения. До момента знакомства с питоном утилиты писал на С++, с тех пор исключительно на питоне. Тут дальше спор будет становиться всё более бессмысленным, потому что похоже что питон я знаю так же хорошо, как вы луа :) Согласен. :) Поэтому не буду. (Lua изучал поверхностно - исключительно с целью ковырять плагины для mc). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться