LINUX.ORG.RU

«I want to ride my bicycle» или продолжение истории с geany


0

0

Как некоторые знают, я писал плагин для geany для получения возможности написания плагинов с помощью пайтона.
Застрял я на том что небыло достойных биндингов scintill'ы к пайтону.
Посему я начал активно продвигать gtksourceview. Написал в рассылку, поговорил с людьми из чатика(IRC).
Пока я сделал один вывод - всем лень, ни у кого нет времени, никто не хочет менять то что и так как-то работает.
Не знал что делать. Думал: «мб написать так нужный мне плагин/патч для мульти-сниппетов?». Ан нет. Посмотрел я сырцы. Ужаснулся. Нет, мысль есть, код не так ужасен, есть даже в некоторых местах комменты. Но частенько замечаю велосипеды и костыли.
Словом, не хочу я писать что-то внутри джини. Думаю, это одна из причин игнорирования предложения о переходе на gtksourceview.
Ну да ладно.
Что нам стоит дом построить^Wредактор уровня джини сколотить?
Я относительно недавно вооружился политикой: «старое пусть останется старым, а мы должны юзать новое, но не хуже чем старое».
Посему ясно было три факта:
1) Используется GTK для ГУИ
2) Используется GTKSourceView бранча с новым hl-движком и фолдингом
3) Берутся многие принципы geany: простота, лёгкость, скорость, надёжность, возможность юзать плагины.
Всё супер. Остался вопрос, который впервые я решил поставить без ограничений: Какой язык программирования выбрать?
Условия:
1) Язык должен быть компилируемым(хоть в байт-код, llvm-код)
2) Современность. Код должен быть относительно современным, без байтоводства, ручной сборки мусора и всякой старой фигни что нужно было оставить ещё в 90ых.
3) У языка должно быть будущее. Нет смысла писать на каком-то языке, который умрёт через год максимум.
4) Скорость. Редактор должен быть легковесным.
Мой выбор остаётся пока между:
1) Python. Язык лёгкий. Я гарантирую что закончу разработку на нём. Если начну. Проблема - скорость и легковесность. Для некоторых недостаточно того что предлагает пайтон. Есть решение - Unladen Swallow(LLVM), но когда ещё оно будет тем на чём можно всё писать... Более минусов нет. Одни плюсы.
2) D-lang. Язык не очень старый, пришёл на замену Си и плюсов. Всё просто супер. Почти доработан. Александреску дал хороший пинок вперёд. Давно интересовался данным языком. Синтаксис похож на джаву(или сисярп). Скорость - компиляция идёт в байт-код для LLVM. Одна проблема - отсутствие аудитории и, как следствие, биндингов к гтк и его приложениям(как gtksourceview). Возможно, придётся самому допиливать gtkD и писать биндинг к gtksourceview. Ужас, да и только. Напишу ли я на нём - хз.

Теперь, немного о том зачем я придумал делать новый велосипед, зачем он и чем отличается от остальных:
1) Лёгкость интерфейса. Гибрид Geany и Scribes.
2) Оптимизированное управление с клавиатуры. Scribes + Vim + emacs + TextMate. Совместим все удобства. Выбирем то что нужно, что привычнее, удобнее.
3) Полноценные сниппеты, хороший автокомплит, просмотр символов, нормальный менеджер проектов.
4) Хороший API для плагинов(ну или хоть чуть лучше чем в джини).
Эм. Ну вроде всё. Лень вспоминать что ещё меня до жути не устраивало в джини. Суть думаю ясна.
Давайте, критикуйте. Кидайте какашки, предлагайте помощь, давайте советы и пишите своё мнение. И да, высказывайте мнение на счёт выбора языка.


питон не подходит по 4), дэ не подходит по 3)

одна часть меня хочет посоветовать взять си и не вы*;ываться.

другая предлагает обратить свой взор на хаскель и расширять редактор Yi

третья пускает слюни на язык от создателя вима, брэда муленаара - zimbu.org. одна из целей - «Suppose you want to write a new program, something like a text editor. »

volh ★★
()

>Словом, не хочу я писать что-то внутри джини.

