c# или java?

Тема в разделе "WASM.HEAP", создана пользователем NoName, 24 мар 2008.

  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Что лучше? Может стоит знать оба?
     
  2. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    "лучше" понятие относительное. C# (а точнее MSCIL в который он транслируется) поддерживает unsafe код, позволяющий делать, что угодно. usafe кода полно и в JVM, но там его реально меньше, хотя при желании защита классов обходится на раз ;)

    области применения C# и Java: ну тут Java рулит, а C# вообще реально существует только в одной реализации от ms (mono не в счет).

    байт-коды я знаю обоих языков. JVM мне как-то больше нравится. саму жабу еще не изучал, C# - в силу его близости к сям простые программки начал писать без всякого обучения, сложные - мне пока без надобности ;)
     
  3. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    Помне так C#. Он болле понятен, и расширяем (бейсик с синтаксисом C), для java дохрена надо штудировать док, а расширяемость минимальна.
    Скока прог на Java для GUI видел все какието тормознутые (притормаживают), с .NEt вроде норм.
     
  4. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    kaspersky
    Проги под линукс под ним же вроде работают (я особо в этот процесс не вникал)?

    SWR
    пример в студию
     
  5. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.729
  6. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    asmlamo
    извините, не очень понял о чем вы
     
  7. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    NoName
    > Проги под линукс под ним же вроде работают
    > (я особо в этот процесс не вникал)?
    а ты попробуй вникнуть, а еще лучше откопилить что-нидь
    или даже взять готовый mscil код, котоый уже отранслирован
    и запусти его под линухом. если это не hello, world, то...

    ну а так, mono вполне ничего себе реализует ECMA-335,
    то есть байт-код виртуальной машины. только ведь я его
    и без всякого mono реализовать могу от нефиг делать.
    он там простой и команд немного. другое дело - это
    оптимизирующие компиляторы в память, здесь ms вне
    конкуренции и по скорости она делает этот mono...

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


    что касается java - работает практически везде.
    тормозит, конечно, сильно. намного сильнее, чем
    c#, потому что jvm намного более "драконичная",
    чем mscil - отсюда и последствия. при компиляции
    в нативный код в mscil мы делаем меньше проверок,
    да и сама компиляция намного более адрекватна,
    сравни наоборы инструкций на jvm и cil и ты все
    сразу поймешь ;)


    на счет изучаемости языков... ну java меня испугала сразу.
    C# - зная си, проблем в написании простых программ вообще
    не возникло, особенно с учетом того, что IDE подсказывает
    какие классы какие методы поддерживают...


    SWR
    > Помне так C#. Он болле понятен, и расширяем
    что значит "расширяем"? если ты про библиотеки,
    так для java их _намного_ больше, плюс открытые
    сорцы самой java, что позволяет ее расширять...
    вообще же, любой язык, включая классический Си
    очень нехило расширяем, особенно если вспомнить,
    что Си++ изначально был как фронтенд к Си и до
    сих пор много фронтендовых компиляторов и что
    при желании к си можно прикруть свой препроцессор,
    т.к. штатный не устраивает и все будет ок. тоже самое
    справедливо и для С#, и для Java и для всех остальных.

    > для java дохрена надо штудировать док,
    ну мне хватило одной ;)
    после чего смог нормально писать программы
    на жасмине (java-ассемблере) для мобильных телефонов,
    ну а чистая Java меня никогда сильно не интересовала,
    но я бы не сказал, что там все так сильно сложно...
    она намного проще, чем Си++

    > Скока прог на Java для GUI видел все какието тормознутые
    на счет тормозов... ну Java проигрывает C#, это понятно,
    но чтобы вообще томозить... это наверное ее просто
    транслировали в байт-код, а виртуальная машина на целевом ПК
    в упор не поддерживает оптимизированную компиляцию в память.
    а вот интерфейс там какой-то странный. не видел ни одной десктопной
    Java-программы с привычным интерфейсом...

    > с .NEt вроде норм.
    ну вообще-то, mscil в ряде случаев даже обгоняет чистые
    си/си++ компиляторы, ms раньше даже тесты показывала,
    чтобы каждый мог убедиться сам, только там сплошная
    математика ;) mscil за счет избыточности намного лучше
    оптимизируется, причем сразу под целевой ЦП, а вот
    компиляторы...
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    NoName
    > извините, не очень понял о чем вы
    он наверное хотел сказать, что расширяемость == масштабируемость
    и привел в качестве примера j2ee в масштабируемости которой никто
    не сомневается ;) но вот мне до сих пор не понятно, что имел ввиду
    под "расширяемостью" SWR...
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    c точки зрения переносимости джавик рулит:)) - дотнет ему не конкурент в этом и не будет.
     
  10. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.729
    Ну Крис довольно подробно описал.

    С# это местячковый стандарт навязывамый Мелкософтом и по сути привязанный к платформе Wintel.

    Java (J2EE) это промышленный стандарт который не привязан к платформе ибо реализации есть почти на любую мыслимую платформу.
    Более того этот стандарт доказал право на жизнь т.к. существует более 10 лет.

    MONO не более чем игрушка ... и довольно сырая.
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    kaspersky
    Можно вопрос: в чём смысл? Если важен размер/скорость, то после javac можно ведь применить оптимизатор (JoGa рулит!)

    Да, в плане производительности GUI, Java сильно проигрывает нативным приложениям, но это связано с реализацией интерфейса Swing на чистом Java. Старые программки с AWT не тормозили почти. Хотя и тут можно возразить, что на Солярисе Swing вполне сносно работает. Последний Swing, говорят, в Линуксе ещё неплохо работает, но сам я не проверял.
     
  12. CodeTao

    CodeTao Евгений

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    177
    Адрес:
    штаты
    На счет понятности С# можно не согласиться, после С++ возникает оторжение столь громоздкого ОО синтаксиса, а вот применение - если придется под виндой админить, то очень пригодится(пример: SQL 2005 mirroring, ну хоть убей, а не сможешь в случае падения principal-а перенаправить DNS на mirror без написания небольшого кода на стороне witness-a). А на счет переносимости - будь у микросовта воля, java была бы непероносимой(кажись в прошлом веке попытка была присечена законом), так что переносимость вне виндов миф(в пределах разных платформ под виндой возможно, но почему-то я и в это не верю).
     
  13. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Чуть лучше.
    ProgressMonitor как всегда показывает ProgressBar в самом неожиданном месте, MenuBar хорошо прорисовывается в десктопных прогах, а в апплетах - с третьего разу. Это при том что для ускорения мы используем очереди компонентов.
     
  14. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    device
    А что это?

    Кстати, вспомнил, что в Swing нет ведь очереди событий. Видимо, отчасти поэтому оно работает так отстойно. Хотя, может, уже есть.
     
  15. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    asmlamo
    распространение обёртки для процессоров SPARС привело к портированию Java в виде JVM под другие платформы. JAVA как высокоуровневый Си++, с расширенной реализацией методов для предустановленных классов.
    и с каких пор виртуальная машина вдруг стала промышленным стандартом?
     
  16. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Ну, java мне красивым синтаксисом нравится.
    Хотя это личное. Каждому - своё

    Код (Text):
    1. class User{
    2. /**
    3.  * СТРУКТУРА:  пользователь
    4.  *
    5.  * НАЗНАЧЕНИЕ:    хранит Finger информацию о заданном пользователе
    6.  **/
    7.  
    8.     private String Login;
    9.     private int id;
    10.     private String FullName;
    11.     private String OrganizationName;
    12.     private String OfficeName;
    13.     private String EMail;
    14.     private String ContactPhone;
    15.  
    16. /**
    17.  * МЕТОДЫ установки/получения данных
    18.  **/
    19.  
    20. public void setLogin        (String ALogin)     {this.Login=ALogin;}
    21. public void setId       (int AId)       {this.id=AId;}
    22. public void setFullName     (String AFN)        {this.FullName=AFN;}
    23. public void setOrganizationName (String OrgName)    {this.OrganizationName=OrgName;}
    24. public void setOfficeName   (String AOffice)    {this.OfficeName=AOffice;}
    25. public void setEMail        (String AEmail)     {this.EMail=AEmail;}
    26. public void setContactPhone (String CF)     {this.ContactPhone=CF;}
    27.  
    28. //----------------------
    29.  
    30. public String getLogin          ()      {return this.Login;}
    31. public int    getId         ()      {return this.id;}
    32. public String getFullName       ()      {return this.FullName;}
    33. public String getOrganizationName   ()      {return this.OrganizationName;}
    34. public String getOfficeName     ()      {return this.OfficeName;}
    35. public String getEMail          ()      {return this.EMail;}
    36. public String getContactPhone       ()      {return this.ContactPhone;}
    37.  
    38. }
     
  17. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    kaspersky
    спасибо за лекцию :) Вообщем всем спасибо. Думаю учить оба :))) с преимуществом на жабу.
     
  18. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    Про расширяемостью я в примом смысле.
    с С# можно подключить все (от COM до ASM кода).
    для java надо пошаманить. Щас все наладонники идут с виндой где джавой и не пахнет, а .net там есть.
    Да и писать для КПК также просто как и для PC/ (скоро и телефоны все на винду перейдут).

    С джавой EE вообще попа дальше головы не прыгнеш, или все убого делать или тока для конкретной модели телефона (даже у одного производителя API разный для разных моделей (работа с блютузом например (скока ждали пока включат))).
    Плюс информативность, у мелкософта уже в саму сборку вся инфа входит, и все сразу понятно не выходя из IDE.

    По тенденции развития Java потихоньку сходит,(даже сорци выложили вот и портируют куда непопадя но совмистимость такаяже как и MONO с net, чуть отошол от стандартных библиотек то все - не работает.

    UbIvItS
    >c точки зрения переносимости джавик рулит:)) - дотнет ему не конкурент в этом и не будет.
    Переносимость куда? Все, что надо перенесить на разные проци, все на чистом "C" пишется (ну есть очень редкие исключения). Ща java в основном тока телефонах держиться (ну в линухе еще пишут).

    asmlamo
    >Более того этот стандарт доказал право на жизнь т.к. существует более 10 лет.
    Ну просто нет конкурента. На КПК тоже сначало он был. Но за какието 2 года там его вообще нет (ну можно поставить, туда даже линух некоторые ставят (тока это 1 из 100))
     
  19. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Quantum
    >> ну мне хватило одной ;)
    >> после чего смог нормально писать программы
    >> на жасмине (java-ассемблере) для мобильных телефонов
    > Можно вопрос: в чём смысл?
    лень читать мануалы ;)
    jvm - вполне себе весчь, и асм под нее очень быстро учиться,
    хотя это не совсем обычный асм, пропитанный ООП, хотя на
    уровне jvm этот ООП за раз обходится и можно писать проги
    в обход системы контроля типов. асм все-таки дает вам
    выстрелить в ногу даже на java :)

    а Java как ЯВУ мне что-то не очень... как-то не дошла...
    но тут на вкус и цвет все фломастеры разные ;))

    > Если важен размер/скорость, то после javac можно
    > ведь применить оптимизатор (JoGa рулит!)
    маленькие программки (больших не писал) на жасмине пишутся
    без проблем, кроме того асм в этом плане мне как-то ближе...
    просто так сложилось исторически. сначала потребовалось
    дизассемблировать несколько java-апплетов, для чего пришлось
    раскурить мануал по архитектуре jvm и по опкодам, после чего
    программирование на жасмине не стало проблемой, а вот чтобы
    на чистой Java - так ее еще учить надо ;) а потребности нет...

    SWR
    > с С# можно подключить все (от COM до ASM кода).
    ну COM можно подключить к чему угодно, только бы оно
    могло вызывать API функции, а если оно даже API функуций
    не вызывает - то это какая-то игрушка. к Java можно подключить
    COM, только смысл? как потом переносить программу?

    что касается ASM'а - это в Си++ (новых от ms) можно
    писать смесь управляемого и неуправляемого кода,
    а чтобы вставить асм-вставку в C# - это действительно
    надо шаманить, там используются недокументированные
    вызовы транслятора, кстати, говоря не совместимые
    с JIT-компиляторами, так что асм и C# - вещи несовместимые.
    ну а внешние библиотеки вызывать можно и на Java

    > для java надо пошаманить.
    что там шаманить. учитывая ошибки JIT-трансляторов
    можно вбухать в jvm-код нативный x86-код и все будет
    рулить и работать. так раньше нетшкаф атаковали,
    а теперь лиса и IE. под оперой таких багов _пока_ еще
    не нашли...

    > Щас все наладонники идут с виндой где джавой и не пахнет,
    > а .net там есть.
    "все" ИМХО _очень_ преувеличено. как на счет смартфонов
    в линухом? и их кол-во довольно быстро растет. откуда там .net?!

    > Да и писать для КПК также просто как и для PC/
    угу. особенно под IPhone. кокаину нанюхаешься вдоволь ;)
    заодно и ObjC изучишь. ну и кит - само собой ;)

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

    > Плюс информативность, у мелкософта уже в
    > саму сборку вся инфа входит, и все сразу понятно не выходя из IDE.
    ну и со сколькими IDE для сотовых сэр работал? :derisive:

    > Переносимость куда? Все, что надо перенесить на разные проци,
    > все на чистом "C" пишется (ну есть очень редкие исключения).
    ага, переносимость у си просто зашибись. чему равен результат
    выражения (a + b) не подскажешь? где a и b имеют тип int.
    сэр никогда не пробовал компилить программу, написанную
    для MS C++ тем же Борландом? про gcc и (не)поддержку C99
    я скромно промолчу... не говоря уже о том, что с точки зрения
    безопасности... си... кхм... переполняющиеся буфера и все такое

    > Ща java в основном тока телефонах держиться (ну в линухе еще пишут).
    ну дак это J2ME... ответвление от. на сервеах java чувствует себя
    довольно уверенно...

    t00x
    > и с каких пор виртуальная машина вдруг стала промышленным стандартом?
    драсте. это же основная идея Java. если Си мы компилируем с исходника,
    натыкаясь на разные грабли и материясь при переносе, то оттранслировав
    это в байт-код, мы можем выполнять его где угодно. это и есть концепт ;)
    правда, работает он лишь на честном слове и одном крыле. это компиляторов
    си щас как грязи - поэтому и траблы. а вот когда появится куча реализаций
    jvm - от разных производителей: то-то будет весело ;)
     
  20. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    kaspersky
    >угу. особенно под IPhone. кокаину нанюхаешься вдоволь ;)
    Так у эпола всегда все своё было.

    >ну и со сколькими IDE для сотовых сэр работал? :derisive:
    На C# - в студии.
    На java вообще ничего хорошего невидел (все както через п.. Поставь это, сконфиг то и будет те шастье).
    (Мож просто я избалован IDE от MS) в итоге на java писал в обычном редакторе с подсветкой.

    >ага, переносимость у си просто зашибись. чему равен результат
    >выражения (a + b) не подскажешь? где a и b имеют тип int.
    ну так инт и будет (разрядность проца). Так без изврата все хорошо переносится.
    Например x86 и TMS320DM642 или 96000 от моторолы (тока с int64 траблы были с синтаксисом)
    А если про PC платформу то тут ща выбора нет так токового x86 и все?, на серверах еще есть выбор, но он невелик - да также там почти все на си .

    >вот когда перейдут... по некоторым прогнозам
    >(которым я не очень верю) до 30% телефонов
    >через несколько лет будут на базе линуха
    да ставил, и снес через день (hp4700). (все сырое от дров до ПО).
    Щас моторолла линуху продвигает на телефонах (забила на симбиан походу).
    для мобильных процов щас дефакто становится арм архитектура, так что тоже
    переносимость си кода не так плоха особенно если там винда.

    >"все" ИМХО _очень_ преувеличено. как на счет смартфонов
    >в линухом? и их кол-во довольно быстро растет. откуда там .net?!
    да есть токие, тока ПО маловато (можно компильнуть от дебиана)/
    и качество никакое, это тока для любителей повозиться в настройках.
    Думаю это дань моде, типо должен быть и такой вариант у фирмы.
    Собирается кучка энтузиастов и пытается чето из этого выжить.
    Со временем ченить и выйдет из этого.