• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

.net и Java

  • Автор темы NikSoft
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NikSoft

Victor Gr поднял вопрос о преимуществах и недостатках двух платформ .NET и Java. За неимением времени приведем схематично несколько доводов по этой теме.
Victor Gr утверждает, что Java обеспечивает “Очень мощною поддержку ООП”. Java не является 100% обьектно-ориентированным языком в отличии от C#, так как встроенные типы(int, real и т.д.) не являются классами. Базовый класс всех типов в языке C# “Object” класс.
Victor Gr утверждает, что Java обеспечивает принцип “Написано однажды-работает везде”. Этот принцип верен только для тех машин, на которых установлена JVM. Таким образом в действительности это принцип - фикция.
JVM является интерпритатором, то есть работает медленнее CLR, которая имеет JTC компилятор.
Отметим кризис в компании Sun Microsystems, что выражается в смене руководства и падением уровня продаж рабочих станций и серверов.
Visual Studio 2005 содержит инсрументы для работы с .NET, которые позволяют решать вашу проблему быстрее и эффективнее, чем использование любого другого инструмента для Java. Это означает для компании уменьшение срока разработки проекта и экономии финансовых средств. Как следствие все больше компаний будет переходить на .NET технологию.
Отметим, что один из самых посещаемых сайтов MySpace.com был разработан с помощью ASP.NET 2.0.
Через шесть месяцев выйдет Windows Vista и Long Horn. Они будут включать C# 3.0, Atlas(AJAX технология), XAML, новое API Avalon для программирования Windows, новую коммуникациооную платформу Indigo.
C# 3.0 включает механизм запросов LINQ, DLINQ, XLINQ, что впервые позволило работать с базами данных, XML унифицированным образом средствами только языка C#.
Atlas является стандартом для разработки AJAX проектов. Включает открытую, богатую библиотеку контроллеров, средства работы с XML Web сервисами, Script#(дает возможность работать с Java Script на уровне ООП, включая поддержку Intelly Sense).
Происходит встраивание CLR в такие продукты как SQL Server 2005, IE 7.0, что еще больше повышает эффективность работы .NET. Так, например, можно писать процедуры для SQL Server 2005 на уровне C#, используя богатую библиотеку классов платформы .NET.
Новый программный API Avalon призван дополнить существующий Win32 API для Windows. Так как Avalon – это библиотека классов(а не функций Win32 API), то можно программировать Windows на уровне классов, то есть на уровне ООП. Учитывая тот факт, что Intel, AMD компании начали производство 64-битовых процессоров, а производство процессоров Sun Microsystems падает, все больше компаний будет использовать 64-битовые персоналки с Windows, а значит с .NET. Встает вопрос как Java будет работ с API Avalon?
Один из авторитетов в области Java программирования Bruce Tate опубликовал книгу “ Beyond Java”(ISBN 0-596-10094-9). На 200 страницах приводятся аргументы, что Java технология себя изжила. Ее кризис не является техническим вопросом, а вопросом времени. Автором книги высказывается гипотеза-какой язык придет на смену Java: быть может функциональный язык Ruby.
Но как отметил Gosling Ruby не обладает масштабируемостью.
Из сказанного видно, что следующее десятилетие будет за .NET платформой. Что придет ей на смену? Может быть аспектно-ориентированное программировиние? Может быть интенциональное программировиние, развиваемое создателем MS Word и венгерской натации Charles Simonyi ?
Может быть декларатированное программировиние, когда мы только описываем задачу, а компьютер находит подходящее решение? Может быть компьтерная наука достигнет высот, когда можно будет применять автоматическое доказательство теорем на промышленном уровне? Поживем – увидим.
 
M

mr_ST

Не флейма ради, но истины для :)

JVM является интерпритатором, то есть работает медленнее CLR, которая имеет JTC компилятор.
Не совсем так. На сколько я знаю уже давно есть реализации с джиттингом. Ключевое слово Hotspot. А кто такой JTC?

Victor Gr утверждает, что Java обеспечивает принцип “Написано однажды-работает везде”. Этот принцип верен только для тех машин, на которых установлена JVM. Таким образом в действительности это принцип - фикция.
С переносимость у Java пока получше, но это дело времени. Надеюсь Novell не бросит Mono и .NET будет на многих платформах. Он как бы и сейчас есть, но по мне сыроват.

Через шесть месяцев выйдет Windows Vista и Long Horn. Они будут включать C# 3.0, Atlas(AJAX технология), XAML, новое API Avalon для программирования Windows, новую коммуникациооную платформу Indigo.
Vista и LongHorn это одно и тоже. Вернее Longhorn это codename для Vista.
API Avalon это codename для Windows Presentation Foundation (WPF), Indigo codename для Windows Communication Foundation (WCF). Возможно WinFX и включат, а вот насчет C# 3.0 я сомневаюсь.