и зря, у самого у тебя достойной замены 99% не получится, а усилия будут на порядок больше.

volh ★★
()

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

А в остальном меня все предложенное устраивает. Но.

Python


Это все-таки скриптовый язык. Меня волнует его производительность. Хочется чтобы новый редактор был такой же легкий и быстрый как и Geany.

сам пишу на питоне всякие небольшие скриптики и вспомогательные тулзы.

Теперь мое предложение: почему бы не взглянуть на Vala?

- Отличный язык, похож на C#/Java, но нет никакой VM. Прост в освоении.
- Куча байдингов. Поддержка всех Gtk-либ и многих других либ. Так же легкое написание байдингов к Си-либам.
- Быстро развивающееся коммьюнити, поддержка самим Gnome'ом.
- Светлое будущее в рамках Gnome и конкретно GnomeShell как минимум.

Пока все, может потом еще что-нибудь напишу.

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

>и зря, у самого у тебя достойной замены 99% не получится, а усилия будут на порядок больше.

Гм, а если собраться всем ЛОРом да как ухнуть!

mono ★★★★★
()

> Scribes + Vim + emacs + TextMate

:-)

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

ухнуть и пойти дальше кодить в виме/емаксе?

volh ★★
()

Единственный адекватный путь(что предложили в самом начале) - написать на C этот плагин. И улучшить саму Geany заодно.

Ведь раз готовы на D писать, то энтузиазма в вас предостаточно?)

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

>Теперь мое предложение: почему бы не взглянуть на Vala?
Почему бы тогда просто не взглянуть на Common Lisp? Производительность близкая к сям(по крайней мере на уровне жабысервера).

Отличный язык

+

похож на C#/Java

Не похож, намного круче, хотя и тоже ОО, и, кстати, можно дергать и .Net(/Mono?) и Жабобиблиотеки.

но нет никакой VM.

Сомнительные плюсы. И что такое VM? Рантайм GCC это VM? Почему нет, если нет?

Прост в освоении.

+

Куча байдингов. Поддержка всех Gtk-либ и многих других либ. Так же легкое написание байдингов к Си-либам.

+

Быстро развивающееся коммьюнити, поддержка самим Gnome'ом.

Светлое будущее в рамках Gnome и конкретно GnomeShell как минимум.


Сомнительные плюсы.

Love5an
()

>Код должен быть относительно современным, без байтоводства, ручной сборки мусора и всякой старой фигни что нужно было оставить ещё в 90ых.

Поздравляю, ты первый адекватный человек на лоре.

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

Ты троллишь? или ты серьезно это все?

Как думаешь, на чем проще написать Gtk-редактор? на Vala? или на CL?

mono ★★★★★
()

Ничего себе замашки! Честно говоря, мне страшно. Многие люди когда начинают писать что-то, ставят себе громадные цели. Как результат, получается черти что. Мое мнение - нужно делать маленькие вещи, но делать их хорошо. Я правда не знаю какой ты программист, может ты и справишься.

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

> Я не буду спорить о Python с самим tailgunner'ом. :)

Напрасно. И, кстати, вспомни Emacs, написанный в значительной мере на elisp.

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



так помоги человеку - напишите на двоих редактор, а мы посмотрим на эффективность и скорость написания на CL - лучшей агитации не придумаешь, а то неубедительные крики во всех топиках с текстом «CL рулит, а остальное говно» - пока звучат очень неубедительно без практического подтверждения удобства написания, тот же емакс пилят уже больше 30 лет, а для работы в нем приходится доставлять cedet, который в свою очередь основан на ctags, что означает кривую работу с «говно-с++», «говно-жабой» и другими «говно-языками», которые не осилил в полной мере автор ctags

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

Я вообще плохо понимаю, зачем нужны все эти «динамические» и «скриптовые» языки, и другая всякая модная и попсовая хренота вроде Vala или, там, Scala. Потому что есть CL. CL, может, и не совсем универсальный язык программирования(по крайней мере пока мы не на лисп-машинах все работаем), но он на 100+ процентов покрывает области применения всей это скриптоты и пр.
Вообще, откровенно говоря, он покрывает и разные жабы и додиезы тоже, вопрос в библиотеках и количестве разработчиков. Я даже уверен что он в принципе может покрыть и области применения Эрланга, например, вопрос опять же в библиотеках и специфических рантаймах(модели мультитрединга и т.п.).

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

