LINUX.ORG.RU

Релиз Codimension Python IDE 3.0.0

 ,


4

2

Экспериментальная среда разработки для Python 2 обновилась до версии 3.0.0.

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

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

>>> Сайт проекта

Надеюсь Python 3 планируется? Хотя бы в 2020 году? :-)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Надеюсь Python 3 планируется? Хотя бы в 2020 году? :-)

Python 3 не в числе первоочередных приоритетов. Я пока окончательно не принял решение - там работы достаточно много. Моя работа с питоном пока, в основном, крутится вокруг python 2. Однако, скорее да, чем нет.

SergeySatskiy ()
Ответ на: комментарий от SergeySatskiy

Я просто почему про 2020 вспомнил - это ж вроде дата, когда Python 2 прикопают окончательно. В любом случае - успехов проекту

Pinkbyte ★★★★★ ()

Основное нововведение версии это генерация графического представления кода.

Обалдеть, реально крутая штука (хотя еще не видел сабж, но давно ищу такое)!!

alozovskoy ★★★★★ ()

Спасибо за проект!

Давно искал удобную gui-панель для писания кода в numpy, scipy и проч. Но вопрос от коллег сохраняется — что все-таки с python3?

Может сделаете некоторую платформу, которая будет просто подхватывать установленную в систему библиотеку, и таким образом выступать в роли, скажем, eclipse?

bookman900 ★★★★★ ()

Ещё одна IDE для хипстерского язычка?

anonymous ()

Диаграмма в дебаге показывает онлайн значения входов, выходов?

AUX ()
Ответ на: комментарий от bookman900

что все-таки с python3?

