LINUX.ORG.RU

Перезагрузка проекта sK1

 , ,


0

2

В проекте sK1, который, казалось бы, подозрительно притих, на самом деле происходят масштабные изменения. Год назад в развитии проекта было принято кардинальное решение выполнить полный рефакторинг исходного кода — как редактора векторной графики sK1, так и универсального транслятора графических форматов UniConvertor.

Речь идет не о тривиальном «перелопачивании» исходного кода, а о полном переписывании проекта. Такое решение не было случайным. Как известно, проект является форком редактора Sketch/Skencil. Соответственно, части исходного кода как и архитектуре проекта уже много лет. Несмотря на интересные подходы, заложенные в проект в конце 90-х, многие решения в нем морально устарели и не соответствуют текущим потребностям и целям. Ввиду особенностей проекта переработка его по частям могла бы занять гораздо больше времени, чем разработка с нуля.

В результате этих изменений разработка векторного редактора sK1 и ветки UniConvertor 1.х была прекращена, и на смену им пришли переписанные с нуля UniConvertor 2.0 и векторный редактор PrintDesign.

>>> Подробности

★★★★★

Проверено: svu ()
Последнее исправление: AP (всего исправлений: 3)
Ответ на: комментарий от Linfan

> Я уж молчу про смену тулкита - весь UI код коту под хвост.

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

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

> Ставить вопрос, что надо было делать 5 лет назад, немного непродуктивно

Согласен.

Надо думать, что делать сейчас с тем, что наваяно.

Нынешняя задумка с архитектурной точки зрения выглядит привлекательно (на мой непрофессиональный взгляд). Фигня в том, что до готового продукта можно и не дожить. Я уже не первый год слышу от Игоря «да вот мы, да вот щаз».

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

> Пять лет назад как раз и началась реанимация Tk. Но увы она захлебнулась.

Ещё раз: она не могла не захлебнуться. Это было ясно всем.

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

Впрочем, надо отдать тебе должное: до упёртости Кая-Уве тебе ещё далеко. Этот балбес от своего FLTK никак оторваться не может.

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

> Ну попытайтесь выдернуть иксовые структуры из модели Skencil ;) Рефакторинг в данном случае будет напоминать попытку из ушастоно запора сделать феррари, но так, чтобы на промежуточных этапах оно работало и прилично выглядело.

Объясняю как пользователь. Релиз назад у меня было нечто на говняненьком Tk и вообще сборной солянке разных языков, которое было некрасиво и костылисто, но тем не менее позволяло рисовать эллипсы и прямые. В нынешнем релизе у меня красивый GTK+ на красивом питоне, но рисовать оно умеет только прямоугольники. Регресс налицо. А вот когда оно научится рисовать обратно эллипсы, помолчу о кривых Безье и тексте — я не знаю. Как пользователь, я очень разочарован. Fail.

А вот возьмем мозиллу. Ее тоже с нуля, или почти с нуля переписывали, когда навигатор выводили с 4-й на 6-ю версию. В результате получилось что-то, что умело все то же самое, что и 4-я версия, и еще что-то впридачу. Бонус-трек — открытие всего кода этого чуда. Здесь win.

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

>Ещё раз: она не могла не захлебнуться. Это было ясно всем.

Tk с точки зрения программиста всё-таки гораздо более продуман был, чем и GTK, и Qt.

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

> Впрочем, надо отдать тебе должное: до упёртости Кая-Уве тебе ещё далеко. Этот балбес от своего FLTK никак оторваться не может.

Ты еще вспомни WindowMaker и чуваков, которые стоят за ним.

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

> Tk с точки зрения программиста всё-таки гораздо более продуман был, чем и GTK, и Qt.

Есть много прекрасных вещей, которые живут в своём особом мире добра и всепобеждающей справедливости.

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

:)))

Это старые тёрки касательно подхода к управлению проектами :)

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

Всё графика для инкскейпа изначально рисовалась в самом инкскейпе. Т.е. это изначально самодостаточный редактор.

Чистейший онанизм! =)

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

>Сначала делаешь тулкитонезависимый интерфейс для UI, к которому обращается все остальное, после чего аккуратно заменяешь реализацию на другую. Если тулкитозависимые кишки у тебя раскиданы по всему коду, это ничуть не лучше иксовых структур, размазанных по всему коду.

