Feb 17

Уже очень давно читал статью о сабже. Сейчас вот вспомнил наконец-то - статейка на википедии.

PS. Может это мне кажется, но по статье C# рвет Java по черному…

written by fxposter \\ tags: , ,


28 Responses to “C# vs Java”

  1. 1. Ilya Says:

    > PS. Может это мне кажется, но по статье C# рвет Java по черному…

    я бы так не сказал

  2. 2. FX Poster Says:

    Эмм. Какой полный ответ. :) А можно поподробнее о преимуществах Java, кроме полной кроссплатформенности?

  3. 3. patrick Says:

    А о преимуществах C#???
    Java проще – для тебя это преимущество???

  4. 4. FX Poster Says:

    Для чего проще? Учить и то и то нужно примерно одинаковое время, при этом C# обладает гораздо более удобными конструкциями языка, что позволяет на нем писать более выразительный код.

  5. 5. patrick Says:

    Учить?? хм… изучать конструкции языка? вообще платформы очень похожи если говорить об платформах…а синтаксис решает не все… я особых плюсов не вижу у .net перед java.

  6. 6. FX Poster Says:

    Синтаксис вообще ничего не решает в плане сложности изучения. В плане использования – поюзай LINQ, например, посмотришь, чем Java хуже.

    C# развивается. И очень быстро. А вот Java стоит практически на месте и в общем (когда там 1.5 была выпущена? а то в 1.6 изменений понты), и в частности (по сравнению с C#, который с каждой новой версией получает кучу новых возможностей).

  7. 7. patrick Says:

    LINQ есть и для java!
    Новые, но нужные ли? Превратили язык в хламовник, понимаешь ли…
    Где плюсы???

  8. 8. FX Poster Says:

    Покажи мне LinQ для Java.

    Новые, но нужные ли?
    Удобные ;) Большая часть таких изменений делается для удобства работы. И никакой это не хламовник. ;)

  9. 9. patrick Says:

    >> Покажи мне LinQ для Java.
    pureQuery

    Ну какое там удобство… :) больше возможностей не значит удобнее

  10. 10. Nuru Says:

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

  11. 11. FX Poster Says:

    Мне вот кажется, что вы оба думаете, что я против явы. :) Отнюдь. Я её знаю лучше C#, на самом деле.

    С другой стороны – мне абсолютно не нравиться то, как развивается Java как язык. И мне очень нравиться вектор развития C# – язык становиться удобным, матерым, обрастает новыми возможностями.

  12. 12. patrick Says:

    Ну вот видишь :) а мне наооборот…не нравиться как развивается C#. не нравится несовместимость между версиями платформ…не нравится полная зависимость от МС и тд. Короче мне вообще не нравиться платформа dotNET :)

  13. 13. FX Poster Says:

    Хехе.

    не нравится несовместимость между версиями платформ
    Это не проблема C#. Тем не менее – лично я никогда не мог сказать – несовместимость – это плюс или минус. В основном при нарушении совместимости добавляются новые возможности, которые часто бывают ОЧЕНЬ полезные.

    не нравится полная зависимость от МС и тд
    Бред :)

    Короче мне вообще не нравиться платформа dotNET :)
    С этого нужно было и начинать.

    Мне нравятся обе платформы. Но C# + .NET – гораздо больше, Мне кажется – эта платформа гораздо перспективнее.

  14. 14. patrick Says:

    >>не нравится полная зависимость от МС и тд
    >>Бред

    Ну почему же :) это мое мнение, а не бред…Понятно что при выборе C# можно использовать др Бд и тд, но почему то все выбирают MS SQLServer и тд в таком же духе

    Назови мне хоть одно добавление которое есть в c# без которого нельзя жить в Java

    >>Короче мне вообще не нравиться платформа dotNET :)
    >>С этого нужно было и начинать.
    Не нравится из-за вышесказанного :)

    Конечно новшества это хорошо. Но совместимость это тоже не последняя вещь.

  15. 15. patrick Says:

    >> Ну вот видишь :) а мне наооборот…не нравиться как развивается C#

    Мне если честно пофиг :)

    Просто для меня написать a = b и а = getB не сильно упрощает процесс разработки…

  16. 16. FX Poster Says:

    Ну почему же :) это мое мнение, а не бред…Понятно что при выборе C# можно использовать др Бд и тд, но почему то все выбирают MS SQLServer и тд в таком же духе
    А что ты против MS SQL Server’а имеешь? И против самой MS?

    Назови мне хоть одно добавление которое есть в c# без которого нельзя жить в Java
    Можно жить и мириться с любым языком. Языки усовершенствуют именно для того, чтобы жить было удобно. ;)

  17. 17. Eugen Says:

    Как дети, а кто сильнее слон или кит? Два языка заняли свои ниши и у каждого есть + и – .

  18. 18. Art Says:

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

  19. 19. nApoBo3 Says:

    У java есть очень важное преимущество перед .net, стоимость инструментов для разработки. Тот же netbeans бесплатен и сравнивать его с экспресовской студией я бы не стал. Под java даже SOA системы можно разрабатывать на базе абсолютно бесплатного инструментария, есть ли подобное у MS?
    Хотя если сравнивать сами платформы мне .net нравиться больше.

  20. 20. Alex Says:

    Спор этот вечный… А может кто нить назвать 10 преимуществ java над с#?

  21. 21. Bulat Says:

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

    1) За Java платформой стоит множество крупных вендоров, а не один. (как минимум, это Sun/Oracle, IBM, желающие могут добавить еще)

    2) Для Java есть множество JVM на все случаи жизни от различных вендоров. Это вопрос не только кросс-платформенности. Существуют JVM и для real-time систем, и для встраиваемых систем, и для телефонов, и пр., и пр., и пр.. Соответственно изучив Java, можно программировать и то, и то, и то (освоить принципы программирования таких систем, конечно же, придется, но язык-то будет тот же – это если о преимуществах Java, как языка говорить).

    3) База библиотек и фреймворков для Java неизмеримо шире. Потому она, как и Fortran, не умрет никогда. :)

    4) Это субъективно, но: Сообщество .NET (и C# в частности) завалено всяким хламом в гораздо большей мере чем Java. По крайней мере на 10 тупых вопросов и неправильных примеров по Java, в интернете лежит 100 или 1000 оных для .NET. :) При этом толковой документации и примеров по Java (особенно по платформе) доступно больше, чем по .NET.

    5) Затронет не многих, но: Используя .NET легко незаметить сползание на привязанность к внутренностям windows-платформы. А это приводит к получению дополнительной кучи непознаваемых глюков и несовместимостей наследуемых от нее. :) Для Java все подобные места почти всегда особо выделяются большими красными буквами – специфика сообщества. :) (не исследовал решения IBM для IBM-систем – возможно там иначе)

  22. 22. Almat Says:

    java – free
    C# – no free

    no comment

  23. 23. Art Says:

    >>java – free
    C# – no free

    Полная чушь, сами языки бесплатны и компиляторы под них тоже, которые входят в состав стандартных средств, javac для Java и csc.exe для С#.

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

  24. 24. Art Says:

    К тому же есть реализация C# Mono, с открытым исходным кодом, при этом в данный момент достаточно много бесплатных библиотек как для Java так и для C#, например Hibernate и NHibernate соответственно.

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

  25. 25. acronics Says:

    Всем привет!
    Позвольте и мне высказаться. Я имею достоаточно программировал на продуктах M$, начиная с VB 6.0/ASP 3.0 classic и заканчивая C#/VB.net + asp.net. (C/C++ знаю плохо)

    Но сейчас я больше присматриваюсь к java и она мне нравится больше и вот почему.

    1. Java-код намного проще для написания и ОСОБЕННО для восприятия, чем C#. Это вызвано тем что С# более тяготеет к С++ и соответственно более развит. Может быть для кого то это плюс (а именно для тех кто знает С++), но для меня это гемморой и именно поэтому я не знаю С++ до сих пор.

    2. Я не привязан к одному вендору (об этом говорилось выше). И не надо указывать мне чем мне не нравится МС. Просто она ущемляет свободу, это не нравится никому. Mono и dotGNU всегда будут догоняющими продуктами для .net.
    Да С# свободен как язык, но свобода эта кажущаяся. Если бы МС хотел перенести .NET он бы давно это уже сделал бы, но этого не будет никогда, поскольку она потеряет все свое бабло. А потому ваши программы не выдут за пределы винды и виндовых телефонов (к сожалению то же тормознутых).

    3.Научные проекты.
    В научных проектах важна свобода. И если, допустим создается система управления каким-либо станком или ядерным реактором, упаси Господь Вас употребить C# или что-то МС-овское. Все МС-кие продукты (даже С++) грешат тем что выходят за рамки стандартов (это еще один пиар-метод вербования пользователей), и когда вы захотите испытать ваше творение в полевых условиях, вдруг обнаружится что придется код переписывать. Ибо управлять станком из под виндовс – из области фантастики.

    Да Java тормознее С/С++, тормознее ли С# – не знаю, когда как наверное.
    НО при больших вычислениях в научных проектах можно вызвать нативный код того же С/С++ или FORTRAN (которому тот же С++ сливает как ребенок) – таких случаев единицы, но они бывают (подобно тому как раньше из Pascal надо было асм вызвать). Но поверте, это намного удобнее чем переписывать весь проект.

    4.Коммерческие проекты – здесь JAVA выгоднее, потому как все бесплатно.

    В общем мой голос за Java. (хоть c C# дольше знаком).
    C# – выбор тех, кто хочет программить коммерческие проекты под вин или вин-сервер. Если это так то флаг вам в руки. О джаве можете забыть как о страшном сне.

    ПС: все вышесказанное ИМХО, но право на существование имеет.

  26. 26. FX Poster Says:

    Это вызвано тем что С# более тяготеет к С++ и соответственно более развит.
    А примеры фич C#, которыми не обладает Java, и которые мешают читабельности можно? :)

    НО при больших вычислениях в научных проектах можно вызвать нативный код того же С/С++ или FORTRAN
    А это как ты собрался делать? Уж не через JNI ли? Тогда ты не сможешь использовать существующие библиотеки C++ as-is. К тому же частые JNI-вызовы обычно приводят не к ускорению, а к замедлению производительности.

  27. 27. acronics Says:

    >А примеры фич C#, которыми не обладает Java, и которые мешают >читабельности можно? :)
    Да хоть перегрузка операторов.
    Или явные указания виртуальных методов. (хотя это можно как плюс расценивать – кому-как).
    Это круто, конечно, не спорю. Но у меня от этого боль. и если это было бы мне нужно, я опять же обратился бы к С++.
    А в джаве этого нет и воспринимать код легче. Естественно без потери функционала, поскольку операторы легко заменить на вызов функции.

    >А это как ты собрался делать? Уж не через JNI ли? Тогда ты не сможешь >использовать существующие библиотеки C++ as-is.
    А не об этом и речь. Речь о том чтобы заставить готовую полностью написанную Java прогу работать быстрее.

    >К тому же частые >JNI-вызовы обычно приводят не к ускорению, а к >замедлению >производительности.
    Спорно все. Таких узких мест бывает немного – в основном мат. расчеты численные. Если бы потери больше были, чем в чистом джава коде, натив бы вообще не использовали.

    п.с.: не цепляйся за слова – я же сказал это мое мнение, и было бы интересно услышать остальных.

  28. 28. FX Poster Says:

    Да хоть перегрузка операторов.
    Не согласен. Категорически, причем.

    Насчет “ускорения” ява-программ – лучше уж поучить байткод JVM и понять, что можно сделать быстрее, чем работать с JNI и писать все на сях, потому что первое даст опыт и хоть какой-нибудь прирост производительности. ;)

Leave a Reply