Atlas является стандартом для разработки AJAX проектов.
Он не является стандартом. Это свего лишь еще одна из библиотек реализующая принцип AJAX, только интегрирована с ASP.NET

Новый программный API Avalon призван дополнить существующий Win32 API для Windows. Так как Avalon – это библиотека классов(а не функций Win32 API), то можно программировать Windows на уровне классов, то есть на уровне ООП. Учитывая тот факт, что Intel, AMD компании начали производство 64-битовых процессоров, а производство процессоров Sun Microsystems падает, все больше компаний будет использовать 64-битовые персоналки с Windows, а значит с .NET. Встает вопрос как Java будет работ с API Avalon?
1) Avalon он же WPF это всего лишь библиотека для создания UI. Сомневаюсь что это является ключевым моментом для Java :)
2) Основной нишей для Java были есть и наверное будут серверные приложения
3) Также Java активно занимается IBM
 
P

Pete

2NikSoft
Мда... врать не честно :)


>Victor Gr утверждает, что Java обеспечивает “Очень мощною поддержку ООП”. Java не является 100% обьектно-ориентированным языком в отличии от C#, так как встроенные типы(int, real и т.д.) не являются классами. Базовый класс всех типов в языке C# “Object” класс.

Никто не мешает использовать обертки типа Integer, Double, примитивные типы были введены для performance critical приложений. 100% ООП в вашей программе, это ваш выбор, Java вас не ограничивает в нем.

>Victor Gr утверждает, что Java обеспечивает принцип “Написано однажды-работает везде”. Этот принцип верен только для тех машин, на которых установлена JVM. Таким образом в действительности это принцип - фикция.

Что мешает поставлять свой продукт с JVM?

JVM является интерпритатором, то есть работает медленнее CLR, которая имеет JTC компилятор.

Про Hotspot вам уже ответили, байткод транслируется в команды процессора, применяются различные оптимизации, причем динамические (т.е. в процессе выполнения собирается статистика и на ее основе код может быть оптимизирован)

>Отметим кризис в компании Sun Microsystems, что выражается в смене руководства и падением уровня продаж рабочих станций и серверов.

Java мало зависит от Sun, есть много других крупных компаний (IBM, BEA, Oracle), которые вносят куда более значительный вклад в развитие. За Sun просто всегда остается последнее слово (как было с JDO).

>Visual Studio 2005 содержит инсрументы для работы с .NET, которые позволяют решать вашу проблему быстрее и эффективнее, чем использование любого другого инструмента для Java. Это означает для компании уменьшение срока разработки проекта и экономии финансовых средств. Как следствие все больше компаний будет переходить на .NET технологию.

Сколько вы инструментов видели для Java? Я работал с JBuilder, Eclipse, JDeveloper сейчас на IDEA, продукт той самой компании JetBrains чей Resharper так обожают дотнетчики, а это всего лишь порт c Java на .Net. Рефакторинг в IDEA пожалуй самый лучший из всех IDE для Java.

>Отметим, что один из самых посещаемых сайтов MySpace.com был разработан с помощью ASP.NET 2.0.

Отметим, что один из самых посещаемых сайтов E-Bay, написан на Java c использованием технологии J2EE.

Через шесть месяцев выйдет Windows Vista и Long Horn. Они будут включать C# 3.0, Atlas(AJAX технология), XAML, новое API Avalon для программирования Windows, новую коммуникациооную платформу Indigo.

AJAX технологии уже используются во фреймворках типа JSF (аналог ASP .Net). В Java также включена поддержка скриптовых языков.

>C# 3.0 включает механизм запросов LINQ, DLINQ, XLINQ, что впервые позволило работать с базами данных, XML унифицированным образом средствами только языка C#.

а в Java JDOQL есть

[skipped]

Учитывая тот факт, что Intel, AMD компании начали производство 64-битовых процессоров, а производство процессоров Sun Microsystems падает, все больше компаний будет использовать 64-битовые персоналки с Windows, а значит с .NET. Встает вопрос как Java будет работ с API Avalon?

Java уже работает на 64-битной платформе AMD (в Linux и Win), причем тут сервера Sun, я не понял, что-то не нашел причинно следственной связи между 64-битными процессорами и Windows :)

>Один из авторитетов в области Java программирования Bruce Tate опубликовал книгу “ Beyond Java”(ISBN 0-596-10094-9). На 200 страницах приводятся аргументы, что Java технология себя изжила. Ее кризис не является техническим вопросом, а вопросом времени. Автором книги высказывается гипотеза-какой язык придет на смену Java: быть может функциональный язык Ruby.

