Почему...
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 10.10.06 17:28
Оценка:
Почему новые программы на Яве пишутся "с нуля", именно как standalone-приложения, а не оформляются в виде плагинов к какой-ниудб системе, тому же Eclipse? Вот написали JEdit. А зачем? Ведь есть тот же Eclipse, где уже есть готовый тектовый редактор. Если есть какие-то суперпрогрессивные идеи по организации текстового редактора, почему бы не написать его именно как плагин к Eclipse? Почему бы не написать браузер или офисный пакет как набор плагинов к Eclipse? Что этому мешает.

Я не фанат Eclipse и Java. Просто интересно, почему если есть возможность сэкономить время, люди её не пользуются? Может, есть что-то что Eclipse сделать не в состоянии. Или он слишком тормозной? А если бы был аналог Eclipse для .NET, писали бы дотнетчики для него плагины? Скажем, был бы RSDN@Home плагином к некому "Eclipse.NET", или всё-таки отдельным приложением?

Какие существуют подобные платформы? Почему они не так широко используются разработчиками?

Прошу не бросаться во флейм и не ставить смайликов и минусов, а просто ответить на "почему". Заметьте, что я говорю об Eclipse не как об IDE, а как о некотором каркасе, на базе которого можно строить свои приложения.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 11.10.06 02:17
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Почему новые программы на Яве пишутся "с нуля", именно как standalone-приложения, а не оформляются в виде плагинов к какой-ниудб системе, тому же Eclipse? Вот написали JEdit. А зачем? Ведь есть тот же Eclipse, где уже есть готовый тектовый редактор. Если есть какие-то суперпрогрессивные идеи по организации текстового редактора, почему бы не написать его именно как плагин к Eclipse? Почему бы не написать браузер или офисный пакет как набор плагинов к Eclipse? Что этому мешает.


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

K>Я не фанат Eclipse и Java. Просто интересно, почему если есть возможность сэкономить время, люди её не пользуются? Может, есть что-то что Eclipse сделать не в состоянии. Или он слишком тормозной? А если бы был аналог Eclipse для .NET, писали бы дотнетчики для него плагины? Скажем, был бы RSDN@Home плагином к некому "Eclipse.NET", или всё-таки отдельным приложением?


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

K>Какие существуют подобные платформы? Почему они не так широко используются разработчиками?


Платформа — широкое понятие. На самом деле можно выделить несколько уровней платформ, приведу на примере эклипса:
1. Железячная платформа (проц + память + остальные приблуды).
2. Операционная система (платформа над железом, облегчающая программировать за счет того, что не надо думать про машинные коды, прерывания и т.п.)
3. Ява (высокоуровневая платформа, позволяющая программировать не думаю о ресурсах и низкоуровневой реализации API).
4. Эклипс (платформа еще более высокого уровня, позволяющая пользовать его супер-высокоуровневым АПИ для конкретных задач )

Каждый выбирает сам тот уровень, на котором ему проще и удобней писать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Почему...
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 11.10.06 05:45
Оценка:
Здравствуйте, Nuald, Вы писали:

[skip]

N>Каждый выбирает сам тот уровень, на котором ему проще и удобней писать.


С данным тезисом согласен. Однако глядя на засилие текстовых редакторов, файл-менеджеров, браузеров и т.д, которые написаны с нуля (многие поддерживают плагины, причём плагины для них так и не пишутся), я удивляюсь: каким же образом люди выбирают платформу?

Давайте рассмотрим конкретный пример. Есть три программиста: A, B, C. A пишет новый навороченный xml-редактор. B пишет тектовый процессор, который сохраняет документы в новом открытом формате. Наконец, С пишет редактор uml-диаграмм с поддержкой печати.

Теперь некто (D) использовал текстовый процессор, написанный B и заметил, что новый открытый формат документов, если документ написан по определённому шаблону, неплохо конвертируется в XHTML, и наоборот. Соотвественно, D решил написать браузер + редактор XHTML.