Emacs к CL отношение мало какое имеет. Там старинный недолисп, а ядро вообще на Си.

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

>На CL. Без троллинга.

Это только если ты хорошо знаешь CL. Порог вхождения в CL все-таки высок.

для интереса можно поставить задачу небольшого Gtk-редактора и написать на Vala и CL и сравнить.

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

>Напрасно.

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

И, кстати, вспомни Emacs, написанный в значительной мере на elisp.

Emacs - это скорее исключение, чем правило.

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

>Это только если ты хорошо знаешь CL. Порог вхождения в CL все-таки высок.
CL _очень_прост_
Ядро языка - 25 специальных операторов(меньше чем в си, если че).
http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm#clspecialops
Основные концепции тоже предельно просты. Во что-нибудь вроде комбинаторов методов или отдаленных уголков метаобъектного протокола CLOS может быть и сложно сразу так врубиться, но это очень advanced фичи даже для самих лисперов.
А возможность абстракции, в том числе без снижения производительности - неограниченная.

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

для интереса можно поставить задачу небольшого Gtk-редактора и написать на Vala и CL и сравнить.

dmitry_vk написал библиотеку cl-gtk2
http://dmitry-vk.livejournal.com/tag/cl-gtk2
там в комплекте есть пример текстового редактора

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

>там в комплекте есть пример текстового редактора

слишком элементарный. И это демка биндинга.

Давай поставим задачу так:

Есть окошко, тулбар, меню. Редактор должен уметь отркывать/сохранять, выбирать подсветку синтаксиса, компилировать программу (указанной командой) и запускать (указанной командой).

дальше.. гм.. придумать бы еще тест скорость исполнения..

Ну и сравним.

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

Вы ошиблись. «Written in C, Python» wiki. Нет фолдинга(конечно это дело gtksourceview, я буду заставлять ставить последнюю версию из реп с нужного бранча), нет сплиттинга окон, тянет кучу либ, в т.ч. и гном, сам по себе мало что умеет, юзает во всю все фичи гнома от чего становится не таким уж и легковесным. Писать что-то для него, пусть даже плагин, я не буду.

CL _очень_прост_

Я не буду учить язык у которого нет будущего или будущее как у брейнфака. Кодить на лиспах это как.. плясать под дудку изврашенца-серийного убийцы.

Ничего себе замашки! Честно говоря, мне страшно.

Да, цель большая, работы не мало. Я надеюсь что работы будет не так много ибо, как я уже говорил, редактор(IDE?) будет легковесным и функционал будет на уровне джини. А это не так уж и много.

Поздравляю, ты первый адекватный человек на лоре.

Да что уж тут. Помойму все уже это понимают и просто жуют кактус из-за отсутствия альтернативы.

В D же можно напрямую дёргать Сишные функции.

Интересно. Но! Во-первых - я не думаю что оно D-like, т.е. придётся что-нить делать вроде ручной сборки мусора etc. Во-вторых - в libgtk+2.0 очень страшный апи. Нет, не страшный как у некоторых, но без ООП не очень красиво всё оно работает.

Единственный адекватный путь(что предложили в самом начале) - написать на C этот плагин. И улучшить саму Geany заодно.

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

Гм, а если собраться всем ЛОРом да как ухнуть!

Было бы здорово, если бы лор небыл сборищем денивых х*ёв.

ухнуть и пойти дальше кодить в виме/емаксе?

Хватит, кактусы мне уже не по нраву.

Теперь мое предложение: почему бы не взглянуть на Vala?

Есть 3 причины:
1) Vala не нужна ибо это велосипед чистой воды.
2) Нет будущего. ЕГо будут юзать фанатики вроде хаскелеводов, но не думаю что за продукты на Vala будут платить.
3) Состояние биндингов удручает. Всё печально.

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