Читал, многое спорно в динамически типизируемых языках и в данной книге. Java не единственный возможный язык JVM. Уже есть проекты по портированию Ruby для работы с JVM.

>Но как отметил Gosling Ruby не обладает масштабируемостью.
Из сказанного видно, что следующее десятилетие будет за .NET платформой. Что придет ей на смену? Может быть аспектно-ориентированное программировиние? Может быть интенциональное программировиние, развиваемое создателем MS Word и венгерской натации Charles Simonyi ?

Вы не в курсе что AOP уже существует как в Java так и .Net? Почитайте про AspectJ, Spring AOP.

>Может быть декларатированное программировиние, когда мы только описываем задачу, а компьютер находит подходящее решение? Может быть компьтерная наука достигнет высот, когда можно будет применять автоматическое доказательство теорем на промышленном уровне? Поживем – увидим.

Не вижу ограничений Java здесь и преимуществ .Net. На Java сравнительно тяжело писать простые вещи, а вот сложные самый раз.
 
M

mr_ST

2Pete

Никто не мешает использовать обертки типа Integer, Double, примитивные типы были введены для performance critical приложений. 100% ООП в вашей программе, это ваш выбор, Java вас не ограничивает в нем.

Всетаки в .NET работа с value типами сделана более красиво. Они формально являются наследниками object (хотя если заглянуть в потроха это не совсем так, ну да это нюансы). При этом по скорости они так же хороши как примитивы в Java. Правда в некотрых случаях за гибкость приходится платить boxing-ом и уменьшением производительности поэтому нужно быть аккуратным и понимать что делаешь.

Как будет выглядеть след. код на Java?

Код:
Arraylist arr = new Arraylist();
a.Add(123);
a.Add(123.0);
a.Add(DateTime.Now);
a.Add("just string");
foreach(object o in arr)
{
Console.WriteLine(o.ToString());
}
Второй бенефит .NET это многоязычность, при чем cross language взаимодействие хоть и с некоторыми оговорками но вполне себе работает. Уже реализована куча различгых языков. Тот же от которого прется половина rsdn-а <_<

PS Я слабо знаком с Java посему поправте если где не прав
 
P

Pete

ArrayList arr = new ArrayList();
arr.add(123); // раньше было arr.add(new Integer(123));
arr.add(123.0);
//a.Add(DateTime.Now); сорри, нет рядом jdk ))
arr.add("just string");
for(Object o : arr)
{
System.out.println(o.toString());
}

Вообще боксинг спорная фича, я про какие-то нетривиальны проблемы слышал могут быть.

Кстати примитивные типы, весьма хитры можно написать например так int.class и получить класс (эквивалентный Integer.TYPE).

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

Я не говорю, что язык .Net полный отстой, просто он лично мне не подходит по духу. А то, что в нем есть какие-то фичи типа yield, delegates меня совершенно не беспокоит. Первые для дебага сложны, а вторые успешно реализуются другими средствами Java (на javalobby полно примеров).
 
M

mr_ST

ArrayList arr = new ArrayList();
arr.add(123); // раньше было arr.add(new Integer(123));
arr.add(123.0);
//a.Add(DateTime.Now); сорри, нет рядом jdk ))
arr.add("just string");
for(Object o : arr)
{
System.out.println(o.toString());
}
Кстати примитивные типы, весьма хитры можно написать например так int.class и получить класс (эквивалентный Integer.TYPE).

Похоже что в Java примитивы ведут себя очень практически как value типы в .NET

Я не говорю, что язык .Net полный отстой, просто он лично мне не подходит по духу.
.NET нужно воспринимать как платформу.

А то, что в нем есть какие-то фичи типа yield, delegates меня совершенно не беспокоит. Первые для дебага сложны, а вторые успешно реализуются другими средствами Java (на javalobby полно примеров).
Видишь ли, комфорт это такая штука которая состоит из мелочей. ;) Те же делегаты весьма удобная штука.

Вообще боксинг спорная фича, я про какие-то нетривиальны проблемы слышал могут быть.

Да нет, там все тривиально, просто у новичков которые не знают что это такое, результат выполнения следующего код, например, ставит в тупик :(

Код:
int a = 1; 
obect o1 = a;
object o2 = a;

Console.WriteLine(object.RefernceEquals(o1, o2).ToString());
Будет напечатано False. Кстати, хороший вопрос для собеседования ;)

А еще у вас негров линчуют дженериков нету. <_< Или появились уже?
 
P

Pete

>.NET нужно воспринимать как платформу.

да, это загнул конечно <_< mea culpa

Скажем так, мне просто не подходит философия .Net и зависимость его развития от MS, ну это типа как мир Linux и Windows :( Но о вкусах не спорят ;)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!