Решение 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. Кросплатформенность обеспечивают сторонние разработки, и микрософт их либо не поддерживает, либо поддерживает ограниченно, и без поддержки они точно не умрут.
Понятно конечно, что эти технологии предназначены только для Windows. Но мы (программеры) можем делать это за денюшки и причем не сильно заморачиваясь на интерфейсах. Да и при работе с другими видами и сложностями. Пусть тот же TCP/IP или показать пользователю картинки и т.п.
Все счастливы все рады?)
2. Зачем Mono интегрировать до самой прямой кишки? Неужто нельзя без этого?
Он просто большой. Такую махину целесообразно либо сразу подо множество приложений юзать, либо не стоит запариваться.
По посту — бред. Я и до этого плохо переносил OpenSource, но теперь это похоже на сказку про негров, которые везде кричат, что о расизме, но сильнее расистов, чем негров, нет.
Майкрософт действительно не раз в прошлом использовала патентные войны как метод борьбы с конкурентами. Думаю, попади вы хоть раз в сильную аварию, то стали бы пристегиваться.
Кстати, а чего вы вообще обратили внимание на статью, если так не любите Open Source? Это мы его ценим, мы любим и мы вкладываемся в общую кучу инструментариев. Это настоящая работа, много работы, безумно много. И выбрасывать из-за чьих-либо патентов столько времени — обидно.
Для Столлмена же вообще это — дело всей жизни. Его можно понять.
Понимать можно и нужно, на слово принимать все, что он говорит — не нужно. В этом разница.
P.S.: я не называл его дураком, я назвал его больным человеком.
Вероятность есть? Есть. Соответственно, Столлман рекомендует все же отказаться от использования этой технологии в дистрибутивах.
Тут не надо ничего принимать на веру. Логика, основанная на известных фактах, ничего необычного. А уж создатели дистрибутивов должны оценить и взвесить опасность против преимуществ, и сделать соответствующий выбор.
>Мы должны систематически уменьшать нашу зависимость от реализаций C#. Другими словами, мы должны отговаривать людей от разработки программ на C#.
>Мы должны систематически уменьшать нашу зависимость от телодвижений. Другими словами, мы должны отговаривать людей выходить на улицу (кирпич может упасть на голову, машина сбить...), совершать путешествия (самолет упадет, поезд сойдет с рельс...), кушать (подавиться можно), петь песни (муха/пчела залетит...).
Есть такие вероятности? Есть. Но, несмотря на них, вряд ли Вы будете уговаривать людей, верно? А тут имеет место именно призыв…
Да конечно. Посчитаем количество пострадавших / погибших от черепно-мозговых травм?
Специально кирпичом мало кто убивает — ножей и пистолетов мало, что ли?
Ваши примеры — не случайны. Ибо в них есть прямая зависимость от человека (я в общем о виде говорю, а не о конкретных личностях).
Камень из-под колеса проезжающего авто, попавший в человека — случайность или нет?
Сколько еще примеров надо, чтобы стало понятно, что «случайность» — всегда результат каких-то действий. И не важно, противоправных или нет.
Вероятность плохого стечения обстоятельств есть всегда. Но никто не одевается в бронижелет, если собрался прогуляться по улице, верно?
P.S.: напомню — ветка пошла именно по той причине, что я высказал мнение о том, что неверно воспринимать чьи-то (не важно чьи) предостережения без существенных оснований.
Почему нет? Метафору можно повернуть как угодно. Столлмановский совет из разряда «не переходите улицу на красный», «не ползайте по стройкам», «пристегивайте ремень безопасности». А телодвижения… Следует отговаривать людей от опасных телодвижений, вроде прыжка с высокой вышки в темную воду. Вдруг снизу камни?
Именно. Вероятность есть, довольно серьезная, а потому разумно отговаривать людей использовать потенциально опасные вещи.
Ну вы же не спорите, что Ms в прошлом не раз использовала свое монопольное положения для борьбы с конкурентами?
Столма говорит совершенно не о случайном кирпиче, а говорит, что использование моны в опенсорсе — это как HTC Diamond-ом ночью дорогу в гопском районе освещать, вроде как эффективно, но вот вероятность получения ЧМТ возрастает на 9000.
Дебиан убрал моно из инсталяции по умолчанию, бубунта нет.
Столлман предупредил, все послушали и сообразно своим интересам сделали выводы. Как показала практика сей деятель весьма часто видит вещи с той стороны с которой многие не хотят на них смотреть… и он прав.
Своим вниманием к казалось бы мелочным проблемам (многим они казались не стоящими и по по сей день кажуться) он создал FOOS, а ведь и тогда была толпа говорящих про «ты че решил „Мы должны систематически уменьшать нашу зависимость от телодвижений“» и «бугага, мужик ты больной сумашедший человек» =)
Безмерно уважаю его за принципиальность и силу воли следовать, вопреки общественному мнению, за своими идеалами
А то, что закрытая технология не должна ставиться во главу угла — вполне разумная мысль. Жаль, что вы ее не смогли осмыслить в правильном направлении.
Мир не ограничивается одной платформой. Я до сих пор не знаю, почему поклонники Windows думают иначе.
>А то, что закрытая технология не должна ставиться во главу угла — вполне разумная мысль.
Чем же она разумна? Тем, что OpenSource-софт, чаще всего, намного хуже? Или тем, что используя (случайно или умышленно) OpenSource-наработки, я обязан выложить весь свой код? Кстати, по этой причине давно отказался от Indy в Delphi.
>Жаль, что вы ее не смогли осмыслить в правильном направлении.
Я считаю, что оценил все правильно: параноик пытается навязать свою болезнь здоровым (пока что?) людям. Это нормально?
>Мир не ограничивается одной платформой. Я до сих пор не знаю, почему поклонники Windows думают иначе.
«Поклонники» Windows думают совсем о другом: об удобстве установки системы, когда уверен, что на 99,99% оборудования есть дрова; о привычном интерфейсе; о куче программ, среди которых легко выбрать то, что нужно, а не то, что дают; о легкости настройки системы, когда не надо ковыряться в конфигах и т.д…
Да не думают они об этом. Они ставят систему и сразу начинают на ней работать, не отвлекаясь на всякую ересь.
Молодой человек, это OpenSource, здесь вас НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет. Ни на кого вы пахать не будете. Все делается по вашему личному желанию и с вашей личной подачи. Собственно, вас возмущает свобода такого широкого выбора? Нет стандартной почасовой зарплаты и чая в офисе?
Извините, не в обиду, но кроме ограниченности мышления я здесь ничего больше не вижу.
>> Чем же она разумна? Тем, что OpenSource-софт, чаще всего, намного хуже?
Хм… На сегодняшний момент единицы программных пакетов существуют в единственной реализации и у них нет аналогов под свободные платформы. За всю свою историю жизни в свободной оси я еще ни разу не наткнулся на что-то невообразимое, чего не смог бы сделать имеющимися в моем распоряжении средствами.
Собственно, если средства доступны, они качественно изготовлены и их, в большинстве случаев, весьма удобно использовать — какой смысл дальше спорить?
>> Я считаю, что оценил все правильно: параноик пытается навязать свою болезнь здоровым (пока что?) людям. Это нормально?
Тут бы вас в пример ставить в качестве параноика, ибо нормальные люди скорее всего смотрят на этот холивар и улыбаются. Да и я, по сути, тоже улыбаюсь. Интересно просто разговаривать с фанатами Windows до мозга костей. Кстати, если уж вы о болезни заговорили — с каждым годом больных все больше и больше. Вас такая тенденция не смущает? А жаль… Статистика, говорят, самая интересная вещь в таких спорах.
>> Поклонники» Windows думают…
ИМХО, на этой фразе стоит закончить наш спор.
Мне намного важнее информация о работе моей системы, а не красивые графики и магия волшебных галочек «ткни и заработает!». Мне, как разработчику, намного важнее иметь возможность самому исправить свой низколетящий велосипед с тахионным двигателем на дровах, чем ждать милионного патча от Microsoft. Мне намного интереснее знать, как распределяется память, куда уходят лишние килобайты свопа и что же такое монолитное ядро.
И если мне будет необходимо — в своей системе я найду любую интересующую меня информацию прямо из коробки. Вместе с описаниями, пояснениями, комментариями таких же, как я, людей со всей планеты. Для которых «дух свободы за клавиатурой» — это, извините, не пустой звон в голове и не слова на ветер.
З.Ы. Как ни странно, именно такие люди честно платят за каждую купленную программу или игру тому же вендору, их изготовившему. Интересно, почему?
Никто не спорит что вы сможете написать что то и на ассемблере, а может и сразу в машинных кодах. Просто дело еще и в удобстве и скорости программирования.
>> Мне намного важнее информация о работе моей системы, а не красивые графики и магия волшебных галочек «ткни и заработает!».
А мне не хочется делать руками те же операции, которые делает галочка «ткни и заработает!».
>> Мне, как разработчику, намного важнее иметь возможность самому исправить свой низколетящий велосипед с тахионным двигателем на дровах, чем ждать милионного патча от Microsoft.
Пока вы ковыряете свой странный велосипед, «фанаты» майкрософта уже давно катаются. И скажите честно, давно ли вы правили исходники ядра линукса или используемых вами прикладных программ?
Я ставил убунту, по скорости СИЛЬНО проигрывает висте.
А скорость выполнения приложений, не зависящих от узких мест сравниваемых ОС, почти одинакова.
Windows… Vista — только домой, Server — только на сервер, Mobile — только на трубку, про Cluster вообще никто и никогда не слышал просто-напросто потому что нигде не используется. И все довольно сильно отличаются.
Основная разница — гораздо большая гибкость в сравнении в проприетарными комплектами, из-за кому-то система может показаться слишком сложной.
:))) Не могу не подколоть :)) Младшей сестре вот так не кажется, маме — тоже :))) Но вам-то, как Айтишнику, с рулем не довелось справиться :)
>Основная разница — гораздо большая гибкость в сравнении в проприетарными комплектами, из-за кому-то система может показаться слишком сложной.
Если брать «голые» системы — верно. Но, на самом деле, практически все системы очень гибкие, но в одних это скрыто, а в других пиарится ;)
Шеф моего нынешнего проекта — аниматор, он без метафор объяснять не умеет. И это пипец. :) ТЗ = произведение искусства, не документ.
Так вот. Насчет гибкости всех систем. Почему файловых систем под виндой мало? Почему под каждый класс оборудования — практически другая ось? Почему интерфейс в ядре? Как сменить менеджер окон? Зачем так много версий?
А зачем нужны множество файловых систем?
>Почему под каждый класс оборудования — практически другая ось?
Может потому, что это разные классы(!!!) оборудования?
>Почему интерфейс в ядре?
Если честно — не вижу в этом ничего плохого. Хотя, для кого-то, это может быть плохим стилем =).
>Как сменить менеджер окон?
А вот этого точно НЕ НАДО!!! Кстати, для W98 я использовал разные надстройки, наподобии LiteStep, Talisman… Правда не долго.
>Зачем так много версий?
Посчитаем количество версий линукса? =)
Да низачем, если бы едиинственная была на современном уровне.
Хотя есть конечно специализированные ФС вроде squashfs или unionfs, которые могли бы и пригодиться.
>> Как сменить менеджер окон?
> А вот этого точно НЕ НАДО!!! Кстати, для W98 я использовал разные надстройки, наподобии LiteStep, Talisman… Правда не долго.
Тоже использовал. Вы правы, все они ещё корявее и неудобнее дефолтного explorer'а.
Кстати, под Windows так до сих пор и не написали ни одного фреймового WM'а. Неудобно же мышкой окна таскать.
NTFS поддерживает сжатие на лету уж который десяток лет…
>unionfs
subst
Или Вы не поняли, что такое unionfs?
Некоторым важно знать, как работаю часы. Все, до малейшей мелочи, до количества зубцов на шестеренке и энергетических запасов на пружине.
Из таких получаются отличные часовщики, которые знают толк в своем деле и готовы делиться своими знаниями с миром.
Другим важно время, показываемое часами. Это кто угодно, от успешных бизнесменов до школьников и бомжей. Какое им дело до пружинок и шестеренок? Никакого, верно. Но они тоже имеют право на жизнь.
Разные подходы к одному и тому же вопросу.
Я не утверждаю, что правы в мире только часовых дел мастера. Но ограничивать их в их труде — я даже не знаю, каким образом это описать.
Как пример — часы не могут воспроизводить другие часы и с помощью часов нельзя проектировать иные, более совершенные виды часов.
И это тоже только верхушка айсберга.
В одном из комментариев к этому посту я сказал, что OpenSource-сообщество (а точнее, приверженцы) напоминают мне негров, которые на каждом углу кричат о дискриминации, но сами являются расистами, похлеще куклус-клановцев… После этого, я наблюдал, что будет происходить с моими комментариями и кармой. Ничего неожиданного не обнаружил: согласных с комментариями — много, часть молчит, часть поддерживает. А вот противники, по большей части, просто ставят минусы, т.к. ответить не могут, но хотят подавить.
Тоже самое происходит и в жизни: мало кто понимает смысл в OpenSource, но много кто мечтает быть в OpenSource-сообществе, потому что это «модно».
Вы, в данный момент, делаете тоже самое: пытаетесь убедить в том, что какой-то инструмент дает преимущества, но на деле, он даст преимущества только Вам, т.к. Вы готовы переделать инструмент под себя, а другие нет. Если взять Ваш пример с часами, то да, «часовых дел мастер» будет иметь самые точные и надежные часы в округе, но не потому, что марка его часов хороша, а потому, что он каждый день их чистит/регулирует и т.д.
> И скажите честно, давно ли вы правили исходники ядра линукса или используемых вами прикладных программ?
Делаю это в данный момент. Вот с этим: happypenguin.org/show?Mumble
Все как обычно — читаем только то, что нравится? =) Я даже пример привел. Ок, разжую: используя что-то под GPL, я ОБЯЗАН соблюдать GPL — верно? Дальше продолжать?
>Извините, не в обиду, но кроме ограниченности мышления я здесь ничего больше не вижу.
Как ни странно, я, в Вашем случае, тоже.
>За всю свою историю жизни в свободной оси я еще ни разу не наткнулся на что-то невообразимое, чего не смог бы сделать имеющимися в моем распоряжении средствами.
Везет. Для меня, первый пример — webmoney. Ну нет клиента под другие платформы. Ligth не предлагайте — функционал не просто ущербный, его нет.
>Собственно, если средства доступны, они качественно изготовлены и их, в большинстве случаев, весьма удобно использовать — какой смысл дальше спорить?
Доступны: нет (цуиьщтун). Качественны: нет (OO). Удобно использовать: нет (GIMP, OO, Blender и т.д.). Да, действительно, спорить не о чем =).
>Тут бы вас в пример ставить в качестве параноика, ибо нормальные люди скорее всего смотрят на этот холивар и улыбаются. Да и я, по сути, тоже улыбаюсь. Интересно просто разговаривать с фанатами Windows до мозга костей.
Так и я улыбаюсь. Именно по этой причине захожу в подобные топики — понаблюдать, какие доводы приведут собеседники. Чаще всего — одни и те же. В Вашем случае тоже — доводы о доступности софта возникают постоянно, но как только приведешь небольшой список (webmoney, Гарант, Консультант+, 1С Предприятие), все вспоминают о wine =))))
>Мне намного важнее информация о работе моей системы
А мне, намного важнее, что система работает и работает хорошо. Что я сам распоряжаюсь, где что хранить на винте. Что мне не приходится заморачиваться с кучей литературы и гуглом, для того, чтобы просто заставить работать систему. И т.д…
>Для которых «дух свободы за клавиатурой» — это, извините, не пустой звон в голове и не слова на ветер.
«Дух свободы» — это свобода от предубеждений. У Вас такого нет, не в обиду.
>З.Ы. Как ни странно, именно такие люди честно платят за каждую купленную программу или игру тому же вендору, их изготовившему. Интересно, почему?
Для Вас, покажется странным, но у меня лицензионная винда и офис + куча других программ. Да, я пользуюсь OpenSource-софтом, но все больше разочаровываюсь в нем. Хороший пример — OpenOffice. Промучился месяц — купил MSOffice.
А кто вас обязывает использовать 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 — язык для ламеров».
Я и определился — использую проприеритарные либы.
>А я вот, например, хоть убей не вижу кардинальных отличий от того же 2003-го Офиса. Не стесняйтесь, расскажите о своих проблемах с ОО.
Легко. Взял файл экселя, размером 1,8Мб, открыл его в OO, сохранил. Получил файл размером в 7,9Мб. По скорости открытия/сохранения, OO проигрывает в несколько порядков.
Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.
>А стереотипное мнение о Windows-системах сложилось прежде всего из-за низкого порога вхождения. Это из разряда суждений вроде «PHP — язык для ламеров».
Возможно. И считаю это плюсом.
Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.
Звучит смешно, честно. Немного перефразирую:
«Взял твердотопливный ускоритель от Шатла, прикрутил его к Энергии. Летит хреново и по скорости подъема проигрывает родному носителю Шатлов на несколько порядков, да и высота подъема груза на орбиту что-то совсем небольшая. Ко всему прочему топлива жрет больше. Могу еще упомянуть пару взрывов такой конструкции в воздухе и один на стартовой площадке, и доставка как-то не налажена.»
Что, естественно, совсем не обязывает вас платить за это их разработчикам, так? Примеры либ можно?
Рассказ же о злоключениях с ОО, мягко говоря, не впечатлил. Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит. Скорее подтвеждает тезис о (вредном?) низком пороге вхождения. Ах да, у меня ОО не зависает и не портит формулы, куда мне обращаться?
У меня, кстати, есть обратный пример, который за три года учебы в вузе уж поднадоесть успел. Преподаватели не перестают снабжать студентов (в том числе меня) лекциями/методическими пособиями/etc, в форматах Word/PP разных версий (где форматирование плывет даже у одногруппников при открытии в Офисе). И ладно бы, мне открыть ОО, сконвертировать в PDF, а потом спокойно читать не сложно. На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?
Что, естественно, совсем не обязывает вас платить за это их разработчикам, так? Примеры либ можно?
Рассказ же о злоключениях с ОО, мягко говоря, не впечатлил. Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит. Скорее подтвеждает тезис о (вредном?) низком пороге вхождения. Ах да, у меня ОО не зависает и не портит формулы, куда мне обращаться?
У меня, кстати, есть обратный пример, который за три года учебы в вузе уж поднадоесть успел. Преподаватели не перестают снабжать студентов (в том числе меня) лекциями/методическими пособиями/etc, в форматах Word/PP разных версий (где форматирование плывет даже у одногруппников при открытии в Офисе). И ладно бы, мне открыть ОО, сконвертировать в PDF, а потом спокойно читать не сложно. На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?
Вообще — плачу, если использую ;). Примеры: DLE (как CMS), TMC в Delphi.
>Неумение пользоваться инструментом (использовать «родной» формат приложения) вас, как пользователя, не красит.
Родной формат еще не стал форматом де-факто, поэтому пользуюсь тем, чем пользуются партнеры. Как Вы определили, что я не умею пользоваться текстовым/табличным редактором? =))))
>На ваш взгляд такая «дистрибуция цифрового контента» (читай «традиция электронного документооборота») — это нормально?
Не только нормально, но и правильно! Не этого ли добиваются поборники OpenSource — стандартов? =)))
P.S.: если уж пытаетесь похоливарить — не пытайтесь показать свою крутизну: Вы не знаете меня и мой опыт, я — Ваш. OO использовал как-раз по причине попытки пересесть на OpenSource-cофт.
Особенно трудно, если по работе не очень надо; и есть большой опыт работы с виндой, за который платят.
Я переключился с первого раза в универе. Однако, было не очень жестко… Отец — программист, дома всегда стоял Дебиан, винды все чаще совсем не было. В те времена труднее всего было отказаться от игрушек. Все остальное, в общем-то, есть.
Сейчас так вообще без проблем… Средняя Юбунта ставится за пятнадцать минут.
Поздравляю участников!
Про «дистрибуцию»: таки вам кажется нормальным, что текстовый процессор (и его формат файлов) используется не столько для подготовки документов, сколько для их распространения? То, что MS открыло нечто, напоминающее спецификацию OOXML, за движение в сторону стандартизации может приниматься с большой натяжкой. Особенно, если учесть обстоятельства публикации этой спецификации.
P. S.: У меня и мысли нет показать чью либо крутизну, или же «похоливарить». Задумайтесь, почему именно вам первому пришла в голову мысль об этом.
Это ли не проблема со скоростью?
>Могу еще упомянуть, что раз в час OO просто зависает наглухо, что при сохранении портит формулы и т.д.
Это ли не проблема со стабильностью?
Может, все-же, будете читать полностью, а не только то, что устраивает Вас?
>таки вам кажется нормальным, что текстовый процессор (и его формат файлов) используется не столько для подготовки документов, сколько для их распространения?
А по Вашему, нормально будет, когда для подготовки данных используется один формат, для печати другой, для передачи третий, а для архива четвертый? Вы всегда готовите текст в RTF, для печати делаете PDF, для передачи HTML, а для архива XML? Нет?
>P. S.: У меня и мысли нет показать чью либо крутизну, или же «похоливарить».
Тут уже хуже — показ совей глупости, уж извините за грубость. Я показывал именно работу OO с данными, пусть и не в родном формате. Но ведь OO заявляет о полной поддержке MSOffice-форматов, верно? =)
>Задумайтесь, почему именно вам первому пришла в голову мысль об этом.
Может потому, что у Вас это бросается в каждом предложении? Может и Вам стоит задуматься?
В принципе, для протого чтения и передачи информации с небольшой погрешностью OO или Lotus Symphony действительно вполне хватает.
причина популярности doc(x) — именно практически монопольное положение Компании на рынке, а не какие-либо серьезные плюсы по сравнению с odf-тусовкой. Вы ж инженер, должны это понимать и не одобрять.
По поводу форматов — к чему вы перечислили все известные вам форматы? Потрудитесь объяснить, чем так хорош XML для архивов, и где я хотя бы намекал на такое его применение.
По поводу заявлений ОО «о полной поддержке форматов Офиса» — будьте добры, пруфлинк.
Даже комментировать не буду…
>По поводу форматов — к чему вы перечислили все известные вам форматы?
Мальчик, по поводу форматов — я могу еще и тебя поучить, какой формат из чего состоит, как сгенерировать и т.д. Не показывай свою «крутизну», ок?
>Потрудитесь объяснить, чем так хорош XML для архивов, и где я хотя бы намекал на такое его применение.
Легкость конвертирования в любой другой формат, хорошее сжатие архиваторами. Хватит?
>По поводу заявлений ОО «о полной поддержке форматов Офиса» — будьте добры, пруфлинк.
google.com
Уж потрудись более свои комплексы на публику не выплескивать.
Отвечаю в Вашем же стиле.
>Уж потрудись более свои комплексы на публику не выплескивать.
Сейчас снова обидитесь. Комплексы (а точнее, мания величия) есть у Вас: в каждом своем комментарии Вы пытаетесь показать свои знания (форматов файлов, знание лицензий, умение использовать любой софт и т.д.). Поверьте, другие знают и умеют не меньше.
Судя по всему, вы называете себя программистом, да? Извините, но из ваших комментариев я могу сделать вывод, что вы суть обыкновенный такой ex-СССР юзер, которому нужно до усрачки софта общей стоимостью больше $10k.
Вот скажите, нахрена вам одновременно 3D-редактор, граф.редактор, офисный пакет… Что там еще? Cubase? Premier? ЗАЧЕМ?
Зачем вам ОФИСНЫЙ пакет ДОМА? Что вам нужно от ворда? Господи, да любой сраный наколленый блокнот покроет ваши потребности на 99%. Еще один процент уходит на редактор формул. Фотошоп… Это уже даже не смешно, честно. Прыщи замазывать на фотках, сделанных цифромыльницей — вот его основное применение на постсоветских просторах.
Завязывайте уже с троллингом, а?
Ну это Вы зря.
>Извините, но из ваших комментариев я могу сделать вывод, что вы суть обыкновенный такой ex-СССР юзер, которому нужно до усрачки софта общей стоимостью больше $10k.
На основе каких комментариев Вы сделали такой глупый вывод?
>Вот скажите, нахрена вам одновременно 3D-редактор, граф.редактор, офисный пакет… Что там еще? Cubase? Premier? ЗАЧЕМ?
Кто сказал, что это ВСЕ стоит на моем компе? Вы пришли к такому выводу из списка приложений, который я давал в одном из комментов? Ну тогда, возможно, Вам стоит прочесть полностью коммент, а не только название софта ;).
>Зачем вам ОФИСНЫЙ пакет ДОМА? Что вам нужно от ворда? Господи, да любой сраный наколленый блокнот покроет ваши потребности на 99%. Еще один процент уходит на редактор формул.
Мда… Кто сказал, что ДОМА??? Точнее так — кто сказал, что я ДОМА не могу работать? Блокнот не покроет даже 50%, не говоря о большем. Если взять в пример Word, то мне, помимо написания текста, нужно еще рецензирование, вставка таблиц и т.д.
>Фотошоп… Это уже даже не смешно, честно. Прыщи замазывать на фотках, сделанных цифромыльницей — вот его основное применение на постсоветских просторах.
Ну хз… Я не фотограф, даже фотоаппарата до сих пор нет дома (правда, есть видеокамера). А фотошоп применял для нарезки дизайнов сайтов + изредка, редактирования изображений (добавление ватермарков, обрезка сложной формы и т.д.)
>Завязывайте уже с троллингом, а?
Ну так и завяжите. По Вашему комменту напрашивается один простой вывод: Вы дебил, который считает себя пупом земли, а остальные только «балуются».
Значит, перечитайте еще раз. И еще. И еще. До просветления.
До просветления и читал. Просветление заключается в том, чтобы не использовать эти лицензии, а использовать логику: хочешь отдать — отдавай и не проси ничего в замен, хочешь продать — продай. Но отдавать и ТРЕБОВАТЬ что-то, это верх наглости и глупости.
Советую и Вам думать над прочитанным, хоть изредка.
И все-таки поясню момент, который вы, похоже, упустили: GPL не заставляет вас открывать ВЕСЬ код вашего продукта. Если вы используете GPL-либу, вы должны всего лишь упомянуть автора этой либы и дать доступ к ее коду.
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-совместимых проектах.
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-софт в проприетарных продуктах можно, хоть и с некоторыми неудобствами.
Фактически, вы можете использовать GPL код с проприетарным только тогда, когда GPL «модуль» и проприетарное приложение могут работать независимо друг от друга. Это довольно редкий случай. Как правило, вам нужны «либы» именно потому, что в вашем софте нет функциональности этих «либ».
Это взаимовыгодная сделка. Вы, как программист, получаете возможность использовать чужие наработки, чтобы заработать денег или разработать что-то под себя. Пользователь получает свой софт.
Аналогично, такая лицензия дает возможность создавать какие-либо нейтральные проекты. Например, Linux нужен Sun, Oracle, IBM, Redhat и многим другим. Лицензия гарантирует, что вклад каждой из корпораций останется в общедоступным.
GPL читали? Точно не требуют? =)))
Так вот. Вам запрещают знакомиться с кодом? Нет. Можно использовать идеи, если уж из жадности не хочется брать сам исходник. Запрещают отдавать или продавать? Да нет.
Вам запрещают… Воровать сам код, если хочется работать без отдачи в общественный стек технологий. И тут уж простите грешную лицензию!
Она ограничивает не сколько разработчиков, сколько предпринимателей, вечно изобретающих способы создать очередную монополию или желающих просто использовать часы общественной работы в свою пользу.
>Ну это Вы зря.
Значит, перечитайте еще раз. И еще. И еще. До просветления.
>Мда… Кто сказал, что ДОМА??? Точнее так — кто сказал, что я ДОМА не могу работать? Блокнот не покроет даже 50%, не говоря о большем. Если взять в пример Word, то мне, помимо написания текста, нужно еще рецензирование, вставка таблиц и т.д
Вы сами и сказали, что дома. «у меня лицензионная винда и офис». Если бы речь шла о рабочем месте, вы бы не написали «у меня».
Работать дома — ради б.га. Только я никак в толк не возьму, чем же вы занимаетесь. Тут и дельфи, и пхп, и рецензирование, и составление сложных документов, и нарезка дизайнов. Дайте угадаю — «мастер на все руки»? Странно, что к вашему возрасту это еще не прошло.
>фотошоп применял для нарезки дизайнов сайтов + изредка, редактирования изображений (добавление ватермарков, обрезка сложной формы и т.д.)
О да! Это и есть основное предназначение фотошопа! Спасибо, что открыли нам глаза.
>По Вашему комменту напрашивается один простой вывод: Вы дебил, который считает себя пупом земли, а остальные только «балуются».
Забавно. Человек, не имеющий отношения к Моно, приходит в топик о Моно и начинает усиленно всем доказывать, что линукс — это баловство. И этот же человек обвиняет меня в том, что я-де занял такую же позицию. Сударь, давайте уже заканчивать холиворы. Не мешайте нам в нашем опенсорсном мире самим разбираться: нужен нам дотнет или нет.
Не угадали. Есть основная работа (составление отчетов, программирование php), есть freelance (php, delphi), а есть хобби (создание сайтиков, сервисов, программок).
>Вы сами и сказали, что дома. «у меня лицензионная винда и офис». Если бы речь шла о рабочем месте, вы бы не написали «у меня».
Вообще, чтобы было более понятно, я работаю на личном ноуте. Поэтому — «у меня».
>Это и есть основное предназначение фотошопа!
А кто-то говорил о «предназначении»? Я что-то пропустил? Насколько помню, говорили об удобстве, верно? Не надо переворачивать смысл сказанного.
>> Извините, не в обиду, но кроме ограниченности мышления я здесь ничего больше не вижу.
> Как ни странно, я, в Вашем случае, тоже.
У каждой полки много концов. «НИКТО НИКОГДА НИЧЕМУ не обязывает и не заставляет» —
это именно это отталкивает многих. «Баг? Ну поправьте сами, сорцы-то у вас есть...». Вот классно-то, правда?
В общем старый спор о том, что лучше — «отвалилось колесо — прикрути, отвёртки у тебя есть» vs «колёса не отваливаются(производитель дорожит своей репутацией) а если вдруг это случится то есть фирменное СТО».
:)
До сих пор не могу на ноутбук установить виндовс =(
Весь диск забит его исошками… три дистрибутива линукса на нем сменилось, а винду поставить не могу… слишком непосильная для девушки это задача.
До сих пор вспоминаю мои мучения с расшариванием папки в виндовсе(она не расшаривается и все тут) и как изяшно самба настраивается редактированием понятного(с коментариями) конфига в vi.
Все вы мужики врете про понятный и простой виндовс, вам бы лишь девушек смущать =)
Да вас просто в отдел пропаганды linux way надо! lol
… и шары не видно, на соседней машине все расшарилось, а на этой никакие танцы с бубнами не помогают. винда была свежепоставленная, без доп софта.
и эти знания на меня тоже не сошли при рождении, читала документацию «куда там кликать, чтобы папка по сети была видна», я еще не забыла времена обучения «пользованию самой интуитивно понятной ос»)
>(полагаю этому предшествовал долгий поиск в man-ах/на форумах «где эти чёртовы конфиги лежат и кто за что отвечает»)
в конфиге есть коментарии, которые обычно понятнее сферического окошка с галочками, конфиги лежат вообщем-то где и обычно должны лежать конфиги, чего их искать то)
единственное, чего пока не хватает — более вылизаных настроек по умолчанию, чтобы только простенькие шары прописать, не трогая остальные секции конфига.
>Да вас просто в отдел пропаганды linux way надо!
увы у нас гет зе фактс писать некому, приходиться как все в FOOS своими силами)
командная строка и текстовые конфиги такой же интерфейс как и окошки, только затраты на обучение больше, хотя потом все гораздо удобней и быстрей…
А вот я никода специально не изучал Windows. Хотя проблем с «открыть шару», «назначить права на запись» или там «добавить mime-type для сайта»не возникало. :)
В отличии от.
Т.е. в одном случае знания сошли, а во втором — нет…
>в конфиге есть коментарии, которые обычно понятнее сферического окошка с галочками, конфиги лежат вообщем-то где и обычно должны лежать конфиги, чего их искать то
Сразу виден опытный линуксоид.
«А чего их искать? Очевидно, что лежат они в /usr/какой-то_путь/config/… Не менее очевидно, что из этой свалки надо взять share_local.cfg… Ну что тут может быть непонятного? Да вот же, 754 строка конфига, в коментариях же ясно написано...». :)
Собственно именно это отличает линуксоида от «обычного»(т.е. MS ) ) пользователя: вы всё-же немного админ и для вас непонятно, ну как же можно было сразу не догадаться, где конфиг для конфигурации таких задач лежит :).
>единственное, чего пока не хватает — более вылизаных настроек по умолчанию
Удивительно, но эту фразу я слышу уже лет десять. :)
>хотя потом все гораздо удобней и быстрей…
Хм… Что «всё»?
на самом деле за десять лет настолько много всего сделали… но всегда хочется большего)
>Хотя проблем с «открыть шару», «назначить права на запись» или там «добавить mime-type для сайта»не возникало.
у меня тоже с этим проблем в линуксе не возникало, а учи меня этому изначально, даже маны читать не пришлось бы… но увы учили мышкой в проводнике вазюкать
>Т.е. в одном случае знания сошли, а во втором — нет…
ну и на меня сейчас знания начинают сходить, когда принципы работы стали понятны)) когда понимаешь принцип, становиться ясно, где искать, куда писать и на что нажимать.
Вы говорите странные вещи. Неужели вы не понимаете, что поклонники UNIX считают, что мир ограничен unix, поклонники apple — считают, что нет ничего лучше macos, а те, кто всю жизнь работал только с windows предпочтут работать именно с ней? Да, последних больше, ну и что?
Ваши действия?
Впариваете людям фигню и еще защищаете ее. Потому что программисту лишь бы побытсрее написать, а что получится, плевать с высокой колокольни. Лишь бы можно было кнопочки стеклянные сделать.
Как же я не люблю тех кто пишет десктопные (ладно, с серверами пофиг, пишите туда что хотите) программы на недоработанных, плохо сделанных библиотеках/фреймворках вроде .NET, Java, qt и Gnome. Только люди, которым неважно качество продукта могут ими пользоваться, я считаю.
Я могу рассказать о программах на Java. Работают — быстро, цели использования байткода — совсем другие, тут вы просто палцем в небо угодили. Фреймворк выкачивать надо? А другие приложения, которые вы используете, совсем без сторонних библиотек обходятся? Что это, интересно? Блокнот и Paint?
«библиотеках/фреймворках вроде .NET, Java, qt и Gnome» — перечислены, соответственно, фреймворк, программная платформа, фреймворк и среда рабочего стола (sic!). Вы правда отдаете себе отчет, что значат все эти слова, которые вы используете при письме?
Насчет Явы — вспомните, когда ее разработали. Производительность надо мерять на железе того времени, я считаю, а не на современных 8ядерных процессорах. Тут то и окажется, что целью sun было побыстрее захватить рынок, а о производительности особо не думали.
Хороший фреймворк — это тот, который, с одной стороны, облегчает разработку ПО (не требуя писать тонны каши, как например в случае с языком Си++ и winAPI), с другой стороны, выносит все ресурсоемкие операции на этап компиляции, и не пытается в рантайме заниматься компиляцией, или загружать в память монстрообразные библиотеки ради вывода таблицы и пары кнопочек, или хранить в памяти имена функций/переменных вместо указателей на них.
Второй раз прошу озвучить список «правильного» ПО. Его производительности на Pentium-133 мы тоже протестируем, будьте уверены.
Ну вот мы и узнали, почему она так плохо работает :)
> Вы предлагаете тестировать производительность, к примеру, Jabber-сервера Openfire на микроволновке?
Ну тестировать можно например на железе 95-го года, пентиум 2 и 32 мегабайта памяти, или что тогда там было.
Ах да, если вы спрашиваете про хороший фреймворк, я такого не знаю, но я в вебе программы пишу, а не на десктопе, так что вопрос скорее к вам, а не ко мне, что это за фреймворк.
Вопрос про программы — это например, программа для ведения заметок Keynote (просто дерево заметок + RichEdit), программа для воспроизведения музыкальных файлов Foobar2000, терминал Putty, редактор Scite. Эти программы удивили меня своими низкими системными требованиями, и тем, что запускаются мгновенно (это радует особо, считаю что современный процесор, выполняющий под миллиард операций в секунду, не должен заставлять пользователя ждать пока появится окошко программы. Ладно, если программе надо обработать 100 млн записей — придется подождать, но запускаться-то она должна сразу!)
Еще есть Тотал Коммандер, он правда чуть тормознее. Есть miranda, тоже тупит слегка. Есть RocketDock, имитация соответсвующего компонента с макоси, я им не пользуюсь, но просто вспомнил, так как он совсем не тормозит и ест всего около 6 Мб памяти, что ли.
Есть видеоплеер Mplayer, правда им я пользуюсь не столько из-за его системных требований, а из-за простоты интерфейса и отсутсвия необходимости в Windows-кодеках.
Есть Opera, не такая быстрая, но меньше нее ресурсов ест только ИЕ6, а им по ряду причин неохота пользовться :((
По моему, так неплохой набор программ. И после этих программ переходить на написанные на Явах или дотнете — просто неохота. Сами ешьте свои кактусы :)
Во-вторых, имхо причина популярности байткода одна. Смотрите. в разработке ПО часто участвует множестов игроков. Кто-то пишет компоненты, кто-то библиотеки. Наверняка многие из этих компаний пишут фигню, но им неохота, чтобы другие это видели, и они боятся что их криво написанный код кто-то украдет.
В тоже время, если вы например выпустите скомпилированную в байткод библиотеку на Ява, то ее можно включить в проект и использовать, но никто не увидит кашу в исходниках.
По моему, это наиболее важная причина.
И вот еще что. Давайте вместе поищем «кашу» в исходниках, например, Apache Commons. В разработке как раз участвовало «множество игроков».
Если кто-то пишет говно, то даже если это компилировать в машинный код ЭТО говном не перестанет быть.
Это плохо что люди видят исходники? Учатся? Учатся не делать таких ошибок?
Админу — может и нет, а пользователю — всегда…
Было бы весьма интересно взглянуть на подобный универсальный для всех *nix фреймворк. *nix все такие разные, тот же POSIX и то не может гарантировать 100% совместимость кода. Интересно, как бы Open Framework «мирил» различные операционки. А если бы он действительно их «мирил», как бы это упростило жизнь!
именно «уважением»
ибо вместо того, чтобы дорабатывать основной продукт, делается форк и силы тратятся на мекие фентифлюшки
в итоге куча аналогов на общей кодовой базе и все недоделаные…
но это отдельная тема
POSIX — просто стандарт, я привёл его как пример того, что *nix мир очень разный, и даже договорившись об общем «Operating System Interface», системы всё равно поддерживают его по-своему.
Когда речь идёт об одном дистрибутиве, одной платформе или семействе ОС, с фреймворком всё понятно. MS и Apple — отличные примеры. А вот в случае буйного разнообразия *nix — не всё понятно.
Насчет «накидать кнопки на форму» — все основные IDE это поддерживают, только, замечу, это не считается Java-way (возможно, только на мой взгляд).
Запись в БД, сериализация объектов, работа с сокетами (это имелось в виду?) — никаких проблем, в простейшем случае это несколько строк кода.
Кроссплатформенность? Честнее некуда. Я, в свое время, честно говоря, был очень приятно удивлен, когда мое офисное десктопное приложение, работающее с БД, будучи просто скопированным на *nix-систему, запустилось и работало точно также, как и на Windows, где было разработано и где использовалось.
Конечно, если разработчик использует, например, JNI или платформо-зависимые библиотеки (например, SWT), то он, должно быть, отдает себе отчет о том, насколько переносимым будет приложение. К счастью, нужды в подобных средствах обычно нет (в том числе никогде не приходилось их использовать лично мне).
Яркий пример кроссплатформенного приложения — замечательный Jabber-сервер Openfire. В Windows- и *nix-версиях отличаются только «обвязки» для запуска: bat-файл либо shell-скрипт. :)
Вы не стесняйтесь, расскажите, какие программы вы «держите». Может, их запуск только добавляет системе свободной оперативной памяти?
P. S.: Не поленитесь еще посмотреть, благо в интернете это несложно, нынешнюю стоимость модулей оперативной памяти. В 2009-ом году, вроде живем.
Не вижу смысла пользоваться медленными программами, когда есть более быстрые. Не виду смымла ставить сотни мегабайт библиотек. только потому что какому то дурному программисту вздумалось изучить Руби, дотнет или еще что-нибудь. Зато мой процессор прекрасно понимает машинный код, так что извольте генерировать программы на нем :)
Насчет памяти? даже если я сейчас потрачу деньги на 2-4 Гб памяти (больше икспи не поддерживает вроде :'( ), через год-два долбанутые программисты напишут какой нибудь MegaGigaFramework, которому и этого будет мало. С чего я должен постоянно обновлять компьютер? Вы может машину каждые полгода новую покупаете? Или движок там апгрейдите. Научитесь уже писать нормальные программы, а то ведь понаберут студентов, которые ссылку от указателя отличить не могут.
Ну вообще дело конечно не в цене памяти, за качество кода обидно ((
А коли за качество кода обидно — обижайтесь. Только Java всуе поминать ни к чему. Это платформа enterprise-уровня, тут (почти) нету студентов, как и указателей. :)
Неужели программисту нравится что его программа медленно работает? Неужели они все такие безразличные?
Причины тут видимо экономического толка, нафиг нужно мозги загружать оптимизацией, никто за это не заплатит.
Но почему тогда тормозные Open Source библиотеки, их же пишут за бесплатно, вот в чем вопрос?
Пример: у меня уже 3 суток подряд запущена IntelliJ IDEA с разрабатываемым проектом. Открыл «Диспетчер задач» — ой, аж 173 МБ в ОП занимает, да еще 22 процесс java.exe. Только для меня в этом проблемы нету. Другие у меня критерии оценки работы вот этого конкретного экземпляра ПО.
Чушь какая-то
>Неужели программисту нравится что его программа медленно работает?
Программисту нравится, что его программа быстро разрабатывается и легко поддерживается. Поэтому он за разумный срок может написать сложную и полезную программу. А будет писать на ассемблере и вылизывать непонятно зачем непонятно что… Ну, напишет за тот же срок очередной тетрис. Ога, супер-оптимизированый. Но какой с этого толк? Там всё-равно задержки ставить надо — на полной скорости вы всё-равно в него играть не сможете :)
А скорость… Какая разница открывается программа за 10мс или за 11? Ни ту ни другую цифру я не отличу.
>Но почему тогда тормозные Open Source библиотеки
Кто сказал? Какие именно? и по сравнению с какими именно? Абсолютно голословные утверждения.
В реальности, они едят больше ресурсов и медленнее работают. Это обусловлено самим устройством и принципом работы ява-машины.
> 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-архив имхо на редкость дурацкая.
А насколько соответствует спецификациям ваша реализация C# можно только догадываться или доверять на слово
Сама Java как язык уже не принадлежит просто Sun.
бредовая статья!
патент на язык си шарп? это бред, по той причине что очень трудно его различить например с ява! пока докажут что си шарп под моно это си шарп) то давно уже этот си шапр под моно переименую в си шапр плюс плюс мега фри реал опен сорс и поменяют немного синтаксис
а байты фиг запотинтуешь))))))
так же можно и про!!! яву!!! говорить, мол оракл всех захватит и будет всем писец!
короче люнуксоидам надо радоваться что у них есть моно! хоть немного толковых отлаженых программ появилось!
И как MS его может закрыть?)
Стандарт на язык закрыть нельзя, а вот некоторые критические артефакты, требующиеся для реализации работающей среды исполнения — можно запатентовать. Например, MSIL, или набор тестов на совместимость, или…
Теоретически, закрыть С# можно выпустив новую «закрытую» версию C#, которая будет намного лучше стандартной (и обратно совместимой для поддержки существующих программ), добавить туда офигенных фич, чтобы все программисты быстренько перебрались на неё, и вот её-то и защитить патентами :)
Но, вообще, почему Столман не имеет ничего против Java? Она как раз защищена патентами, да так, что SUN запретила Microsoft-у выпускать и встраивать в браузер собственную Java-машину, даже переименованную :)
С Java всё достаточно благополучно, потому что как минимум есть OpenJDK, а также другие проекты, в т.ч. от больших компаний типа IBM и Oracle. Трюк в том, что по Java Community Process разработчик после доказательства совместимости получает соответствующие куски IP (включая освобождение от возможных патентов, насколько я понимаю).
А принципы VM/JIT те же.
Вообще mono подобно гонке за поездом на дрезине.
Едешь по рельсам, обогнать-невозможно.
Непонятно в чём, собственно, кайф моно-писателей?
Разрабатывать заведомо устаревший продукт путём слепого копирования.
Впрочем, с тем, что С# лучше не использовать в разработке новых программ — согласен. Пусть лучше с помощью Mono портируют некоторые win-приложения. Вот Paint.NET кажется перенесли, если не ошибаюсь?
ЗЫЖ так спокойно вообще можно без компьютера жить. :)
По поводу замечания, что Tomboy не страшен на Mono — было бы страшно, если бы допустим Open Office был на Mono, вот тогда действительно надо было ломать голову, что делать если начнется патентная война…
любит дуть на холодную воду
если следовать его советам — лучше сразу удавиться. есть нельзя — можно подавиться, пить — захлебнуться и т.д.
mono всегда будет отставать от последних реализаций .net по определинию — такова уж судьба догоняющих
такчто мс особо переживать не о чем.
обьем приложений на шарпе очень далек от критической, когда будет сложно спрыгнуть.
тем более практически для всех продуктов есть аналоги и заменить можно будет достаточно легко
опятьже если вдруг…
По мне так лучше быть параноиком, чем дураком.
например широкоизвестен случай, когда он заворачивал в металлическую фольгу пропуск на конференцию с rfid чипом — «старший брат следит!» это уже скорее болезненное состояние…
ЗЫ минус не мой ;)
Старший брат, может, и не следит, но когда (или если) начнёт следить, внезапная скрытность может насторожить, а на такого параноика никто не обратит внимания.
Вы смотрели доклад Мигеля де Иказа на PDC 2008? Некоторые из фишек, которые есть в Моно уже сейчас, Хейлсберг обещает только в пятой версии языка.
А я когда-то удивлялся: как минимальная установка может больше гигабайта занимать?
Mono — реализация не только языка или виртуальной машины под байт-код CLR, это еще и эти самые библиотеки, что позволяет запускать изначально чисто виндовые программы под платформами Моно.
И с этими либами нихера не понятно; они вроде и доступны, но под мутными лицензиями.
В общем и целом есть же Java! чем людям не нравится?! То же самое, только без сопутствующих проблем и терзаний; многие специалисты считают ее более чистым языком; есть богатая традиция, огромное количество инструментария, кроссплатформенность изначальная. Open source, блин.
но почему то повсеместно разработчики и клиенты выбирают .Net и C#
есть работа, на которой народ зарабатывает себе на хлеб с маслом и чем сподобится
и есть хобби
для написания нужной мне утилиты под платформу (ОС), которой я увлекаюсь я не буду изучать отдельно новый язык. Зачем?
Если есть реализация того, что я знаю и умею, да еще и есть приличный инструментарий (студия) на котором в обеденный перерыв можно поотлаживать свою тулзу.
насчет выбирают .net — я уже несколько лет плотно работаю с java и если встает какаято задача, мне обычно проще написать это на основном языке. хотя могу и на шарпе и на плюсах (а если поднапрячься то и фортран с ассемблером вспомню)
вот только зачем перезагружать память? ;)
если возникает потребность писать на .net — буду писать.
и чем дольше, тем больше я буду думать как программист уже не на java а на шарпе или другом языке
А вообще не понял смысл вашего комментария
язык в данном контексте должен восприниматься как совокупность языка, библиотек и т.п. (что вобщемто часто и подразумевается под языком. в частности при разговоре о шарпе обычно имеется в виду и платформа, для которой на нем пишут. тут я согласен с VIK — «короля делает окружение». языков хороших много, а вот нужных библиотек далеко не всегда)
волей-неволей в «оперативной» (быстрой, или еще какой) памяти мозга хранится информация о том языке, библиотеках, фреймворках, которые активно.
соответственно программист предпочтет в большинстве случаев писать для себя на том языке и с использованием того набора инструментария, фреймворков и т.д. с которыми он работает. просто потому, что «доступ» к такой информации быстрее…
если конечно он неставит перед собой цели освоить чтото новое, а просто хочет себе облегчить жизнь создав необходимую ему утилиту/программу.
о том что не стоит смешивать работу и хобби — это уже тема отдельной беседы )
Только меня смущает еще то, что большинство статистики основано либо на поисковых запросах, либо на количество опенсорсных проектов. Ведь и дураку понятно, что на C#, равно как и на Java, пишется огромное количество коммерческих проектов — и они в эту статистику не входят.
Хотя я вот не представляю, как еще можно собрать статистику о популярности того или иного языка.
И где тут Java падает, а C# растёт?
Вы вообще где искали, что такие выводы делаете? C# — это MS only. Java — это Oracle, Sun, IBM, SAP, Red Hat, Google, etc.
То есть для начала вы сравниваете, а теперь говорите, что нельзя сравнивать? =)
Вот что я сказал.
«C# растет быстрее, чем Java» — это как раз сравнение
C# растет быстро" — а вот это не сравнение
А ещё вы сказали, что «доля Java либо остается неизменной, либо падает» — а она, даже по вашему относительному графику на 20% выросла.
И так не назвали ни одной причины, по которой «все изменится».
«Но все изменится.»
Вы знаете что-то, чего не знаем мы?
А вот у Майкрософт была возможность силой перевести всех на новую технологию. Естественно, что людям просто приходится использовать тот же Шарп, ту же .NET. Разумеется, доля C# в проектах растет, даже просто за счет того, что С++ медленно, но умирает; и за счет тех же десктопов.
Я не вижу объективных преимуществ перед Java. Но вижу потенциальные лицензионные проблемы. Так что нафиг-нафиг…
Я вот использую IntelliJ IDEA (JRE в комплекте) или, например, тот же Pidgin, GIMP (тащат с собой GTK). Да, не шибко-то классические. :)
Тем не менее: Eclipse/Netbeans/IntelliJ/Azureus(Vuze)/Limeware/Maple + куча корпоративных десктопных приложений на Swing/SWT.
P. S.: Ах да, код пишу в Intelli-J IDEA, которая, к слову, сама написана на Java.
А теперь список из 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, например).
Ваш ход про яву.
А я, например, к уже названным отличным Java-приложениям могу добавить те, что по этой ссылке находятся — java-source.net.
Я же назвал десктопные массовые «коробочные» приложения. Ну-ка что-то подобное про яву, кроме Eclipse/Netbeans/IntelliJ?
>А я, например, к уже названным отличным Java-приложениям могу добавить те, что по этой ссылке находятся — java-source.net.
А где там «приложения»? Свалка библиотек на java для java.
Если брать «автоматизатор склада-магазина Джонсона» — да, ява пожалуй впереди. Просто из-за вознаста.
Берём сервер… Тут уже х.з. Навскидку определить не получается.
Если берём десктоп… Увы, с явой тут всё плохо. Я как-то и не вспомню массовых коробочных ява программ.
> ява спецов банально больше
А стартапов на яве — меньше…
Даже часть студентов, которые на C# смотрели с кислым лицом, признали что на Java огромное кол-во задач требует попросту больше кода.
Нет делегатов, нет Linq, немного кривое реализованы определённые штуки (generics — type erasure, Integer/int).
Нет свойств! Даже в JS вводят свойства. Нет событий.
Ну можно на ней писать, если за это платят деньги, но я бы выбрал C# или если хочется full open source — Ruby/etc.
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
Кроме того, второе естественнее — у человека есть свойство, а не действие «вернуть имя».
В C# нет Checked Exception, поэтому невозможно на этапе компиляции отловить досадные ошибки неправильного использования критически важных методов. По непонятным причинам в рантайме под рабочими нагрузками случаются утечки памяти и блокировка ресурсов, в то время, когда программа уже сдана заказчику. Просто нет монитора-профилировщика, способного отследить ошибки, допущенные на этапе кодирования.
Так что можно поспорить.
Вы под унылостью-то что понимаете? Не хватает фишек?
Пример: 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>()
ООП это инструмент, а не идол. ООП хорош простотой в поддержке, реюзингом и простотой в расширении.
Если можно добавить фичи которые, не совсем ООП, но не противоречат этим свойствам, то религиозное следование идеям ООП незачем.
Согласен, что Java эволюционирует медленее, но на то есть и свои причины — JCP, в состав которого входит много консервативных компаний, строящих свой бизнес на Java.
Также всегда удивлялся, какой смысл в Си писать 2 раза одно и то же, например MyObject *o = new myObject(...); Можно подумать, есть извращенцы, которые поставят слева и справа разные типы.
Можно было бы у переменных тип не указывать, и вообще, здорово бы было!
Простейший пример для второго:
class A {}class B extends A {}
A object = new B() ;
Зачем это может быть нужно «извращенцам», можете поразмыслить на досуге.
Здесь же на лицо НЕздоровая паранойя.
1. Мне не нравится ООП-модель из C++. Изначальная Smalltalk ООП- модель гораздо удобнее и проще. Все костыли типа интерфейсов, абстрактных классов, кучи патернов в ней просто не нужны.
2. Обязательная компиляция при разработке — зачем это нужно, JIT-компиляция или компиляция перед deployment гораздо лучше.
3. Отсутствие функций высших порядков (filter, map, each) которые делают работу с массивами нежной и приятной, а код очень понятным.
4. Из-за отсутствия функций высшего порядка, точнее анонимной ламбда-функции (а не к анонимного класса с кучей лишнего кода) нельзя создавать красивые DSL типа RSpec или Shoes.
2. Затем, чтобы было видно, когда что ломается и потому что надо ограничивать программиста. Ваши Ruby&Python не старее Java — думаете не пробовали на них писать крупные приложения(или послушайте «what killed Smalltalk») — посмотрите где сейчас Zope. Дальше прототипов и небольших приложений никто так и не ушёл на динамических языках.
3. Вообще Collections API не так уж плох, ещё есть Google Collections/Apache Commons Collections
4. Shoes это заебись, но на Shoes пока не написали Eclipse.
2. Интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка.
3. Неплох, но всё равно язык просто не позволит написать так же коротко, чисто и понятно как с анонимной лямбда-функцией.
4. Про Shoes я тут говорил, как пример DSL. Есть такие же DSL и для Swing (и наверняка для SWT) для Ruby и Groovy.
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).
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, а в возможности передать в метод произвольную анонимную функцию.
3. А об удобочитаемости такого варианта вы задумывались? Java не зря известен как самодокументируемый язык. Сравните возможность дальнейшей поддержки такого кода, его reusability.
3. Наоборот DSL делает код более красивым за счёт краткости. В RubyOnRails есть много хороших примеров. Да и код фильтрации я могу посмотреть прямо на месте, а в Java мне нужно искать объявление его класса (пусть и с лаконичным названием).
3. Не надо говорить так, как будто вы сами в недрах кода будете «искать» объявление нужного класса. Открою вам тайну — в IntelliJ IDEA перейти к объявлению нужного элемента кода можно с помощью шотката Ctrl+Click. Но, что самое интересное, никто вас не заставляет отдельный класс объявлять, это вы сами себе жизнь усложняете. Более того, открою вам еще одну тайну — в Java есть anonymous classes, объявляемые в месте использования.
3. Я знаю про анонимные классы (выше я специально писал). Согласен искать не нужно, можно щёлкнуть. Но анонимная функция всё равно даёт на уровень более чистый и понятный код, так как он существенно короче (анонимного класса) и код видно сразу.
3. А в Java сразу видно тип переменной =) По моему опыту это гораздо лучше.
3. Объявление смотрится в один момент по клику на классе = снова хвала IDE.
2… Я сейчас в рамках GSoC пишу кое-что для Eclipse. Я не представляю эту code-base на динамическом языке, тоже самое говорили авторы IntelliJ про свой продукт в одном из интервью. И речь не только о тестах — поддерживаемость, рефакторинг, куча средств для анализа кода.
Куча кода = 1 клик или 1 шорт-кат в IDE: всё напишут за вас. И описки у вас не произойдёт — IDE подскажет ещё до начала компиляции.
2. Шорткаты есть и в редакторах. См. Textmate.
3. Ну все веб-проекты пишут на скриптовых языках и там довольно много кода и поддерживаемость и рефакторинг и т. д.
2. Не смешите =) Textmate даже auto-complete не умеет
3. Отвечу коротко, примером, — Last.FM & Facebook используют PHP лишь как шаблонизатор. Покажите мне серьёзные бекенды на скриптовых языках. Был Twitter: переписали backend на Java/Scala — Ruby/Rails остался как шаблонизатор.
2. Не имеет. Но шаблоны есть (о которых я и говорил). В защиту Textmate скажу, что в Ruby вызовы обычно существенно короче и он не нужен (проблем с именованием не возникает).
3. Википедия всё на PHP. ЖЖ вроде тоже есть на Perl.
3а. Google и Яндекс используют Python для прототипирования. Twitter тоже для этого. Разве это не пример прекрасных синтаксических свойств.
3б. Я не говорил, что эти языки должны использоваться для высоконагруженных приложениях. Я говорил что они могут заменить Mono (F-Spot и Tomboy) — там они прекрасно подходят по скорости.
2. Смотря на сколько большой проект — когда количество классов переваливает за сотню уже сложно, за тысячу — невозможно.
3. Вы уж извините, но Wikipedia — фуфловое приложение.
3а И пример того, что дальше прототипирования не уходит =) На сколько я знаю даже YouTube уже не выдержали держать на Python и переписали на Java. Про Twitter я уже упомянул.
3б Согласен.
По поводу компиляции, посмотрите tapestry5, там не нужно компилировать код компонентов и страниц, т.е. контейнер сервлетов не требует перезагрузки при изменении java кода или шаблона.
P. S.: Вот он, великий и могучий.
Все ошибки с типами на этапе компиляции отлавливаются (о, да, там тоже есть компиляция, тоже в байт-код, точнее в MSIL).
C# (как язык) значительно моложе, и значительно чище и продуманней, нежели Java, это очевидно. Все нелогичные моменты Java (типа habrahabr.ru/blogs/java/62602/) пофиксены. Некоторые штуки порезаны из соображений code style (правда, в 3.5 кое чего таки вернули, и я даже не знаю, зря или нет). Да даже environment настроить — и то в разы быстрее для C#.
Лично мне пофик, на чем писать. Но если есть выбор — то C# мне больше нравится (да, еще python интересен, но до него че-т все никак не доберусь).
1. время;
2. долгий лишний дебаг так как не сделал clean когда нужно;
3. IDE. На Ruby и Python пишут в основном без неё.
Плюс без компиляции есть пара фишек:
1. Когда у вас где-то в другом месте уже скомпилированное приложение его нельзя быстро поправить (например, с мобильника через ssh в ресторане).
2. Нет интерактивной консоли, где можно ввести команду и тут же получить результат. Очень удобно для быстрого прототипа или проверки какой-то идеи.
В любом случае без компиляции легче, чем с ней.
IDE — это не только компиляция, это еще и автокомплит, хинты, шаблоны, макросы, удобная отладка и рефакторинг, а также много других плюшек. Так что это скорее плюс, а не проблема.
> Когда у вас где-то в другом месте уже скомпилированное приложение его нельзя быстро поправить (например, с мобильника через ssh в ресторане).
В ресторане нужно приятно проводить время, а не приложения с мобильника по ssh править.
> Нет интерактивной консоли, где можно ввести команду и тут же получить результат. Очень удобно для быстрого прототипа или проверки какой-то идеи.
В Visual Studio, например, консоль такая есть.
Речь идет о принципиальной разнице языков, а не IDE. На динамических писать просто-напросто легче.
2. Ну вы поняли идею. Удобно всегда подправить файл, а чтобы JIT сама всё перекомпилировала.
3. Реализовать можно всё, но интерактивная консоль на скриптовых ЯП реализует очень просто и понятно. См. например, tryruby.hobix.com/ (слабо найти пример для C# ;) ).
P.S. по поводу IDE хороший пример нетбуки. Там vi летает и иметь выбор между IDE и редактором удобно. Я знаю, что компилятор тоже из консоли можно вызывать, но скриптовые всё равно удобнее.
3. Это безусловно круто, только никому не нужно.
P.S. Можно ещё мобильные телефоны вспомнить, я на iPhone тоже vi как-то ставил.
2. С мобильника в ресторане — это условно. Но согласитесь, что отсутствие необходимости в жирном SDK, исходниках (и следовательно копии репозитария) — это как минимум не хуже ;).
3. Тем более лучше пример идёт с нетбуками. В кафе в ожидании встречи очень приятно покодить. Ну зачем там заводить SDK и IDE? ;)
Я сейчас разрабатываю приложение на Java, использующее embedded Jetty, Spring, Hibernate, JasperReports и еще всякого по мелочам. И уж прошу простить меня, сирого, но наизусть я код этих библиотек/фреймворков/etc не учил (скорее, хотел бы посмотреть на того, кто это таки проделал), так что вопрос о разработке без IDE и соответствующей документации просто не идет.
P. S.: Думаю, мы пришли к взаимному выводу о разном масштабе решаемых при разработке задач. На этом можно и пожать друг другу руки и разойтись миром. :)
Второй аргумент («долгий лишний дебаг так как не сделал clean когда нужно») мне абсолютно непонятен. О чем это вообще?
«IDE» — вам уже справедливо отметили, что пишущие без IDE — это люди-ССЗБ.
«Пара фишек» — ну просто смех берет. Зачем, интересно, нужно «быстро поправить» приложение вместо того, чтоб пообедать? Уж не потому ли, что интерпретатор таки чего-то там не поймал, несмотря на то, что «интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка»? Представить себе проверку идеи или же «прототипирование», которое можно сделать парой строк кода, я, пожалуй, затрудняюсь, если речь, конечно, не идет о том, чтоб вспомнить языковые конструкции перед тем, как лезть что-то «быстро поправить (например, с мобильника через ssh в ресторане)».
P. S.: Я, кажется, понимаю, в чем дело. Мы по-разному подходим к разработке. Для вас это — решение надуманных проблем («время», «IDE», «долго искать объявление класса» и др.), для оппонирующих — решение поставленных задач на уровне, позволяющем прогнозировать как сам процесс разработки приложения, так и его отладки, внедрения, использования, поддержки, развития.
Второй аргумент («долгий лишний дебаг так как не сделал clean когда нужно») мне абсолютно непонятен. О чем это вообще?
«IDE» — вам уже справедливо отметили, что пишущие без IDE — это люди-ССЗБ.
«Пара фишек» — ну просто смех берет. Зачем, интересно, нужно «быстро поправить» приложение вместо того, чтоб пообедать? Уж не потому ли, что интерпретатор таки чего-то там не поймал, несмотря на то, что «интерпретатор выдаст те же ошибки при запуске, что и компилятор для этого же языка»? Представить себе проверку идеи или же «прототипирование», которое можно сделать парой строк кода, я, пожалуй, затрудняюсь, если речь, конечно, не идет о том, чтоб вспомнить языковые конструкции перед тем, как лезть что-то «быстро поправить (например, с мобильника через ssh в ресторане)».
P. S.: Я, кажется, понимаю, в чем дело. Мы по-разному подходим к разработке. Для вас это — решение надуманных проблем («время», «IDE», «долго искать объявление класса» и др.), для оппонирующих — решение поставленных задач на уровне, позволяющем прогнозировать как сам процесс разработки приложения, так и его отладки, внедрения, использования, поддержки, развития.
> долгий лишний дебаг так как не сделал clean когда нужно
Ну если вы со средсвами компиляциии и отладчиком разобраться не можете.… может вам чем нибудь другим заняться лучше?
> Нет интерактивной консоли, где можно ввести команду и тут же получить результат. Очень удобно для быстрого прототипа или проверки какой-то идеи.
Найдите/сделайте фреймворк с консолью.
Ну ничто не мешает вам скомпилировать перед передачей пользователю (как, например, делается в PHP или JRuby). Я лишь говорю, что необязательная компиляция как минимум не хуже обязательной.
Истинная свобода накладывает ровно столько обязательств, сколько необходимо для сохранения свобод.
Вы что, Neon Genesis Evangelion не смотрели? ;)
В обще случае .net != c# (в последнем, например, доступны не все фичи, реализованные в CLR). И Столлмана беспокоит использование именно c#, а не самого Mono. Используйте Delphi.NET, Nemerle или Boo, и проблема решена. Отказываться от Mono смысла нет.
Поэтому споры по поводу правомочности включения Mono в Linux не имеют смысла вообще — в крайнем случае, можно выкинуть gmcs, и жить спокойно.
Весь BCL в Mono написан и пишется «с нуля», именно это, в основном, и обуславливает такое отставание. Если бы МС хотели переехать на Linux, они бы уже давно «подхватили под руки» Мигеля и обеспечили его всем, что надо, чтобы CLR нормально шевелился под *nix.
Они на это смотрят сквозь пальцы — ковыряется там чудик, и ладно. Потому что пока Mono выйдет на уровень, когда ее можно будет поставить на мощный сервер под mission-critical приложением, MS уже найдет себе другую игрушку, и будет носиться с ней, как это вышло с COM. И .net им будет побоку — пусть его куда угодно, хоть под Линукс поставят, хоть на Марс отправят.
Скажите, если не секрет, Вы для .net пишете?
Есть ощущение, что Вам аббревиатуры CLS, CTS, CLR, о которых я упомянул, ни о чем не говорят, и вы продолжаете рассказывать про какие-то библиотеки.
подкрепляя это довольно сомнительной доказательной базой
база данных патентов открыта и по ней есть поиск, доказателсьтво найти реально, а его нет
хотите боротся — боритесь с причной, делаете «другие языки» лучше чем c#
разработчки наверно выбирают c# потому что им мсфт забашляла
а не выквыривайте моно из дистрибутивов
Суть тревоги была в том, что по лицензии на Qt Троллтек мог в любой момент поменять лицензию и прекратить выпускать бесплатную версию Qt. Получилось бы тогда, что все фри коммунити было бы капитально подсажено на платный закрытый продукт, что в корне меняет ситуацию со всем фри движением и софтом.
Итак, Столлман поднял тревогу, стал бить в колокола и стартовал альтернативный проет фри десктопа, известный сегодня под именем «Гном».
Многие тогда, как и сейчас говорили: «сумасшедший параноик!»
Однако, что мы имеем как результат:
— Гном
— Qt вынуждено было, чтобы поддержать КДЕ, поменять лицензию свободной ветки сначала на близкую к GPL, а потом и вовсе на GPL.
Т.е. в похожей ситуации действия Столлмана оправдались полностью.
Так что подождем судить Столлмана.
Нельзя победить C# нелепыми заклинаниями. Пока C# — один из сильнейших языков в мире. Пока не будет серьезной альтернативы — люди будут пользоваться C#.
Он не требует чтобы браузер показывал только свободные сайты, но с лицензиями всем будет только проще. Сейчас практика изучения вёрстки и JS с других сайтов — фактически воровство (пока власть не захватит Пиратская партия). С лицензиями можно прямо знать с каких сайтов можно копировать куски.
Все чужое можно смотреть. Ничего чужого нельзя копировать.
Так было в мире свободного ПО почти всегда. Есть даже официальные FSF гайдлайны, как делать бесплатные аналоги программ, для которых есть исходники, и не опускаться до прямого копирования.
Я согласен с Торвальдсом в этом плане. Нормальные люди хотят иметь право выбора, под какой лицензией выпускать программы, и используют свободные лицензии, потому что это выгодно. Фанатики вроде Сталмана считают, что ВСЕ программы должны
Быть фанатиком — плохо и вредно.
Unless ты заплатил за полный аудит кода и сам его скомпилировал доверенным компилятором.
Руководствуясь вашей логикой, вы и человеку, который ответил на вопрос «который час?» не поверите, пока не заплатите за полный аудит механизма работы его часов, а также не разглядите циферблат с расстояния в пару сантиметров.
Заказчики заказывают приложения на C#, программисты — пишут.
Все довольны :)
Сборщик мусора — да. Тот ещё тормоз в D.
А вообще, язык нравится тем, что должен (по идее) работать сос коростью низкоуровненвого C++, но при этом имеет нормальный синтаксис, и всякий синтаксический сахар вроде анонимных функций.
2. В DMD 2.xxx string = invariant(char[]), т.е. строки неизменяемые, как, например, в java.
2. Ну тогда ок.
Тогда другой пример. Если не путаю, расширение динамического массива происходит путем выделения новой области памяти и копирования туда старого массива. Понятно, что многие программисты могут и не знать об этой особенности, т к она достаточно низкоуровневая, и написать например цикл, из 1000 добавлений элемента в массив ( = 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);
}