Вот этот умный мысль можно попытаться донести и до авторов Inkscape и до Gimp и до многих коммерческих проектов ;) Тулкитнезависимых проектов крайне мало. Текущая попытка и является реорганизацией архитектуры именно в таком духе. До этого на руках был код Skencil'а в котором это все игнорировалось. Обвешивать дальше такой код функционалом стало просто в падлу - сначала интуитивно, а потом уже и предметно осознаешь, что наращиваемый функционал просто пойдет в корзину из-за косяков в исходной архитектуре.

Конечно же не весь код будет выкинут - какую-то часть после рефакторинга внесем в UniConvertor 2.0, но код редактора принципиально никуда не притулишь - другой тулкит.

Linfan ★★★★★
() автор топика

Надеюсь, они новую версию на Qt стали делать?

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

>а что плохое было с tk? тормощит он, на глаз, поменьше всех этих gtk

Простейший пример: в tk8.5 под Убунтой проблемы с не-latin-1 вводом во всех input филдах (грубо говоря, русский текст ввести нельзя). Да, на этот косяк прикрутили свой костыль, но сколько матов выслушать пришлось - ппц. И подобных веселых мелочей - вагон и тележка.

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

> Вот этот умный мысль можно попытаться донести и до авторов Inkscape и до Gimp и до многих коммерческих проектов ;)

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

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

>а что плохое было с tk? тормощит он, на глаз, поменьше всех этих gtk

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

Linfan ★★★★★
() автор топика

> Исходя из перечисленного выше, выбор пал на GTK+. При этом архитектура UniConvertor создавалась таким образом, чтобы осталась возможность создания варианта векторного редактора на Qt.

Это фэйл. Ждем очередной перезагрузки, когда наконец дойдет что Qt - это не только UI, но и замечательный набор качественных классов на все случаи жизни. А из GTK+ не выжать большего, чем инкскейп.

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

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

Ой ли? Gtk 2.0 форева? ;)

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

>Это фэйл. Ждем очередной перезагрузки, когда наконец дойдет что Qt - это не только UI, но и замечательный набор качественных классов на все случаи жизни. А из GTK+ не выжать большего, чем инкскейп.

В векторной графике из Qt тоже много не выжмешь - это библиотека общего назначения. В этом плане пофиг на каком тулките писать.

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

Ну ты сравнил. С Gtk2 на Gtk3 переползать не так сложно, как с QT на GTK или обратно, или с Xt на что-то современное.

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

>>а печальный пример судьбы Java в руках Oracle мы имели сомнительное счастье наблюдать буквально несколько месяцев назад.

С Java то как раз все нормально. OpenJDK не закрыли, NetBeans не закрыли, Java.net не закрыли, Java 7 выпустили. Чего еще нужно для счастья? Ненависть к Ораклу пошла только из-за войны с гугелем, и возможно из-за OpenSolaris, хотя линуксоиды его раньше ненавидели, а теперь что-то встрепенулись. А с Java все в порядке.

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

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

Упомянутый выше Кай-Уве — чувак, который придумал систему управления цветом Oyranos с гибко настраиваемыми политиками. При этом он для неё выбрал свой особый движок для работы с конфигами, Elektra, которого вообще ни в одном дистре не было, а в качестве интерфейса — FLTK. Естественно, ни одному дистру и ни одному DE не захотелось со всем этим связываться. Теперь этот чувак ходит и надувается, что его гениальную задумку не оценили.

Собственно, моя основная претензия к sK1 как проекту и заключается в том, что всё это время программа разрабатывалась с точно такой же позиции: «Я вот такой офигенный специалист в предметной области, я всё сделаю запиписечно, я знаю, как надо». Для Кая-Уве это кончилось тем, что откуда ни возьмись пришёл Ричард Хьюс, с почти нулём знаний в предметной области, как истинный инженер разобрался, за паршивый месяц сделал работающий прототип, и ещё за полтора года в несколько заходов сделал полноценную работающую систему, да ещё и пропатчил весь стек печати. Причём на каждом этапе у него был пакет нормально работающих приложений.

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

>Ну ты сравнил. С Gtk2 на Gtk3 переползать не так сложно, как с QT на GTK или обратно, или с Xt на что-то современное.

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

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