Форк предусматривает использование сырцов для их модификации и последующего распространения этого всего как отдельного продукта. Нунафиг. Мне лень ковырять такой код как в джини.

Это все-таки скриптовый язык. Меня волнует его производительность.

Да. Однако, как я уже сказал, код компилируется в байт-код(pyc или LLVM-code в UnladenSwllow). Я хочу надеяться что оно будет не так страшно, при том что я не собираюсь делать IDE вроде эклипса или подобного.

и зря, у самого у тебя достойной замены 99% не получится, а усилия будут на порядок больше.

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

питон не подходит по 4), дэ не подходит по 3)

На счёт тяжести пайтона я уже ответил.
А вот будущее Ди... Я хотел бы помочь тому языку, который должен иметь будущее. Ди имеет всё необходимое чтобы уйти от С* раз и навсегда. Просто «все продались» и пишут на сях ибо лень изучать другое и помогать другим языкам.

другая предлагает обратить свой взор на хаскель и расширять редактор Yi

Хаскель интересен тем что является компилируемым языком и обладает большой скоростью. Однако, зачем мне использовать язык, в котором чёрт ногу сломит? Уж легче будет Си или Ди с написанием биндингов.

:-)

lolwut?

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

>Я не буду учить язык у которого нет будущего или будущее как у брейнфака.
С какого хера это ты так решил? Будущего это у жабы какой-нибудь нет. Или у питона.
Лиспы пережили и PL/1, и COBOL, и алголы с паскалями всякие, и это говнецо переживут на много лет.
Они уже 50 лет живут и активно используются во всевозможных областях, но почему-то постоянно находится какой-то недоумок, который вещает пророчества про отсутствие будущего или констатирует смерть.

Кодить на лиспах это как.. плясать под дудку изврашенца-серийного убийцы.

С чего бы? На чанах наслушался бредятины?

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

>Они уже 50 лет живут и активно используются во всевозможных областях,

Да неужели?

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


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

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

Откуда такие «достоверные» познания об истории лиспов? Ты тоже эту лажу на чанах прочитал, да? Или может в ПТУ каком-нибудь своем, где даже названия этого семейства языков пишут неправильно(e.g. LISP).
Компьютеры, специально предназначенные для эффективного выполнения программ на каком-то языке(лисп-машины) это что, тоже признак комы или смерти языка? Или, может, огромные ресурсы вложенные в разработку и улучшение компиляторов и рантаймов, настолько огромные, что производительность программ на таком невероятно динамичном и высокоуровневом языке, как CL, чуть ли не равна с таковой у программ на ассемблере(Си т.е.)?

И вообще, ты на CL том же хоть строчку написал, умник, чтобы судить о его «отсталости» и пр(Это ответ на незаданный вопрос. Конечно, ты хотел это сказать. Или не ты, так кто другой. Или подумал, хотя бы. Есть ведь такой «современный» питон, руби и прочая, зачем нужен коммон лисп какой-то, гыгы)?

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

>Компьютеры, специально предназначенные для эффективного выполнения программ на каком-то языке(лисп-машины) это что, тоже признак комы или смерти языка?

И где они сейчас, эти лисп-машины? В музее?

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


Это было очень давно. Сколько сил вложено в охоту на мамонтов на протяжении сотен лет...

И вообще, ты на CL том же хоть строчку написал, умник, чтобы судить о его «отсталости» и пр


Написал, можешь не сомневаться и успешно сдал. Даже Practical Common Lisp дочитал до половины. Мир Лиспа - полностью.

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

>И где они сейчас, эти лисп-машины? В музее
И что что в музее? Да, x86 + AI winter etc. Сам факт. За последнее время специальные процессоры делали только для жабы разве что еще.

Это было очень давно. Сколько сил вложено в охоту на мамонтов на протяжении сотен лет...

Что значит очень давно? В 80х-90х. И сейчас процесс продолжается.

Даже Practical Common Lisp дочитал до половины.

Т.е. ниасилил?

Мир Лиспа - полностью.

Это говно, а не книга. Она никакого вменяемого представления ни о CL, ни о лиспах не дает.

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

>Да, x86 + AI winter etc.