Пусть все они работают по стандартной схеме: каждый пишет приложение с нуля. Появляется три незваисимых программных продукта. Вероятно, каждый из них предоставит dll-ку со своими контролами и документацию к ним. Тогда D останется взять компоненты (XmlEditor, DocumentEditor, PrintController; UmlEditor ему не понадобится), прочитать документацию, заставить их работать вместе. Причём, ему придётся правильно реагировать на нажатие кнопки "Вырезать" — перенаправлять обращение к открытому в данный момента окну с одним из двух компонентов. Или, скажем, A предусмотрел навигацию в виде докающегося окна (view) с изображением DOM-дерева и D оценил идею. Т.е. D должен явно создать view, прилепить на него нужный контрол, к нему в свою очередь контекстное меню и заставить всё это нормально работать.

Пусть теперь кадлый решил делать всё это как плагин к некоторой платформе наподобие Eclipse, не обязательно заточенной под написание программ. Тогда A, B и C пишут плагины. Причём, они могут написать по несколько плагинов, например C пишет плагины: для поддержки редакторов диаграмм вообще, редактор UML, менеджер печати, плагин для печати на принтер, плагин для печати в PrintPreview. Каждый делает пакет из плагионов, приложение. Тогда D остаётся отобрать нужные плагины из приложений A, B, C, правильно их связать, может быть, написать свой плагин (для поддержки загрузки документов по HTTP) и выложить всё это как приложение "Браузер + XHTML редактор". Все нужные фичи из приложений A, B и C получаются автоматом. В результате D просто сэкономил своё время, причём исключил написание весьма однообразного кода.

Так вот меня интересует вопрос: почему первый подход сейчас распространён гораздо меньше второго? Почему не понаписано платформ, заточенных под решение целых классов крупных задач, или хотя бы того класса, который я описал?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Почему...
От: supersceev Украина  
Дата: 11.10.06 06:44
Оценка: +1
Здравствуйте, konsoletyper, Вы писали:


K>Так вот меня интересует вопрос: почему первый подход сейчас распространён гораздо меньше второго? Почему не понаписано платформ, заточенных под решение целых классов крупных задач, или хотя бы того класса, который я описал?


А ответ тривиален
1. Если A и B распространяют свои продукты под знаком GPL и D работает над коммерческим продуктом, и при этом A и B ни в какую не хотят менять условия лицензирования, то D, воспользовавшись их кодом просто не может позиционировать свой проект как коммереческий.
В то же время C написал коммереческий продукт, а у D просто нет желания/времени/финансовых возможностей для согласования условий лицензирования использования частей проекта C в своём проекте.
На самом деле, зачастую легче написать с нуля, чем решить проблемы именно такого уровня, котороы у непосредственно написанию кода никакого отношения не имеют.
Re[4]: Почему...
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 11.10.06 07:43
Оценка:
Здравствуйте, supersceev, Вы писали:

K>>Так вот меня интересует вопрос: почему первый подход сейчас распространён гораздо меньше второго? Почему не понаписано платформ, заточенных под решение целых классов крупных задач, или хотя бы того класса, который я описал?


S>А ответ тривиален

S>1. Если A и B распространяют свои продукты под знаком GPL и D работает над коммерческим продуктом, и при этом A и B ни в какую не хотят менять условия лицензирования, то D, воспользовавшись их кодом просто не может позиционировать свой проект как коммереческий.
S>В то же время C написал коммереческий продукт, а у D просто нет желания/времени/финансовых возможностей для согласования условий лицензирования использования частей проекта C в своём проекте.
S>На самом деле, зачастую легче написать с нуля, чем решить проблемы именно такого уровня, котороы у непосредственно написанию кода никакого отношения не имеют.

Это понятно. Но и чтобы использовать первый подход, D всё равно должен согласовывать условия соглашения.

Допустим, D нашёл деньги, чтобы купить продукцию A, B и C (либо все четверо работают по GPL). Тогда D будет невыгоден первый путь. Особенно странно это выглядит в мире OpenSource, где проблем с лицензированием быть не должно.

