Перейти к содержанию
    

Python для разработчика

А вы пробовали? А мы да.

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

Собственно, там ответ на ваш вопрос - на python не пробовал, и описано, как подобное реализовано в perl. И таки описано примерно то же, что и у вас, т.е. я со своей оценкой в 140%, что в python это решено образом, подобным примененному в perl, всё-таки попал в цель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом и фишка питона: это язык-фронтэнд. Не нужно стремиться писать на нём всё, нужно уметь правильно распределить код - нагруженные вещи реализовывать в оптимизированных модулях, а на самом питоне писать только управление этим. В этом суть pythonic философии.

Так и есть- причем не могу не отметить что пример который Вы привели с камерой очень удачный: скажу больше, аналогичный подход есть и там где присутствует обработка "в камере", особенно если в ней х86 проц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом суть pythonic философии.

В моём понимании всё несколько иначе. В этом суть скриптовых языков вообще. А питонья философия - это то, что отличает питон от других скриптовых языков. Например, в perl - тим тоуди (всегда есть больше, чем один способ сделать что-либо), в python же - "Должен быть один - и желательно только один - очевидный способ сделать что-либо". Естественно, это не единственное изречение, описывающее "дзен языка Python".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поддержу dxp, one_eight_seven и всех питонистов :)

+1 за Jupiter notebook.

У нас вся тестовая система "поднята" на питоне. Помимо этого проводим удаленное тестирование чипов на пластинах (относительно ответственная задача) с помощью питоновской среды.

Тут где-то на форуме была тема, как прикрутить питон к отладчику (емнип, STM32), чтобы можно было прямо через питон ногами дрыгать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Питон всё-таки ненужен :), для ембеддед жирноват-с.

Но это не значит что скриптовые языки - для эмбеддед не подходят. nodeMCU вон вполне себе удачно получилась.

Да и для обработки / анализа данных, что dxp описал, lua с питоном вполне потягаться может. см. torch.

Но вообще для этого есть mathematica, с более упоротым синтаксисом, правда, и позволяющая такой write-only код написать, что с brainfuckом разве что сравниться может.

Тем не менее для поиграться с обработкой и прототипированием, самое оно. позволяет делать в пару строк вещи которые на том же питоне выйдут куда многословнее.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поддержу dxp, one_eight_seven и всех питонистов :)

+1 за Jupiter notebook.

У нас вся тестовая система "поднята" на питоне. Помимо этого проводим удаленное тестирование чипов на пластинах (относительно ответственная задача) с помощью питоновской среды.

Тут где-то на форуме была тема, как прикрутить питон к отладчику (емнип, STM32), чтобы можно было прямо через питон ногами дрыгать.

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

Автор же спрашивает для Embedded, Вы по сути привели пример для полноценного компа.

Вы же тестовую среду не засовывается внутрь STM32 верно, так что не надо путать мухи яйца и котлеты.

 

Питон это высокоуровневый язык, парсер на питоне? С таким же успехом можно сделать на Java вот никакой разницы. И там и там крутится интерпретатор.

И для Embedded это конкретный геморрой на самом деле, нужна довольно жирная Linux и так далее. И там уже нет особой разницы, и скорее всего это уже не такой уж Embedded :)

Более того, если уж дело дошло до Python и parsing то зачем этот костыль, HTML >> Python >> XML когда можно внутри HTML использовать JS не прибегая к Python,

смысл городить сверху еще один интерпретатор.

Ах да ваш программист не знает JS но зато знает Python ну это конечно крутое решение.

Изменено пользователем twix

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну к примеру в GSM-модулях Telit встроенные Python в качестве скриптового языка. Аналогично сейчас есть вариант ESP32 c тем-же Python в качестве встроенного языка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собственно получается, что знание Питона требуется для embedded разработчика в случае, если он не чисто кодер, а занимается также тестированием, отладкой, проверкой концепций и всего остального, что легче сделать на компьютере, чем встроенной железяке и не важно надо будет при этом это переносить туда или это просто какая-то вспомогательная утилита. То есть нужна какая-то программа или скрипт на PC - за пять минут на Питоне написал и используешь. Не на Си же ее делать?

