LINUX.ORG.RU

Java vs .NET


0

0

Стоит выбор, что лучше изучать Java или C#. Что можете посоветовать? Хотелось бы услышать компетентное мнение о сравнительных преимуществах и недостатках этих конкурирующих технологий. Заранее спасибо

anonymous

на данный момент нет полноценной реализации .Net под Linux. Я пробовал версию mono 0.20, она не реализует WinForm, remoting, reflection и может еще чего. А это очень существенные фичи платформы .Net

anonymous
()
Ответ на: комментарий от anonymous

А есть ли где-нибудь результаты сравнения производительности Java и .NET?

anonymous
()

а вообще под какие платформы реализована поддержка .NET? Это исключительно область Windows или же есть и другие оси в которых .NET вполне работоспособна?

anonymous
()

> результаты сравнения производительности Java и .NET

Есть: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/p...

>под какие платформы реализована поддержка .NET

M$: Windows NT/2000/XP/2003, *BSD

Ximian: Linux, Windows (весьма сыро, но ASP.NET уже есть)

PS. Попробуйте реализовать на JWSDP код для J#.NET Web-сервиса вида:

/** @attribute WebMethod() */

public int getLength(int[] ia) {

return ia.length;

}

// ;-)

NikS
()
Ответ на: комментарий от NikS

> Windows NT/2000/XP/2003, *BSD

Если есть поддержка .NET под *BSD, то что мешает сделать ее под другие unix-like системы? Это open-source реализация или от M$?

anonymous
()

Реализацию под БСД можно скачать с сайта МС.

Мое личное имхо: Java более продумана чем .NET.
Во-первых, мне очень не понравилось наличие так называемой явной реализации интерфейса. То есть, если некий класс реализует метод некторого интерфейса явно. То если не преобразовать объект класса к интерфейсу, то данные метод будет приванты, а если преобразовать то становиться пудличным.

Во-вторых, система видимостей методов и классов более запутанная.

В-треьих, использование ADO.NET позволяет писать либо сильно не переносимый код либо сильно тормознутый. То есть идет завязка на SQL Server.

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

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

Но плюсы конечно все-таки есть. Во первых это более широкий класс стековых переменных ( не ограниченный элементарными типами), хотя тут нужно быть ОЧЕНЬ осторожным чтобы не поймать потери в производительности из-за частого боксинга и анбоксинга.

Пропертя и индексы ( как в С++ Билдер), с ними все-таки удобней работать чем с setX() getX()

Если кому интересно, то есть хорошая книжка по этому делу "Разработка для платформы MS .NET FrameWork" от Рихтера. Там он и хвалит и ругаеться (иногда на разработчиков которые то забыли сделать атрибут статическим то используют не наследуемые от System.Exception исключения).

kka
()

А в электронном виде какое-нибудь хорошее руководство по .NET есть, желательно на русском?

anonymous
()
Ответ на: комментарий от NikS

> результаты сравнения производительности Java и .NET > Есть: http://msdn.microsoft.com/library/default.asp?url=/library/en->; us/dnbda/html/p...

это взгляд Microsoft на этот вопрос, гораздо интереснее было бы сравнить данные от независимых источников. Кроме того по ссылке сравнивается собственно размер кода, а не производительность.

anonymous
()

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

anonymous
()

anonymous (*) (2003-05-05 19:54:26.047)
Книжка о которой я писал на русском и стоит она в Киеве ~70грн ( курс бакса 5.3)

kka
()

Тормознутость Java незнает границ, сложно сравнивать черепаху с самолетом :)

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

А вот .NET предлагает вполне сносную юзабельность с точки зрения массового пользователя.

Тут все упирается в мегабаксовую финансовую поддержку, Microsoft тут равных пока нет, так что Java загнется однозначно в наше кризисное время.

anonymous
()

А в чем тогда смысл .NET если приложения не будут кроссплатформенными? нативный код в любом случае быстрее интерпретации байт-кода. IMHO пока не будет реализована должная поддержка .NET для различных платформ смысла в ее использовании нет

anonymous
()

Да гавно все это - что первое, то и второе, "набор херовых интерфейсов", вместо написания программ занимаетесь изучением хрен знает чего

anonymous
()

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

