Asker
Гость
|
|
« : 09-09-2004 08:08 » |
|
Приветствую. Кто-нибуть может привести хотя бы несколько достоинств что-бы переходить с Java на C#. На первый взгляд технология та же, а все носятся с .Net как с писанной торбой, или это рекламный отдел microsoft так постарался. Абсолютно сырая технология, нет никакой кроссплатформенности. В чем основное преимущество?
|
|
|
Записан
|
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #1 : 09-09-2004 08:10 » |
|
Asker, а почему C# ? Для программистов на Яве есть в дот нете J#
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Alf
Гость
|
|
« Ответ #2 : 09-09-2004 08:13 » |
|
Независимость от языка разработки в первую очередь.
Ну и всякие приятные мелочи, вроде свойств и т.п., без которых прожить в общем-то можно, но с ними комфортнее.
А переходить IMHO лучше не следуя моде, а когда есть серьезные претензии к старой платформе. Если все задуманное удается достаточно легко делать на Java- какой смысл переходит на что-то еще?
|
|
|
Записан
|
|
|
|
Asker
Гость
|
|
« Ответ #3 : 09-09-2004 08:20 » |
|
Дело в том, что C# и .Net вообще продвигают как новую технологию, которой не было и велий MS ее придумал. Но явных отличий от Java, не как языка программирования как такового, а как технологии (J2EE, JavaBeans и т.п.) нет. Вот это и особенно напрягает. Да и сам С# если присмотреться полная калька с языка Java. Я так понимаю, что .NET это просто заимствонная у Sun технология привязанная к программированию под Windows. И основная идеология - это перетянуть Java разработчиков под свои знамена.
|
|
|
Записан
|
|
|
|
Serega
Гость
|
|
« Ответ #4 : 09-09-2004 08:44 » |
|
Думаю что перетянуть разработчиков не выдет уж слишком кривой .Net что бы тягаться с Java Лишь одна возможность не декларивовать исключения чего стоит, лично я зачастую понятия не имею какие исключения могут возникнуть в моей програме и даже не пытаюсь этого выяснить, просто в ключевых местах ловлю все и выдаю пользователю Реально большинство исключений не декрарированно даже в MSDN (типа SEHException), и вылезать они могут в зависимости от положения звезд (порой это настолько веселит, что в ход идут ноги )
|
|
|
Записан
|
|
|
|
Alf
Гость
|
|
« Ответ #5 : 09-09-2004 08:51 » |
|
Дело в том, что C# и .Net вообще продвигают как новую технологию, которой не было и велий MS ее придумал. Но явных отличий от Java, не как языка программирования как такового, а как технологии (J2EE, JavaBeans и т.п.) нет. Есть. Как я уже говорил, в первую очередь это единая языковая среда: общая для всех языков исполняющая система, общая система типов и библиотека классов. Для одиночки большой выгоды от этого может и не быть, а вот мне по работе приходится частенько взаимодействовать с приверженцем Visual Basic'а. Раньше, когда нам нужно было сделать что-то совместно, я должен был подлаживаться под него. Теперь нет: наши объекты свободно взаимозаменяемы. Если бы я выбрал Java, пропасть между нами только выросла бы. Вот это и особенно напрягает. Да и сам С# если присмотреться полная калька с языка Java. Это если плохо присматриваться. В той же степени не калька, что и сама Java - не калька с С++. Я так понимаю, что .NET это просто заимствонная у Sun технология привязанная к программированию под Windows. И основная идеология - это перетянуть Java разработчиков под свои знамена. Это было бы слишком просто. Прежде всего, у технологии Sun нет никаких проблем с работой под Windows, и потому просто заимствовать ее бессмысленно. Кроме того, известна история появления C#: затеянная Sun'ом тяжба вокруг Java привела к тому, что MS оказался вынужден отказаться от ее использования и создать конкурирующую систему. За что боролись...
|
|
|
Записан
|
|
|
|
Lars
Гость
|
|
« Ответ #6 : 09-09-2004 08:52 » |
|
Пока единственный плюс, который явно виден, это возможность писать на разных языках программирования, код при этом компилируется в IL (тоже самое что и байт-код Java). На этом на мой взгляд все преимущества и заканчиваются. На днях протестирую производительность по сравнению с Java, опишу впечатления P.S. asker это я, пароль на вход не мог вспомнить
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #7 : 09-09-2004 10:59 » |
|
но ведь и языки под .NET пришлось переделать - языковые проблемы странны. Какая разница на чём писать программисту? Я на всём, на чём придётся, пишу без особых затруднений. Единственный плюс: что разные части большой программы бывает удобнее на разных языках писать: интерфейс и COM-клиентов на VB, чтобы много не возиться, глубоко влезающее в недра ОС лучше на C/C++ и т.д. Потом в .NET это безболезненно собрать можно.
Но если глубоко системных вещей в приложении нет, то преимуществ перед Java я не вижу. Даже недостаток - отсутствие такой же кросс-платформенности. Нужно, чтобы Framework под все платформы был - тогда будет удобнее. Но на Java уже столько наработок, что не совсем понятно, зачем Microsoft пошла на конфронтацию, вместо того, чтобы сотрудничать с Sun. Денег мало - это понятно, но здравый смысл всё же...
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Lars
Гость
|
|
« Ответ #8 : 10-09-2004 10:51 » |
|
Интересно, а кто-нибуть писал достаточно серьезные проекты на C#? Как насчет производительности Framework, поскольку для Java произвотельность до сих попр остается узким местом.
|
|
|
Записан
|
|
|
|
DM
Гость
|
|
« Ответ #9 : 10-09-2004 11:40 » |
|
Lars, есть ли какие результаты по сравнению производительности дот нет и java ? Хоть в литературе и писалось немало на этот счет, но интересно узнать непредвзятое мнение
|
|
|
Записан
|
|
|
|
Lars
Гость
|
|
« Ответ #10 : 10-09-2004 11:52 » |
|
|
|
|
Записан
|
|
|
|
Alex White
|
|
« Ответ #11 : 10-09-2004 11:56 » |
|
Интересно, а кто-нибуть писал достаточно серьезные проекты на C#? Как насчет производительности Framework, поскольку для Java произвотельность до сих попр остается узким местом. Конечно. И продолжаем это делать. Вот для сравнения есть у меня пример: юзаем The CSharp (C#) Formatter от Semantic Designs, Inc. , так вот по производительности вроде не намного тормознее аналогичного софта под .Net, а что касается GUI - так явно на порядок ниже. К тому же для .Net потеря производительности - это не самое страшное. Саме страшное, что за все удобства приходится платить огромными (по сравнению с C++ кодом) объёмами памяти, занимаемыми приложением.
|
|
|
Записан
|
|
|
|
Lars
Гость
|
|
« Ответ #12 : 10-09-2004 12:01 » |
|
Что касается самостоятельной проверки, я еще не писал серьезный проект на дот нет, поэтому непредвзято сказать трудно. Что касается Java то опыт разработки показывает, что приложение связанное с web работает очень быстро, но как только приходиться с конкретной ОС, то есть использовать локальные ресурсы машины здесь возникают серьезные проблемы. Приходиться использовать JIT компляторы или даже компилировать под конкретную платформу, соответственно вся кроссплатформенность сводиться к нулю. Хотя разрабатывать крупную распределенную систему на Java одно удовольствие , особенно на концептуальном уровне
|
|
|
Записан
|
|
|
|
Lars
Гость
|
|
« Ответ #13 : 10-09-2004 12:54 » |
|
Саме страшное, что за все удобства приходится платить огромными (по сравнению с C++ кодом) объёмами памяти, занимаемыми приложением. Программы написанные на Java также требуют немало ресурсов, однако потери производительности компенсируются их переносимостью для различных платфом, в этом основное преимущество. У дот нет такого достоинство отсутствует, поэтому остается только удобство разработки - не более того.
|
|
|
Записан
|
|
|
|
Alex White
|
|
« Ответ #14 : 10-09-2004 13:42 » |
|
Программы написанные на Java также требуют немало ресурсов, однако потери производительности компенсируются их переносимостью для различных платфом, в этом основное преимущество. У дот нет такого достоинство отсутствует, поэтому остается только удобство разработки - не более того. Пусть меня больно пинают если я не прав, но сама платформа .Net изначально задумывалась как средство для написания приложений независимо от ОС (если я правильно понимаю ход мыслей Lars'a). И сам разработчик может либо остаться в рамках .Net, обеспечив таким образом независимость от ОС, либо завалить все на корню (например, вызвав чтонить из user32.dll). К тому же проблема переносимости кода между различными ОС - это отсутствие .Net Framework для этих осей, а не ограничение полатформы.
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #15 : 10-09-2004 16:35 » |
|
Alex White, пинать не будут, но вроде бы она задумывалась в первую очередь как кросс-языковость, а уж потом кросс-платформенность. Кстати, Frameworkи потихоньку на другие платформы создаются, только не скажу о качестве - сам не видел, не пробовал
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
|