Сыр есть, а где мышеловка? ;)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 10.12.06 12:48
Оценка: 84 (11) :)
Вот интересно получается. .NET является платформой, на которой реализовано несколько языков. И их число увеличивается. JVM сейчас стремится стать такой платформой, на которой кроме Java развиваются Groovy, JRuby, Scala и пр.

В случае с .NET, в принципе понятно, зачем это нужно Microsoft. В случае же с Sun все не так ясно. Для меня лично до сих пор остается загадкой, какую именно выгоду Sun получила от выпуска и десятилетнего развития платформы Java. Java с самого начала была бесплатной. Т.е. Sun не могла получать прибыль от продажи Java компиляторов и библиотек. IDE для Java у Sun не задалась, а затем вообще перешла в разряд OpenSource. Sun брала деньги за сертификацию J2EE решений, но сомневаюсь, чтобы это могло окупить затраты на выпуск и раскрутку хотя бы первой верии Java. Может быть Sun существенно пополняет свои расходы за счет платформы J2ME и лицензионные отчисления за каждое устройство, в котором есть использование Java (хотя я сомневаюсь, что за их счет можно вкладывать такие средства в J2SE и J2EE). Более вероятно, что за счет развития Java Sun хотела отыграться в секторе Unix-решений. Что так же объясняет, почему в Java начали вкладываться такие гиганты, как IBM и HP -- им так же было что терять на корпоративном Unix-рынке. Так же понятно, почему IBM/HP/Sun и иже с ними продолжают вкладываться в Java -- так дешевле поддерживать Java-решения.

Видя успех и значимость Java Microsoft воспользовалась крупным просчетом Sun -- Java не стала привлекательным инструментом для разработки desktop-ных приложений для Windows. По разным причинам, но тем не менее это так. А ведь рынок Windows -- это рынок, охватывающий 90% персональных компьютеров. Таким образом, выпустив более передовую технологию (с учетом опыта Java) и более динамично развивающийся язык C# (опять же с учетом опыта Java), Microsoft сделала замечательный подарок для огромного количества Windows разработчиков -- возможность писать быстрый и безопасный код имея под рукой доступ ко всему зоопарку технологий под Windows.

Т.е. для Microsoft платформа .NET важна не сама по себе, а как очень хороший способ простимулировать Windows-разработчиков и еще крепче привязать их к Windows. Т.е. стоимость разработки, сопровождения и развития .NET может быть включена в стоимость будущих версий Windows и таким образом возмещена.

Именно поэтому, как мне представляется, Microsoft не должна опасаться, что C# будет вытеснен каким-либо другим, более удобным и восстребованным языком на платформе .NET. Ну будет вместо C# что-нибудь другое, это не важно. Важно, что прикладные приложения, на чем бы они не были написаны, будут намертво прикованы к .NET.

А вот ситуация с Java в этом смысле сложнее. По сравнению со своими конкурентами, как на .NET, так и на JVM, Java уже выглядит старичком, слишком многословным, слишком органичивающим разработчика. С огромным количеством унаследованного кода, что препятствует внесению кардинальных изменений в язык. В связи с этим можно представить себе сценарий, при котором на JVM появится какой-нибудь новый язык, который затмит Java. И тогда возникает первый интересующий меня вопрос: а какой в этом случае смысл Sun-у продолжать развитие JVM?

Если же продолжать фантазировать дальше, то получается, что .NET и JVM переходят в разряд современных универсальных ассемблеров. Т.е. программы уже пишутся не под конкретную аппаратную платформу, а под конкретную "прикладную" платформу. И уже не важно, на какой конкретно аппаратуре работает программа, лишь бы необходимые библиотеки были. Посему, такие вещи, как POSIX для большого количества приложений становятся анахронизмом.

Соответственно, разработчики аппаратных платформ будут поддерживать либо .NET, либо JVM, либо и то, и другое. А вот с ОС ситуация интереснее. С Windows-то все понятно. Так же как и с крупными Unix-системами. Там будет выбор "или-или". А вот что действительно интересно, так это будущее таких гибридов, как Mono. Ведь не видно, зачем это нужно Microsoft, т.к. им .NET нужен для продвижения Windows. Не понятно, зачем это нужно Unix-оидам, которые имеют изначально Unix-овую Java (*). Так что похоже, что Mono нужнен Microsoft-у чтобы потихоньку переманивать Unix-разработчиков на .NET, начала оставляя их в рамках привычного Unix-а, а затем, по мере роста потребностей, и в Windows. Соответственно, Microsoft не заинтересована в том, чтобы Mono становилась настолько же мощной, как "родной" .NET Framework.

Ну и, собственно, самый важный вопрос: JVM и .NET как основа для развития новых языков -- это как бесплатный сыр. Которого, как известно, не бывает А где же тогда мышеловка, в которой он лежит?

Для .NET это, вероятно, привязывание к Windows. А вот для JVM?



*) Раньше Java ругали за то, что она не была OpenSource, однако сейчас, после выпуска ее под GPL, даже такие радикальные товарищи, как Столлман и Реймонд уже не могут попрекать этим Java.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.