Под Linux, кстати, писать намного дольше, чем под Windows, так как пока нет стандартных и удобных средств разработки уровня VisualStudio или Borland C++.

А сегодняшний принцип - лишь бы работало - откровенно бесит.

anonymous
()

>>стандартных и удобных средств разработки уровня VisualStudio или Borland C++

А по какому стандарту эти "удобные средства" сделаны?

anonymous
()

>> Да гавно все это - что первое, то и второе, "набор херовых интерфейсов", вместо написания программ занимаетесь изучением хрен знает чего

IMHO не надо говорить так категорично, серверное программирование для Internet с использованием Java или .NET только выигрывает. Мы живем в XXI веке и как бы не были хороши perl, PHP - но это, опять же на мой взгляд, - вчерашний день. Новый уровень сложности приложений, масштабирования, новые технологии требуют и пересмотра средств программирования, Java и .NET - прогрессивные технологии и имеет смысл к ним присмотреться повнимательней

anonymous
()

Хороший сайт по ASP.NET http://www.aspnetmania.com

Java RIP.

J2EE назвать промышленной средой никак нельзя, JWSDP не вырос из коротких штанишек (посмотрите сами сановский официальный форум - народ недоволен;-(). IBM WebSphere - это тормоз из тормозов.

Мне платят не за ""Hello, World!" на разных языках", так что сам наблюдал в промышленных приложениях падение JIT как на x86, так и не zSeries Linux - проблема со стеком до сих пор не решена.

Что же касается mono, то сам лично запускал ее на Linux'е для мейнфрейма. Мигель не дурак и JITом для zSeries соответствующую сторону заинтересует. Успехов ему!

Да и F# мелкософт пишет: http://research.microsoft.com/projects/ilx/fsharp.htm

P.S. Кстати, попробуйте решить мой J# пример для JWSDP - тогда убедитесь, что система классов в .NET/mono гораздо более продумана (Не просто так введены итераторы в среду!).

P.S.2.Cановцы мой пример так до сих пор и не решили...

NikS
()

NikS (*) (2003-05-06 12:57:43.939)
>P.S. Кстати, попробуйте решить мой J# пример для JWSDP - тогда >убедитесь, что система классов в .NET/mono гораздо более продумана (Не >просто так введены итераторы в среду!).
Ну здесь, они конечно молодцы. Идея атрибутов это круто.
Вот сейчас пишу на джаве сервис который должен отдавать таблицу. И тяжело вздыхаю.

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

kka
()

народ дайте please ссылки на реализацию .NET не под Windows

anonymous
()

Хороший фрейм по жабе, и писали его спецы либо слыхавшие о ней от когото либо писавшие не более hello world. Это так к слову, но мой совет учи .НЕТ - деньги решают все так было и так будет (ява была мечтой, а мечты долго не живут)

cushe
()

>> но мой совет учи .НЕТ - деньги решают все так было и так будет (ява была мечтой, а мечты долго не живут) Хотелось бы услышать конкретные сравнительные преимущества и недостатки этих двух технологий, а то, что у M$ денег больше - это и дураку ясно

anonymous
()

anonymous (*) (2003-05-08 16:20:14.936)
Часть преимуществ и недостатков описал я и Никс.
Если подсумировать, то получаеться следующее:
1. МС взяла полезные вещи из Java, C++, Delphi ( это я про пропертя), компот получился неплохой, то можно было бы сделать лучше.
2. JDBC  по удобству (особенно если нужно делать переносимый между разными СУБД код) предосходит ADO.NET. Хотя имею работы с базой данных в разъедененной среде тоже не плохо.
3. МС сделала много средст для упрощения программирования элементраных вещей. Например, то о чем писал Никс для веб-сервисов, или быстрая связка DataSet и DataGrid ( Web и Win). Хотя нельзя сказать, что аналогов в джава нету нельзя.
4. Переносимость. Пока у джава намного выше. Как кто-то резоно заметил, что .NET под win и  моно под Юникс напоминают первые годы становления дважы.


Мое ИМХО, по будещем развитии. .NET сможет тягаться с J2SE  в типичных областях ее применения, но не выйдет на Enterprise Level  или по крайней мере не займет там серьезной ниши.

kka
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.