Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Кто-нибудь работает с python?

713  
  moose местный житель20.05.16 12:13
NEW 20.05.16 12:13 

Поделитесь, что вы с ним делаете: что за приложение, какие части на нем, и почему. "Родные" средства неудобны? "Наследство"?

Думаю, только на python сложно придумать что-нибудь "самостоятельное", но, возможно, ошибаюсь.

#1 
Murr патриот20.05.16 12:32
Murr
NEW 20.05.16 12:32 
в ответ moose 20.05.16 12:13

Последний раз просили посмотреть python где-то году в 2003-м - девочка, никогда не писавшая для web'a, пыталась сделать какую-то страничку. Сам язык - не помню - поправил у нее понимание того что такое web, где именно работает python и оставил ковырять дальше.


Смотреть еще раз в качестве языка - не буду - потребности полностью покрываются C#, Java... и, как ни странно, pure C...


Вот последние технологии - поковырял бы с удовольствием... жаль, времени не хватает... хммм

#2 
  moose местный житель20.05.16 13:12
NEW 20.05.16 13:12 
в ответ Murr 20.05.16 12:32, Последний раз изменено 20.05.16 13:12 (moose)

У меня такое впечатление, что он очень удобен для написания всяких скриптов.

Но если посмотреть сюда:


https://wiki.python.org/moin/Applications


, то задаешь себе вопрос: почему эти люди выбрали Python? Просто хотелось экзотики, или "пришли с улицы", и это первое что попалось? Что кроме тяги к экзотике может заставить человека, владеющего java, C#, C++ писать что-нибудь на python?


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


зы. А что Вы под "последними технологиями" имеете ввиду?

#3 
Murr патриот20.05.16 13:36
Murr
NEW 20.05.16 13:36 
в ответ moose 20.05.16 13:12

почему эти люди выбрали Python?

-----

Не знаю. Одно из возможных объяснений - на использование языка отличного от общеупотребительных был выделен грант. Ну либо преподаватель был этузиаст и всподвигнул какое-то учебное заведение на включени python'a в программу. А бообще - язык он не принципиален.


там может быть множество удобных готовых библиотек

-----

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



А что Вы под "последними технологиями" имеете ввиду?

-----

Все то, что появилось после того, как Я последний раз серьезно изучал новые технологии.

Ревью, разумеется, делается, но это именно ревью, а не изучение до уровня - сел и делаешь...

#4 
natuerlich blond старожил20.05.16 21:51
natuerlich blond
NEW 20.05.16 21:51 
в ответ moose 20.05.16 13:12

Я фанат питона. Это быстрый, очень понятный и простой язык программирования. Поскольку работает через интерпретер, программа запускается легко.

Этот язык используется в разных областях, например, для создания 3D-графики (известная программа Блендер написана на нем), для обработки больших объемов информации (BigData), Google использует питон для поисковой машины. Многие веб-сайты разработаны на Джанго (python framework), в том числе и очень известные, такие как Instagram, Sportify, Firefox и др.

Да, вы правы, отчасти язык популярен именно из-за большого количества полезных библиотек. Например, многие хакеры работают именно на питоне:))


Хотя я работаю на другом языке, использую питон, чтобы выполнять какие-то быстрые задачи. Например, вычитать и запарсить файл и вытянуть из него нужную информацию.

#5 
natuerlich blond старожил20.05.16 22:15
natuerlich blond
NEW 20.05.16 22:15 
в ответ natuerlich blond 20.05.16 21:51

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

#6 
vlad_s_69 свой человек23.05.16 11:56
NEW 23.05.16 11:56 
в ответ Murr 20.05.16 13:36

