войти зарегистрироваться

Open source whois

индекс
129,31

Почему свободное ПО не должно зависеть от Mono и C#

Решение Debian включить Mono в дистрибутив по умолчанию для того, чтобы запускать Tomboy, ведёт в опасную сторону. Использовать C# опасно, поэтому мы должны ограничить его использование.

Описываемая проблема не уникальна для Mono; любая свободная реализация C# имеет те же проблемы. Опасность в том, что Microsoft скорее всего планирует однажды задавить все свободные реализации при помощи патентов. (См. swpat.org и progfree.org). Это достаточно серьёзная угроза, и только дурак будет её игнорировать до тех пор, пока петух не клюнет. Уже сейчас мы должны принять соответствующие предосторожности против этой будущей опасности.

Это не означает, что реализовывать C# — плохо. Свободные реализации C# позволяют пользователям запускать их C#-программы на свободных платформах, что есть хорошо. Проект GNU тоже имеет реализацию C#, Portable.NET. В идеале, мы бы хотели иметь открытые реализации для всех языков, которые используют программисты.

И проблема не в самих реализациях, а скорее в приложениях вроде Tomboy, и других, написанных на C#. Если мы потеряем С#, мы потеряем и все такие приложения. Это не означает, что неправильно пользоваться C#-программами, но означает, что разработка и использование их сопряжена с существенным риском.

Мы должны систематически уменьшать нашу зависимость от реализаций C#. Другими словами, мы должны отговаривать людей от разработки программ на C#. Соответственно, мы не должны включать реализации C# в установки GNU/Linux, а взамен распространять соответствующие аналоги, написанные на других языках, если это возможно.

Прим. перев.: Наконец-то и Столлман это сказал. Лично для меня продвижение C#/.Net в массы есть часть плана Microsoft по популяризации Windows: сначала поддерживать видимость кроссплатформенности и простоты разработки, обеспечить себе большую пользовательскую и девелоперскую базу, ввести какое-нибудь собственное расширение, а потом «схлопнуть» поддержку других платформ (по версии RMS, задавив патентами другие реализации), и получить аудиторию, которая вынуждена будет перейти на Windows.

Я уже кидал на Хабр документ Еврокомиссии по поводу Microsoft, рекомендую всем ознакомиться. Он на английском, и нет времени его переводить. Но те, кто не учит историю, обречены её повторять.


UPD: Как обычно в подобных топиках, прошу минусующих хотя бы кратко отписываться, за что минус. Спасибо!

UPD: В блоге у nsinreal есть чудесный перевод статьи Джо Шилдза (Jo Shields) «Here we go again – why Mono doesn’t suck» / «Почему Mono хорош». Рекомендую всем, и противникам, и сторонникам.