Кроме того, D — некоторая абстракция (в отличие от A, B и C) . Я говорил лишь о том, что найдётся такой D. Т.е. если у D1 есть идея, но нет возможностей, то всегда найдётся Dk, у которого есть и то и другое. Но подход No.1 не способствует появлению таких D.

Ещё при подходе No.2 можно творить чудеса с редакциями. Например, не выгодно продавать штампованный продукт на все случаи жизни. И потому менеджмент решает выпустить кучу Edition'ов для разных целевых групп. Естественно сделать "плагинистую" архитектуру, и в каждую редакцию включать только необходимый набор плагинов (как с VS). Только зачем для каждого продукта делать собственную модульную архитектуру? Не проще взять готовое решение? Если бы MS это было нужно и они чуть-чуть напряглись, то был бы "лысый" VS, совершенно бесплатный (т.к. непонятно, за что же там платить). Но есть по крайней мере две причины, по которым этого не будет: нежелаение MS и кривоватость архитектуры VS. Но у тех же IBM есть Eclipse. И у них нет причин тормозить написание плагинов мастерами-умельцами. Так что-же их тормозит, этих мастеров-умельцев?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 11.10.06 08:13
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Так вот меня интересует вопрос: почему первый подход сейчас распространён гораздо меньше второго? Почему не понаписано платформ, заточенных под решение целых классов крупных задач, или хотя бы того класса, который я описал?


Ну почему же? Ява и дотнет и являются такими платформами общеуниверсального назначения. Более того, во многих областях есть свои крупные платформы. Единственное, они малоизвестны, т.к. стоят обычно немало денег.
Вот, например, тот же продукт IBM — Lotus Notes. Мощнейшая платформа с возможностью расширения. Она заточена под документооборот, но при этом настолько наворачивается, что на ней можно решать большой круг задач. Однако вход в программирование на этой платформе довольно-таки высокий, а чтобы разобраться в ней досконально, понадобится несколько месяцев.
Во многих других областях есть свои платформы, как например, та же Галактика или Парус для бухгалтерии. Про 1С я лучше промолчу, тут просто сделал свое дело пиар и поддержка государства.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 11.10.06 08:15
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Ещё при подходе No.2 можно творить чудеса с редакциями. Например, не выгодно продавать штампованный продукт на все случаи жизни. И потому менеджмент решает выпустить кучу Edition'ов для разных целевых групп. Естественно сделать "плагинистую" архитектуру, и в каждую редакцию включать только необходимый набор плагинов (как с VS). Только зачем для каждого продукта делать собственную модульную архитектуру? Не проще взять готовое решение? Если бы MS это было нужно и они чуть-чуть напряглись, то был бы "лысый" VS, совершенно бесплатный (т.к. непонятно, за что же там платить). Но есть по крайней мере две причины, по которым этого не будет: нежелаение MS и кривоватость архитектуры VS. Но у тех же IBM есть Eclipse. И у них нет причин тормозить написание плагинов мастерами-умельцами. Так что-же их тормозит, этих мастеров-умельцев?


Я в свое время не захотел связываться с Эклипсом из-за его громоздкой архитектуры и кривоватости — он частенько спотыкался на обычных вещах. Не говорю уж про Яву, которая только к версии 1.5 стала более или менее удобоварима. Не спорю, сейчас возможно Эклипс несложно расширять и проще писать, но поезд ушел.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Почему...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 13.10.06 06:19
Оценка: +1
Здравствуйте, Nuald, Вы писали:

N>Независимое приложение проще написать. С эклипсом надо предварительно разобраться, а документации не особо много. Плюс к тому же, он немного тормознутый, а для некоторых это критерий.

Во-первых, для написания модуля расширения к Eclipse документации вполне достаточно на http://eclipse.org. Во-вторых, медленный в сравнении с чем? У меня Eclipse 3.2 примерно раз в 5 быстрее загружается (выгружается), чем MS Visual Studio 2005.