Например у меня даже разработчик firmware для ПЛИС отлично использует Питон в своих целях - снимает данные с Ethernet порта Wiresharkoм и потом их прогоняет через какие-то скрипты. Или из XML генерит bin-файл, который загружает в память плис через PCIe. В общем в вспомогательных вещах Питон очень пригодится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Желающие могут прямо сегодня запустить микропитон на отладочной плате с STM32F4xx:

https://micropython.org/download

Как замена Ардуины - вполне годится.

 

А если как следует поколдовать над исходниками, то можно это дело встроить в свою программу на С/С++ и получить одновременно и производительность С и гибкость Питона там где они нужны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть нужна какая-то программа или скрипт на PC - за пять минут на Питоне написал и используешь.

Раскрою "страшную тайну": пхытон придумали для облегчения работы тем, кто вместо операционной системы использует на компьютере прошивку для игровых приставок. У них нет полноценного набора coreutils, нет возможности писать элементарные скрипты, вот они и выпендриваются!

Не на Си же ее делать?

Почему бы и нет?

Все алгоритмы обработки данных я, понятное дело, в интерпретаторе (octave) отлаживаю. Пусть это долго (и иногда приходится сильно урезать объем данных, чтобы не ждать результатов рассчета пару недель), зато потом, когда алгоритм отлажен, на С (при необходимости использовать GPU еще и на C++ — под nvcc) пишу за неделю-другую-четвертую обработчик. Вуаля — шустро и непринужденно.

Но это для вещей, с которыми часто надо работать. Если надо работать не чаще раза в пару месяцев, то могу и потратить целый день на полуавтоматизированную обработку чисто в octave.

Пхытон в моем случае был бы эдаким промежуточным вариантом: шустрей, чем в октаве, но все равно значительно медленней, чем на нормальном ЯП. А учитывая то, что у меня рвотный рефлекс на синтаксис пхытона, лучше при мне об этой дряни вообще не говорить (а то могу и заляпать ненароком)!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Автор же спрашивает для Embedded, Вы по сути привели пример для полноценного компа.

Вы же тестовую среду не засовывается внутрь STM32 верно, так что не надо путать мухи яйца и котлеты.

Да, для Ымбеда в малоресурсный МК Питон не годится. Мой пример был больше в копилку к примерам от dxp по поводу обработки данных и прочего.

Впрочем, Embedded сейчас очень разный. Например, у меня на Rpi (домашний сервер с мониторингом потребления газа и воды) почти все написано на Питоне, даже back-end для веб-морды (не умею я Java Script, да).

 

 

Раскрою "страшную тайну": пхытон придумали для облегчения работы тем, кто вместо операционной системы использует на компьютере прошивку для игровых приставок.

Вот это, кстати, неправда. Питон создавался без всяких привязок к "прошивке".

 

Все алгоритмы обработки данных я, понятное дело, в интерпретаторе (octave) отлаживаю. А учитывая то, что у меня рвотный рефлекс на синтаксис пхытона, лучше при мне об этой дряни вообще не говорить (а то могу и заляпать ненароком)!!!

Меня тоже не все устраивает в синтаксисе Питона. Но его синтакс на три головы выше и продуманнее матлабовского (октавовского) - там вообще примитивнейший синтакс, никакого сахарку и т.п.

 

Собственно получается, что знание Питона требуется для embedded разработчика в случае, если он не чисто кодер

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень узко мыслите. Вот прямо очень.

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

Это в какой IDE вы там быстро можете отладить питон?

Питон - это дешевый заменитель более развитых инструментов.

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

Если есть что-то на питоне, то это означает, что где-то есть более эффективное средство, которе пытаются воспроизвести на питоне.