Блендер (https://www.blender.org/download/ ) написан на ц++, питон там используется как макроязых.

#7 
AnastasiiaKN посетитель29.05.16 17:37
AnastasiiaKN
29.05.16 17:37 
в ответ moose 20.05.16 12:13

Питон очень ходовой в науке. Я треть результатов своей докторской получила с помощью питона. И знаю некоторых людей, работающих в научной сфере с этим языком.



Почему я изучила этот язык? - Мой молодой человек во время написания своего Мастера в Цюрихском ЭТХ (тема: машин леарнинг, распознавание паттернов) пользовался питоном, посчитал его достаточно простым и потому меня обучил ему за пару дней. До этого я не знала ни о классах, ни о то, как "фелермельдунген унтердрюккен" и все такое. За пару дней я изучила азы и далее пошло как по маслу. Если надо что-то смоделлировать - просто нагугливаешь нужный пакет/библиотеку, быстро ее устанавливаешь и пользуешь. Тут как бы и кодить не надо уметь.



С помощью Питона 5 лет назад я написала прогу, считающую, например, разнообразную статистику в ЖЖ, например среднее время ожидания (первого, второго, ... , н-го) комментария на пост, граф слов в постах разных русских блоггеров и прочее.



В плане линейной алгебры я б не советовала этот язык, для матриц и прочей дребедени надо МатЛаб. А то пакет Лапак, например, не ортогонализирует хорошо векторы и потом вылазит оно боком...



А вот именно насчет веб-штук не знаю, как там у них :( не знаю вобщем-то никого, кто это делает на питоне

#8 
Bigfoot коренной житель30.05.16 11:18
Bigfoot
NEW 30.05.16 11:18 
в ответ AnastasiiaKN 29.05.16 17:37, Последний раз изменено 30.05.16 11:19 (Bigfoot)
для матриц и прочей дребедени надо МатЛаб

Не обязательно, некоторые вещи в Матлабе сделаны отвратительно - например, алгоритмы кластеризации. Во многих случаях для сложных вычислений куда более оправдано использование R. По крайней мере, я бы сначала смотрел, есть ли нужные функции или библиотека в R, а потом уже что-либо иное.

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#9 
AlexOtt местный житель30.05.16 11:52
AlexOtt
NEW 30.05.16 11:52 
в ответ AnastasiiaKN 29.05.16 17:37

для матриц и т.п. есть scipy/numpy, которые в случае надобности можно прикрутить к тому же Spark, и получить распределенные расчеты... MatLab стоит серьезных денег если хочешь его профессионально использовать, и часто есть opensource альтернативы

#10 
AlexOtt местный житель30.05.16 11:54
AlexOtt
NEW 30.05.16 11:54 
в ответ moose 20.05.16 12:13

Я сам не пишу на нем активно, но помогаю нашим researchers время от времени. Из того что я вижу, основные достоинства:

  • интерактивная разработка - в консоли и в IPython notebooks - очень удобно для прототипов
  • богатый набор библиотек на разные темы
  • простой синтаксис, позволяющий освоить его для начинающих/не программистов


#11 
Bigfoot коренной житель30.05.16 12:41
Bigfoot
NEW 30.05.16 12:41 
в ответ AlexOtt 30.05.16 11:52

Вообще-то, есть Octave. А распределенные расчеты можно делать и в R. В плане "вылизанности" алгоритмов и изящности программирования тех же задач статистики (любой сложности) мало что сравнится.

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#12 
AnastasiiaKN посетитель30.05.16 22:42
AnastasiiaKN
NEW 30.05.16 22:42 
в ответ AlexOtt 30.05.16 11:52

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

#13 
AnastasiiaKN посетитель30.05.16 22:45
AnastasiiaKN
NEW 30.05.16 22:45 
в ответ Bigfoot 30.05.16 11:18

вот этот язык я очень хотела изучить, но как-то руки не дошли. Или еще что-то типа SAS, SPSS. Мне кажется, очень полезно для резюме и общего рагвития в целом.

#14 
Bigfoot коренной житель01.06.16 09:27
Bigfoot
NEW 01.06.16 09:27 
в ответ AnastasiiaKN 30.05.16 22:45

Ну, если честно, мне сложно представить, зачем нужны SAS/SPSS для того, кто хорошо овладел R. Но жизнь богаче фантазии, а я многого не знаю. В крупных страховых компаниях - по крайней мере, некоторых - R используют для анализа данных, это информация от исайдера. Смысл изучать однозначно есть. Ну а программирование в R доставляет истинное удовольствие. Я, например, в полностью автоматизированном режиме генерирую с помощью R-скрипта презентацию с достаточно сложным многофакторным анализом данных по выпуску продукции - начиная от запросов к SQL-БД, разнообразных стат.тестов, моделей и т.п. вплоть до создания pptx-файла с множеством графиков и таблиц. Пост-редактирование при этом не требуется.

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#15 
alex85_ постоялец02.06.16 12:25
alex85_
NEW 02.06.16 12:25 
в ответ moose 20.05.16 12:13

Про науку уже написали. Хотя для курсов по прикладной статистике мне лично больше импонировал R, а точнее Rstudio. А для околосимвольных вычислений IMHO нет ничего лучше Wolfram Mathematica.


Если коротко: Питон постепенно "хавает" все ниши, где:

1) необходимо делать прототипы программных систем или проверять всякие модели "быстро и грязно", в режиме AGILE и при этом нужен высокоуровневый язык общего назначения (не DSL, или если нужно как раз забабахать новый DSL, можно это на Питоне тоже сделать)

И

2) Матлаб по тем или иным причинам не подходит

И

3) рантайм производительность кода не так важна. Основной плюс Питона в том, что порог вхождения в программирование на нём очень низок, т.е. говнокод можно лепить сразу на первом уроке, без всяких понятий о ООП, структурах данных и архитектуре компа

4) Не пугает необходимость использования вороха инструментов и библиотек, не интегрированных в единой среде (IDE, "блокноты", библиотеки для графиков, библиотеки для GUI, библиотеки для XZY, ...)