N>Янус к плагинам ни коим боком не относится. Эклипс — среда для разработки, и он заточен на это, и архитектура его больше подходит для редактирования и организации текстовых документов, а не форумов.

И опять неправда.
Eclipse начинался с Eclipse SDK (Java IDE), но теперь это группа проектов с общей модульной архитектурой. Это Eclipse Platform, Eclipse RCP, Eclipse RIA и т.п. — взгляните http://www.eclipse.org/downloads/index_topic.php
Янус вполне мог быть Eclipse RCP.
... << RSDN@Home 1.2.0 alpha rev. 655>>
offtop
От: DemAS http://demas.me
Дата: 13.10.06 08:19
Оценка: 8 (1)

Fact 15

Reuse-in-the-small (libraries of subroutines) began nearly 50 years ago and is a well-solved problem.


Fact 16

Reuse-in-the-large (components) remains a mostly unsolved problem, even though everyone agrees it is important and desirable.

(Facts and Fallacies of Software Engineering By Robert L. Glass)

... << RSDN@Home 1.2.0 alpha rev. 653>>
Re: offtop
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 13.10.06 08:38
Оценка:
Здравствуйте, DemAS, Вы писали:

DAS>

DAS> Fact 15

DAS> Reuse-in-the-small (libraries of subroutines) began nearly 50 years ago and is a well-solved problem.


DAS> Fact 16

DAS> Reuse-in-the-large (components) remains a mostly unsolved problem, even though everyone agrees it is important and desirable.

DAS> (Facts and Fallacies of Software Engineering By Robert L. Glass)


Ну, надо за решение этой проблемы бороться. Есть Эклипс, но на нём белый свет клином не сошёлся. Можно и лучше. Что-то я не вижу, чтобы кто-то в этом деле волонтёрствовал или пионерствовал. А надо бы! По крайней мере, стоило бы активно пользоваться существующими фреймворками, чтобы был мотив совершенствовать их.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: offtop
От: DemAS http://demas.me
Дата: 13.10.06 09:22
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Ну, надо за решение этой проблемы бороться.


Тогда, вот примерное направление:

Fact 17

Reuse-in-the-large works best in families of related systems and thus is domain-dependent. This narrows the potential applicability of reuse-in-the-large.

... << RSDN@Home 1.2.0 alpha rev. 653>>
Re[3]: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 13.10.06 10:33
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Во-первых, для написания модуля расширения к Eclipse документации вполне достаточно на http://eclipse.org. Во-вторых, медленный в сравнении с чем? У меня Eclipse 3.2 примерно раз в 5 быстрее загружается (выгружается), чем MS Visual Studio 2005.


Хм, кому-то и явадоки нравятся, но по мне MSDN лучше. Может, конечно, это сила привычки, но тут уж ничего не поделаешь. Эклипс может и загружается/выгружается быстрее чем VS, однако с большими проектами с сотней файлов и больше работает медленно. Но 3.2 не видел, возможно, сейчас все поменялось, спорить не буду.

R>Eclipse начинался с Eclipse SDK (Java IDE), но теперь это группа проектов с общей модульной архитектурой. Это Eclipse Platform, Eclipse RCP, Eclipse RIA и т.п. — взгляните http://www.eclipse.org/downloads/index_topic.php

R>Янус вполне мог быть Eclipse RCP.

Мог, но вопрос к его создателям. Эклипс не идеал, и студия не идеал, однако поработав с некоторым количеством такого рода платформ, пришел к мнению, что лучше что-то более низкоуровневое, как тот же дотнет и ява, т.к. они дают большую гибкость. Но это мое личное ИМХО, и я бы уже никогда в жизни не выбрал бы какого-рода Эклипс за базовую платформу, т.к. знаю цену поддержки такого — когда приходится отвечать за глюки не только твоего софта, но и платформы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Почему...
От: boluba  
Дата: 14.10.06 19:50
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Во-первых, для написания модуля расширения к Eclipse документации вполне достаточно на http://eclipse.org. Во-вторых, медленный в сравнении с чем? У меня Eclipse 3.2 примерно раз в 5 быстрее загружается (выгружается), чем MS Visual Studio 2005.