комментарии (414)

  • Столман уже давно слегка выжил из ума, и видит Врагов Свободы даже чаще, чем Мицгол — евреев.

    И о какой кросплатформенности вообще речь? .NET — продукт микрософт, распространяется только под Windows. Кросплатформенность обеспечивают сторонние разработки, и микрософт их либо не поддерживает, либо поддерживает ограниченно, и без поддержки они точно не умрут.
    • Речь идёт о законодательном пресечении сторонних разработок: законы США это, вроде бы, позволяют.
    • Конечно, Столлман идиот, а вот Вы, Вы безусловно зрите в душу Стива, и знаете, что в сущности он добряк и дома у него стоит OpenBSD.
      • Судя по новостям, полгода назад Стив поставил себе Gentoo, и решил «тонко отмазаться» болезнями и положением здоровья, чтобы просто поковыряться… Свой человек! ^_^
        • Вы Балмера с Джобсом не путаете?
  • Тогда какая же будет альтернатива C#? или всему .NET Пусть тот же WPF или WCF. Как это все сделать просто и быстро на других платформах или языках?
    • Вас не смущает буква W в приведённых Вами аббревиатурах? Меня, например, сильно напрягает любая технология, которая привязывает меня к конкретному вендору (опять вспоминаю историю IT и опыт). Практически неважно, насколько эта технология крута, т.к. отсутствие поддержки или блокирование на конкретном решении рискует во много раз перекрыть бонусы от простоты и быстроты.
      • Пользователю сидящему на Windows не важны холивары. Ему надо чтобы программа была красивая и работала. Так же не хочется платить дорого за разработку супер уникального интерфейса.

        Понятно конечно, что эти технологии предназначены только для Windows. Но мы (программеры) можем делать это за денюшки и причем не сильно заморачиваясь на интерфейсах. Да и при работе с другими видами и сложностями. Пусть тот же TCP/IP или показать пользователю картинки и т.п.
        • Да, это я понимаю. Мы просто о разных вещах говорим: Вы говорите о локальной выгоде конкретных программистов и локальном счастье пользователей (aka «красиво и работает»), а я пытаюсь сказать о выгодах и затратах, связанных с дальнейшей поддержкой и развитием проекта (aka «это всё надо срочно переписать»).
          • А зачем срочно переписывать? И какие сложности в поддержке? Стоит у пользователя .net у вас стоит студия. в чем проблема?
            Все счастливы все рады?)
            • А если в систему до самой прямой кишки интегрирован Моно, и вдруг выясняется, что надо его убирать? Смерть системе по определению. Нафиг надо…
              • 1. Зачем в Windows Mono?
                2. Зачем Mono интегрировать до самой прямой кишки? Неужто нельзя без этого?
                • А разве Столлман беспокоится о Windows?

                  Он просто большой. Такую махину целесообразно либо сразу подо множество приложений юзать, либо не стоит запариваться.
              • А если надо менять платформу? Зачем вообще тогда языки программирования — создаем свой проц, свою платформу, свой язык и т.д. Тогда точно ничего менять не придется ;)

                По посту — бред. Я и до этого плохо переносил OpenSource, но теперь это похоже на сказку про негров, которые везде кричат, что о расизме, но сильнее расистов, чем негров, нет.
                • Расизм и опасения — разные вещи. Статья про то, что незачем рисковать, когда есть уже все свое.
                  • Сути это не меняет — вы же из дома выходите, хотя и кирпич на голову может упасть, и машина задавить, гопники подстеречь в переулке и т.д. Но Вы «опасаетесь» использовать что-то, только потому, что Вас «предостерег» больной, на всю голову, человек.
                    • Больной на всю голову сделал достаточно, чтобы заслужить как минимум уважение. Чисто технически. Он может бытть странным, очень странным, как многие из ярчайших инженеров прошлого и настоящего; но это не делает его дураком.

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

                      Кстати, а чего вы вообще обратили внимание на статью, если так не любите Open Source? Это мы его ценим, мы любим и мы вкладываемся в общую кучу инструментариев. Это настоящая работа, много работы, безумно много. И выбрасывать из-за чьих-либо патентов столько времени — обидно.

                      Для Столлмена же вообще это — дело всей жизни. Его можно понять.
                      • >Для Столлмена же вообще это — дело всей жизни. Его можно понять.

                        Понимать можно и нужно, на слово принимать все, что он говорит — не нужно. В этом разница.

                        P.S.: я не называл его дураком, я назвал его больным человеком.
                        • Прошу прощения, а чем именно вы его поняли?
                        • Что значит «на слово»? Он говорит, что есть вероятность использования Ms-ом .NET`a таким, негативным, образом.

                          Вероятность есть? Есть. Соответственно, Столлман рекомендует все же отказаться от использования этой технологии в дистрибутивах.

                          Тут не надо ничего принимать на веру. Логика, основанная на известных фактах, ничего необычного. А уж создатели дистрибутивов должны оценить и взвесить опасность против преимуществ, и сделать соответствующий выбор.
                          • =))) Ок, перефразирую:

                            >Мы должны систематически уменьшать нашу зависимость от реализаций C#. Другими словами, мы должны отговаривать людей от разработки программ на C#.

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

                            Есть такие вероятности? Есть. Но, несмотря на них, вряд ли Вы будете уговаривать людей, верно? А тут имеет место именно призыв…
                            • Не путайте божий дар с яичницей. Никто из homo sapiens не будет вам преднамеренно кидать кирпич в голову или строить коварные планы по заработку на отобранной у вас еде.
                              • > Никто из homo sapiens не будет вам преднамеренно кидать кирпич в голову или строить коварные планы по заработку на отобранной у вас еде.
                                Да конечно. Посчитаем количество пострадавших / погибших от черепно-мозговых травм?
                                • Мы вели разговор о случайном кирпиче, а не о разбое.
                                  • «Кирпич» обычно и есть случайный — по пьянке чего-то не поделили, нарвался на отморозков,…
                                    Специально кирпичом мало кто убивает — ножей и пистолетов мало, что ли?
                                    • Нет. Случайный кирпич — это по недосмотру каменщика плохо забитый раствор год назад в стене. Из-за чего от вибраций проезжающего мимо трамвая кирпич и выскочил кому-то на голову. Это еще можно назвать случайностью.

                                      Ваши примеры — не случайны. Ибо в них есть прямая зависимость от человека (я в общем о виде говорю, а не о конкретных личностях).
                                      • Выкинутая в окно, со злости, ваза с цветами, но попавшая в человека — случайность или нет?
                                        Камень из-под колеса проезжающего авто, попавший в человека — случайность или нет?

                                        Сколько еще примеров надо, чтобы стало понятно, что «случайность» — всегда результат каких-то действий. И не важно, противоправных или нет.

                                        Вероятность плохого стечения обстоятельств есть всегда. Но никто не одевается в бронижелет, если собрался прогуляться по улице, верно?

                                        P.S.: напомню — ветка пошла именно по той причине, что я высказал мнение о том, что неверно воспринимать чьи-то (не важно чьи) предостережения без существенных оснований.
                            • Именно. Шарп и Дотнет не нужны в Open Source стеке технологий, достаточно своих. Достаточно других языков, других технологий, других приложений.

                              Почему нет? Метафору можно повернуть как угодно. Столлмановский совет из разряда «не переходите улицу на красный», «не ползайте по стройкам», «пристегивайте ремень безопасности». А телодвижения… Следует отговаривать людей от опасных телодвижений, вроде прыжка с высокой вышки в темную воду. Вдруг снизу камни?

                              Именно. Вероятность есть, довольно серьезная, а потому разумно отговаривать людей использовать потенциально опасные вещи.

                              Ну вы же не спорите, что Ms в прошлом не раз использовала свое монопольное положения для борьбы с конкурентами?
                            • Вы тут немного неверными аналогиями балуетесь.
                              Столма говорит совершенно не о случайном кирпиче, а говорит, что использование моны в опенсорсе — это как HTC Diamond-ом ночью дорогу в гопском районе освещать, вроде как эффективно, но вот вероятность получения ЧМТ возрастает на 9000.
                            • кривые аналогии такие кривые…

                              Дебиан убрал моно из инсталяции по умолчанию, бубунта нет.

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

                              Своим вниманием к казалось бы мелочным проблемам (многим они казались не стоящими и по по сей день кажуться) он создал FOOS, а ведь и тогда была толпа говорящих про «ты че решил „Мы должны систематически уменьшать нашу зависимость от телодвижений“» и «бугага, мужик ты больной сумашедший человек» =)

                              Безмерно уважаю его за принципиальность и силу воли следовать, вопреки общественному мнению, за своими идеалами
                      • Какое там в прошлом: это реалии сегодняшнего дня.
                • зря вы так. Не надо ставить знак равенства между идеологией и человеком, ее исповедущим. Хоть он даже и главный ее идеолог.
                  • Тут именно в человеке дело. Многие принимают его слова на веру, только потому, что это Столлман. Вот это плохо!
                    • ну человека этого я тоже уже давно всерьез не воспринимаю.
                • Отличие OpenSource от любого вендора в том, что ваша приверженность к тому или иному вендору всем остальным сторонникам OpenSource (и, по сути, вашим «идеологическим» противникам) далеко до лампочки ^_^ Хоть бы вы даже собственную почку в жерву Microsoft или Apple презентуете — никому от этого ни плохо, ни хорошо не станет. Разве что себе лишних болезней заработаете.

                  А то, что закрытая технология не должна ставиться во главу угла — вполне разумная мысль. Жаль, что вы ее не смогли осмыслить в правильном направлении.

                  Мир не ограничивается одной платформой. Я до сих пор не знаю, почему поклонники Windows думают иначе.
                  • Отличный наброс, продолжайте так же.
                  • По поводу болезней… Скорее сторонники OpenSource зарабатывают себе болезни, т.к. использую OpenSource, чаще всего, разработчик обязан пахать на этот самый OpenSource в дальнейшем. Это ли не болезнь?

                    >А то, что закрытая технология не должна ставиться во главу угла — вполне разумная мысль.

                    Чем же она разумна? Тем, что OpenSource-софт, чаще всего, намного хуже? Или тем, что используя (случайно или умышленно) OpenSource-наработки, я обязан выложить весь свой код? Кстати, по этой причине давно отказался от Indy в Delphi.

                    >Жаль, что вы ее не смогли осмыслить в правильном направлении.

                    Я считаю, что оценил все правильно: параноик пытается навязать свою болезнь здоровым (пока что?) людям. Это нормально?

                    >Мир не ограничивается одной платформой. Я до сих пор не знаю, почему поклонники Windows думают иначе.

                    «Поклонники» Windows думают совсем о другом: об удобстве установки системы, когда уверен, что на 99,99% оборудования есть дрова; о привычном интерфейсе; о куче программ, среди которых легко выбрать то, что нужно, а не то, что дают; о легкости настройки системы, когда не надо ковыряться в конфигах и т.д…
                    • >> «Поклонники» Windows думают совсем о другом: об удобстве установки системы, когда уверен, что на 99,99% оборудования есть дрова; о привычном интерфейсе; о куче программ, среди которых легко выбрать то, что нужно, а не то, что дают; о легкости настройки системы, когда не надо ковыряться в конфигах и т.д…

                      Да не думают они об этом. Они ставят систему и сразу начинают на ней работать, не отвлекаясь на всякую ересь.
                      • Работать? Вы уверенны, что именно работать? ^_^
                        • Работать — звучит пафоснее =)
                    • >> чаще всего, разработчик обязан пахать на этот самый OpenSource в дальнейшем

                      Молодой человек, это OpenSource, здесь вас НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет. Ни на кого вы пахать не будете. Все делается по вашему личному желанию и с вашей личной подачи. Собственно, вас возмущает свобода такого широкого выбора? Нет стандартной почасовой зарплаты и чая в офисе?

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

                      >> Чем же она разумна? Тем, что OpenSource-софт, чаще всего, намного хуже?

                      Хм… На сегодняшний момент единицы программных пакетов существуют в единственной реализации и у них нет аналогов под свободные платформы. За всю свою историю жизни в свободной оси я еще ни разу не наткнулся на что-то невообразимое, чего не смог бы сделать имеющимися в моем распоряжении средствами.

                      Собственно, если средства доступны, они качественно изготовлены и их, в большинстве случаев, весьма удобно использовать — какой смысл дальше спорить?

                      >> Я считаю, что оценил все правильно: параноик пытается навязать свою болезнь здоровым (пока что?) людям. Это нормально?

                      Тут бы вас в пример ставить в качестве параноика, ибо нормальные люди скорее всего смотрят на этот холивар и улыбаются. Да и я, по сути, тоже улыбаюсь. Интересно просто разговаривать с фанатами Windows до мозга костей. Кстати, если уж вы о болезни заговорили — с каждым годом больных все больше и больше. Вас такая тенденция не смущает? А жаль… Статистика, говорят, самая интересная вещь в таких спорах.

                      >> Поклонники» Windows думают…

                      ИМХО, на этой фразе стоит закончить наш спор.

                      Мне намного важнее информация о работе моей системы, а не красивые графики и магия волшебных галочек «ткни и заработает!». Мне, как разработчику, намного важнее иметь возможность самому исправить свой низколетящий велосипед с тахионным двигателем на дровах, чем ждать милионного патча от Microsoft. Мне намного интереснее знать, как распределяется память, куда уходят лишние килобайты свопа и что же такое монолитное ядро.

                      И если мне будет необходимо — в своей системе я найду любую интересующую меня информацию прямо из коробки. Вместе с описаниями, пояснениями, комментариями таких же, как я, людей со всей планеты. Для которых «дух свободы за клавиатурой» — это, извините, не пустой звон в голове и не слова на ветер.

                      З.Ы. Как ни странно, именно такие люди честно платят за каждую купленную программу или игру тому же вендору, их изготовившему. Интересно, почему?
                      • раскрыть комментарий
                        • Вы знаете, я придерживаюсь мнения, что уж лучше я денек свой велосипед доковыряю и за три часа окажусь на орбите Марса, чем буду добираться туда на обычном велосипеде при помощи супер-уникального предложения по доставке пассажиров с велосипедами от компании «Microsoft Mars Trans» несколько недель.
                          • Поэтому линукс такой тормозной? =)
                            Я ставил убунту, по скорости СИЛЬНО проигрывает висте.
                            • о какой конкретно скорости идет речь?
                            • Я уже давно освоился с Gentoo и чувствую себя более чем довольным во всех смыслах.
                            • Тут все таки дело в клиент-серверной архитектуре X-Server'a, которая гоняет данные между клиентом и сервером на одной локальной машине чуть ли не через сокеты. Вряд ли это можно назвать фейлом, просто таковы корни и выбранная модель работы графической подсистемы.

                              А скорость выполнения приложений, не зависящих от узких мест сравниваемых ОС, почти одинакова.
                            • Фигня какая-то :) Ну честно :)
                            • Юбунта идет на таком дерьме, на который Виста в принципе не поставится :)
                              • А запорожцы плавают там где остальные машины тонут…
                                • Ну-ну. Я бы сравнил Линукс с военным джипом, который применяется в любых условиях. Серверы, кластеры, десктопы… Эдакий Гелинтваген. Вполне может быть комфортным при всех своих возможностях.

                                  Windows… Vista — только домой, Server — только на сервер, Mobile — только на трубку, про Cluster вообще никто и никогда не слышал просто-напросто потому что нигде не используется. И все довольно сильно отличаются.
                                  • Хорошее сравнение! Вы много ездили на Гелике? Мы его, в шутку, называли автобусом. Про внешний вид умолчу (кубик и есть кубик), а вот по удобству… Любой другой джип, классом намного ниже, покажется раем, если много ездить.
                                    • Вам очень нравятся метафоры, как посмотрю :) Факт остается фактом :) ОС и ОС, ничего страшного или особенного. Есть плюсы, есть минусы, все как у всех.

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

                                      :))) Не могу не подколоть :)) Младшей сестре вот так не кажется, маме — тоже :))) Но вам-то, как Айтишнику, с рулем не довелось справиться :)
                                      • С метафорами всегда проще объяснять позицию ;)

                                        >Основная разница — гораздо большая гибкость в сравнении в проприетарными комплектами, из-за кому-то система может показаться слишком сложной.

                                        Если брать «голые» системы — верно. Но, на самом деле, практически все системы очень гибкие, но в одних это скрыто, а в других пиарится ;)
                                        • Метафоры — художественный прием; мы ж здесь не о поэзии размышляем. Инженерная мысль — это из другой оперы, слава Богу.

                                          Шеф моего нынешнего проекта — аниматор, он без метафор объяснять не умеет. И это пипец. :) ТЗ = произведение искусства, не документ.

                                          Так вот. Насчет гибкости всех систем. Почему файловых систем под виндой мало? Почему под каждый класс оборудования — практически другая ось? Почему интерфейс в ядре? Как сменить менеджер окон? Зачем так много версий?

                                          • >Почему файловых систем под виндой мало?

                                            А зачем нужны множество файловых систем?

                                            >Почему под каждый класс оборудования — практически другая ось?

                                            Может потому, что это разные классы(!!!) оборудования?

                                            >Почему интерфейс в ядре?

                                            Если честно — не вижу в этом ничего плохого. Хотя, для кого-то, это может быть плохим стилем =).

                                            >Как сменить менеджер окон?

                                            А вот этого точно НЕ НАДО!!! Кстати, для W98 я использовал разные надстройки, наподобии LiteStep, Talisman… Правда не долго.

                                            >Зачем так много версий?

                                            Посчитаем количество версий линукса? =)
                                            • > А зачем нужны множество файловых систем?

                                              Да низачем, если бы едиинственная была на современном уровне.

                                              Хотя есть конечно специализированные ФС вроде squashfs или unionfs, которые могли бы и пригодиться.

                                              >> Как сменить менеджер окон?

                                              > А вот этого точно НЕ НАДО!!! Кстати, для W98 я использовал разные надстройки, наподобии LiteStep, Talisman… Правда не долго.

                                              Тоже использовал. Вы правы, все они ещё корявее и неудобнее дефолтного explorer'а.

                                              Кстати, под Windows так до сих пор и не написали ни одного фреймового WM'а. Неудобно же мышкой окна таскать.
                                              • >squashfs

                                                NTFS поддерживает сжатие на лету уж который десяток лет…

                                                >unionfs

                                                subst
                                                • subst может подмонтировать несколько каталогов на один «диск»? o.O И в какой из них будет происходить запись?

                                                  Или Вы не поняли, что такое unionfs?
                            • Потому что Линукс прежде всего серверная ОС, сами виноваты.
                          • Если бы прирост производительности от ковыряния был бы настолько грандиозным, как вы описываете, наверно виндовс потерпел бы позорное поражение еще много лет назад. Однако на деле прирост составляет несколько процентов, и то только в том случае, если конфигуратор сделал все чуть более чем идеально. Хотя порой получается весьма медленный велосипед обклеенный пластырями, да и то только в том случае, если пользователю хватит терпения прочитать тонны обкуренных красноглазых манов и дособрать свое «творение», а не послать все к чертям.
                            • Знаете, все дело в отношении к труду.

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

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

                              Разные подходы к одному и тому же вопросу.

                              Я не утверждаю, что правы в мире только часовых дел мастера. Но ограничивать их в их труде — я даже не знаю, каким образом это описать.
                              • Конечно, это две разные точки зрения, каждая из которых обоснована и имеет право на жизнь. Но немного удивляет, что «часовщики» порой забывают о том, что часы созданы для того чтоб показывать время, и зачем то считают низшими существами тех, кому от часов нужно только время…
                                • Компьютерные платформы — поле необозримо большее, чем часы. Часы, сами по себе — совершенно тривиальнейший пример, обозначивший только верхний пласт всего, что вообще возможно.

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

                                  И это тоже только верхушка айсберга.
                                  • Может посмотрите шире? Какая разница, часы или компы? Важнее — люди, которые пользуются этими вещами.

                                    В одном из комментариев к этому посту я сказал, что OpenSource-сообщество (а точнее, приверженцы) напоминают мне негров, которые на каждом углу кричат о дискриминации, но сами являются расистами, похлеще куклус-клановцев… После этого, я наблюдал, что будет происходить с моими комментариями и кармой. Ничего неожиданного не обнаружил: согласных с комментариями — много, часть молчит, часть поддерживает. А вот противники, по большей части, просто ставят минусы, т.к. ответить не могут, но хотят подавить.

                                    Тоже самое происходит и в жизни: мало кто понимает смысл в OpenSource, но много кто мечтает быть в OpenSource-сообществе, потому что это «модно».

                                    Вы, в данный момент, делаете тоже самое: пытаетесь убедить в том, что какой-то инструмент дает преимущества, но на деле, он даст преимущества только Вам, т.к. Вы готовы переделать инструмент под себя, а другие нет. Если взять Ваш пример с часами, то да, «часовых дел мастер» будет иметь самые точные и надежные часы в округе, но не потому, что марка его часов хороша, а потому, что он каждый день их чистит/регулирует и т.д.
                        • Прошу прощения за то, что влезаю в Ваш спор, но

                          > И скажите честно, давно ли вы правили исходники ядра линукса или используемых вами прикладных программ?

                          Делаю это в данный момент. Вот с этим: happypenguin.org/show?Mumble
                      • >Молодой человек, это OpenSource, здесь вас НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет. Ни на кого вы пахать не будете. Все делается по вашему личному желанию и с вашей личной подачи. Собственно, вас возмущает свобода такого широкого выбора? Нет стандартной почасовой зарплаты и чая в офисе?

                        Все как обычно — читаем только то, что нравится? =) Я даже пример привел. Ок, разжую: используя что-то под GPL, я ОБЯЗАН соблюдать GPL — верно? Дальше продолжать?

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

                        Как ни странно, я, в Вашем случае, тоже.

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

                        Везет. Для меня, первый пример — webmoney. Ну нет клиента под другие платформы. Ligth не предлагайте — функционал не просто ущербный, его нет.

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

                        Доступны: нет (цуиьщтун). Качественны: нет (OO). Удобно использовать: нет (GIMP, OO, Blender и т.д.). Да, действительно, спорить не о чем =).

                        >Тут бы вас в пример ставить в качестве параноика, ибо нормальные люди скорее всего смотрят на этот холивар и улыбаются. Да и я, по сути, тоже улыбаюсь. Интересно просто разговаривать с фанатами Windows до мозга костей.

                        Так и я улыбаюсь. Именно по этой причине захожу в подобные топики — понаблюдать, какие доводы приведут собеседники. Чаще всего — одни и те же. В Вашем случае тоже — доводы о доступности софта возникают постоянно, но как только приведешь небольшой список (webmoney, Гарант, Консультант+, 1С Предприятие), все вспоминают о wine =))))

                        >Мне намного важнее информация о работе моей системы

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

                        >Для которых «дух свободы за клавиатурой» — это, извините, не пустой звон в голове и не слова на ветер.

                        «Дух свободы» — это свобода от предубеждений. У Вас такого нет, не в обиду.

                        >З.Ы. Как ни странно, именно такие люди честно платят за каждую купленную программу или игру тому же вендору, их изготовившему. Интересно, почему?

                        Для Вас, покажется странным, но у меня лицензионная винда и офис + куча других программ. Да, я пользуюсь OpenSource-софтом, но все больше разочаровываюсь в нем. Хороший пример — OpenOffice. Промучился месяц — купил MSOffice.
                        • Товарищ, тот факт, что в мире OSS есть не только лицензия GPL, вы узнали только что, вот из этого моего поста, или специально об этом не упоминаете?
                        • >> Все как обычно — читаем только то, что нравится? =) Я даже пример привел. Ок, разжую: используя что-то под GPL, я ОБЯЗАН соблюдать GPL — верно? Дальше продолжать?
                          А кто вас обязывает использовать GPL? Найдите библиотеку под BSD-лицензией. Да не используйте в конце концов ничего и делаете ВСЕ свое. Кто вас в чем и где ограничил? Не понимаю…

                          >> Доступны: нет (цуиьщтун)
                          Это особенно порадовало.

                          >> Качественны: нет (OO).
                          Хм, покажите, что он НЕ КАЧЕСТВЕНЕН. Раз уж бросаетесь такими фразмами. У вас есть данные unit-тестирований? Или это в вас говорит просто неудобство обращения с интерфейсом?

                          >> Удобно использовать: нет (GIMP, OO, Blender и т.д.)
                          Снова сила привычки, а не действительное удобство. В качестве примера — после двухмесячного знакомства с Blender интерфейс 3D MAX мне кажется ущербным.

                          >> система работает и работает хорошо
                          Но недолго.

                          >> Что я сам распоряжаюсь, где что хранить на винте.
                          Собственно, в какой системе есть ограничения, что и как хранить на винте? О_о Покажите хоть одну такую.

                          В общем и целом пусть каждый останется при своем мнении. Я не считаю, что C# — это плохо. Я считаю пллохим то, что из-за притязаний сторонних лиц C# может резко перестать быть языком для всех и станет языком для избранных.

                          На этом прошу меня извинить, нужно готовить очерезной патч.
                          • >Кто вас в чем и где ограничил? Не понимаю…

                            Тут мы ни к чему не придем… В сторону.

                            >Это особенно порадовало.

                            Должно было быть webmoney. Действительно, порадовало, что получилось =).

                            >У вас есть данные unit-тестирований?

                            Для Вас, качество=unit-тестирование? Для меня: стабильность, скорость работы, удобство интерфейса.

                            >Снова сила привычки, а не действительное удобство.

                            Возможно. Но, в случае с OO это не так.

                            >Но недолго.

                            За год проблем не было. Переставлять не приходилось. Синих экранов не видел. Почему не долго то? =)

                            • > Тут мы ни к чему не придем… В сторону.
                              Вы уж определитесь. Коли начали разговор о свободных лицензиях, так изложите свою позицию. Да, GPL — такая, BSD — сякая, Apache — третья, еще кучу можно назвать. Выбирайте софт/библиотеки/etc под любой из лицензий, не зашоривайте свое сознание.

                              > Возможно. Но, в случае с OO это не так.
                              А я вот, например, хоть убей не вижу кардинальных отличий от того же 2003-го Офиса. Не стесняйтесь, расскажите о своих проблемах с ОО.

                              P. S.: По поводу времени работы системы, пожалуй, считаю спор неуместным. У меня и Windows, и *NIX-системы работают хорошо. Что десктопные, что на серверах. До сих пор не пойму, что делаю не так. :)

                              А стереотипное мнение о Windows-системах сложилось прежде всего из-за низкого порога вхождения. Это из разряда суждений вроде «PHP — язык для ламеров».
                              • >Вы уж определитесь. Коли начали разговор о свободных лицензиях, так изложите свою позицию. Да, GPL — такая, BSD — сякая, Apache — третья, еще кучу можно назвать. Выбирайте софт/библиотеки/etc под любой из лицензий, не зашоривайте свое сознание.

                                Я и определился — использую проприеритарные либы.

                                >А я вот, например, хоть убей не вижу кардинальных отличий от того же 2003-го Офиса. Не стесняйтесь, расскажите о своих проблемах с ОО.

                                Легко. Взял файл экселя, размером 1,8Мб, открыл его в OO, сохранил. Получил файл размером в 7,9Мб. По скорости открытия/сохранения, OO проигрывает в несколько порядков.
                                Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.

                                >А стереотипное мнение о Windows-системах сложилось прежде всего из-за низкого порога вхождения. Это из разряда суждений вроде «PHP — язык для ламеров».

                                Возможно. И считаю это плюсом.
                                • >>> Легко. Взял файл экселя, размером 1,8Мб, открыл его в OO, сохранил. Получил файл размером в 7,9Мб. По скорости открытия/сохранения, OO проигрывает в несколько порядков.
                                  Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.

                                  Звучит смешно, честно. Немного перефразирую:

                                  «Взял твердотопливный ускоритель от Шатла, прикрутил его к Энергии. Летит хреново и по скорости подъема проигрывает родному носителю Шатлов на несколько порядков, да и высота подъема груза на орбиту что-то совсем небольшая. Ко всему прочему топлива жрет больше. Могу еще упомянуть пару взрывов такой конструкции в воздухе и один на стартовой площадке, и доставка как-то не налажена.»
                                • > Я и определился — использую проприеритарные либы.

                                  Что, естественно, совсем не обязывает вас платить за это их разработчикам, так? Примеры либ можно?

                                  Рассказ же о злоключениях с ОО, мягко говоря, не впечатлил. Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит. Скорее подтвеждает тезис о (вредном?) низком пороге вхождения. Ах да, у меня ОО не зависает и не портит формулы, куда мне обращаться?

                                  У меня, кстати, есть обратный пример, который за три года учебы в вузе уж поднадоесть успел. Преподаватели не перестают снабжать студентов (в том числе меня) лекциями/методическими пособиями/etc, в форматах Word/PP разных версий (где форматирование плывет даже у одногруппников при открытии в Офисе). И ладно бы, мне открыть ОО, сконвертировать в PDF, а потом спокойно читать не сложно. На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?
                                • > Я и определился — использую проприеритарные либы.

                                  Что, естественно, совсем не обязывает вас платить за это их разработчикам, так? Примеры либ можно?

                                  Рассказ же о злоключениях с ОО, мягко говоря, не впечатлил. Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит. Скорее подтвеждает тезис о (вредном?) низком пороге вхождения. Ах да, у меня ОО не зависает и не портит формулы, куда мне обращаться?

                                  У меня, кстати, есть обратный пример, который за три года учебы в вузе уж поднадоесть успел. Преподаватели не перестают снабжать студентов (в том числе меня) лекциями/методическими пособиями/etc, в форматах Word/PP разных версий (где форматирование плывет даже у одногруппников при открытии в Офисе). И ладно бы, мне открыть ОО, сконвертировать в PDF, а потом спокойно читать не сложно. На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?
                                  • Прошу прощения за дубль.
                                  • >Что, естественно, совсем не обязывает вас платить за это их разработчикам, так?

                                    Вообще — плачу, если использую ;). Примеры: DLE (как CMS), TMC в Delphi.

                                    >Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит.

                                    Родной формат еще не стал форматом де-факто, поэтому пользуюсь тем, чем пользуются партнеры. Как Вы определили, что я не умею пользоваться текстовым/табличным редактором? =))))

                                    >На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?

                                    Не только нормально, но и правильно! Не этого ли добиваются поборники OpenSource — стандартов? =)))

                                    P.S.: если уж пытаетесь похоливарить — не пытайтесь показать свою крутизну: Вы не знаете меня и мой опыт, я — Ваш. OO использовал как-раз по причине попытки пересесть на OpenSource-cофт.
                                    • Я думаю, все бы получилось, подойди вы к вопросу с другой стороны.
                                      • Не получилось… К линуксу «подходил» раз семь…
                                        • :) Понимаю вас :) Непривычно, должно быть, бывало.

                                          Особенно трудно, если по работе не очень надо; и есть большой опыт работы с виндой, за который платят.

                                          Я переключился с первого раза в универе. Однако, было не очень жестко… Отец — программист, дома всегда стоял Дебиан, винды все чаще совсем не было. В те времена труднее всего было отказаться от игрушек. Все остальное, в общем-то, есть.

                                          Сейчас так вообще без проблем… Средняя Юбунта ставится за пятнадцать минут.
                                        • Это был замечательный забег Специальной Олимпиады.
                                          Поздравляю участников!
                                    • Вы говорили о проблемах со «стабильностью, скоростью работы, удобством интерфейса». А рассказали о форматах файлов, используемых вашими «партнерами». Одному мне это кажется странным?

                                      Про «дистрибуцию»: таки вам кажется нормальным, что текстовый процессор (и его формат файлов) используется не столько для подготовки документов, сколько для их распространения? То, что MS открыло нечто, напоминающее спецификацию OOXML, за движение в сторону стандартизации может приниматься с большой натяжкой. Особенно, если учесть обстоятельства публикации этой спецификации.

                                      P. S.: У меня и мысли нет показать чью либо крутизну, или же «похоливарить». Задумайтесь, почему именно вам первому пришла в голову мысль об этом.
                                      • >По скорости открытия/сохранения, OO проигрывает в несколько порядков.

                                        Это ли не проблема со скоростью?

                                        >Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.

                                        Это ли не проблема со стабильностью?

                                        Может, все-же, будете читать полностью, а не только то, что устраивает Вас?

                                        >таки вам кажется нормальным, что текстовый процессор (и его формат файлов) используется не столько для подготовки документов, сколько для их распространения?

                                        А по Вашему, нормально будет, когда для подготовки данных используется один формат, для печати другой, для передачи третий, а для архива четвертый? Вы всегда готовите текст в RTF, для печати делаете PDF, для передачи HTML, а для архива XML? Нет?

                                        >P. S.: У меня и мысли нет показать чью либо крутизну, или же «похоливарить».

                                        Тут уже хуже — показ совей глупости, уж извините за грубость. Я показывал именно работу OO с данными, пусть и не в родном формате. Но ведь OO заявляет о полной поддержке MSOffice-форматов, верно? =)

                                        >Задумайтесь, почему именно вам первому пришла в голову мысль об этом.

                                        Может потому, что у Вас это бросается в каждом предложении? Может и Вам стоит задуматься?
                                        • Насколько я понимаю ситуацию, Ms-форматы — вообще вещь практически неконтролируемая, и не вина разработчиков OO, что оригинальный продукт не поддерживает знаменитый международный формат.

                                          В принципе, для протого чтения и передачи информации с небольшой погрешностью OO или Lotus Symphony действительно вполне хватает.

                                          причина популярности doc(x) — именно практически монопольное положение Компании на рынке, а не какие-либо серьезные плюсы по сравнению с odf-тусовкой. Вы ж инженер, должны это понимать и не одобрять.
                                        • По поводу ваших проблем вам уже ответили, какие из них объективные, а какие растут из вашего неумения пользоваться рабочими инструментами.

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

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

                                            Даже комментировать не буду…

                                            >По поводу форматов — к чему вы перечислили все известные вам форматы?

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

                                            >Потрудитесь объяснить, чем так хорош XML для архивов, и где я хотя бы намекал на такое его применение.

                                            Легкость конвертирования в любой другой формат, хорошее сжатие архиваторами. Хватит?

                                            >По поводу заявлений ОО «о полной поддержке форматов Офиса» — будьте добры, пруфлинк.

                                            google.com
                                            • Что ж, аргументация своей позиции путем перехода на личности — достойно не мальчика, но мужа.

                                              Уж потрудись более свои комплексы на публику не выплескивать.
                                              • >Что ж, аргументация своей позиции путем перехода на личности — достойно не мальчика, но мужа.

                                                Отвечаю в Вашем же стиле.

                                                >Уж потрудись более свои комплексы на публику не выплескивать.

                                                Сейчас снова обидитесь. Комплексы (а точнее, мания величия) есть у Вас: в каждом своем комментарии Вы пытаетесь показать свои знания (форматов файлов, знание лицензий, умение использовать любой софт и т.д.). Поверьте, другие знают и умеют не меньше.
                        • Извините, но Blender — узкоспециализированный софт, который просто не предназначен для использования «простыми пользователями», с какой стати он должен быть «интуитивно понятным» (он жестко нацелен на продуктивность, поэтому все завязано на «неинтуитивные» хоткеи)?
                        • Вы не знаете, что такое GPL. Вы ее, судя по всему, даже не пытались прочесть.

                          Судя по всему, вы называете себя программистом, да? Извините, но из ваших комментариев я могу сделать вывод, что вы суть обыкновенный такой ex-СССР юзер, которому нужно до усрачки софта общей стоимостью больше $10k.
                          Вот скажите, нахрена вам одновременно 3D-редактор, граф.редактор, офисный пакет… Что там еще? Cubase? Premier? ЗАЧЕМ?
                          Зачем вам ОФИСНЫЙ пакет ДОМА? Что вам нужно от ворда? Господи, да любой сраный наколленый блокнот покроет ваши потребности на 99%. Еще один процент уходит на редактор формул. Фотошоп… Это уже даже не смешно, честно. Прыщи замазывать на фотках, сделанных цифромыльницей — вот его основное применение на постсоветских просторах.

                          Завязывайте уже с троллингом, а?
                          • >Вы не знаете, что такое GPL. Вы ее, судя по всему, даже не пытались прочесть.

                            Ну это Вы зря.

                            >Извините, но из ваших комментариев я могу сделать вывод, что вы суть обыкновенный такой ex-СССР юзер, которому нужно до усрачки софта общей стоимостью больше $10k.

                            На основе каких комментариев Вы сделали такой глупый вывод?

                            >Вот скажите, нахрена вам одновременно 3D-редактор, граф.редактор, офисный пакет… Что там еще? Cubase? Premier? ЗАЧЕМ?

                            Кто сказал, что это ВСЕ стоит на моем компе? Вы пришли к такому выводу из списка приложений, который я давал в одном из комментов? Ну тогда, возможно, Вам стоит прочесть полностью коммент, а не только название софта ;).

                            >Зачем вам ОФИСНЫЙ пакет ДОМА? Что вам нужно от ворда? Господи, да любой сраный наколленый блокнот покроет ваши потребности на 99%. Еще один процент уходит на редактор формул.

                            Мда… Кто сказал, что ДОМА??? Точнее так — кто сказал, что я ДОМА не могу работать? Блокнот не покроет даже 50%, не говоря о большем. Если взять в пример Word, то мне, помимо написания текста, нужно еще рецензирование, вставка таблиц и т.д.

                            >Фотошоп… Это уже даже не смешно, честно. Прыщи замазывать на фотках, сделанных цифромыльницей — вот его основное применение на постсоветских просторах.

                            Ну хз… Я не фотограф, даже фотоаппарата до сих пор нет дома (правда, есть видеокамера). А фотошоп применял для нарезки дизайнов сайтов + изредка, редактирования изображений (добавление ватермарков, обрезка сложной формы и т.д.)

                            >Завязывайте уже с троллингом, а?

                            Ну так и завяжите. По Вашему комменту напрашивается один простой вывод: Вы дебил, который считает себя пупом земли, а остальные только «балуются».
                            • >Ну это Вы зря.

                              Значит, перечитайте еще раз. И еще. И еще. До просветления.

                              • >Значит, перечитайте еще раз. И еще. И еще. До просветления.

                                До просветления и читал. Просветление заключается в том, чтобы не использовать эти лицензии, а использовать логику: хочешь отдать — отдавай и не проси ничего в замен, хочешь продать — продай. Но отдавать и ТРЕБОВАТЬ что-то, это верх наглости и глупости.

                                Советую и Вам думать над прочитанным, хоть изредка.
                                • Логика GPL — в защите наглости некоторых софтверных корпораций. Тех, которые подчистую слизывают стек tcp-ip из БСД, а потом рассказывают всем, что это их разработка. Тех, которые патентуют дабл-клик и скроллбар.
                                  И все-таки поясню момент, который вы, похоже, упустили: GPL не заставляет вас открывать ВЕСЬ код вашего продукта. Если вы используете GPL-либу, вы должны всего лишь упомянуть автора этой либы и дать доступ к ее коду.
                                  • А вы не путаете GPL и LGPL?
                                  • Вот, например. www.gnu.org/licenses/gpl-faq.html

                                    Q: Can I release a modified version of a GPL-covered program in binary form only?

                                    A: No. The whole point of the GPL is that all modified versions must be free software—which means, in particular, that the source code of the modified version is available to the users.

                                    Q: If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license?

                                    A: Yes, because the program as it is actually run includes the library.

                                    То есть, использовать GPL (не LGPL) код можно только в GPL-совместимых проектах.
                                    • Я немного неясно выразился. Под понятием «библиотека» имелся в виду не столько исходный код либы, сколько ее бинарник, который линкуется с сабжевой closed-source программой.

                                      Q: Can I release a non-free program that's designed to load a GPL-covered plug-in?

                                      A: It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

                                      If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

                                      If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

                                      Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.

                                      See also the question I am writing free software that uses a non-free library.

                                      Q: I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?

                                      A: You cannot incorporate GPL-covered software in a proprietary system.
                                      [skipped]
                                      A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all.
                                      [skipped]

                                      However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

                                      Как видите, ситуация довольно размыта, и четких рамок нет. Но в целом мы имеем то, что имеем: использовать GPL-софт в проприетарных продуктах можно, хоть и с некоторыми неудобствами.
                                      • Так вот же: However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

                                        Фактически, вы можете использовать GPL код с проприетарным только тогда, когда GPL «модуль» и проприетарное приложение могут работать независимо друг от друга. Это довольно редкий случай. Как правило, вам нужны «либы» именно потому, что в вашем софте нет функциональности этих «либ».
                                • У комм.лицензий жесткие требования, которые требуют от юзера соблюдения определенных правил
                                  • Верно. Поэтому они ПРОДАЮТСЯ, а не отдаются «бесплатно».
                                    • Они не продаются, а, фактически, арендуются
                                • История простая. Никто и ничего не требует. Это предложение, не угроза.

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

                                  Аналогично, такая лицензия дает возможность создавать какие-либо нейтральные проекты. Например, Linux нужен Sun, Oracle, IBM, Redhat и многим другим. Лицензия гарантирует, что вклад каждой из корпораций останется в общедоступным.

                                  • >История простая. Никто и ничего не требует. Это предложение, не угроза.

                                    GPL читали? Точно не требуют? =)))
                                    • Я GPL очень хорошо знаю и понимаю.

                                      Так вот. Вам запрещают знакомиться с кодом? Нет. Можно использовать идеи, если уж из жадности не хочется брать сам исходник. Запрещают отдавать или продавать? Да нет.

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

                                      Она ограничивает не сколько разработчиков, сколько предпринимателей, вечно изобретающих способы создать очередную монополию или желающих просто использовать часы общественной работы в свою пользу.
                            • обрезало коммент :(

                              >Ну это Вы зря.

                              Значит, перечитайте еще раз. И еще. И еще. До просветления.

                              >Мда… Кто сказал, что ДОМА??? Точнее так — кто сказал, что я ДОМА не могу работать? Блокнот не покроет даже 50%, не говоря о большем. Если взять в пример Word, то мне, помимо написания текста, нужно еще рецензирование, вставка таблиц и т.д

                              Вы сами и сказали, что дома. «у меня лицензионная винда и офис». Если бы речь шла о рабочем месте, вы бы не написали «у меня».
                              Работать дома — ради б.га. Только я никак в толк не возьму, чем же вы занимаетесь. Тут и дельфи, и пхп, и рецензирование, и составление сложных документов, и нарезка дизайнов. Дайте угадаю — «мастер на все руки»? Странно, что к вашему возрасту это еще не прошло.

                              >фотошоп применял для нарезки дизайнов сайтов + изредка, редактирования изображений (добавление ватермарков, обрезка сложной формы и т.д.)

                              О да! Это и есть основное предназначение фотошопа! Спасибо, что открыли нам глаза.

                              >По Вашему комменту напрашивается один простой вывод: Вы дебил, который считает себя пупом земли, а остальные только «балуются».

                              Забавно. Человек, не имеющий отношения к Моно, приходит в топик о Моно и начинает усиленно всем доказывать, что линукс — это баловство. И этот же человек обвиняет меня в том, что я-де занял такую же позицию. Сударь, давайте уже заканчивать холиворы. Не мешайте нам в нашем опенсорсном мире самим разбираться: нужен нам дотнет или нет.
                              • >Дайте угадаю — «мастер на все руки»?

                                Не угадали. Есть основная работа (составление отчетов, программирование php), есть freelance (php, delphi), а есть хобби (создание сайтиков, сервисов, программок).

                                >Вы сами и сказали, что дома. «у меня лицензионная винда и офис». Если бы речь шла о рабочем месте, вы бы не написали «у меня».

                                Вообще, чтобы было более понятно, я работаю на личном ноуте. Поэтому — «у меня».

                                >Это и есть основное предназначение фотошопа!

                                А кто-то говорил о «предназначении»? Я что-то пропустил? Насколько помню, говорили об удобстве, верно? Не надо переворачивать смысл сказанного.
                        • Издали похоже на священную войну двух фанатиков, конкурирующих за потенциальных приверженцев своих религий. ;)

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

                          > Как ни странно, я, в Вашем случае, тоже.
                      • >это OpenSource, здесь вас НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет. Ни на кого вы пахать не будете. Все делается по вашему личному желанию и с вашей личной подачи.

                        У каждой полки много концов. «НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет» —
                        это именно это отталкивает многих. «Баг? Ну поправьте сами, сорцы-то у вас есть...». Вот классно-то, правда?

                        В общем старый спор о том, что лучше — «отвалилось колесо — прикрути, отвёртки у тебя есть» vs «колёса не отваливаются(производитель дорожит своей репутацией) а если вдруг это случится то есть фирменное СТО».
                        • А тот факт, что security critical updates для известных уязвимостей порой не выпускаются Microsoft (к примеру) в течение дней, недель, а то и месяцев — не отталкивает?
                          • Отталкивает. Но в гораздо меньшей степени. Т.к. они их всё-таки выпускают. А не предлагают мне самомоу ковыряться в коде, создавать собственные версии windows а потом как-то мерджить их с основной линейкой.
                            :)
                            • Вы отличаете возможность от необходимости? Вам никто не предлагает ни в чем «ковыряться». Но возможность такая есть.
                    • Не холивора ради… вот я хрупкая девушка, поверила в мужские сказки о «драйверах которые всегда с тобой», «легкую установку» и «простую настройку».

                      До сих пор не могу на ноутбук установить виндовс =(
                      Весь диск забит его исошками… три дистрибутива линукса на нем сменилось, а винду поставить не могу… слишком непосильная для девушки это задача.

                      До сих пор вспоминаю мои мучения с расшариванием папки в виндовсе(она не расшаривается и все тут) и как изяшно самба настраивается редактированием понятного(с коментариями) конфига в vi.

                      Все вы мужики врете про понятный и простой виндовс, вам бы лишь девушек смущать =)
                      • Мучительный процесс «правая кнопка ->Properties->Sharing» vs такой милый и понятный vi и разбор конфигов(полагаю этому предшествовал долгий поиск в man-ах/на форумах «где эти чёртовы конфиги лежат и кто за что отвечает»)…

                        Да вас просто в отдел пропаганды linux way надо! lol
                        • В винде тоже бывают просто тупо глюки. Помнится, случалось такое: ну не работает — и все. В одной версии работает, в другой — нет. С одним сервиспаком — есть, в другим — нет. И черт его знает, в чем дело…
                        • ага, особенно если отключена служба доступа к файлам и принтерам майкрософт ;) (или стоит галка в настройках експлорера эту менюшку не показывать) давай те не будем говорить что у МС все просто, все привычно и известно да, но все просто и интуитивно… я сомневаюсь что такое возможно при таком кол-ве функционала.
                        • >Мучительный процесс «правая кнопка ->Properties->Sharing»

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

                          и эти знания на меня тоже не сошли при рождении, читала документацию «куда там кликать, чтобы папка по сети была видна», я еще не забыла времена обучения «пользованию самой интуитивно понятной ос»)

                          >(полагаю этому предшествовал долгий поиск в man-ах/на форумах «где эти чёртовы конфиги лежат и кто за что отвечает»)

                          в конфиге есть коментарии, которые обычно понятнее сферического окошка с галочками, конфиги лежат вообщем-то где и обычно должны лежать конфиги, чего их искать то)

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

                          >Да вас просто в отдел пропаганды linux way надо!

                          увы у нас гет зе фактс писать некому, приходиться как все в FOOS своими силами)

                          командная строка и текстовые конфиги такой же интерфейс как и окошки, только затраты на обучение больше, хотя потом все гораздо удобней и быстрей…
                          • >и эти знания на меня тоже не сошли при рождении, читала документацию «куда там кликать, чтобы папка по сети была видна», я еще не забыла времена обучения «пользованию самой интуитивно понятной ос»)

                            А вот я никода специально не изучал Windows. Хотя проблем с «открыть шару», «назначить права на запись» или там «добавить mime-type для сайта»не возникало. :)

                            В отличии от.

                            Т.е. в одном случае знания сошли, а во втором — нет…

                            >в конфиге есть коментарии, которые обычно понятнее сферического окошка с галочками, конфиги лежат вообщем-то где и обычно должны лежать конфиги, чего их искать то

                            Сразу виден опытный линуксоид.

                            «А чего их искать? Очевидно, что лежат они в /usr/какой-то_путь/config/… Не менее очевидно, что из этой свалки надо взять share_local.cfg… Ну что тут может быть непонятного? Да вот же, 754 строка конфига, в коментариях же ясно написано...». :)

                            Собственно именно это отличает линуксоида от «обычного»(т.е. MS ) ) пользователя: вы всё-же немного админ и для вас непонятно, ну как же можно было сразу не догадаться, где конфиг для конфигурации таких задач лежит :).

                            >единственное, чего пока не хватает — более вылизаных настроек по умолчанию
                            Удивительно, но эту фразу я слышу уже лет десять. :)

                            >хотя потом все гораздо удобней и быстрей…
                            Хм… Что «всё»?
                            • все — это любые операции с файлами

                              на самом деле за десять лет настолько много всего сделали… но всегда хочется большего)

                              >Хотя проблем с «открыть шару», «назначить права на запись» или там «добавить mime-type для сайта»не возникало.

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

                              >Т.е. в одном случае знания сошли, а во втором — нет…

                              ну и на меня сейчас знания начинают сходить, когда принципы работы стали понятны)) когда понимаешь принцип, становиться ясно, где искать, куда писать и на что нажимать.
                              • вот это та причина, по которой мне больше нравится линукс и бздя, винда учит галки жать и по волшебству видеть результат. В линуксе нужны знания основ и ты их учишь и запоминаешь, так как есть где применять.
                  • А какие есть альтернативы? Вот пишут игры и графику под directx, пишут миниприложения под iphone, пишут кучу приложений под java. Первое — MS, второе Apple, третье — SUN. Что, всем бросать это дело и переходить на разработку исключительно мультиплатформенного ПО независимого от компании-создателя языка? Перейдем все на С, например? И будем все писать под unix — он же такой мультиплатформенный…

                    Вы говорите странные вещи. Неужели вы не понимаете, что поклонники UNIX считают, что мир ограничен unix, поклонники apple — считают, что нет ничего лучше macos, а те, кто всю жизнь работал только с windows предпочтут работать именно с ней? Да, последних больше, ну и что?
                    • Ограниченность прежде всего в мозгах, а не в операционных системах или платформах. Вот о чем я.
                    • непонятно другое. почему 90% нужного OpenSource софта есть и под Mac, и под Windows, а наоборот нету нихрена?
                  • С каких это пор CLI стал закрытой технологией?
            • Предположим пользователь сказал, что с целью уменьшения затрат на закупку ПО и ОС решено перейти на свободные технологии. И внезапно у него исчезла .NET. О совместимости с mono Вы не заботились.

              Ваши действия?
        • А важна ли пользователю скорость работы приложения? с чего он должен любить тормозные поделки, жрущие память, работающие на байткоде (который используется только ради того, чтобы скрыть исходники), и требующие выкачивания многомегабайтного фреймворка, который еще и ставится через раз, и которого легко может в системе накопиться аж 4 версии. Ну не идиотизм ли?

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

          Как же я не люблю тех кто пишет десктопные (ладно, с серверами пофиг, пишите туда что хотите) программы на недоработанных, плохо сделанных библиотеках/фреймворках вроде .NET, Java, qt и Gnome. Только люди, которым неважно качество продукта могут ими пользоваться, я считаю.
          • Не стоит публично выплескивать ваши стереотипы, я вас умоляю.

            Я могу рассказать о программах на Java. Работают — быстро, цели использования байткода — совсем другие, тут вы просто палцем в небо угодили. Фреймворк выкачивать надо? А другие приложения, которые вы используете, совсем без сторонних библиотек обходятся? Что это, интересно? Блокнот и Paint?

            «библиотеках/фреймворках вроде .NET, Java, qt и Gnome» — перечислены, соответственно, фреймворк, программная платформа, фреймворк и среда рабочего стола (sic!). Вы правда отдаете себе отчет, что значат все эти слова, которые вы используете при письме?
            • Gnome — имел в виду приложения на GTK+ и библиотеках Gnome. Оттого что .NET программная платформа, мне ни жарко не холодно :)

              Насчет Явы — вспомните, когда ее разработали. Производительность надо мерять на железе того времени, я считаю, а не на современных 8ядерных процессорах. Тут то и окажется, что целью sun было побыстрее захватить рынок, а о производительности особо не думали.

              Хороший фреймворк — это тот, который, с одной стороны, облегчает разработку ПО (не требуя писать тонны каши, как например в случае с языком Си++ и winAPI), с другой стороны, выносит все ресурсоемкие операции на этап компиляции, и не пытается в рантайме заниматься компиляцией, или загружать в память монстрообразные библиотеки ради вывода таблицы и пары кнопочек, или хранить в памяти имена функций/переменных вместо указателей на них.
              • Вспомнить, когда разработали, простите, что? Какой из компонентов платформы Java? Спецификация ЯП Java 1.0 была выпущена в 1995 году, если об этом спрашиваете. Ах да, и разрабатывалась Java (Oak) изначально для встраиваемых устройств. Вы предлагаете тестировать производительность, к примеру, Jabber-сервера Openfire на микроволновке? На наручных часах?

                Второй раз прошу озвучить список «правильного» ПО. Его производительности на Pentium-133 мы тоже протестируем, будьте уверены.
                • > Ах да, и разрабатывалась Java (Oak) изначально для встраиваемых устройств.

                  Ну вот мы и узнали, почему она так плохо работает :)

                  > Вы предлагаете тестировать производительность, к примеру, Jabber-сервера Openfire на микроволновке?

                  Ну тестировать можно например на железе 95-го года, пентиум 2 и 32 мегабайта памяти, или что тогда там было.

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

                  Вопрос про программы — это например, программа для ведения заметок Keynote (просто дерево заметок + RichEdit), программа для воспроизведения музыкальных файлов Foobar2000, терминал Putty, редактор Scite. Эти программы удивили меня своими низкими системными требованиями, и тем, что запускаются мгновенно (это радует особо, считаю что современный процесор, выполняющий под миллиард операций в секунду, не должен заставлять пользователя ждать пока появится окошко программы. Ладно, если программе надо обработать 100 млн записей — придется подождать, но запускаться-то она должна сразу!)

                  Еще есть Тотал Коммандер, он правда чуть тормознее. Есть miranda, тоже тупит слегка. Есть RocketDock, имитация соответсвующего компонента с макоси, я им не пользуюсь, но просто вспомнил, так как он совсем не тормозит и ест всего около 6 Мб памяти, что ли.

                  Есть видеоплеер Mplayer, правда им я пользуюсь не столько из-за его системных требований, а из-за простоты интерфейса и отсутсвия необходимости в Windows-кодеках.

                  Есть Opera, не такая быстрая, но меньше нее ресурсов ест только ИЕ6, а им по ряду причин неохота пользовться :((

                  По моему, так неплохой набор программ. И после этих программ переходить на написанные на Явах или дотнете — просто неохота. Сами ешьте свои кактусы :)
                  • Так, стало быть, Openfire мы будем тестировать на железе 95-го года. А Миранду (на C++ писанную), выходит, на железе 85-го? Не потрудитесь у Страуструпа поинтересоваться, что за железо было-то?
          • Во первых байт код как раз таки наоборот не скрывает исходники а «защищает» пользователя от «вирусов». Чем вас обидел .NET кроме того что это продукт мелкомягких??? Вот лично ваш пример? А потом будем считать и писать
            • Во-первых, насчет вирусов. На байткоде тоже можно написать процедуру удаления, или искажения соджержимого файла. С другой стороны, машинный код может быть безопасным, посмотрите например реализацию от Гугла для безопасного выполнения машинного кода (Native Code Client или как-то так).

              Во-вторых, имхо причина популярности байткода одна. Смотрите. в разработке ПО часто участвует множестов игроков. Кто-то пишет компоненты, кто-то библиотеки. Наверняка многие из этих компаний пишут фигню, но им неохота, чтобы другие это видели, и они боятся что их криво написанный код кто-то украдет.

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

              По моему, это наиболее важная причина.
              • «Наверняка», «по-моему»… Пруфлинки-то где? На библиотеки, распространяющиеся исключительно в бинарном виде, в сравнении с теми, для которых доступны исходники?

                И вот еще что. Давайте вместе поищем «кашу» в исходниках, например, Apache Commons. В разработке как раз участвовало «множество игроков».
              • В этом самом байт коде который на .net система сама может понять что выполняется что то нехорошее. Поэтому и существуют запросы к доступу к реестру или на запись в файл.

                Если кто-то пишет говно, то даже если это компилировать в машинный код ЭТО говном не перестанет быть.

                Это плохо что люди видят исходники? Учатся? Учатся не делать таких ошибок?
        • Пользователю, сидящему на чем угодно, надо, чтобы программа была красивая )))
          Админу — может и нет, а пользователю — всегда…
    • ну, вообще вроде человек, про .net в мс виндовз то и ничего не говорит ;) речь о том, что нужно меньше юзать моно в линуксах и другом опенсорсе ;)
    • Python, Ruby.
      • Java, Java! :)
        • Java хороша, но мне кажется что пора сделать шаг из 90ых, всё таки языки сильно изменились. Ну как минимум 90 % программы можно написать на скриптовых языках, для критических мест оставив Java|C.
        • Grails, Grails!:)
          • Grails наделал ненужных замут. Если так хочется динамичных языков, то лучше через JRuby или Jython подключить рельсы или джангу.
            • Что за замуты?
  • НЛО прилетело и опубликовало эту надпись здесь.
    • Нужно ему еще проект замутить по поводу свободного фреймворка для быстрой разработки, по аналогии с дот нетом или фоундейшн/аппкит. Тогда снизится привлекательность несвободных платформ.

      Было бы весьма интересно взглянуть на подобный универсальный для всех *nix фреймворк. *nix все такие разные, тот же POSIX и то не может гарантировать 100% совместимость кода. Интересно, как бы Open Framework «мирил» различные операционки. А если бы он действительно их «мирил», как бы это упростило жизнь!
      • как минимум тут же прибежалабы толпа красноглазиков и наделала форков с изменением функции выводящей «Hello World» с добавлением всяких фентифлюшек
        • Ооо, да вы прям преисполнены вселенским уважением к тем, о ком говорите. Браво!
          • совершенно верно
            именно «уважением»
            ибо вместо того, чтобы дорабатывать основной продукт, делается форк и силы тратятся на мекие фентифлюшки
            в итоге куча аналогов на общей кодовой базе и все недоделаные…

            но это отдельная тема
      • НЛО прилетело и опубликовало эту надпись здесь.
        • Полностью согласен. И мне очень интересно, как этот фреймворк будет (может) выглядеть. То есть, может ли он действительно охватить изрядную часть мира открытого софта, или же он возможен только для кого-то отдельного.

          POSIX — просто стандарт, я привёл его как пример того, что *nix мир очень разный, и даже договорившись об общем «Operating System Interface», системы всё равно поддерживают его по-своему.

          Когда речь идёт об одном дистрибутиве, одной платформе или семействе ОС, с фреймворком всё понятно. MS и Apple — отличные примеры. А вот в случае буйного разнообразия *nix — не всё понятно.
          • НЛО прилетело и опубликовало эту надпись здесь.
      • Как бы… А чем Ява не устраивает? Есть везде, в общем-то.
        • Самое интересное, что тот же риторический вопрос задали себе сотрудники Google, а затем успешно использовали Java в набирающей обороты (уже и на нетбуки ставят, и на x86 портировали) платформе Android.
          • Да, именно. Android вообще перспективная штука, причем без проблем с лицензиями. Why not?
        • Я к стыду своему не большой знаток Java, особенно библиотек классов, поэтому не стал упоминать о ней. Вполне возможно, что и устраивает. Как там обстоят дела с RAD? То есть, можно ли быстро «накидать кнопки на форму», записать строку в БД, сериализовать пару объектов и непринуждённо выслать их по сети на другую машину? И как обстоят дела с кроссплатформенностью? Она в *nix «честная», или как POSIX?
          • Библиотеки/фреймворки для Java — самое ценное, что есть у нее (как, впрочем, и у любого другого языка программирования). Я даже не стану начинать перечислять, это слишком долго. :) Замечу только, что многие настолько хороши, что их портируют в другие языки.

            Насчет «накидать кнопки на форму» — все основные IDE это поддерживают, только, замечу, это не считается Java-way (возможно, только на мой взгляд).

            Запись в БД, сериализация объектов, работа с сокетами (это имелось в виду?) — никаких проблем, в простейшем случае это несколько строк кода.

            Кроссплатформенность? Честнее некуда. Я, в свое время, честно говоря, был очень приятно удивлен, когда мое офисное десктопное приложение, работающее с БД, будучи просто скопированным на *nix-систему, запустилось и работало точно также, как и на Windows, где было разработано и где использовалось.

            Конечно, если разработчик использует, например, JNI или платформо-зависимые библиотеки (например, SWT), то он, должно быть, отдает себе отчет о том, насколько переносимым будет приложение. К счастью, нужды в подобных средствах обычно нет (в том числе никогде не приходилось их использовать лично мне).

            Яркий пример кроссплатформенного приложения — замечательный Jabber-сервер Openfire. В Windows- и *nix-версиях отличаются только «обвязки» для запуска: bat-файл либо shell-скрипт. :)
            • раскрыть комментарий
              • Как, целыми десятками? А у вас их всего-то 128? Беда, беда!

                Вы не стесняйтесь, расскажите, какие программы вы «держите». Может, их запуск только добавляет системе свободной оперативной памяти?

                P. S.: Не поленитесь еще посмотреть, благо в интернете это несложно, нынешнюю стоимость модулей оперативной памяти. В 2009-ом году, вроде живем.
                • У меня их 512, и в них должны укладываться ОС, и десяток программ, которые постоянно зарпущены, и которые мне неохота закрывать (так как тогда их придетяся снова запускать, а я ленивый :) )

                  Не вижу смысла пользоваться медленными программами, когда есть более быстрые. Не виду смымла ставить сотни мегабайт библиотек. только потому что какому то дурному программисту вздумалось изучить Руби, дотнет или еще что-нибудь. Зато мой процессор прекрасно понимает машинный код, так что извольте генерировать программы на нем :)

                  Насчет памяти? даже если я сейчас потрачу деньги на 2-4 Гб памяти (больше икспи не поддерживает вроде :'( ), через год-два долбанутые программисты напишут какой нибудь MegaGigaFramework, которому и этого будет мало. С чего я должен постоянно обновлять компьютер? Вы может машину каждые полгода новую покупаете? Или движок там апгрейдите. Научитесь уже писать нормальные программы, а то ведь понаберут студентов, которые ссылку от указателя отличить не могут.

                  Ну вообще дело конечно не в цене памяти, за качество кода обидно ((
                  • Хм, 4 ГБ моей оперативной памяти вроде стоят дешевле любого транспортного средства на ДВС, способного без посторонней помощи сдвинуться с места. :) Значительно.

                    А коли за качество кода обидно — обижайтесь. Только Java всуе поминать ни к чему. Это платформа enterprise-уровня, тут (почти) нету студентов, как и указателей. :)
                    • «качество кода» — имеется в виду более широкий смысл. Например, программа, на Яве, часто потребляет намного большее количество памтяи, чем ее аналог на Си++. В данном случае я могу сказать, что эта программа (либо же Java Environment) сделаны не так качественно.

                      Неужели программисту нравится что его программа медленно работает? Неужели они все такие безразличные?

                      Причины тут видимо экономического толка, нафиг нужно мозги загружать оптимизацией, никто за это не заплатит.

                      Но почему тогда тормозные Open Source библиотеки, их же пишут за бесплатно, вот в чем вопрос?
                      • У вас неадекватные (адекватные только вашему внутреннему мироощущению) критерии оценки качества ПО.

                        Пример: у меня уже 3 суток подряд запущена IntelliJ IDEA с разрабатываемым проектом. Открыл «Диспетчер задач» — ой, аж 173 МБ в ОП занимает, да еще 22 процесс java.exe. Только для меня в этом проблемы нету. Другие у меня критерии оценки работы вот этого конкретного экземпляра ПО.
                      • >Например, программа, на Яве, часто потребляет намного большее количество памтяи, чем ее аналог на Си++.
                        Чушь какая-то
                        >Неужели программисту нравится что его программа медленно работает?
                        Программисту нравится, что его программа быстро разрабатывается и легко поддерживается. Поэтому он за разумный срок может написать сложную и полезную программу. А будет писать на ассемблере и вылизывать непонятно зачем непонятно что… Ну, напишет за тот же срок очередной тетрис. Ога, супер-оптимизированый. Но какой с этого толк? Там всё-равно задержки ставить надо — на полной скорости вы всё-равно в него играть не сможете :)
                        А скорость… Какая разница открывается программа за 10мс или за 11? Ни ту ни другую цифру я не отличу.
                        >Но почему тогда тормозные Open Source библиотеки
                        Кто сказал? Какие именно? и по сравнению с какими именно? Абсолютно голословные утверждения.
                        • Если бы типичные ява-программы запускались за 11 мс, я бы и не возражал.

                          В реальности, они едят больше ресурсов и медленнее работают. Это обусловлено самим устройством и принципом работы ява-машины.
                        • Из Википедии:

                          > Java startup time is often much slower than for C or C++, because a lot of classes (and first of all classes from the platform Class libraries) must be loaded before being used.

                          > It seems that much of the startup time is due to IO-bound operations rather than JVM initialization or class loading (the rt.jar class data file alone is 40 MB and the JVM must seek a lot of data in this huge file).[22] Some tests showed that although the new Split bytecode verification technique improved class loading by roughly 40%, it only translated to about 5% startup improvement for large programs.[46]



                          > [22] ^ a b Haase, Chet (May 2007). «Consumer JRE: Leaner, Meaner Java Technology». Sun Microsystems. Retrieved on 2007-07-27. «At the OS level, all of these megabytes have to be read from disk, which is a very slow operation. Actually, it's the seek time of the disk that's the killer; reading large files sequentially is relatively fast, but seeking the bits that we actually need is not. So even though we only need a small fraction of the data in these large files for any particular application, the fact that we're seeking all over within the files means that there is plenty of disk activity. „

                          Пусть это вам будет стыдно за то, что вы пишете про «11мс». Идея в рантайме распаковывать кусками многомегабайтный zip-архив имхо на редкость дурацкая.

    • Qt? Язык на выбор, работает в практически любой Posix операционке.
    • Если я не ошибаюсь, то C# более свободен чем Java (я говорю про язык, а не про реализацию). На язык C# есть стандарт ISO, как и на .NET VM, и если я создам свою VM и свой компилятор C#, то могу смело называть его C# и MS здесь абсолютно не причем. Если я создам реализацию Java VM и компилятор, то я не могу её так назвать так как Java это торговая марка, которая принадлежит Sun и я обязан пройти сертификацию у них.
      • но если посмотреть с другой стороны это плюс — Java она всегда Java. независимо от того SUN, IBM или BEA/Oracle
        А насколько соответствует спецификациям ваша реализация C# можно только догадываться или доверять на слово
      • "...Sun made available most of their Java technologies as free software under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath...."

        Сама Java как язык уже не принадлежит просто Sun.
  • НЛО прилетело и опубликовало эту надпись здесь.
  • раскрыть комментарий
    • Патентованием байтов весьма успешно занимается RIAA, о чём здесь раз в неделю гневные статьи пишут.
    • Достаточно запатентовать MSIL или вы его тоже измените и лишитесь поддержки ранее написанных программ?
      • Если технология использовалась кем-то другим до того как ее запатентовал владелец, то этот кто-то другой может продолжать ее спокойно использовать.
  • День ненависти к моно продолжается уже второй день :)
    • А вчера что было? Поделитесь ссылочкой, я что-то упустил из виду.
  • C# открытый язык, есть стандарты — ISO/IEC 23270:2003 C# Language

    И как MS его может закрыть?)
    • НЛО прилетело и опубликовало эту надпись здесь.
      • Mono вроде умеет компилить программы в бинарный код, а не в промежуточный. Так что если сам c# не запатентуют, то все гут. Правда под линухом нельзя будет юзать программы откомпиленные в MSIL.
    • Кажется, я в этом топике штатный параноик. :) У :2003 статус withdrawn, а :2006 платный.

      Стандарт на язык закрыть нельзя, а вот некоторые критические артефакты, требующиеся для реализации работающей среды исполнения — можно запатентовать. Например, MSIL, или набор тестов на совместимость, или…
      • Стандарт C++ тоже платный и что с того?
        • Извините, я не к тому, что это мешает разработчикам. Я к тому, что не могу быстро посмотреть, что в 2006-ой спеке освещено.
          • … чтобы понять, описан ли там MSIL: иначе не получается вразумительной дискуссии.
          • Можете ;)
    • Столман просто не любит Microsoft и Windows :)

      Теоретически, закрыть С# можно выпустив новую «закрытую» версию C#, которая будет намного лучше стандартной (и обратно совместимой для поддержки существующих программ), добавить туда офигенных фич, чтобы все программисты быстренько перебрались на неё, и вот её-то и защитить патентами :)

      Но, вообще, почему Столман не имеет ничего против Java? Она как раз защищена патентами, да так, что SUN запретила Microsoft-у выпускать и встраивать в браузер собственную Java-машину, даже переименованную :)
      • Столлман, кстати, про Java много писал, ищите «Java Trap». Теперь, по-видимому, пришёл час «C# Trap» :)

        С Java всё достаточно благополучно, потому что как минимум есть OpenJDK, а также другие проекты, в т.ч. от больших компаний типа IBM и Oracle. Трюк в том, что по Java Community Process разработчик после доказательства совместимости получает соответствующие куски IP (включая освобождение от возможных патентов, насколько я понимаю).
      • Скандал между Sun и MS начался с любимого микрософтом приёма: некорректной реализации Java и последующей несовместимости с «правильной» реализацией. Чем история закончилась, не знаю, но согласен, что получившуюся самоделку Jav'ой называть уже нельзя.
    • Наличие стандарта не мешает запатентовать единственно логичную реализацию этого стандарта.
      • Java, Python?
        А принципы VM/JIT те же.
      • Патентуется не реализация! Как раз то, что в стандарте, то и патентуется, и если есть стандарт, то уже никакие патенты не помогут. А на конкретную реализацию распространяет авторское право. Если вы про какой-нибудь алгоритм, то патент будет действителен, если этот алгоритм раньше никто не реализовал. Именно си шарп от патентных притензий чист, кто говорит обратное — скорее не допонимает некоторые тонкости, с патентами можно придраться к технологиям дот нета, именно поэтому, некоторые из них в моно не реализуются, а те что реализованы(винформсы) — лучше не использовать, о чем говорят и сами разработчики моно.
        • Ну сам язык согласен чист от патентов. Но для языка нужен компилятор, сборщик мусора и вирт. машина. При этом язык ведёт к ограничению на выбор этих компонентов, единственные возможные алгоритмы их работы которых, могут быть уже запатентованы.
          • Так CLI тоже в стандартах, МС его открыла и стандартизировала. Критика там именно к частям, типа WPF, Winforms и т.п. И вот именно она справедлива.
            • А чем этот CLI интерпретировать, а сборщик мусора?
              • Реализация попадает под авторское право, а не под патент. Я чуть ниже писал, если речь идет про алгоритм какой-то хитрый, тогда да. НО на сегодня МС такие алгоритмы не патентовала, которые в моно(в си шарпе) используются, т.е. на сегодняшний день си-шарп в Моно уже написан, даже если позже МС запатентует какой-то алгоритм, который сейчас уже используется в Моно, то смысла в таком патенте не будет, так как алгоритм был реализован до их патента.
                • Разработчики Mono в интервью LinuxFormat лично рассказывали какая морока обходить патенты Microsoft в области .Net, так что там довольно много патентов. (говоря реализация, я имею в виду «реализация идеи», т. е. общий вид алгоритма).
                  • Вы все же забываете, что дот нет — это не сишарп! Именно с фрэймворком все хуже намного!!! чем с языком. В языке они без проблем все обходят. А с фрэймворком как раз сложности, поэтому в принципе не будет реализовываться WPF и ряд других фич. А часть из сделанных советуют не использовать. Но это не язык!
                    • Не понятие фраемворк очень широкое. В целом патентные проблемы есть у .Net, а не C# — согласен. Но Mono всё равно под эти проблемы попадает даже с Boo.
    • «Открытый язык» это ничто. Волнует рантайм и его завязка на win.

      Вообще mono подобно гонке за поездом на дрезине.
      Едешь по рельсам, обогнать-невозможно.
      Непонятно в чём, собственно, кайф моно-писателей?
      Разрабатывать заведомо устаревший продукт путём слепого копирования.
  • Если Tomboy взять и выкинуть из дистрибутива, ничего страшного не произойдет. Gnome Do еще на Mono, также не самая важная программа в GNU/Linux.

    Впрочем, с тем, что С# лучше не использовать в разработке новых программ — согласен. Пусть лучше с помощью Mono портируют некоторые win-приложения. Вот Paint.NET кажется перенесли, если не ошибаюсь?
    • Ну, например, рассматривается вопрос замены Rhythmbox’а на Banshee, так что вопрос о Mono актуальный.
    • F-Spot ещё на моно, а для гнома это вроде бы единственная фотогалерея
      • Можно использовать Google Picasa — что для меня важно, без проблем показываются файлы psd.
        • можно, но она плохо интегрируется в гном — всё-таки это libwine, а не gtk
        • Замечательно, борясь за чистоту опенсорса (хотя си шарп более чем открыт, а фспот написан именно на моно, а не на мсном дот нете с винформсами), вы предлагаете использовать проприетарное решение, ВИНДОВОЕ, которое по сути через вайн запускается.
          • Я лишь предлагаю альтернативу на случай, если Mono вдруг настанет конец. Хорошего дефолтного решения для open source нет, но без заметок и фотогалереи можно спокойно жить и существовать.
            • А если вдруг гугле надоест и она прикроет Пикаса… Если раньше мы думали, что гугля так никогда не поступит, то недавно смогли убедиться, что если проект гугле неинтересен, она его спокойно закроет. Вот был подсажен на их блокнот… и обидно стало, когда закрыли.

              ЗЫЖ так спокойно вообще можно без компьютера жить. :)
              • Ну мало ли… Какой-нибудь open source проект тоже может заглохнуть, если никто им серьезно заниматься не будет. А привычки останутся и нужно будет привыкать к другому ПО. Вот и приходится делать выбор, ставить на черное или красное :)

                По поводу замечания, что Tomboy не страшен на Mono — было бы страшно, если бы допустим Open Office был на Mono, вот тогда действительно надо было ломать голову, что делать если начнется патентная война…
    • F-Spot ещё на моно, а для гнома это вроде бы единственная фотогалерея
  • Столлман известный параноик
    любит дуть на холодную воду
    если следовать его советам — лучше сразу удавиться. есть нельзя — можно подавиться, пить — захлебнуться и т.д.

    mono всегда будет отставать от последних реализаций .net по определинию — такова уж судьба догоняющих
    такчто мс особо переживать не о чем.
    обьем приложений на шарпе очень далек от критической, когда будет сложно спрыгнуть.
    тем более практически для всех продуктов есть аналоги и заменить можно будет достаточно легко
    опятьже если вдруг…
    • Столлман до сих еще ни разу не ошибался именно потому, что не любит рисковать. Конечно, он очень большой консерватор; но это именно он предсказал и даже создал популярность открытых лицензий.

      По мне так лучше быть параноиком, чем дураком.
      • к сожалению его параноидальность стоит практически на грани разумного…

        например широкоизвестен случай, когда он заворачивал в металлическую фольгу пропуск на конференцию с rfid чипом — «старший брат следит!» это уже скорее болезненное состояние…

        ЗЫ минус не мой ;)
        • Думаю, это скорее принцип, нежели паранойя.

          Старший брат, может, и не следит, но когда (или если) начнёт следить, внезапная скрытность может насторожить, а на такого параноика никто не обратит внимания.
          • сразу почемуто вспоминается анекдот про неуловимого Джо :)
            • Хороший анекдот, только вот RMS — нифига не неуловимый Джо.
    • >mono всегда будет отставать от последних реализаций .net по определинию — такова уж судьба догоняющих

      Вы смотрели доклад Мигеля де Иказа на PDC 2008? Некоторые из фишек, которые есть в Моно уже сейчас, Хейлсберг обещает только в пятой версии языка.
      • К сожалению, из этих фишек счас доступен только CaaS, и тот — в полуразобранном состоянии =/ Вернее, в совсем неюзабельном: caas есть, применить возможности нет )
  • Учитывая, что сию замечательную программу (Tomboy) я даже не использовал, снёс с лёгким сердцем. Приятно то, что вместе было удалено около 50 библиотек (libmono* и lib*-cil).
    А я когда-то удивлялся: как минимальная установка может больше гигабайта занимать?
  • Дело не в самом языке. Дело в том, что помимо языке есть еще либы к нему, много либ. Построение интерфейса и так далее… Без них С# — просто еще один экспериментальный мусор, какового среди языков и так хватает. И либо никто особенно не отдавал под стандарты и в свободное пользование.

    Mono — реализация не только языка или виртуальной машины под байт-код CLR, это еще и эти самые библиотеки, что позволяет запускать изначально чисто виндовые программы под платформами Моно.

    И с этими либами нихера не понятно; они вроде и доступны, но под мутными лицензиями.

    В общем и целом есть же Java! чем людям не нравится?! То же самое, только без сопутствующих проблем и терзаний; многие специалисты считают ее более чистым языком; есть богатая традиция, огромное количество инструментария, кроссплатформенность изначальная. Open source, блин.
    • В общем и целом есть же Java! чем людям не нравится?! То же самое, только без сопутствующих проблем и терзаний; многие специалисты считают ее более чистым языком; есть богатая традиция, огромное количество инструментария, кроссплатформенность изначальная.

      но почему то повсеместно разработчики и клиенты выбирают .Net и C#
      • все предельно просто
        есть работа, на которой народ зарабатывает себе на хлеб с маслом и чем сподобится
        и есть хобби
        для написания нужной мне утилиты под платформу (ОС), которой я увлекаюсь я не буду изучать отдельно новый язык. Зачем?
        Если есть реализация того, что я знаю и умею, да еще и есть приличный инструментарий (студия) на котором в обеденный перерыв можно поотлаживать свою тулзу.

        насчет выбирают .net — я уже несколько лет плотно работаю с java и если встает какаято задача, мне обычно проще написать это на основном языке. хотя могу и на шарпе и на плюсах (а если поднапрячься то и фортран с ассемблером вспомню)
        вот только зачем перезагружать память? ;)
        если возникает потребность писать на .net — буду писать.
        и чем дольше, тем больше я буду думать как программист уже не на java а на шарпе или другом языке
        • думать на конкретном языке программирования — не очень хорошо.
          А вообще не понял смысл вашего комментария
          • «думать на языке» пожалуй не совсем верно звучит…
            язык в данном контексте должен восприниматься как совокупность языка, библиотек и т.п. (что вобщемто часто и подразумевается под языком. в частности при разговоре о шарпе обычно имеется в виду и платформа, для которой на нем пишут. тут я согласен с VIK — «короля делает окружение». языков хороших много, а вот нужных библиотек далеко не всегда)

            волей-неволей в «оперативной» (быстрой, или еще какой) памяти мозга хранится информация о том языке, библиотеках, фреймворках, которые активно.
            соответственно программист предпочтет в большинстве случаев писать для себя на том языке и с использованием того набора инструментария, фреймворков и т.д. с которыми он работает. просто потому, что «доступ» к такой информации быстрее…
            если конечно он неставит перед собой цели освоить чтото новое, а просто хочет себе облегчить жизнь создав необходимую ему утилиту/программу.

            о том что не стоит смешивать работу и хобби — это уже тема отдельной беседы )
            • понял, о чем вы. Не думаю, что небольшие тулзы для личного пользования как-то изменяют статистику.
      • Откуда такая информация, что выбирают именно .Net и C#?
      • Гм. А ничего, что на данный момент из больших языков именно Java — лидер?
        • А я спорил? Это логично, учитывая давность истории Java. Да и язык хороший, тут вообще сказать нечего. Другое дело, что по всем найденным мною данным доля Java либо остается неизменной, либо падает; в это же самое время доля C# растет.

          Только меня смущает еще то, что большинство статистики основано либо на поисковых запросах, либо на количество опенсорсных проектов. Ведь и дураку понятно, что на C#, равно как и на Java, пишется огромное количество коммерческих проектов — и они в эту статистику не входят.

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


            И где тут Java падает, а C# растёт?

            Вы вообще где искали, что такие выводы делаете? C# — это MS only. Java — это Oracle, Sun, IBM, SAP, Red Hat, Google, etc.
            • я вам тоже могу картинку показать. У вас показатели абсолютные, а у меня процент роста.


              • Абсолютные графики в данном случае важнее. Не издевайтесь над статистикой ;).
              • Ещё с Ruby сравните — у того 1100% роста. Относительные графики мало чего показывают, особенно учитывая что C# и начал рости с 2005 года — до .NET 2.0 им вообще мало кто пользовался.
                • так я об этом собственно и толкую — C# еще молодой. Вот если бы ему было лет 20 — тогда можно было бы объективно и сравнивать
                  • > Вот если бы ему было лет 20 — тогда можно было бы объективно и сравнивать

                    То есть для начала вы сравниваете, а теперь говорите, что нельзя сравнивать? =)
                    • нет, я не говорил так. Я сказал, что C# растет быстрее, чем Java. Но доля его на данный момент значительно меньше. Но это только вопрос времени. На данный момент сравнивать их количественные показатели не более чем развлечение. Но все изменится

                      Вот что я сказал.
                      • По-моему у меня что-то со зрением:

                        «C# растет быстрее, чем Java» — это как раз сравнение
                        C# растет быстро" — а вот это не сравнение

                        А ещё вы сказали, что «доля Java либо остается неизменной, либо падает» — а она, даже по вашему относительному графику на 20% выросла.

                        И так не назвали ни одной причины, по которой «все изменится».
                      • «Но это только вопрос времени.»
                        «Но все изменится.»

                        Вы знаете что-то, чего не знаем мы?
        • Но не в десктопе! Тут ключевой момент в том, что Java на сегодня за счет серверных/корпоративных решений берет.
          • Хм. Можно считать тонкие клиенты c jsp решениями, ориентированными на десктоп?
            • Ну считать можно что угодно :) Так можно и гуглдоксы считать десктопным решением. Но все же согласитесь, именно под десктоп, особенно домашний, на яве пишется очень мало.
              • Согласен. Хотя бы даже потому, что никто не любит ставить лишнюю инфраструктуру на свою машину; ту же виртуальную машину. Именно поэтому я сам предпочитаю классические приложения, без Java или Mono.

                А вот у Майкрософт была возможность силой перевести всех на новую технологию. Естественно, что людям просто приходится использовать тот же Шарп, ту же .NET. Разумеется, доля C# в проектах растет, даже просто за счет того, что С++ медленно, но умирает; и за счет тех же десктопов.

                Я не вижу объективных преимуществ перед Java. Но вижу потенциальные лицензионные проблемы. Так что нафиг-нафиг…
                • Классические? Это те, которые вы не знаете, какие зависимости они с собой тащат? :)

                  Я вот использую IntelliJ IDEA (JRE в комплекте) или, например, тот же Pidgin, GIMP (тащат с собой GTK). Да, не шибко-то классические. :)
              • Да, мало — кросплатформенное десктопное ПО вообще сложно писать, везде свои гайдлайны.

                Тем не менее: Eclipse/Netbeans/IntelliJ/Azureus(Vuze)/Limeware/Maple + куча корпоративных десктопных приложений на Swing/SWT.
            • +1, я вот, например, в данный момент пишу CRM-систему — серверное приложение, пользователи будут пользоваться браузером. Что, не десктопное приложение для сотрудника, который будет использовать систему?

              P. S.: Ах да, код пишу в Intelli-J IDEA, которая, к слову, сама написана на Java.
              • :) вам самим не смешно, ну да, а я еще использую Vuze написанный на джаве. Аналогично можно и гуглдокс назвать десктопным решением. Да и CRM — это все же корпоративный сектор. Все же говоря Десктоп, думаю было понятно, подразумевается нэйтив. Да интелия, эклипс, вуз и еще десяток(с натяжкой) программ наверное на слуху, но все же это мало. Ну не пишут(мало пишут), по объективным причинам, на Джаве для десктопа. И именно тут дот нет очень прилично опережает.
                • Назовите эти объективные причины… Дотнет пропихивается крупнейшим монополистом в мире?

                  • Да мне всеравно кто его продвигает :) Я же не говорю, что Джава отстает по каким-то техническим показателям от дот нет, просто посмотрите о чем речь, что в нэйтив десктоп приложениях сейчас лидирует именно дот нет (если с джава сравнивать). Это просто факт.
                    • «интелия, эклипс, вуз и еще десяток(с натяжкой) программ» — это мы запомнили.

                      А теперь список из over 9000 десктопных приложений на .NET можно озвучить? Я вот, пожалуй, только Paint.NET знаю (но не знаю, насколько он распространен).
                      • Хм… Навскидку:
                        Обёртка драйверов под Radeon и ATI. Acer command center — туда же.
                        Autocad исспользует WPF.
                        Yahoo Messenger 8
                        Visual Studio 10
                        RSSBandit
                        Wikipedia Explorer
                        SQL Server.

                        Все эти приложения или написаны полностью или исспользуют .net

                        Куча десктопных игр на/исспользует .net(для интерфейса, редактора карт и т.д.). Есть и полностью .net игры(недавно пиарившийся тут Dyson, например).

                        Ваш ход про яву.
                        • Так, назван дай бог десяток приложений на .NET. Что-то не видно «лидерства».

                          А я, например, к уже названным отличным Java-приложениям могу добавить те, что по этой ссылке находятся — java-source.net.
                          • Так на java нет и этих десяти…

                            Я же назвал десктопные массовые «коробочные» приложения. Ну-ка что-то подобное про яву, кроме Eclipse/Netbeans/IntelliJ?

                            >А я, например, к уже названным отличным Java-приложениям могу добавить те, что по этой ссылке находятся — java-source.net.

                            А где там «приложения»? Свалка библиотек на java для java.
                        • ох, сдается мне вы зря ввязались, ява спецов банально больше, и язык банально старее, а писать код под явой уж всяко не сильно сложнее, чем на c#, и только если эти факты сложить, то как то спор о том где программ больше становится наивным.
                          • Всё дело в том, о каких программах мы говорим. :)

                            Если брать «автоматизатор склада-магазина Джонсона» — да, ява пожалуй впереди. Просто из-за вознаста.

                            Берём сервер… Тут уже х.з. Навскидку определить не получается.

                            Если берём десктоп… Увы, с явой тут всё плохо. Я как-то и не вспомню массовых коробочных ява программ.

                            > ява спецов банально больше
                            А стартапов на яве — меньше…
                            • Когда есть библиотеки уровня Hibernate, EJB, JTA, Terracota, Spring и другие, то можно догадаться, что их делали не просто так для интереса. И думаю понятно, что java используется при разработке сложных веб-приложений. А их естественно меньше, чем домашних страничек Василиев Пупкиных на пхп, питоне или руби.
                    • Кто лидирует, простите?
    • Что-то мне подсказывает, что производительность c# с .net больше чем у жабы с ее jre…
      • Можно взглянуть на сравнение в Computer Language Benchmarks Game: Java [6 -server] vs. C# [Mono]. Там по производительности Mono проигрывает на всех подтестах, иногда в 5 раз. Интересно было бы сравнить JDk 6u14 против родного .Net на Windows.
      • Может назовете это «что-то»? А то, знаете, как-то не шибко очевидное заявление.
      • Если не секрет, что?
      • На самом деле очень спорный вопрос, тут больше зависит от прямоты рук
    • Java — унылый язык по сравнению с C#.
      Даже часть студентов, которые на C# смотрели с кислым лицом, признали что на Java огромное кол-во задач требует попросту больше кода.

      Нет делегатов, нет Linq, немного кривое реализованы определённые штуки (generics — type erasure, Integer/int).
      Нет свойств! Даже в JS вводят свойства. Нет событий.

      Ну можно на ней писать, если за это платят деньги, но я бы выбрал C# или если хочется full open source — Ruby/etc.
      • Супротив LINQ у Java есть библиотеки для работы с коллекциями, геттеры/сеттеры в 1 клик генерируются IDE. И что за события? Они у вас код в блокноте пишут что ли? Скорость реализации задач на Java & C# примерно одинакова.
        • Ну напишите код, который по списку людей выдаст плоский список имён детей всех у кого зарплата меньше x, отсортированный по возрасту ребёнка. В C# это
          people.Where(p => p.Salary < x)
                     .SelectMany(p => p.Children)
                     .OrderByDescending(с => c.Age)
                     .Select(с => c.Name)
          

          В Java даже с самой лучшей библиотекой коллекций closure (p.Salary < x, где x — переменная) будет реализована гораздо сложнее.

          Геттеры/сеттеры написать несложно, но большая часть работы с кодом — это его чтение, и
          a.getChild().setName(b.getChildName()) читается гораздо хуже чем a.Child.Name = b.ChildName
          Кроме того, второе естественнее — у человека есть свойство, а не действие «вернуть имя».
          • Свойства имеют побочные эффекты. Это даже из Delphi 1995 года выпуска известно. И почему автор Delphi включил в свою новую игрушку C# этот элемент — непонятно.

            В C# нет Checked Exception, поэтому невозможно на этапе компиляции отловить досадные ошибки неправильного использования критически важных методов. По непонятным причинам в рантайме под рабочими нагрузками случаются утечки памяти и блокировка ресурсов, в то время, когда программа уже сдана заказчику. Просто нет монитора-профилировщика, способного отследить ошибки, допущенные на этапе кодирования.
      • Есть такое довольно популярное мнение, что Java — язык, чище всего отвечающий парадигме ООП. И, соответственно, на нем оптимально писать средние/большие приложения.

        Так что можно поспорить.

        Вы под унылостью-то что понимаете? Не хватает фишек?
        • Унылость это когда приходится писать больше кода чем нужно, и при этом читаемость не повышается, а падает.
          Пример: people.filter(new PeopleFilterByAge(CompareType.more, 5))
          Вместо: people.filter(p => p.Age > 5)

          Пример: MyMagicEnterpriseClass<OtherClass, AndAnotherClass> myClass = new MyMagicEnterpriseClass<OtherClass, AndAnotherClass>()
          Вместо: var myClass = new MyMagicEnterpriseClass<OtherClass, AndAnotherClass>()

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


            Согласен, что Java эволюционирует медленее, но на то есть и свои причины — JCP, в состав которого входит много консервативных компаний, строящих свой бизнес на Java.
            • Это кошмар какой-то а не код, правда :(( Неужели компилятор не может сам определять тип элемнтов хеша в compile-time?

              Также всегда удивлялся, какой смысл в Си писать 2 раза одно и то же, например MyObject *o = new myObject(...); Можно подумать, есть извращенцы, которые поставят слева и справа разные типы.
              • Например потому, что считается правильным для типов переменных использовать интерфейсы или абстрактные классы, а присваивать уже конкретные реализации. Например, как в примере выше, взять Map<...> myMap = new HashMap<...>(); Если напишете слева HashMap, то при смене подмене реализации на ту же (по контракту) Вам придётся менять код в очень многих местах.
                • Печально (( Все же было бы здорово, если такие вещи компилятор определял как то сам… искуственный интеллект какой нибудь подключить :)

                  Можно было бы у переменных тип не указывать, и вообще, здорово бы было!
              • Это не кошмар, а Generics. They allow «a type or method to operate on objects of various types while providing compile-time type safety.» То бишь используется ровно для обратного относительно того, что вы придумали.

                Простейший пример для второго:
                class A {}
                class B extends A {}
                A object = new B() ;

                Зачем это может быть нужно «извращенцам», можете поразмыслить на досуге.
              • Base* p = new Derived(); никогда не встречали? Достаточно распространенная вещь.
                • Ага, уже был пример. Тут значит надо руками писать :) А там где не написано — определять автоматически. хотя, конечно, надо посмотреть, не повышает ли это вероятность ошибок.
  • Здоровая паранойя — это хорошо.
    Здесь же на лицо НЕздоровая паранойя.
    • НЛО прилетело и опубликовало эту надпись здесь.
  • C# нужен чтобы убить джаву :) том числе под линупсом. чо кипишить то :)
    • А если подумать? От конкуренции всем лучше только будет
      • а я о чем?
      • C# конкурент Java? Что-то не видно.
  • раскрыть комментарий
  • По мне так мир open source должен уже забыть мир 90ых с Java и C# и перейти на новые ЯП — Ruby, Python, Javascript. Tomboy, Jabber-клиент и текстовый редактор спокойной могут работать на скриптовых языках. А JS вообще используется в Firefox и Palm Pre. Ну а критические части писать на том же C.
    • tkabber — написан на tcl+tk. Кстати, чем не фреймворк?
      • Тоже вариант. Ещё Lua интересен. Вообще зацикленность на C# какая-то неправильная.
    • Хоть одну причину забыть о Java (кроме даты появления ее на свет) сможете?
      • Конечно, я на ней долго сам писал ;).
        1. Мне не нравится ООП-модель из C++. Изначальная Smalltalk ООП- модель гораздо удобнее и проще. Все костыли типа интерфейсов, абстрактных классов, кучи патернов в ней просто не нужны.
        2. Обязательная компиляция при разработке — зачем это нужно, JIT-компиляция или компиляция перед deployment гораздо лучше.
        3. Отсутствие функций высших порядков (filter, map, each) которые делают работу с массивами нежной и приятной, а код очень понятным.
        4. Из-за отсутствия функций высшего порядка, точнее анонимной ламбда-функции (а не к анонимного класса с кучей лишнего кода) нельзя создавать красивые DSL типа RSpec или Shoes.
        • 1. Каким местом паттерны относятся к ООП модели? Изначальная ООП модель вообще была не в Smalltalk, а в SIMULA. Да и абстрактные классы в Smalltalk есть ЕМНИП.

          2. Затем, чтобы было видно, когда что ломается и потому что надо ограничивать программиста. Ваши Ruby&Python не старее Java — думаете не пробовали на них писать крупные приложения(или послушайте «what killed Smalltalk») — посмотрите где сейчас Zope. Дальше прототипов и небольших приложений никто так и не ушёл на динамических языках.

          3. Вообще Collections API не так уж плох, ещё есть Google Collections/Apache Commons Collections

          4. Shoes это заебись, но на Shoes пока не написали Eclipse.
          • 1. Про SIMULA знаю. Паттерны конечно прямым местом не относятся, но Smalltalk-модель делает многие из них просто не нужными.
            2. Интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка.
            3. Неплох, но всё равно язык просто не позволит написать так же коротко, чисто и понятно как с анонимной лямбда-функцией.
            4. Про Shoes я тут говорил, как пример DSL. Есть такие же DSL и для Swing (и наверняка для SWT) для Ruby и Groovy.
            • 1. Groovy с Java моделью ООП тоже делает многие из них не нужными. Так что тут не только и не сколько в ООП модели дело.
              2. Да. Другое дело, что Java — статически типизированный язык, поэтому компиляция в ней имеет смысл.
              3-4. В Java есть такое понятие, как Fluent Interface — за примерами в EasyMock, Google Guice, Google Collections. При хороших API filter, sort, find, etc реализуются красиво и без лямбда-функций:

              GoogleIterable pages = new GoogleIterable(getPagesList());
              files = pages.filter(WebPage.class).filter(undeletedPages).transform(new PagesToFilesTransformation());

              Как и остальные DSL(например Dependency Injection DSL в Guice, Layout DSL в MIG Layout).
              • 1. Так Groovy это совсем другой язык. Я о таких языках и говорю.
                2. Ну тогда давайте говорить прямо — не компиляция, а статическая типизация. Но большинство ошибок, которые в нетипизированных языка приводят к NoMethodError либо появляются из-за описки и выявляются unit test’ами, либо точно так же в Java приводят к NullpointException.
                3. Всё равно требуется класс, который надо передавать в filter, нельзя просто написать, а каждый класс — это куча кода.
                files = pages.filter { |i| i.is_a? WebPage and not i.deleted? }.map { |i| i.to_file }
                Вопрос то не в наличии методов filter, а в возможности передать в метод произвольную анонимную функцию.
                • 2. Так, выходит, разработчики на интерпретируемых языках все сплошь да рядом unit-тесты пишут? Вопрос риторический, отвечать необязательно. Я, как пользователь приложения, не хотел бы на своей шкуре испытывать «описки» разработчика, не способного использовать средства, от таких «детских» ошибок (а не ошибок логического плана) избавляющих.

                  3. А об удобочитаемости такого варианта вы задумывались? Java не зря известен как самодокументируемый язык. Сравните возможность дальнейшей поддержки такого кода, его reusability.
                  • 2. Снижение надёжности очень преувеличино ;) gajim, gedit, git, хорошая часть linux’а (python, perl) прекрасно работают на интерпретируемых языках и не разу не вываливались с NoMethodError, хотя на desktop’е unit-тестирование вообще не распространено. Я уже молчу про Веб — Википедия на PHP и кучу других сайтов.
                    3. Наоборот DSL делает код более красивым за счёт краткости. В RubyOnRails есть много хороших примеров. Да и код фильтрации я могу посмотреть прямо на месте, а в Java мне нужно искать объявление его класса (пусть и с лаконичным названием).
                    • 2. Не передергивайте. Сначала говорите, что «интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка», а когда вам указывают, что это, мягко говоря, не всегда верно, заявляете, что, дескать, «не разу не вываливались с NoMethodError». Принципы написания secure code вам, стало быть, неинтересны. Запустилось, «не вываливается» — а, нехай будет.

                      3. Не надо говорить так, как будто вы сами в недрах кода будете «искать» объявление нужного класса. Открою вам тайну — в IntelliJ IDEA перейти к объявлению нужного элемента кода можно с помощью шотката Ctrl+Click. Но, что самое интересное, никто вас не заставляет отдельный класс объявлять, это вы сами себе жизнь усложняете. Более того, открою вам еще одну тайну — в Java есть anonymous classes, объявляемые в месте использования.
                      • 2. Тем не менее куча приложений в вебе и куча на линукс-десктопе работает с динамической типизацией. И ошибки если и наблюдаю, то точно такие что и в Java, а не связанные с динамической типизацией. Я согласен, с тем, что теоретически может быть больше ошибок, но я отмечаю практикой, что опасность существенно преувеличина и практически такие ошибки не появляются.
                        3. Я знаю про анонимные классы (выше я специально писал). Согласен искать не нужно, можно щёлкнуть. Но анонимная функция всё равно даёт на уровень более чистый и понятный код, так как он существенно короче (анонимного класса) и код видно сразу.
                        • 2. Я и не говорю, что динамической типизации нет места. Всякие десктопные утилиты и веб-сайты как раз на этих языках и надо писать.
                          3. А в Java сразу видно тип переменной =) По моему опыту это гораздо лучше.
                    • 2. Давайте code-base на уровне Eclipse, gedit как-то глупо сравнивать. Git&Linux в основном на C, если мне память не изменяет.
                      3. Объявление смотрится в один момент по клику на классе = снова хвала IDE.
                      • Ответил выше.
                      • Git и множество утилит в GNU/Linux написаны на bash. Хотя, наверное, не очень верно называть его динамически типизированным. Ну perl и python так же активно используется в современном linux-декстопе. А PHP, Perl и Ruby активно в веб.
                • 1. Какой ещё другой? Запустите «groovy YourJavaClass.java» — всё заработает. Groovy = Java(язык) + динамическая типизация с мета-программированием и замыкания.
                  2… Я сейчас в рамках GSoC пишу кое-что для Eclipse. Я не представляю эту code-base на динамическом языке, тоже самое говорили авторы IntelliJ про свой продукт в одном из интервью. И речь не только о тестах — поддерживаемость, рефакторинг, куча средств для анализа кода.

                  Куча кода = 1 клик или 1 шорт-кат в IDE: всё напишут за вас. И описки у вас не произойдёт — IDE подскажет ещё до начала компиляции.
                  • 1. Но Ruby тоже можно запустить в JVM. Я говорю о языках, а не о ВМ. А Groovy как Ruby и является примером языков которые я защищаю. И это не Java, а именно другой ЯП, просто компилируется к байт-код. И там есть и анонимная лямбда-функция и DSL и интерактивная консоль довольно простая.
                    2. Шорткаты есть и в редакторах. См. Textmate.
                    3. Ну все веб-проекты пишут на скриптовых языках и там довольно много кода и поддерживаемость и рефакторинг и т. д.
                    • 3. Опять с плеча рубим? Хотя бы на секунду представьте себе, что веб-приложения таки разрабатывают и на Java, ага.
                      • Знаю, что пишутся на Java (пожалуйста, видите спор более гуманистично, я тоже Java-разработчик и 2 года назад продвигал именно её, и люблю и понимаю её). Говоря про веб-приложения я просто показываю практику, что они тоже рефакторятся и поддерживаются, а не о том, что никто не пишет на Java.
                    • 3. Опять с плеча рубим? Хотя бы на секунду представьте себе, что веб-приложения таки разрабатывают и на Java, ага.
                    • Как ни странно, Web можно писать даже на Pascal. К сути спора это совсем не относится.
                      • Это просто пример довольно большой отрасли, где тоже важен рефакторинг и поддерживаемость.
                    • 1. Поясню «groovy YourJavaClass.java» — означает скармливание groovy-интерпетатору файла с Java-кодом, которое произойдёт успешно. Groovy является лишь расширением Java-синтаксиса, и сохраняет «ООП-модель» про которую вы говорили изначально — то есть она, как выходит, вовсе не корень зла.
                      2. Не смешите =) Textmate даже auto-complete не умеет
                      3. Отвечу коротко, примером, — Last.FM & Facebook используют PHP лишь как шаблонизатор. Покажите мне серьёзные бекенды на скриптовых языках. Был Twitter: переписали backend на Java/Scala — Ruby/Rails остался как шаблонизатор.
                      • 1. Я точно так же как Вы люблю Groovy но как раз потому что в нём есть то, что нет в Java ;). В том числе другая ООП-модель. Например, там классы можно расширять.
                        2. Не имеет. Но шаблоны есть (о которых я и говорил). В защиту Textmate скажу, что в Ruby вызовы обычно существенно короче и он не нужен (проблем с именованием не возникает).
                        3. Википедия всё на PHP. ЖЖ вроде тоже есть на Perl.
                        3а. Google и Яндекс используют Python для прототипирования. Twitter тоже для этого. Разве это не пример прекрасных синтаксических свойств.
                        3б. Я не говорил, что эти языки должны использоваться для высоконагруженных приложениях. Я говорил что они могут заменить Mono (F-Spot и Tomboy) — там они прекрасно подходят по скорости.
                        • 1. Я Groovy хоть и люблю, но прекрасно осознаю, что Java он никогда не заменит, а лишь дополнит в узком кругу задач.
                          2. Смотря на сколько большой проект — когда количество классов переваливает за сотню уже сложно, за тысячу — невозможно.
                          3. Вы уж извините, но Wikipedia — фуфловое приложение.
                          3а И пример того, что дальше прототипирования не уходит =) На сколько я знаю даже YouTube уже не выдержали держать на Python и переписали на Java. Про Twitter я уже упомянул.
                          3б Согласен.
                          • Ну 70 % того что пишет сейчас тоже дальше прототипов не уйдёт. Основная идеология Rails в том, что выпуститься как можно раньше, потому что понять заранее что нужно и как будут пользоваться нельзя. А дальше идёт жуткий рефакторинг. Да и от прототипа уходят только из-за вопросов нагрузок. Так что пока Вы не самый популярный в Вебе, то прототипа хватит.
                            • Ну это потому, что для java нет хороших фреймворков уровня rails, точнее есть, но плохо популяризованы. Когда такие фреймворки станут популярны, то протототипы будет проще делать на java. По сути питон или руби стали популярны в вебе благодаря джанго и рельсами. Пока не было этих фреймворков, про эти языки и не вспоминали.

                              По поводу компиляции, посмотрите tapestry5, там не нужно компилировать код компонентов и страниц, т.е. контейнер сервлетов не требует перезагрузки при изменении java кода или шаблона.

                          • Кстати, Хабр тоже полностью на PHP и ВКонтакте.
                            • Хабр — на PHP и ВКонтакте? В первый раз о таком языке слышу. :)

                              P. S.: Вот он, великий и могучий.
                            • PHP лишь выезжает на своей популярности в массах. Большинство вменяемых разработчиков плюются при разработке на этом языке.
                            • odnoklassniki.ru на JSP/Servlets.
              • А в c# какая типизация? Вы про var чтоль? Тогда велкам вот сюда: msdn.microsoft.com/ru-ru/library/bb383973.aspx

                Все ошибки с типами на этапе компиляции отлавливаются (о, да, там тоже есть компиляция, тоже в байт-код, точнее в MSIL).

                C# (как язык) значительно моложе, и значительно чище и продуманней, нежели Java, это очевидно. Все нелогичные моменты Java (типа habrahabr.ru/blogs/java/62602/) пофиксены. Некоторые штуки порезаны из соображений code style (правда, в 3.5 кое чего таки вернули, и я даже не знаю, зря или нет). Да даже environment настроить — и то в разы быстрее для C#.

                Лично мне пофик, на чем писать. Но если есть выбор — то C# мне больше нравится (да, еще python интересен, но до него че-т все никак не доберусь).
                • Чувак, мы вообще не об этом ;). Тут идёт спор, почему бы приложения на Mono (фотоальбомы, заметки, IM-клиенты) не писать на Ruby, Python, Groovy, Lua, JS и подобных языках.
                  • Ну, а об этом даже спорить не интересно. Хочешь на питоне написать — дык напиши, никто не держит. Чуваки захотели на моно написать — и написали. Нормальный, между прочим, софт получился. Респект им и уважуха, а моно-явы-питоны-сотоварищи тут не причем — принципиальной разницы нет, возможности нужные все есть, производительность не настолько критична в таких приложениях. Лучше/не лучше — исключительно личные предпочтения, как мне кажется.
            • Аргумент про «обязательную компиляцию» — на грани бреда. А вам-то, собственно, какое до этого дело? Вселенскую печаль испытываете от того, что знаете, что после нажатия кнопки Run в IDE несколько class-файлов обновится?
              • У компиляции три проблемы:
                1. время;
                2. долгий лишний дебаг так как не сделал clean когда нужно;
                3. IDE. На Ruby и Python пишут в основном без неё.
                Плюс без компиляции есть пара фишек:
                1. Когда у вас где-то в другом месте уже скомпилированное приложение его нельзя быстро поправить (например, с мобильника через ssh в ресторане).
                2. Нет интерактивной консоли, где можно ввести команду и тут же получить результат. Очень удобно для быстрого прототипа или проверки какой-то идеи.
                В любом случае без компиляции легче, чем с ней.
                • > IDE. На Ruby и Python пишут в основном без неё.
                  IDE — это не только компиляция, это еще и автокомплит, хинты, шаблоны, макросы, удобная отладка и рефакторинг, а также много других плюшек. Так что это скорее плюс, а не проблема.

                  > Когда у вас где-то в другом месте уже скомпилированное приложение его нельзя быстро поправить (например, с мобильника через ssh в ресторане).
                  В ресторане нужно приятно проводить время, а не приложения с мобильника по ssh править.

                  > Нет интерактивной консоли, где можно ввести команду и тут же получить результат. Очень удобно для быстрого прототипа или проверки какой-то идеи.
                  В Visual Studio, например, консоль такая есть.
                  • Простите, в Студии действительно есть консоль, на которой можно гонять C++ построчно?

                    Речь идет о принципиальной разнице языков, а не IDE. На динамических писать просто-напросто легче.
                    • Шарп можно. Плюсы, по-моему, нельзя.
                      • Можно, но с большим числом ограничений.
                  • 1. Я не против IDE, но компиляция во время разработки — зло. JIT компиляция всё равно удобнее, чем обязательная.
                    2. Ну вы поняли идею. Удобно всегда подправить файл, а чтобы JIT сама всё перекомпилировала.
                    3. Реализовать можно всё, но интерактивная консоль на скриптовых ЯП реализует очень просто и понятно. См. например, tryruby.hobix.com/ (слабо найти пример для C# ;) ).

                    P.S. по поводу IDE хороший пример нетбуки. Там vi летает и иметь выбор между IDE и редактором удобно. Я знаю, что компилятор тоже из консоли можно вызывать, но скриптовые всё равно удобнее.
                    • Ну, онлайновых консолей не встречал (да и не искал особо), а вот оффлайновая — пожалуйста: www.mono-project.com/CsharpRepl
                    • 1-2. Вам уже выше сказали про en.wikipedia.org/wiki/Incremental_compiler, он используется в том же Eclipse при разработке. А за «с мобильника через ssh в ресторане» отрывают яйца в приличных конторах.
                      3. Это безусловно круто, только никому не нужно.

                      P.S. Можно ещё мобильные телефоны вспомнить, я на iPhone тоже vi как-то ставил.
                      • 1. Инкрементальная компиляция, честно говоря кастыль ;). Зачем всё это, как есть нормальное решение.
                        2. С мобильника в ресторане — это условно. Но согласитесь, что отсутствие необходимости в жирном SDK, исходниках (и следовательно копии репозитария) — это как минимум не хуже ;).
                        3. Тем более лучше пример идёт с нетбуками. В кафе в ожидании встречи очень приятно покодить. Ну зачем там заводить SDK и IDE? ;)
                        • Да «кодьте» себе на здоровье.
                          • (Случайно запостил. Продолжаю.)

                            Я сейчас разрабатываю приложение на Java, использующее embedded Jetty, Spring, Hibernate, JasperReports и еще всякого по мелочам. И уж прошу простить меня, сирого, но наизусть я код этих библиотек/фреймворков/etc не учил (скорее, хотел бы посмотреть на того, кто это таки проделал), так что вопрос о разработке без IDE и соответствующей документации просто не идет.

                            P. S.: Думаю, мы пришли к взаимному выводу о разном масштабе решаемых при разработке задач. На этом можно и пожать друг другу руки и разойтись миром. :)
                • «Время» — вы на Pentium-133 MMX разрабатываете? У меня на компьютере процессор AMD QL-60. Не Xeon 7***, прямо скажем. И действительно, от нажатия кнопки Run до старта приложения проходит (о, боги!) полторы секунды. Чувствую, как седею на глазах, ага.

                  Второй аргумент («долгий лишний дебаг так как не сделал clean когда нужно») мне абсолютно непонятен. О чем это вообще?

                  «IDE» — вам уже справедливо отметили, что пишущие без IDE — это люди-ССЗБ.

                  «Пара фишек» — ну просто смех берет. Зачем, интересно, нужно «быстро поправить» приложение вместо того, чтоб пообедать? Уж не потому ли, что интерпретатор таки чего-то там не поймал, несмотря на то, что «интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка»? Представить себе проверку идеи или же «прототипирование», которое можно сделать парой строк кода, я, пожалуй, затрудняюсь, если речь, конечно, не идет о том, чтоб вспомнить языковые конструкции перед тем, как лезть что-то «быстро поправить (например, с мобильника через ssh в ресторане)».

                  P. S.: Я, кажется, понимаю, в чем дело. Мы по-разному подходим к разработке. Для вас это — решение надуманных проблем («время», «IDE», «долго искать объявление класса» и др.), для оппонирующих — решение поставленных задач на уровне, позволяющем прогнозировать как сам процесс разработки приложения, так и его отладки, внедрения, использования, поддержки, развития.
                  • «пишущие без IDE — это люди-ССЗБ». Эм, а Линус и Столлман? ;)
                    • Пруфлинк? Кроме того, разве автору Emacs нужно что-то еще? :)
                  • См. выше я ответил на эти вопросы более адекватному Scala.
                • «Время» — вы на Pentium-133 MMX разрабатываете? У меня на компьютере процессор AMD QL-60. Не Xeon 7***, прямо скажем. И действительно, от нажатия кнопки Run до старта приложения проходит (о, боги!) полторы секунды. Чувствую, как седею на глазах, ага.

                  Второй аргумент («долгий лишний дебаг так как не сделал clean когда нужно») мне абсолютно непонятен. О чем это вообще?

                  «IDE» — вам уже справедливо отметили, что пишущие без IDE — это люди-ССЗБ.

                  «Пара фишек» — ну просто смех берет. Зачем, интересно, нужно «быстро поправить» приложение вместо того, чтоб пообедать? Уж не потому ли, что интерпретатор таки чего-то там не поймал, несмотря на то, что «интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка»? Представить себе проверку идеи или же «прототипирование», которое можно сделать парой строк кода, я, пожалуй, затрудняюсь, если речь, конечно, не идет о том, чтоб вспомнить языковые конструкции перед тем, как лезть что-то «быстро поправить (например, с мобильника через ssh в ресторане)».

                  P. S.: Я, кажется, понимаю, в чем дело. Мы по-разному подходим к разработке. Для вас это — решение надуманных проблем («время», «IDE», «долго искать объявление класса» и др.), для оппонирующих — решение поставленных задач на уровне, позволяющем прогнозировать как сам процесс разработки приложения, так и его отладки, внедрения, использования, поддержки, развития.
                • Ага, вам времени на компиляцию жалко, пусть лучше грузится процессор у пользователя. Он то все стерпит. На кол таких разработчиков, я считаю.

                  > долгий лишний дебаг так как не сделал clean когда нужно

                  Ну если вы со средсвами компиляциии и отладчиком разобраться не можете.… может вам чем нибудь другим заняться лучше?

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

                  Найдите/сделайте фреймворк с консолью.
                  • А для ЯП с обязательной компиляцией в том-то и дело, что сделать консоль довольно сложно. Костыли одни в итоге.

                    Ну ничто не мешает вам скомпилировать перед передачей пользователю (как, например, делается в PHP или JRuby). Я лишь говорю, что необязательная компиляция как минимум не хуже обязательной.
  • НЛО прилетело и опубликовало эту надпись здесь.
    • На C# свет клином не сошёлся. Есть Python, Ruby и другие изначально свободные ЯП с кучей плюсов. По части директор просит работу быстрее, смотри, например, RubyOnRails с блогом за 15 минут.
    • НЛО прилетело и опубликовало эту надпись здесь.
    • > истинная свобода не накладывает не каких обязательств.

      Истинная свобода накладывает ровно столько обязательств, сколько необходимо для сохранения свобод.

      Вы что, Neon Genesis Evangelion не смотрели? ;)
  • Уважаемые все, путающие c# и .net CLR — прочтите еще раз пост внимательно.
    В обще случае .net != c# (в последнем, например, доступны не все фичи, реализованные в CLR). И Столлмана беспокоит использование именно c#, а не самого Mono. Используйте Delphi.NET, Nemerle или Boo, и проблема решена. Отказываться от Mono смысла нет.

    Поэтому споры по поводу правомочности включения Mono в Linux не имеют смысла вообще — в крайнем случае, можно выкинуть gmcs, и жить спокойно.
    • Как раз наоборот. Язык как таковой (синтаксис) запатентовать нельзя. А вот для реализации .Net CLR нужны конкретные алгоритмы, большинство из которых уже запатентованы.
      • Ну, CLR, а с ним и CLS и CTS не запатентованы, а, наоборот, стандартизованы ECMA. BCL тоже никто не патентовал. Столлман тоже почему-то переживает за c#, а не за Mono.

        Весь BCL в Mono написан и пишется «с нуля», именно это, в основном, и обуславливает такое отставание. Если бы МС хотели переехать на Linux, они бы уже давно «подхватили под руки» Мигеля и обеспечили его всем, что надо, чтобы CLR нормально шевелился под *nix.

        Они на это смотрят сквозь пальцы — ковыряется там чудик, и ладно. Потому что пока Mono выйдет на уровень, когда ее можно будет поставить на мощный сервер под mission-critical приложением, MS уже найдет себе другую игрушку, и будет носиться с ней, как это вышло с COM. И .net им будет побоку — пусть его куда угодно, хоть под Линукс поставят, хоть на Марс отправят.
        • Mono и не рассматривается для enterprise-приложений и сейчас разговор идёт о desktop-приложениях, типа фотоальбома F-Spot. Сам Mono содержит ещё библиотеки, сборщик мусора и так далее, там много места для патентов вне конкретного языка.
          • >> Сам Mono содержит ещё библиотеки, сборщик мусора…

            Скажите, если не секрет, Вы для .net пишете?
            Есть ощущение, что Вам аббревиатуры CLS, CTS, CLR, о которых я упомянул, ни о чем не говорят, и вы продолжаете рассказывать про какие-то библиотеки.
            • Не пишу, но прочитал. Говорю я о библиотеках в .Net типа Winforms и т. д.
  • НЛО прилетело и опубликовало эту надпись здесь.
  • инетересно что проповедник свободного софта предлагает по сути административне методы борьбы с конкурентом

    подкрепляя это довольно сомнительной доказательной базой

    база данных патентов открыта и по ней есть поиск, доказателсьтво найти реально, а его нет

    хотите боротся — боритесь с причной, делаете «другие языки» лучше чем c#

    разработчки наверно выбирают c# потому что им мсфт забашляла

    а не выквыривайте моно из дистрибутивов
    • Аналоги языков много (см. выше я описывал недостатки C# перед Ruby, Python и т. д.). Столлман как раз и призывает в сущности писать свободное ПО но свободных языках, так как есть конкретная угроза судебных исков (см. иск Microsoft на TomTom за FAT32).
      • А вы гарантируете, что в свободной реализации свободных языков не будут использованы запатентованные МС алгоритмы? :) Вы же про си шарп именно это говорите, что язык свободен, но при его реализации могли быть использованы МСные алгоритмы. В принципе, их алгоритмы в ВМ, и для сборки мусора могут быть и в других языках использованы. Как нам тогда быть?
        • Это маловероятнее. Дело в том, что спецификация языка часто приводит к тому, что алгоритм остаётся только один, и шансы на нарушение патентов в .Net в несколько раз выше.
  • А объясните мне — знающие люди — почему МС может подать в суд на Моно (пусть за патент, например), а Sun (ныне Oracle) не может сделать того же по отношению к Java (openJDK)?
    • Ну, например, потому что Microsoft публично угрожала подать иски по патентам и это неоднократно делала (на FAT32 против TomTom). Кроме того, Sun вроде входит а ассоциацию, которая обязуется на использовать патенты против Свободного ПО.
      • А выйти из этой ассоциации Sun не может в случае чего?
        • Ну условием вступления является передача прав на патенты, так что выход от проблем не избавит.
  • Впору топик переносить в блог «Священные войны».
  • Ура мы победили! Debian не будет устанавливать Mono по умолчанию
    • урл съелся www.linux.org.ru/view-message.jsp?msgid=3834958
    • Интересно, что сейчас будет с позицией Ubuntu.
    • Странно, что линуксоиды, матерящиеся на то, что чтобы поставить какую-то програмку, надо качать многометровый фреймворк, и сами для своей системы добиваются того же самого.
  • Когда-то была такая история. QT был под двойной как и сейчас лицензией, одна из них была бесплатной, но не GPL и ничего похожего. Поскольку QT — хорошая штука, многие на него запали и стали фигачить на нем KDE. Столлман поднял тревогу и стал бить в набат.

    Суть тревоги была в том, что по лицензии на Qt Троллтек мог в любой момент поменять лицензию и прекратить выпускать бесплатную версию Qt. Получилось бы тогда, что все фри коммунити было бы капитально подсажено на платный закрытый продукт, что в корне меняет ситуацию со всем фри движением и софтом.

    Итак, Столлман поднял тревогу, стал бить в колокола и стартовал альтернативный проет фри десктопа, известный сегодня под именем «Гном».

    Многие тогда, как и сейчас говорили: «сумасшедший параноик!»

    Однако, что мы имеем как результат:
    — Гном
    — Qt вынуждено было, чтобы поддержать КДЕ, поменять лицензию свободной ветки сначала на близкую к GPL, а потом и вовсе на GPL.
    Т.е. в похожей ситуации действия Столлмана оправдались полностью.

    Так что подождем судить Столлмана.
    • а в гном тем временем повбивали кучу всякого ПО на mono… столман — ССЗБ :-D
  • Еще, кстати, Столлман противник Javascript — потому что если ты вдруг зашел на какой-нибудь Google Docs, на твоем компе исполнилась какая-то не open source программа, а по понятиям Столлмана — это как запомоится.

    Нельзя победить C# нелепыми заклинаниями. Пока C# — один из сильнейших языков в мире. Пока не будет серьезной альтернативы — люди будут пользоваться C#.
    • Но не противник, он просто рекомендует явно указывать, какая лицензия у JS когда. Например, чтобы у пользователя был выбор.
      • А на верстку моего сайта не нужно указывать, какая лицензия?
        • Про JS он начал говорить, потому что на нём уже пишутся проекты покрупнее, чем многие C\C++ приложения. А когда столько кода, при этом написанного разными людьми в разное время — лицензии важная часть.
          Он не требует чтобы браузер показывал только свободные сайты, но с лицензиями всем будет только проще. Сейчас практика изучения вёрстки и JS с других сайтов — фактически воровство (пока власть не захватит Пиратская партия). С лицензиями можно прямо знать с каких сайтов можно копировать куски.
          • И так можно знать.
            Все чужое можно смотреть. Ничего чужого нельзя копировать.
            Так было в мире свободного ПО почти всегда. Есть даже официальные FSF гайдлайны, как делать бесплатные аналоги программ, для которых есть исходники, и не опускаться до прямого копирования.
            Я согласен с Торвальдсом в этом плане. Нормальные люди хотят иметь право выбора, под какой лицензией выпускать программы, и используют свободные лицензии, потому что это выгодно. Фанатики вроде Сталмана считают, что ВСЕ программы должны
            • что ВСЕ программы должны выходить под свободными лицензиями, потому что это верно.
              Быть фанатиком — плохо и вредно.
            • Он не говорил этого по части JS. Повторюсь, он говорил лишь о том, чтобы явно указывать в JS лицензию. Ни о каких запретах он не говорит.
              • Зачем явно указывать в JS лицензию?
                • Чтобы, например, сделать расширение для FF, которое говорило бы, что ты пользуешься свободным сайтом и можешь посмотреть его необусфуциорванные JS-исходники там-то. Или обнаружить в автоматическом режиме конфликт между лицензиями библиотек (например, если я написал расширение для jQuery только для Свободного ПО, а его использует какой-то сайт без свободной лицензии).
            • Он даже прямо говорил, что не считает, что все программы должны быть свободными. Но, например, лично он хочет быть уверенным, что его компьютер не сливает данные о нём в ЦРУ, а уверенными в этом можно быть только по отношению к свободному ПО (с возможностью самому вырезать любого «жука»).
              • И к свободному ПО нельзя.
                Unless ты заплатил за полный аудит кода и сам его скомпилировал доверенным компилятором.
                • К свободному ПО легко можно. Ты же можешь загрузить все исходники и сам их собрать предварительно проверив (BIOS, ОС, драйверы, GUI, браузер, JS). С проприетарным компьютером такое сделать экономически невозможно.
                • Миллионы пристально наблюдающих за кодом/приложением людей не в счет?

                  Руководствуясь вашей логикой, вы и человеку, который ответил на вопрос «который час?» не поверите, пока не заплатите за полный аудит механизма работы его часов, а также не разглядите циферблат с расстояния в пару сантиметров.
    • Пока что на C# не написали Azureus, OperaMini, GoogleMaps, GanttProject, Freemind и Eclipse с NetBeans пользоваться им будут только те, кто в восторге от приложений типа Paint.NET и F-Spot.
      • Paint.NET, кстати, удобная штука.
        Заказчики заказывают приложения на C#, программисты — пишут.
        Все довольны :)
  • Зачем C#, когда есть чудесный (если не считать сборщика мусора и строк) язык D?
    • Строк? Что не так со строками?

      Сборщик мусора — да. Тот ещё тормоз в D.
      • Строки по умолчанию передаются как ссылка (указатель), то есть если написать a=«WWWW»; b = a, и b и a указывают на одну и ту же область памяти (и это неинтуитивно:( ). Потому есть риск передать строку в функцию к примеру, а там она будет изменена. Передавать строки всегда по значению — тоже не выход, так как это неэффективно. Значит, надо делать схему с подсчетом ссылок и copy-on-write, но у нее свои недостатки, нужны постоянные блокировки в многопотоной среде.

        А вообще, язык нравится тем, что должен (по идее) работать сос коростью низкоуровненвого C++, но при этом имеет нормальный синтаксис, и всякий синтаксический сахар вроде анонимных функций.
        • 1. Какие проблемы у copy-on-write?
          2. В DMD 2.xxx string = invariant(char[]), т.е. строки неизменяемые, как, например, в java.
          • 1. Я ж написал, для этого метода нужно вести счетчик ссылок (разве нет?), так как копировать строку, на которую сущ-т только 1 ссылка, нет смысла. А счетчик ссылок надо увеличивать или уменьшать с блокировкой, что тормозит процессор сильно.

            2. Ну тогда ок.

            Тогда другой пример. Если не путаю, расширение динамического массива происходит путем выделения новой области памяти и копирования туда старого массива. Понятно, что многие программисты могут и не знать об этой особенности, т к она достаточно низкоуровневая, и написать например цикл, из 1000 добавлений элемента в массив ( = 1000 массива копирований в памяти).

            Понятно, что можно написать свою реализацию массива для таких случаев. Но.

            Я думаю, встроенные средства языка, типа строк или массивов, должны быть реализованы масимально эфективно, и в данном случае «упрощенная» реализация массива (без алгоритма резервирования памяти) приносит больше вреда, чем выигрыш от упрощения кода, и провоцирует на написание неэффективного кода.

            Еще раз повторюсь, сам язык мне в общем нравится, и компилятор у него шустрый :)
            • При увеличении длины массива выделяется столько памяти, сколько надо после массива. Если область памяти после массива занята, то происходит выделение памяти в другом месте в размере равном max(исходный*2+1, затребованный). т.е. цикл из 1000 добавлений копировать ничего не будет. В худшем случае произойдёт 10 (log(1000)) копий

              Информация взята из воспоминаний об обсуждении соответствующей темы на nntp://news.digitalmars.com/digitalmars.D
              • Ну если память резервируется, то все ок, просто читал где-то в документации предупреждение как раз по этому поводу.
                • ЕМНИП резервирование памяти оставлено на усмотрение реализации.

                  В программе конечно лучше сразу выделить сколько надо. Тогда никакого копирования вообще не будет:

                  auto a = new int[1000];
                  a.length = 0;

                  for (i; 0… 999) {
                  a.length = a.length +1;
                  a[$-1] = getValue(i);
                  }
  • Честно говоря большинство заявок против Mono меня не удовлетворяют по следующей причине: не указаны номера патентов при помощи которых задавят Mono. Кстати, вот статья про это: Почему Mono хорош
    • Но Microsoft не называла номера патентов перед тем как начать пилить TomTom ;)
      • Где такие сведения? Да и в конечном итоге Microsoft на