из статьи: В большинстве своём программы на Java в использовании неотличимы от своих полноценных собратьев. Насколько мне известно, ощутимая часть GNOME написана именно на Java на такой манер.
> Чушь!!! Не идет Linux вслед за кемто! Не нравиться визуализация - сносим иксы и радуемся первозданной чистоте консоли...
Было бы очень приятно и правильно, если бы так было везде. Но вот если мне нравился XFCE3, но не нравится XFCE4, я либо ухожу с XFCE, либо далее не обновляю систему. А XFCE как раз сделал шаг от копирования CDE к копированию Windows'ифицированого GNOME.
> Выкинуть из GCC все остальное и будет автору счастье.
Автору будет счастье, если выкинуть из gcc Java. И выкинуть из Linux mono. И уничтожить сквозную совместимость по ОС.
>> Чушь!!! Не идет Linux вслед за кемто! Не нравиться визуализация - сносим иксы и радуемся первозданной чистоте консоли...
>Было бы очень приятно и правильно, если бы так было везде. Но вот если мне нравился XFCE3, но не нравится XFCE4, я либо ухожу с XFCE, либо далее не обновляю систему. А XFCE как раз сделал шаг от копирования CDE к копированию Windows'ифицированого GNOME.
не если вы такой разборчивый уважаемый, то форкайте себе XFCE3 на здоровье и делайте с ней что угодно. Не надо валить с больной головы на здоровую :)))
>Да, но проблема в том, что ни одним KDE живет линксоид. Возьмем, например, GIMP: как с ним интегрировать KDE-приложения? Взаимосвязь должна быть глужбе, нежели на уровне тулкитов.
Самый мудрый комментарий. freedesktop, будем надеяться, исправит положение.
>Про GNOME цитата: "Боясь напугать неопытного пользователя, авторы GNOME >с каждым релизом этого окружения всё уменьшают и уменьшают возможности >по настройке. К примеру, мы лишились возможности независимо >устанавливать фоновые рисунки для рабочих столов." Так в KDE идет та же >самая фигня. В старых версиях можно было "оторвать" любое подменю из >главного и расположить его в виде окна. Удобно. В новых этого нет. >Почему??? Не понимаю....
В KDE можно включить Menu tearoff handles: Application level (Style в Control Center), и "отрывалка" появляется в тех приложениях, которые это умеют. Например, в Konsole.
Бинарник почти 13-летней давности (15 января 1993 года файл датируется, сборка 5-го января того же года) gzip (версия 0.7) из дистра SLS-1.03 (на ядре 0.99 который еще), вместе с либцой 4.4.2, предварительно скопированной в /lib, пашет как швейцарские часы.
Батарейкин, это был твой самый готичный слив за всю историю твоего быта на ЛОРе. Зажигай дальше!
О какой совместимости спорите? Кажется ESR писал (а может и не он), что Open Source программы долго "живут" из-за того, что есть их код, т.е. пересобрал через пару лет на текущей системе, и все работает. А у "closed source" приходится делать всякие work-around для обратной совместимости. Конечно, это не относится к низкоуровневым вещам.
Т.е. в Open Source бинарная совместимость не так критична, как в проприетарных системах.
модераторы сотрите плиз мой предыдущий пост
попытка номер два...
Дабы яснее было о чём собственно идёт речь в обсуждаемой статье привожу статью из Википедии любезно переведённую мной :), я узнал кое-что нового из неё и советую всем не брезговать чтением, она явно полезнее обсуждаемого опуса.
Было бы просто здорово после корректуры выложить этот перевод в онлайн с быстрым доступом.
============================================================
http://en.wikipedia.org/wiki/Unix_philosophy
* Пишите программы(http://en.wikipedia.org/wiki/Computer_program) которые делают одну вещь и делают это хорошо;
* Пишите программы которые способны работать вместе;
* Пишите программы которые обрабатывают текстовые потоки, потому что это универсальный интерфейс.
Обычно эти пункты сильно сокращаются к "Делай одну вещь, делай это хорошо"
Из трёх принципов только третий характерен для Unix, хотя Unix разработчики часто подчёркивают все три принципа больше, чем другие разработчики.
------------------------------------------------------------
Pike(http://en.wikipedia.org/wiki/Rob_Pike): Заметки по Программированию в С
Правило 1: Вы не можете сказать где программа собирается тратить большую часть своего времени. Узкие места возникают в неожиданных местах, поэтому не пытайтесь предугадать и вставить хак для скорости до тех пор, пока вы не докажете что это и есть то самое узкое место.
Правило 2: Измерение. Не делайте подстройку для скорости не измерив, и даже затем не делайте, если не одна часть кода подавляет остальные.
Правило 3: Причудливые алгоритмы(http://en.wikipedia.org/wiki/Algorithm) медленны когда n мало, и n обычно мало. Причудливые алгоритмы имеют большие константы. Если вы не знаете как часто n будет велико, то не выделывайтесь (прим перев: don't get fancy). (Даже если n действительно велико используйте сначала Правило номер 1)
Правило 4: Причудливые алгоритмы более "ошибкосклонные" (прим перев: buggier - такого слова в словаре нет, есть bugger - содомит), и их реализация намного более сложная. Используйте простые алгоритмы, так же как и простые структуры данных(http://en.wikipedia.org/wiki/Data_structure).
Правило 5: Данные рулят. Если вы выбрали правильные структуры данных и спланировали вещи хорошо (прим перев: видимо имеется ввиду архитектура), то алгоритмы будут почти само-очевидными. В программировании руководят структуры данных, не алгоритмы.
Правило 6: Правила номер 6 нет.
В 1994 Mike Gancarz объединил свой опыт с Unix (он член команды спроектировавшей X Window System(http://en.wikipedia.org/wiki/X_Window_System)) с обсуждениями, в которых он участвовал с коллегами программистами и людьми из других областей зависящих от Unix, чтобы выпустить книгу "Философия UNIX". Эта книга резюмирует изложенную философию в 9 верховных предписаний:
* Малое прекрасно
* Заставляй каждую программу делать одну вещь хорошо
* Делай прототип как можно раньше
* предпочитай переносимость эффективности
* Храни данные в простых текстовых(http://en.wikipedia.org/wiki/Text) файлах
* Используй програмные рачаги (средства) для своей выгоды
* Используй шелл-скрипты(http://en.wikipedia.org/wiki/Shell_script) чтобы увеличить "силу рычага" (програмных средств) и переносимость
* Избегай связывающих (пленяющих) пользовательских интерфейсов
* Делай каждую программу как фильтр
Десять меньших принципов не ставших универсальными как часть философии Unix и, в некоторых случаях, жарко обсуждаемых (монолитное ядро(http://en.wikipedia.org/wiki/Kernel_(computer_science)#Monolithic_kernels) против микроядра(http://en.wikipedia.org/wiki/Kernel_(computer_science)#microkernels)):
* Позволяй пользователю приспособить окружение
* Делай ядро Операционной Системы простым и легковесным
* Используй нижний регистр и будь краток
* Сохраняй деревья
* Молчание - золото
* Думай параллельно
* Сумма частей больше, чем целое
* Ищи 90-процентное(http://en.wikipedia.org/wiki/90/10_law) решение
* Хуже есть лучше(http://en.wikipedia.org/wiki/Worse_is_better)
* Думай иерархически
Richard P. Gabriel(http://en.wikipedia.org/wiki/Richard_P._Gabriel) предложил, что ключевое преимущество Unix заключается в том, что Unix воплощает философию проектирования "Хуже есть лучше". В манере "Хуже есть лучше" простота обоих интерфейса и реализации более важна, чем любая другая черта этой системы, включая корректность, согласованность и завершённость. Габриель утверждает, что эта манера проектирования имеет ключевые эволюционные преимущества, хотя он ставит под сомнение качество некоторых результатов.
Например, в ранние дни UNIX имела монолитное ядро(http://en.wikipedia.org/wiki/Monolithic_kernel) (что означает, что процессы пользователя выполняют все системные вызовы на стеке пользователя). Если некоторый сигнал был вручён процессу, когда последний был заблокирован на длительном вводе-выводе в ядре, таком как sleep (10*60), то что должно быть сделано? Должен этот сигнал быть отложен, возможно на долгое время (может быть неопределено), до тех пор пока ввод-вывод не завершится? Обработчик сигнала не мог быть вызван когда процес был в режиме ядра с чувствительными данными ядра на этом стеке. Должно ядро откатить этот системный вызов и сохранить его для перевоспроизведения и перезапуска позднее, предполагая, что обработчик сигнала завершится успешно?
В таких случаях Кен Томпсон(http://en.wikipedia.org/wiki/Ken_Thompson) и Деннис Ритчи(http://en.wikipedia.org/wiki/Dennis_Ritchie) предпочли простоту совершенству. Система UNIX должна иногда возвращаться преждевременно из системного вызова с ошибкой, что ничего не сделано - "Прерванный сискол" ("Interrupted System Call") - ошибка номер 4 (EINTR) в современных системах. Конечно, этот вызов прекращается (aborted), чтобы вызвать обработчик сигнала. Такое должно случаться только для горстки "долго-играющих" сисколов таких как read(), write(), open(), select(), и тд. Что касается плюсов, то это делает систему ввода-вывода намного проще спроектировать и понять. Подавляющее количество пользовательских приложений никогда не были затронуты, поскольку они не обрабатывают или не чувствуют сигналы отличные от SIGINT/^C и должны завершиться прямо в момент его получения. Для очень небольшого числа приложений - подобных шеллам или текстовым редакторам - которые отвечают на комбинации клавиш управляющих заданиями - эти приложения могли бы вставить небольшие обёртки вокруг сисколов и перезапускать сисколы сразу, как только ошибка EINTR произошла. Проблема решена простым способом.
Вследствие философии Unix, в течение многих ранних лет UNIX была операционной системой, падавшей несколько раз каждый день, в то же время это была ОС с наименьшими временами перезагрузки.
В течение дясятилетия, вследствие философии Unix и результирующей простоты системы, общим свойством UNIX систем стало превосходство над другими коммерческими операционными системами в среднем времени отказа измеряемом месяцами, а не часами.
------------------------------------------------------------
Raymond: Искусство Программирования в Unix
Eric S. Raymond(http://en.wikipedia.org/wiki/Eric_S._Raymond) в своей книге "Искусство Прграммирования в Unix"(http://en.wikipedia.org/wiki/The_Art_of_Unix_Programming) резюмирует философию Unix как широко известную инженерную философию KISS(http://en.wikipedia.org/wiki/KISS_Principle). Затем он описывает как по его предположению эта всеобщая философия применяется как культурная норма Unix, хотя неудивительно, что довольно просто найти серьёзные нарушения большинства следующих пунктов в фактической деятельности в Unix:
* Правило Модульности(http://en.wikipedia.org/wiki/Modularity_(programming)): Пиши простые части связанные чистыми интерфейсами
* Правило Доходчивости: Доходчивость лучше, чем мастеровитость (cleverness)
* Правило Разделения: Отделяй правила от механизмов; отделяй интерфейсы от реализаций (engines)
* Правило Простоты: Проектируй для простоты, добавляй сложность только где должен
* Правило Расчётливости: Пиши большую программу только когда ясно из демонстрации, что ничего другого она делать не будет
* Правило Прозрачности: Проектируй для обзора (~просмотра), чтобы сделать обследование и отладку проще
* Правило Надёжности: Надёжность есть следствие прозрачности и простоты
* Правило Представления: Свёртывай знания в данные, чтобы програмная логика была тупа и проста
* Правило Наименьшего Удивления: Проектируя интерфейс, всегда делай наименее удивительную вещь
* Правило Молчания: Когда программа не должна говорить ничего удивительного, она ничего не должна говорить
* Правило Восстановления: Когда вы должны выйти из строя, выходите из строя шумно как это только возможно
* Правило Экономии: Время программиста дорого, сохраняй его в предпочтении к машинному
* Правило Порождения(http://en.wikipedia.org/wiki/Code_generation): Избегай ручной работы, пиши программы, которые пишут программы когда можешь
* Правило Оптимизации(http://en.wikipedia.org/wiki/Optimization_(computer_science)): Прототип(http://en.wikipedia.org/wiki/Prototype) до полировки. Сделай его работающим перед тем как будешь оптимизировать
* Правило Разнообразия: Не верь утверждениям "единственно верный путь"
* Правило Расширяемости: Проектируй в будущее, потому что оно наступит быстрее чем ты думаешь
Многие из этих норм приняты вне коммюнити Unix - если не в момент когда Unix впервые использовал их, то позднее. Также, многие не уникальны для коммюнити Unix. Тем не менее, мастера прораммирования в Unix имеют тенденцию к принятию этих идей как основание стиля Unix.
Во, хоть один знающий чел попался! Раскажи мне, родной, как поменять это идиотскую дефолтную тему в jre с белыми фонами, а то глаза чай не казённые - беречь надо! Моник у меня хороший - а вот, падлы, дезигнеры, достали своими белыми фонами! Ну, подскажи, ведь простая задачка-то.
>Однако все не так просто. В виндовсе скажем вбухиваются огромные деньги на иследование "удобства использования"
Самое смешное, что никто и никогда ни привёл ни единого аргумента в доказательство этого утверждения! Ни ссылки с графиками, ни протокола исследования! Докажите мне, пожалуйста что "многомиллионные ислледования" - это не 3.14здеж, ато смотрю я на вендовые "удобства" и плакать хочицца!
> естественно круче. потому что в линуксе она не особо и нужна. даже вообще не нужна.
В винде она действительно круче. И без нее винюки бы не выжили вааще, и не были там, где они сейчас - на позиции безусловного лидера десктопа.
В линухе она нужна - но ее нет. Увы. Именно из-за бардака в двоичной совместимости оракл без напильника ставится только на очень небольшой набор дистрибутивов. Из-за нее, родимой, каждый новый релиз ядра (стабильного, чтоб его!) порождает волну вопросов со стороны несчастных пользователей двоичных дров разных видях. И т.д. и т.п.
Кстати, как раз недавно проскакивала статья на эту тему - о том, что Винюки, кажется, хотят потерять совместимость с несвежим софтом (и на этом основании очередное предрекание полного .... винюкам).
ГУИ-шный браузер Mosaic под вин3.хх датированый 1993 годом (более старой виндовой софтины с ходу не нашел) без каких-либо предврительных шаманств с ходу завелся в винХР СП2 датированой 2004 годом. Явно кто-то из нас двоих слил. Также явно, что это не я :)