Пункт 2 для многих решает в пользу или против использования Питона. Очевидно, что лепить read-only говнокод в Матлабе только ради публикации (опубликовал и выкинул) - проще, чем в Питоне.

Пункт 3 можно расслабить путём написания расширений на C или использования компилятора Питона, например Cython.


P.S. Нет, с Матлабом, пожалуй, некорректно сравнивать, т.к. Матлаб - это по сути мутант-переросток из матричного калькулятора (ошибка природы и недоразумение, отрицателый отбор в действии), а Питон изначально задумывался как язык общего назначения.

#16 
alex85_ постоялец02.06.16 12:46
alex85_
NEW 02.06.16 12:46 
в ответ alex85_ 02.06.16 12:25

Забыл пункт 0) Питон и общедоступные либы как правило опенсорс => бесплатно

#17 
  moose местный житель02.06.16 19:09
NEW 02.06.16 19:09 
в ответ Bigfoot 01.06.16 09:27, Последний раз изменено 02.06.16 19:11 (moose)

У меня вопрос, даже не один. Хочу представить себе поярче, что Вы имеете ввиду.

0. Перечислите, пожалуйста, Ваши "родные языки программирования". Т.е. от чего Вы отказались в пользу R.

1. R был Вам для этого проекта навязан, или это был Ваш выбор, и выбирать Вы могли из чего угодно?

2. Можно скриншот странички отчета посмотреть?

3. Это - чистый интерпретатор, или практикуются также икзэшники? (знаю, что есть гугыль :)

#18 
Bigfoot коренной житель03.06.16 01:30
Bigfoot
NEW 03.06.16 01:30 
в ответ moose 02.06.16 19:09

0. Я не программист. Программировал лишь расчетные задачи невысокой сложности. Использовал Pascal/Delphi, C, очень немного FORTRAN - для решения моих скромных задач не требовалось супер-пупер-числомолотилок. С появлением Origin, Matlab, Mathematica полностью перешел на их скриптовые языки - мне не нужно было разрабатывать конечный продукт для юзеров, требовалось лишь решение уравнений (моделирование, интегральные уравнения) плюс обработка и визуализация экспериментальных данных. Сейчас, правда, иногда приходится программировать небольшие нехитрые задачи - ну, например, всунуть в систему управления производственной установкой алгоритм для автоматического распознавания профиля изменения сигнала (включает алгоритм Левенберга-Марквардта для нелинейной апроксимации). Не исключено, что придется заняться распознаванием изображений для автоматизации техпроцесса. Но это все с т.з. настоящего разработчика несерьезно.

1. Да, мне был почти "навязан" - существовали готовые скрипты объемом в несколько тысяч строк кода для генерации отчета. Мне предложили либо все делать с нуля, либо перенять имеющееся - сотрудник, написавший код, уходил с фирмы. Код был написан и откомментирован достаточно толково (до сих пор испытываю чувство благодарности к моему предшественнику), и мне удалось за короткое время его осмыслить, применить и улучшить. Бонус - освоил R и теперь могу быстро делать анализ производственных данных в срочном случае. Ну, например, когда шеф приходит, становится над душой и говорит, мол, а ну-ка посмотри мне прямо сейчас, значимо ли изменились параметры продукции после изменений в техпроцессе, и посчитай экономический выигрыш с учетом распределений параметров и отбраковки. Или "есть ли связь между температурой нагревателя и вероятностью возникновения дефекта?". Возможно, звучит скучновато, но решать подобные мне задачи в целом занятно - сие способствует пониманию физико-химиии производственных процессов. Я мог бы сделать все, что я делаю в R, и в Origin на LabTalk/OriginC (или в Matlab-е, практически без разницы), но я уже убедился в том, что R для стат.анализа данных эффективнее. А в Origin-е я для себя по-быстрому склепал систему мониторинга технологических процессов - текущие данные получаю через SQL-запросы, а визуализация/интерфейс программируются там проще, чем в R. Ну, по крайней мере, для данного класса задач, насколько я смог убедиться.

2. Отчет - это презентация в формате pptx, от 50 до 80 слайдов в зависимости от списка проблем, требующих анализа данных. Информация конфиденциальная, и я давал подписку о неразглашении. Посмотрю, можно ли подредактировать страничку так, чтобы не нарушить обязательств.

3. Наличствует компиллятор в байт-код. Можно делать собственные приложения с помощью {shiny} - веб-ориентированного фреймворка. Но я им пока не пользовался, увы.

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#19 
  moose местный житель03.06.16 22:40
NEW 03.06.16 22:40 
в ответ Bigfoot 03.06.16 01:30

Спасибо за развернутый ответ. У меня пока складывается впечатление, что R - это не язык программирования (как я привык это понимать), а инструмент (программный продукт).

#20