> Вот этот умный мысль можно попытаться донести и до авторов Inkscape и до Gimp и до многих коммерческих проектов ;)

лицоладонь.жпг

Открой для себя gegl-gtk и gegl-qt, да?

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

Посмотрел видео из OSDN ссылку на которое дал post-factum — там говориться, что релиз будет весной.

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

> В векторной графике из Qt тоже много не выжмешь

Правда, статическая часть SVG (а то и даже с анимацией) в нём поддерживается практически вся, да ещё с фильтрами, но это же такая мелочь, правда?

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

Выбор фултика вполне объясним. Это быстрый и легкий приплюснутый тулкит.

Только на таких тулкитах можно делать профессиональные и полупрофессиональные программы.

AVL2 ★★★★★
()

Ну и говно, тормозит

А че оно так тормозит? Вроде комп мощный, а пользоваться невозможно, да еще и памяти жрет, ппц.

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

>Правда, статическая часть SVG (а то и даже с анимацией) в нём поддерживается практически вся, да ещё с фильтрами, но это же такая мелочь, правда?

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

Тут без клиппинга и оптимизации процедур загрузки, перемещения и отображения никуда.

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

> Только на таких тулкитах можно делать профессиональные и полупрофессиональные программы.

Ога. И лопатой выгребать косяки в локалях, отличающихся от en_US. Спасибо, проходили.

Что касается «профессиональных программ», спасибо, но половина виденных мной приложений на филтике выглядит так, словно их проектировал слепоглухонемой беременный неандерталец.

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

> Тут без клиппинга и оптимизации процедур загрузки, перемещения и отображения никуда.

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

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

>Собственно, моя основная претензия к sK1 как проекту и заключается в том, что всё это время программа разрабатывалась с точно такой же позиции...

Не нужно смешивать разработку с нуля и форк. В рамках Skencil'а особо не подергаешся - что было с начала заложено, то практически невозможно выковырять рефакторингом. Теперь разработка пошла с нуля, прототипы готовы были тоже примерно за месяц, так что все не так уж плохо :)

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

> В третьем же всякие хорошие штуки с Вакомовскими планшетами?

Особых штук нет. Просто они там работают :) В отличие от последней выпущенной ветки 2.х :)

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

>Правда, статическая часть SVG (а то и даже с анимацией) в нём поддерживается практически вся, да ещё с фильтрами, но это же такая мелочь, правда?

Отривсока готового SVG файла - это отличная штука для просмотрщика, но вот оперировать элементами SVG модели через Qt не получится. Ну нету там такого функционала :)

Linfan ★★★★★
() автор топика
Ответ на: Ну и говно, тормозит от anonymous

>А че оно так тормозит? Вроде комп мощный, а пользоваться невозможно, да еще и памяти жрет, ппц.

Анонимус, кто оно? ))))

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

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

Ты же делал в sK1 этикетки для LGM2009? Вот и возьми за привычку всю графику делать в своём собственном редакторе. А то будешь как один из авторов Rosegarden: «Чуваки, прикиньте, я тут недавно попытался чё-нибудь написать в нашем секвенсере».

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

Блин! Жто не _ мне_ надо, а тебе :)))

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

Да, всё так же нет и не предвидится ни автоматизации, ни LV2.

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

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

svu ★★★★★
()

А почему, в самом деле, если уж всё с нуля переписывалось с учетом оптимизации, затрат по оперативной памяти, скорости загрузки и работы, не рассматривался вопрос смены языка программирования?

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

> слепоглухонемой беременный неандерталец.
Общество защиты слепоглухонемых беременных неандертальцев уже подало на тебя в суд. Защита чести и достоинства

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

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

Общественный строй неандертальцев не подразумевал ни чести, ни достоинства. Соответственно, и защищать нечего.

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

>А почему, в самом деле, если уж всё с нуля переписывалось с учетом оптимизации, затрат по оперативной памяти, скорости загрузки и работы, не рассматривался вопрос смены языка программирования?

А какие будут предложения? С++? Это затормозит разработку - кода в несколько раз больше. Жабу, моно, перлуху, рубироид сразу не предлагать - никаких положительных бонусов перед Python+C нет.

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