Если работа заключается в загрузке (выгрузке) IDE, то Eclipse явно проигрывает...
Re[4]: Почему...
От: boluba  
Дата: 14.10.06 19:54
Оценка:
Здравствуйте, Nuald, Вы писали:

N>С эклипсом надо предварительно разобраться, а документации не особо много.

...
N>Хм, кому-то и явадоки нравятся, но по мне MSDN лучше.

Вот вы с самого начала так и пишите: "в MSDN документации по эклипс не особо сного".
Re[5]: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 15.10.06 23:34
Оценка:
Здравствуйте, boluba, Вы писали:

B>Вот вы с самого начала так и пишите: "в MSDN документации по эклипс не особо сного".


Хм, ничего не понял. Это была какая-то тонкая шутка? MSDN и Eclipse никак не связаны, я говорил, что так как он на яве, то его документация — это в основном явадоки, которые мне не очень нравятся.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Почему...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 16.10.06 06:11
Оценка:
Здравствуйте, Nuald, Вы писали:

N>Хм, кому-то и явадоки нравятся, но по мне MSDN лучше. Может, конечно, это сила привычки, но тут уж ничего не поделаешь.

По-крайней мере Sun не поленился сделать генератор докуменации по javadoc исходного кода. Недоумение вызвало XML-комментирование исходного кода .NET. Вроде как, вам надо, вы пишите генератор программной документации; есть конечно сторонние разработки по генерации документации...

N> Эклипс может и загружается/выгружается быстрее чем VS, однако с большими проектами с сотней файлов и больше работает медленно.

Это не так.

N> Но 3.2 не видел, возможно, сейчас все поменялось, спорить не буду.

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

N>Мог, но вопрос к его создателям. Эклипс не идеал, и студия не идеал, однако поработав с некоторым количеством такого рода платформ, пришел к мнению, что лучше что-то более низкоуровневое, как тот же дотнет и ява, т.к. они дают большую гибкость.

Речь идет ведь только про упрощение процесса программирования графики и наиболее часто встречающихся примитивов. В случае Eclipse RCP разработчик избавляется от целого класса оформительских проблем, что позволяет больше времени уделить написанию именно бизнес-логики приложения. Последнее пишется на, так названном вами — низкоуровневом программировании.

N> Но это мое личное ИМХО, и я бы уже никогда в жизни не выбрал бы какого-рода Эклипс за базовую платформу, т.к. знаю цену поддержки такого — когда приходится отвечать за глюки не только твоего софта, но и платформы.

И зря, зачем писать то, что уже написано, притом по умолчанию лучше, нежели сделаешь сам? Успешно внедрил три проекта на Ecpise RCP (первый с полтора года назад, последний в начале года), особенных проблем не встретил.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Re[5]: Почему...
От: Nuald Россия http://nuald.blogspot.com
Дата: 16.10.06 06:34
Оценка:
Здравствуйте, rsn81, Вы писали:

R>И зря, зачем писать то, что уже написано, притом по умолчанию лучше, нежели сделаешь сам? Успешно внедрил три проекта на Ecpise RCP (первый с полтора года назад, последний в начале года), особенных проблем не встретил.


Почему по умолчанию лучше? Неужели команда высоквалифицированных разработчиков не сможет в приемлимые сроки написать аналог Эклипса? Что-то верится с трудом. Взять хотя бы тот же JetBrains.

Полтора года — это не срок. Я говорю про системы, которым больше пяти лет, которые необходимо постоянно сопровождать и наращивать, и когда начинаешь упираться в ограничения платформы или ее глюки, это не особо радует. Впрочем, не буду говорить конкретно про Эклипс — у него может все хорошо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.