Питон 3 лично мне прямо сейчас не нужен. Людей, которым сильно надо бы было и которые хотели бы помочь в портировании, пока тоже не наблюдается. Поэтому текущая диспозиция выглядит так. Технических препятствий для портирования нет, но это времяемкая задача. Она включает, как минимум, следующее (Codimension сделан из трех пакетов - два бинарных модуля расширения и ide (здесь описание архитектуры: http://codimension.org/documentation/codimension-ide-architecture.html)):

  • портировать парсер содержимого питон файлов. Это бинарный модуль и он использует python.so. То есть у питона 3 теоретически может быть все по-другому, хотя я думаю, что оно почти одинаково. Плюс возможная разница в синтаксическом дереве, но, опять же, думаю что там примерно одинаково сделано.
  • портировать парсер control flow. Те же комментарии, что и выше.
  • портировать IDE. Она написана на питоне и там основных засад две или три. Во-первых, наличие зависимостей. Во-вторых, отладчик - там питон 3 может по другому работать. И самая большая - текстовый редактор. Сейчас используется QScintilla и она совершенно не устраивает. Чуть посложнее случай и она производит корку. Надоела очень сильно, ее надо поменять. Претендент на замену qutepart, но там нет поддержки margins и ее туда надо добавлять. Плюс, по-маленькому, надо бы еще rope на что-то заменить.

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

SergeySatskiy ()
Ответ на: комментарий от bookman900

Может сделаете некоторую платформу, которая будет просто подхватывать установленную в систему библиотеку, и таким образом выступать в роли, скажем, eclipse?

Не понимаю, о чем вы говорите. Поясните, пожалуйста.

SergeySatskiy ()
Ответ на: комментарий от AUX

Диаграмма в дебаге показывает онлайн значения входов, выходов?

Нет. Пока графическая функциональность совершенно не развита. Это все в будущем. Равно как и редактирование кода прямо в графической части.

SergeySatskiy ()
Ответ на: комментарий от SergeySatskiy

Python 3 не в числе первоочередных приоритетов. Я пока окончательно не принял решение - там работы достаточно много. Моя работа с питоном пока, в основном, крутится вокруг python 2.

Мужик давай быстрей работай. Скоро придумают Python 4.0

anonymous ()

Красиво. Добавил в букмарки.

anonymous ()
Ответ на: комментарий от Pinkbyte

2020 вспомнил - это ж вроде дата, когда Python 2 прикопают окончательно.

Неа. Не будет. Твердо и четко.

Будут(будем) развивать своими силами или ещё как. Слишком много на питоне2 кода.

Кстати, был в яндексе недавно, пишут на питон2 в т.ч. новый код. И ещё в нескольких местах на собеседованиях - везде питон2.

pawnhearts ★★★ ()
Последнее исправление: pawnhearts (всего исправлений: 3)

Ну всё, жыдБрейнз на горящем стуле прыгают

TooPar ()
Ответ на: комментарий от anonymous

Это хипстерство, настоящее мужики пишут на лиспе.

AUX ()
Ответ на: Пакеты для установки etc. от SergeySatskiy

Re: Пакеты для установки etc.

Основное нововведение версии это генерация графического представления кода.

О! Это фантастическая штука!

anonymous ()
Ответ на: комментарий от bookman900

gui-панель для писания кода в numpy, scipy и проч

spyder не то?

greenman ★★★★★ ()

Оч интересно. Попробуем в ней поработать.

dead_PXL ★★ ()

эту «ide» можно заменить плагином к pycharm?

devnullopers ()
Ответ на: комментарий от AUX

Это хипстерство, настоящее мужики пишут на лиспе.

Для хипстеров есть Closure.

anonymous ()

Пользовался Codimension когда начинал учить Python, хорошая штука. Потом постепенно переехал на Geany. Надо снова попробовать, графическое представление кода должно быть очень вкусной фичей.

meequz ★★ ()
Ответ на: комментарий от SergeySatskiy

Про QScintilla: как-то давно была статейка https://habrahabr.ru/post/144848/ от автора https://github.com/hlamer/enki Возможно это подойдёт в качестве альтернативы сцинтилле.

Для себя постоянно ищу альтернативу PyCharm'у, но что-то грустно. Из условно бесплатных немного радует sublime как редактор, но как IDE он всё ж слаб даже в комплекте с Anaconda.

Определил стартово-необходимые фичи редактора, без которых я уже не могу :-). Это мультикурсор и wrap-selection (не знаю, как это правильно назвать - выделил, нажал [ и выделение обернулось в квадратные скобки) для всех «скобок»: '«[({ Ну и ещё минимап. Это (не минимап) могут все браузерные редакторы, что на Chromе, что на Gecko (Komodo). JetBrain продукты, ну и ещё WingIde (там scinilla допиленная).

В общем пока грустно, но я смотрю. Вот, твой проект с интересными возможностями...

Успеха тебе в этом. Буду следить...

UPD: вижу, что qutepart ты уже пробовал. Не подошло? И, вот, ещё, возможна ли реализация flowparser и pythonparser на собственно python? Это снизит скорость, да, но больше питоновского народа сможет подулючиться к процессу и помочь с python3.

Guest007 ()
Последнее исправление: Guest007 (всего исправлений: 1)

Отличная идея. Давно мечтал такое увидеть. Сделайте для RUST?

kristall ★★ ()

Печально, но не работает на Debian testing из-за отсутствия PyQt4.QtWebKit Куда оно протерялось я не знаю, но в репах его почему-то теперь нет. Планов по переходу на PyQt5 нет?

Q-Master ()
Ответ на: комментарий от AUX

Это хипстерство, настоящее академики пишут на лиспе.

Исправил.

anonymous ()
Ответ на: комментарий от devnullopers

эту «ide» можно заменить плагином к pycharm?

Теоретически можно. Практический ответ лежит, скорее, в плоскости коммерциализации технологии.

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

SergeySatskiy ()
Ответ на: комментарий от Guest007

вижу, что qutepart ты уже пробовал. Не подошло?

Статью на хабре я видел. Автор qutepart проделал огромную работу высокого качества и я рассматривал (и все еще рассматриваю) qutepart как альтернативу scintilla. Однако у qutepart не хватает некоторых важных для меня возможностей, самая актуальная из которых - margins. Qutepart содержит два встроенных поля без возможности что-либо с ними сделать и не поддерживает поля пользователя вообще. А как тогда, к примеру, ставить точки останова, как показывать ревизии в системах контроля версий, как в консоле ввода-вывода указывать временные метки и т.д. и т.п. То есть надо дописывать самостоятельно и не факт, что Андрей (автор qutepart) примет эти изменения. Я с Андреем связывался, когда первый раз присматривался к qutepart и он очень скептически отозвался о поддержке полей пользователя. Кроме того, во многих местах стиль отображения жестко закодирован, а значит нужно вводить механизм настроек пользователя, что тоже часто вызывает головную боль. Ну и по-мелочи набирается... То есть, сделать можно, но не то, чтобы было быстро.

И, вот, ещё, возможна ли реализация flowparser и pythonparser на собственно python?

Возможна. Но не слишком нужна. Собственно парсеры я оцениваю примерно на месяц своей плотной работы. Я их достаточно хорошо помню и, кажется, неплохо структурировал. Следующий момент - скорость никогда не помешает. Конвейер от буфера с кодом до нарисованной картинки довольно длинный (http://codimension.org/documentation/technologypresentation/slide-33.html), а для комфортной перерисовки в темпе набивки нужно, чтобы они отрабатывали быстро. Я даже размышлял над переносом layout и rendering стадий в C++, то есть в модуль, но пока это делать рано. В перспективе новых графических возможностей есть куда девать процессорное время. Ну и последний момент. Если кто-то действительно захочет помочь, то способ найдет независимо от реализации.

SergeySatskiy ()
Ответ на: комментарий от kristall

Сделайте для RUST?

Наверное, это один из самых частых вопросов: а почему питон, а не язык, который предпочитаю я? В принципе, никто не мешает поддержать произвольный язык программирования. На этом слайде http://codimension.org/documentation/technologypresentation/slide-33.html хорошо видно, что если парсер любого другого языка выдаст нужные структуры данных, то будут диаграммы и для другого языка.

Прямой ответ на ваш вопрос - у меня планов на разработку парсера для RUST пока нет.

SergeySatskiy ()

Оно лучше PyCharm? Надеюсь, написано не на джабе или, не на дай бг, ПИТОНЕ?

Или вообще не для разработки придумано?

anonymous ()
Ответ на: комментарий от Q-Master

Печально, но не работает на Debian testing из-за отсутствия PyQt4.QtWebKit Куда оно протерялось я не знаю, но в репах его почему-то теперь нет. Планов по переходу на PyQt5 нет?

Планы есть. Но конкретных сроков назвать не могу.

Можно попробовать поставить PySide и в файле ui/htmltabwidget.py поменять импорт.

SergeySatskiy ()

эмм откуда его взять...

Ошибка: nothing provides pymetrics needed by codimension-3.0.0-2.noarch

John_Wehin ()

генерация графического представления кода

Зачем?

Rodegast ★★★★ ()
Ответ на: комментарий от John_Wehin

4.4.14-200.fc22.x86_64

кажется, это ошибка, возникшая при подготовке rpm пакета. Сегодня вечером попробуем подготовить подправленный пакет.

В принципе, можно попробовать поставить имеющийся rpm с ключом --force и потом отдельно поставить пакет python-pymetrics. Ну или подождать новый пакет.

SergeySatskiy ()
Ответ на: комментарий от SergeySatskiy

# dnf install python-pymetrics
Проверка истечения последних метаданных произведена 0:18:53 назад на Wed Sep 7 22:24:35 2016.
Пакета с названием python-pymetrics не найдено.
Ошибка: Совпадений не найдено.

P.S. в интрукциях указан yum хотя в федоре уже давно dnf и необязательно сначало скачивать потом ставить можно устанавливать сразу с URI:
# dnf install https://github.com/SergeySatskiy/cdm-pythonparser/releases/download/v2.0.1/cd...

John_Wehin ()
Ответ на: комментарий от John_Wehin

Пакета с названием python-pymetrics не найдено

Тогда подождите пожалуйста 3.0.1.

в интрукциях указан yum хотя в федоре уже давно dnf

Спасибо, я поправлю. Федорой я не пользуюсь уже очень давно и не знал о dnf.

SergeySatskiy ()
Ответ на: комментарий от SergeySatskiy

Попробовал сразу. Проблема с конструированием HTMLView возникает. Не стал разбираться вчера.

Q-Master ()
Ответ на: комментарий от anonymous

настоящее академики пишут на лиспе.

Не-не-не. Академики пишут на схеме. В крайнем случае на хаскеле.

monk ★★★★★ ()
Ответ на: комментарий от Q-Master

Проблема с конструированием HTMLView возникает.

Можно попробовать «задушить» HTMLViewer полностью. Не будет работать только diff для SVN и для python tidy. Например так (не пробовал, пишу наугад):

class HTMLViewer( QWidget ):
    escapePressed = pyqtSignal()
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
    def keyPressEvent(self, e):
        pass
    def contextMenuEvent(self, e):
        pass
    def zoomTo(self, zf):
        pass

и в классе HTMLTabWidget закомментировать все строчки, где упоминается self.__editor

SergeySatskiy ()

А что с русской локалью?

Занимательная штучка. Идея - супер! Автору респект. Только один вопрос: как планируется осуществлять локализацию, в частности на русский?

maksvlad ()
Ответ на: А что с русской локалью? от maksvlad

Только один вопрос: как планируется осуществлять локализацию, в частности на русский?

Планов локализации ни интерфейса IDE, ни веб сайта нет. Единственное, что планируется сделать на русском языке, это перевод презентации технологии http://codimension.org/documentation/technologypresentation/ в формат статьи на русском языке и публикация на хабре.

SergeySatskiy ()
Ответ на: комментарий от SergeySatskiy

Python 3 не в числе первоочередных приоритетов

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

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.