dad>>Помоему даже беглый взгляд показывает, что ява превосходит .net во всех остношениях.
ГВ>Ты только очень громко этого не говори.
У Явы, по-моему, есть только два серьёзных преимущества:
— накоплено много кода, программистов и общей инерции
— есть реальная переносимость для мощных серверов
dad>>Сказывается академический , а не коммерческий подход.
Вообще-то Ява — более уважаемый в академических кругах язык. Его в любом серьёзном американском универе учат.
ГВ>Да здесь ещё много тем подняться может. А о Java, ИМХО, не упомянуть просто не получится. Куда ж мы без неё в контексте коммуникаций.
А что, в Яве навороченые комуникации? Поделись, товарищ, ты, видно разбираешься в вопросе. Сделай краткий обзорчик для многочисленных дотнетовцев.
M>>Какие тут могут быть возражения? Сущность .NET — управляемый код, снабжённый полными метаданными. Преимущества вытекают отсюда. Одно из основных — безопасность. Перефразируя твою фразу, M>>.NET больше подходит для построения безопасных приложений, чем "старые" архитектуры. M>>Под "старыми" архитектурами я понимаю компилируемые в ассемблерный код приложения. Грубо говоря, C со товарищи.
ГВ>Не совсем так. С одной стороны — да, система, принципиально контролирующая весь доступ к памяти обеспечивает несколько большую безопасность, чем "C со-товарищи". Но с другой стороны, .Net за счёт unmanaged-ов даёт в руки разработчика всё необходимое для любых издевательств над безопасностью. И получается, что Java с его JNI обеспечивает бОльшую защищённость
В .NET это регулируется политиками. Чтобы использовать unsafe-код или Platform Invoke, нужно иметь соответствующие права. То есть, опасность может исходить только от опрометчивых настроек и разрешений.
Во всяком случае, я бы не назвал неудобство работы с JNI преимуществом Явы. Хотя это, конечно, и усиливает барьер для издевательств над безопасностью.
M>>Кроме того, управляемость и метаданные дают больший потенциал для масштабирования. Если программа работает предсказуемо, его проще разносить на разные сервера, в разные домены и т.п. В том числе, и на разные процессорные архитектуры.
ГВ>Теоретически — да, но практически мне ещё не доводилось встречаться с .Net ни на AS/400 ни на Sparc. Зато Java там хоть отбавляй...
Да, там, наверное, дотнет и не выстрелит. Зато на IA64 скоро выстрелит.
M>>Ещё есть преимущества библиотек. Но это уже заслуга не рантайма, а исключительно библиотек. WinForms — хорошо. GDI+ — удобно. ASP.NET — просто качественный прорыв. Собственно, никто не мешает написать подобные библиотеки на Java, С++ или Perl.
ГВ>Согласен. На C++ — не мешает, на Java будет несколько сложнее переносимость фичечек того же GDI+ обеспечить.
Да уж, GDI+ переносимостью обделён. Зато, наверное, какой-нибудь JSP.NET запустят (или, лучше, JSP.ONE, но с тем де смыслом).
ГВ>Ну, Mika... "Возможности у него самые большие." Самые большие по сравнению с чем?
На дотнете разработка быстрее происходит. По сравнению со "старыми" языками, конечно. Из-за того, что управляемость+метаданные приносят существенные преимущества.
Ну и плюс библиотеки, если уж не только теорию рассматривать.
Здравствуйте, Геннадий Васильев, Вы писали:
M>>А кто сказал что это data-layer? Вот допустим я написал веб сервис. Он мне возвращает список товаров. Потом создал DataGrid и прибиндил к нему этот сервис. Я разве что то соединил? Нет. Я решил проблему без лишнего гемморного кода. При этом, веб сервис это не уровень доступа данных Это Business уровень, его фасад.
ГВ>Хорошо, согласен, таким образом ты прикрутил исходящий от сервера поток данных к презентационному слою. Т.е., выполнил работу по коммутированию потока данных. DataGrid написан средствами .Net. Значит, коммуникации + представление. Почти убеждаешь...
Если бы увидел корень мысли, то совсем бы убедился и не было сомнений
ГВ>Но с другой стороны — собственный продукт Microsoft и окошки бы не умел рисовать? Я DataGrid глубоко не ковырял, но что-то мне подсказывает, что он, всё-таки, как и любой custom control обеспечивается службами самой Windows: очередями сообщений, WM_PAINT-ами и прочим. И ещё: если у тебя вместо плоской таблицы появится древовидная структура, то и вместо DataGrid придётся что-то другое вешать, не правда ли?
Честно говоря я имел ввиду System.Web.UI.WebControls.DataGrid. Этот не зависит от ОС. Но и если использовать виндовый, то чтобы сделать древовидную структуру не особо нужно что то изобретать. Возьми в пример кучу контоолов такого типа на codeproject.com Наследники от DataGrid, реализующую нужную ф-ть.
M>>Зайди на форум .NET и увидишь, что самый оцененный топик сейчас — это статья ИТ про RSDN.Framework.Data. Неспроста. Маппинг данных народу хочеться, а не возюкаться с SqlXXX классами. Чтоб быстро и эффективно (по времени разработки, разумеется).
ГВ>Ну, маппинг — тема отдельная и достаточно большая. К дотнету, ИМХО, она относится очень даже косвенно, хотя, если хочешь, то можно поковырять и её. Да, на дотнете CRUD стало делать легко. Но объектно-реляционный маппинг одним только CRUD не ограничивается,
Согласен. Но согласись, зачем что то реализовывать, когда вот оно, готовое. Или вы у нас велосипеды предпочитаете?
ГВ>это простейшая штуковина, которая при наличии устаканенного подхода к описанию и чтению структуры класса лепится вполпинка почти на любом языке.
Ну да. Конечно. Я как погляжу на всякие шаблонные классы на C++, так жалко программиство становится.
M>>Xml удобен для общения. Не нужно ничего нового изучать. Вот он протокол и все им пользуйтесь. А что ЛИСП. Я его не знаю. Следовательно, его не знаю и мои сервисы. Какой же он тогда удобный?
ГВ>Для веб-сервисов, может быть и неудобный. Пока. А так, вобщем-то, покомпактнее XML будет. Да и нет необходимости XSLT изобретать: все трансформации можно описать на том же LISP. Единственное серьёзное отличие: человеку его потруднее читать, чем XML и не так уж он и годится для разметки текста. Ну впрочем, ладно, это к теме не относится.
Даже SUN поняла что будующее за XML... Ну, вообщем, ладно. Пишем все на LISP =)
ГВ>Да, но назначение ASP — работа в коммуникационной среде. Каких бы прибамбасов там ни было, "среда" для ASP всё равно — коммуникационная. Ну, плюс ещё презентативная логика в определённом смысле.
Честно говоря, если взглянуть глубже, то ASP это не только коммуникация. Что то мне подсказывает
ГВ>Хорошо, тогда не будем гадать на кофейной гуще. Поживём-посмотрим.
Хм. Дык, ведь уже. Или ты что то другое имеешь ввиду?
M>>NT Services. Как можно подключиться к контроллеру этих сервисов с другой машины. Через оснастку. Какие тут еще коммуникации. Да, там есть RPC. Но все так хитро скрыто, что не нужно разработчику об этом знать.
ГВ>Да, нет. Мир одной только NT не ограничивается.
Ну я имел ввиду подобие. Сервисы, демоны. Как хочешь обзови. В чем вопрос то?
ГВ> Ну, я вообще-то думаю, что с веб-сервисами лучше всего через SOAP общаться,
Я и не знал, что soap стал у нас транспортным протоколом
ГВ>а сокеты нужны там, где производительность SOAP не устраивает.
Честно говоря, я на remoting так могу запрос создать, что он будем измеряться в порядке в несколько байт. Вообщем, сокетный размер пакетов... Я просто часто вижу, как люди не разобравшись в инструменте, категорически его отвергают по каким-то своим внутренним убеждениям. Может сказваеться фраза "Винда must die, Линух рулит"?
M>>В Нете уже есть классы, реализующие определенный слой абстракции. В Яве тоже есть (но я ее рассматриваю как Нет. Тот же мифический тяжеловестный рантайм, те же тормоза, та же легкость в разработке). А в других языках разве что то наблюдается? Да, и тем более, реализуй это, тут же потребуються дополнительные возможности, которые сейчас успешно берет на себя WSE. И эту библиотеку тоже реализовывать!?
ГВ>Может быть и так, может быть и нет. Во всяком случае, это никак не противоречит тому, что .Net ориентирована в первую очередь на коммуникации и их обслуживание.
Давай тогда решим, какие ты типы программ имеешь ввиду, подрузомевая в них "не коммуникативные"
ГВ>Только объясни, плз., кого, "её" на клиенте реализоывать?
Indigo
ГВ>Да, представляю. Но ассоциации с коммуникациями у меня не из-за .Network, а именно из-за внутренностей самого .Net.
не всякий программист .NET может похвастаться, что он знает его внутренности.
ГВ>Странно... зачем? Затем, чтобы получить от неё какую-то информацию. Или заставить её что-то сделать.
Ага. Я просто подумал, что программу написал на нейтив только из-за того, что не любят .NET. Бывают такие
M>>Почему все это нельзя сразу написать на НЕТ? Возможности у него самые большие. Зачем тогда мучиться и писать что-то на другом языке?
ГВ>Самые большие по сравнению с чем?
Скажу громко. Из всего что ты приведешь. Более того, я докажу тебе, что ты плохо подходишь к решению проблемы при выборе нужного инструмента для реализации того или иного программмного продукта. Как пример, описанное тобою ниже.
ГВ>Возможности-то большие, вопрос в том, для чего они лучше всего годятся. На VB можно, в принципе, любую программу написать, но не факт, что она позволит удовлетоврить предъявляемым к ней требованиям. Мне приходилось с АБС на VB сталкиваться — так этот монстр на четырёхпроцессорном сервере двух пользователей с трудом обслуживал.
К чему ты это привел? К тому что ВБ для этого не преднозначен. Так кто бы спорил. Пользуйтесь VB.NET
Здравствуйте, mihailik, Вы писали:
M>> Често говоря, я вижу только одного конкурента языку C# (ниче, если я конкретно). C# Builder
M>Да ладно, какой он конкурент? Компилятор тот же, и среда малость глючноватая.
M>Можно ещё SharpDevelop вспомнить из таких "конкурентов".
SharpDevelop — среда
C# Builder — язык + среда. Удобнее для старта. Тот же Web Matrix тоже ничего. Вообщем, песочница явно видна
Здравствуйте, dad, Вы писали:
M>>Вообще-то Ява — более уважаемый в академических кругах язык. Его в любом серьёзном американском универе учат.
dad>А я о чем????
А у нас Паскалю. О чем это говорит. Только о том, что язык это инструмент. Захочешь — научишь. И не более
M>>>Вообще-то Ява — более уважаемый в академических кругах язык. Его в любом серьёзном американском универе учат.
dad>>А я о чем????
M>А у нас Паскалю. О чем это говорит. Только о том, что язык это инструмент. Захочешь — научишь. И не более
В нормальных институтах языкам не учат, там учат технологиям. А под явой я имею ввиду совокупность технологии
в целом и архитектуру тоже.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Здравствуйте, dad, Вы писали:
dad>В нормальных институтах языкам не учат, там учат технологиям. А под явой я имею ввиду совокупность технологии dad>в целом и архитектуру тоже.
Воообще и технологиям не учат Ибо пока учишься они и состариться могут. Обычный факт. Я пока учился, три раза языки менял (и собственно технологии).
Учат методологиям. Вот наверное что ты имеешь ввиду.
dad>>В нормальных институтах языкам не учат, там учат технологиям. А под явой я имею ввиду совокупность технологии dad>>в целом и архитектуру тоже.
M>Воообще и технологиям не учат Ибо пока учишься они и состариться могут. Обычный факт. Я пока учился, три раза языки менял (и собственно технологии).
Там где я учился язык реализации мог быть любым (особенно на старших курсах). Что ты подразумеваешь под технологие?
M>Учат методологиям. Вот наверное что ты имеешь ввиду.
Это кстати, повод для беседы. Что такое технология, а что такое методология.
в курсе преподается теория , лекции например по организации систем управления базами данных, и лабораторные работы по написанию своих хранилищ данных. При написании использовались материалы курса структуры данных, индексы там ввиде b+ дерева и т.д. что из этого явлется технологией а что методологией?
или теория компиляторов в которых применяется
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
M>>Какие тут могут быть возражения? Сущность .NET — управляемый код, снабжённый полными метаданными. Преимущества вытекают отсюда. Одно из основных — безопасность. Перефразируя твою фразу, M>>.NET больше подходит для построения безопасных приложений, чем "старые" архитектуры. M>>Под "старыми" архитектурами я понимаю компилируемые в ассемблерный код приложения. Грубо говоря, C со товарищи.
ГВ>Не совсем так. С одной стороны — да, система, принципиально контролирующая весь доступ к памяти обеспечивает несколько большую безопасность, чем "C со-товарищи". Но с другой стороны, .Net за счёт unmanaged-ов даёт в руки разработчика всё необходимое для любых издевательств над безопасностью. И получается, что Java с его JNI обеспечивает бОльшую защищённость
В .NET это регулируется политиками. Чтобы использовать unsafe-код или Platform Invoke, нужно иметь соответствующие права. То есть, опасность может исходить только от опрометчивых настроек и разрешений.
Во всяком случае, я бы не назвал неудобство работы с JNI преимуществом Явы. Хотя это, конечно, и усиливает барьер для издевательств над безопасностью.
M>>Кроме того, управляемость и метаданные дают больший потенциал для масштабирования. Если программа работает предсказуемо, его проще разносить на разные сервера, в разные домены и т.п. В том числе, и на разные процессорные архитектуры.
ГВ>Теоретически — да, но практически мне ещё не доводилось встречаться с .Net ни на AS/400 ни на Sparc. Зато Java там хоть отбавляй...
Да, там, наверное, дотнет и не выстрелит. Зато на IA64 скоро выстрелит.
M>>Ещё есть преимущества библиотек. Но это уже заслуга не рантайма, а исключительно библиотек. WinForms — хорошо. GDI+ — удобно. ASP.NET — просто качественный прорыв. Собственно, никто не мешает написать подобные библиотеки на Java, С++ или Perl.
ГВ>Согласен. На C++ — не мешает, на Java будет несколько сложнее переносимость фичечек того же GDI+ обеспечить.
Да уж, GDI+ переносимостью обделён. Зато, наверное, какой-нибудь JSP.NET запустят (или, лучше, JSP.ONE, но с тем де смыслом).
ГВ>Ну, Mika... "Возможности у него самые большие." Самые большие по сравнению с чем?
На дотнете разработка быстрее происходит. По сравнению со "старыми" языками, конечно. Из-за того, что управляемость+метаданные приносят существенные преимущества.
Ну и плюс библиотеки, если уж не только теорию рассматривать.
M>>Какие тут могут быть возражения? Сущность .NET — управляемый код, снабжённый полными метаданными. Преимущества вытекают отсюда. Одно из основных — безопасность. Перефразируя твою фразу, M>>.NET больше подходит для построения безопасных приложений, чем "старые" архитектуры. M>>Под "старыми" архитектурами я понимаю компилируемые в ассемблерный код приложения. Грубо говоря, C со товарищи.
ГВ>Не совсем так. С одной стороны — да, система, принципиально контролирующая весь доступ к памяти обеспечивает несколько большую безопасность, чем "C со-товарищи". Но с другой стороны, .Net за счёт unmanaged-ов даёт в руки разработчика всё необходимое для любых издевательств над безопасностью. И получается, что Java с его JNI обеспечивает бОльшую защищённость
В .NET это регулируется политиками. Чтобы использовать unsafe-код или Platform Invoke, нужно иметь соответствующие права. То есть, опасность может исходить только от опрометчивых настроек и разрешений.
Во всяком случае, я бы не назвал неудобство работы с JNI преимуществом Явы. Хотя это, конечно, и усиливает барьер для издевательств над безопасностью.
M>>Кроме того, управляемость и метаданные дают больший потенциал для масштабирования. Если программа работает предсказуемо, его проще разносить на разные сервера, в разные домены и т.п. В том числе, и на разные процессорные архитектуры.
ГВ>Теоретически — да, но практически мне ещё не доводилось встречаться с .Net ни на AS/400 ни на Sparc. Зато Java там хоть отбавляй...
Да, там, наверное, дотнет и не выстрелит. Зато на IA64 скоро выстрелит.
M>>Ещё есть преимущества библиотек. Но это уже заслуга не рантайма, а исключительно библиотек. WinForms — хорошо. GDI+ — удобно. ASP.NET — просто качественный прорыв. Собственно, никто не мешает написать подобные библиотеки на Java, С++ или Perl.
ГВ>Согласен. На C++ — не мешает, на Java будет несколько сложнее переносимость фичечек того же GDI+ обеспечить.
Да уж, GDI+ переносимостью обделён. Зато, наверное, какой-нибудь JSP.NET запустят (или, лучше, JSP.ONE, но с тем де смыслом).
M>На дотнете разработка быстрее происходит. По сравнению со "старыми" языками, конечно. Из-за того, что управляемость+метаданные приносят существенные преимущества.
M>Ну и плюс библиотеки, если уж не только теорию рассматривать.
замучил лошить уже пятый раз получаю этот пост..
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
M>>Какие тут могут быть возражения? Сущность .NET — управляемый код, снабжённый полными метаданными. Преимущества вытекают отсюда. Одно из основных — безопасность. Перефразируя твою фразу, M>>.NET больше подходит для построения безопасных приложений, чем "старые" архитектуры. M>>Под "старыми" архитектурами я понимаю компилируемые в ассемблерный код приложения. Грубо говоря, C со товарищи.
ГВ>Не совсем так. С одной стороны — да, система, принципиально контролирующая весь доступ к памяти обеспечивает несколько большую безопасность, чем "C со-товарищи". Но с другой стороны, .Net за счёт unmanaged-ов даёт в руки разработчика всё необходимое для любых издевательств над безопасностью. И получается, что Java с его JNI обеспечивает бОльшую защищённость
В .NET это регулируется политиками. Чтобы использовать unsafe-код или Platform Invoke, нужно иметь соответствующие права. То есть, опасность может исходить только от опрометчивых настроек и разрешений.
Во всяком случае, я бы не назвал неудобство работы с JNI преимуществом Явы. Хотя это, конечно, и усиливает барьер для издевательств над безопасностью.
M>>Кроме того, управляемость и метаданные дают больший потенциал для масштабирования. Если программа работает предсказуемо, его проще разносить на разные сервера, в разные домены и т.п. В том числе, и на разные процессорные архитектуры.
ГВ>Теоретически — да, но практически мне ещё не доводилось встречаться с .Net ни на AS/400 ни на Sparc. Зато Java там хоть отбавляй...
Да, там, наверное, дотнет и не выстрелит. Зато на IA64 скоро выстрелит.
M>>Ещё есть преимущества библиотек. Но это уже заслуга не рантайма, а исключительно библиотек. WinForms — хорошо. GDI+ — удобно. ASP.NET — просто качественный прорыв. Собственно, никто не мешает написать подобные библиотеки на Java, С++ или Perl.
ГВ>Согласен. На C++ — не мешает, на Java будет несколько сложнее переносимость фичечек того же GDI+ обеспечить.
Да уж, GDI+ переносимостью обделён. Зато, наверное, какой-нибудь JSP.NET запустят (или, лучше, JSP.ONE, но с тем де смыслом).
M>>Какие тут могут быть возражения? Сущность .NET — управляемый код, снабжённый полными метаданными. Преимущества вытекают отсюда. Одно из основных — безопасность. Перефразируя твою фразу, M>>.NET больше подходит для построения безопасных приложений, чем "старые" архитектуры. M>>Под "старыми" архитектурами я понимаю компилируемые в ассемблерный код приложения. Грубо говоря, C со товарищи.
ГВ>Не совсем так. С одной стороны — да, система, принципиально контролирующая весь доступ к памяти обеспечивает несколько большую безопасность, чем "C со-товарищи". Но с другой стороны, .Net за счёт unmanaged-ов даёт в руки разработчика всё необходимое для любых издевательств над безопасностью. И получается, что Java с его JNI обеспечивает бОльшую защищённость
В .NET это регулируется политиками. Чтобы использовать unsafe-код или Platform Invoke, нужно иметь соответствующие права. То есть, опасность может исходить только от опрометчивых настроек и разрешений.
Во всяком случае, я бы не назвал неудобство работы с JNI преимуществом Явы. Хотя это, конечно, и усиливает барьер для издевательств над безопасностью.
M>>Кроме того, управляемость и метаданные дают больший потенциал для масштабирования. Если программа работает предсказуемо, его проще разносить на разные сервера, в разные домены и т.п. В том числе, и на разные процессорные архитектуры.
ГВ>Теоретически — да, но практически мне ещё не доводилось встречаться с .Net ни на AS/400 ни на Sparc. Зато Java там хоть отбавляй...
Да, там, наверное, дотнет и не выстрелит. Зато на IA64 скоро выстрелит.
M>>Ещё есть преимущества библиотек. Но это уже заслуга не рантайма, а исключительно библиотек. WinForms — хорошо. GDI+ — удобно. ASP.NET — просто качественный прорыв. Собственно, никто не мешает написать подобные библиотеки на Java, С++ или Perl.
ГВ>Согласен. На C++ — не мешает, на Java будет несколько сложнее переносимость фичечек того же GDI+ обеспечить.
Да уж, GDI+ переносимостью обделён. Зато, наверное, какой-нибудь JSP.NET запустят (или, лучше, JSP.ONE, но с тем де смыслом).