Хочешь начать AI Spring ценой прое#ки личного времени и своей карьеры как прогера? Какое самопожертвование!

За последнее время специальные процессоры делали только для жабы разве что еще.


Вот-вот.

И сейчас процесс продолжается.


Черепашьими шагами. Я бы даже сказал конвульсиями.

Т.е. ниасилил?


Нашел более полезное занятие.

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

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

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

> Они уже 50 лет живут и активно используются во всевозможных областях

возьмем среднестатистический дистрибутив на основе линукса + наиболее используемый софт для дома или офиса( тоже самое для виндовс и мак ос ), где тут «активно используются» лиспы?

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

>наиболее используемый софт для дома или офиса
Зря, ой зря... Сейчас тебе скажут, что это дом-офис - для быдла.

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

> Сейчас тебе скажут, что это дом-офис - для быдла.

т.е. компьютер нужен не для фильмов, игр, веб, почты, IM, СУБД и т.д. и т.п., а для чего-то еще? это прямо уже культ какой-то :)

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

>Хочешь начать AI Spring ценой прое#ки личного времени и своей карьеры как прогера? Какое самопожертвование!
А ты что, наслушался бредней о том, что LISP это такое старинный язык пригодный только для AI? При чем тут AI вообще? CL для всего подходит, практически.
Но вообще, я, например, если открою стартап, то безусловно только CL. Тем более что программистов на нем все больше и больше, как и библиотек, а другие языки и рядом не валились.

Вот-вот.

Что «вот-вот»? Это говорит о том, что коммерциализация лиспов в свое время была сравнима с жабьей, и что «50 лет в коме» это бред невежественных идиотов.

Черепашьими шагами. Я бы даже сказал конвульсиями.

И как это ты оценил так шустро? Ты что, в команде franz или lispworks работаешь?

Нашел более полезное занятие.

Да ты скорее «Пастернака не читал...»
И работаешь каким-нибудь жабокодером за еду. Тоже мне, полезное занятие.

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

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

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

Это кривая аналогия.
Вообще, подобные аналогии в IT не работают. Языки программирования это не мясо. А программисты не повара.

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

из того, что у меня стоит - тулзы от нокии, оболочка к MySQL, iReport, SmartSVN

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

>Тем более что программистов на нем все больше и больше, как и библиотек, а другие языки и рядом не валились.
И сколько же? Десять? Пятнадцать? Больше библиотек, слабанных школьниками/студнями на коленке после прочтения статейки Грема?

Что «вот-вот»? Это говорит о том, что коммерциализация лиспов в свое время была сравнима с жабьей, и что «50 лет в коме» это бред невежественных идиотов.


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

Да ты скорее «Пастернака не читал...»

Чтобы оценить, не обязательно читать все его творчество. Достаточно и одного сборника.

И работаешь каким-нибудь жабокодером за еду. Тоже мне, полезное занятие.

А ты сам-то хоть работаешь?

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

> десктоп до самого последнего времени вообще был практически только из сей да плюсов с дельфями напару, если че

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

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

«Библиотеки, слабанные школьниками на коленке» это характеристика как раз большинства библиотек перла/питона/прочего подобного говна.

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

AI Winter, еще раз. Лиспы не виноваты сами по себе. Сейчас вот зато наблюдается некоторый ренессанс.

Чтобы оценить, не обязательно читать все его творчество. Достаточно и одного сборника.

Да ты и обложки его сборника то не читал толком. Так, описание в левом интернет-магазине.

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

>Сейчас вот зато наблюдается некоторый ренессанс.
Какой? SICP переводят со Scheme на питон?
По меркам CL - ренессанс, по меркам остальных - жалкие всплески активности.

Да ты и обложки его сборника то не читал толком. Так, описание в левом интернет-магазине.


gigamonkeys.com - левый магазин?

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

Вообще, лиспы как бы не особо были связаны с опенсорсом, до последнего времени, по крайней мере, в отличие от питонов и подобного шлака, которые из этой среды вышли. Это если про линуксы. Если про макоси и винду - про писюки я написал.

Но это все, безусловно, будущее, и не такое уж далекое.

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