Скажем Jupyter Notebook является бледным подобием Matlab Live View.

А pyOCD будет кривым подобием иснтрументов Segger для J-Link

GUI на питоне в подметки не годится GUI которое можно сделать на C# или на Delphi.

И так во всем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В моём понимании всё несколько иначе. В этом суть скриптовых языков вообще. А питонья философия - это то, что отличает питон от других скриптовых языков. Например, в perl - тим тоуди (всегда есть больше, чем один способ сделать что-либо), в python же - "Должен быть один - и желательно только один - очевидный способ сделать что-либо". Естественно, это не единственное изречение, описывающее "дзен языка Python".

Это откуда такой слоган? Ничего не мешает на питоне делать что угодно сколькими угодно способами.

 

 

Да и для обработки / анализа данных, что dxp описал, lua с питоном вполне потягаться может. см. torch.

Ну, питон с луной сравнивать как бы не совсем правильно. Питон плоховато подходит для встраивания в С/С++ - тяжеловат, не очень просто линкуется с объемлющим контекстом, в отличие от луны, которая в разы легче и имеет практически прямой доступ к сишному стеку. А вот как объемлющий-расширяемый язык питон имеет преимущества - более гибок (у луны по сути один тип на все случаи), несравнимо большее количество библиотек, прекрасно расширяется через С++ (так, что плюсовые объекты напрямую доступны из питона с очень хорошей производительностью - проводил замеры, т.к. нам было критично) сообщество намного шире. Т.ч. луна - встраиваемый язык, а питон - язык-манагер (фронтэнд).

 

Но вообще для этого есть mathematica, с более упоротым синтаксисом, правда, и позволяющая такой write-only код написать, что с brainfuckом разве что сравниться может.

Тем не менее для поиграться с обработкой и прототипированием, самое оно. позволяет делать в пару строк вещи которые на том же питоне выйдут куда многословнее.

Ну, это ж специализированный тул, это скорее тот же computational notebook, а питон - язык общего назначения. Для широкого класса задач специализированный проиграет. И компактность кода конечно играет роль, но понятность, имхо, стоит выше. Одно из важнейших достоинств питона состоит в том, что его код понимает большинство людей, знакомых с программированием, даже без особой подготовки.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это откуда такой слоган? Ничего не мешает на питоне делать что угодно сколькими угодно способами.

PEP-20 же. Дзен питона. Я же написал же. https://www.python.org/dev/peps/pep-0020/

Ничего не мешает. Но это не приветствуется. Ничего не мешает делать отступы да и вообще оформлять код как заблагорассудится (в рамках синтаксиса, конечно), а не согласно PEP-8, но это крайне не приветствуется.

Изменено пользователем one_eight_seven

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня тоже не все устраивает в синтаксисе Питона. Но его синтакс на три головы выше и продуманнее матлабовского (октавовского) - там вообще примитивнейший синтакс, никакого сахарку и т.п.

Вот как раз чем проще синтаксис, тем лучше!

Я начинал с бейсика (т.к. под мой псевдо-"ZX-спектрум" только так и можно было: бейсик + машкоды), в универе нас зачем-то пичкали паскалем (такое впечатление, что чтобы привить ненависть к программированию). Кое-что в фортране по ходу учебы пришлось делать (вот это жесть! но все равно понятней, чем пхытон). Потом были С и немного С++. Вот на С я и остановился как на наиболее адекватном языке программирования. Да еще и универсальном: я на нем пишу как прошивки для МК, так и консольные утилиты, обработчики данных, веб-службы, демоны и т.п.

 

Честно говоря, не представляю, как можно в разумные сроки изучить python. Особенно если уже знаешь С!

 

P.S. Единственным разумным применением пхытона я вижу рисование GUI: накалякал морду в qt-creator'е, потом при помощи пхытоновской прослойки к культям сделал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...