singlepost

Преспективы С# << На главную или назад  

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

106 ответов в теме “Преспективы С#”

  1. 106
    Святослав Панкратов ответил:

    Эт хорошо… =) Надо будет взять на вооружение =)

  2. 105
    Евгений Князев ответил:

    можно. ина встроенных устройствах тоже можно.
    Most Common Actively Supported Platforms

    Platform Compilers
    Apple Mac OS X (32-bit) gcc 4.0.1
    Linux (32 and 64-bit) gcc 4.1, 4.2, 4.3
    Microsoft Windows gcc 3.4.2 (MinGW) (32-bit), MSVC 2003, 2005 (32 and 64-bit), 2008, Intel icc (see note)
    Any platform-compiler combinations not listed here should be considered unsupported.

    Actively Supported Platforms

    OS Architecture Makespec Compiler version(s)
    AIX PowerPC aix-xlc xlC 6
    AIX PowerPC aix-xlc-64 xlC 6
    HPUX PA/RISC hpux-acc* A.03.57 (aCC 3.57)
    HPUX PA/RISC hpux-g++ GCC 3.4.4
    HPUX PA/RISC hpux-g++-64 GCC 3.4.4
    HPUX Itanium hpuxi-acc* A.06.10 (aCC 6.10)
    Embedded Linux ARM qws/linux-arm-g++ GCC 3.4, 4.1, 4.2, 4.3
    Embedded Linux Intel 32-bit qws/linux-x86-g++ GCC 3.4, 4.1, 4.2, 4.3
    Linux Intel 32/64-bit linux-g++ GCC 4.1, 4.2, 4.3
    Linux Intel 32/64-bit linux-icc icc 10.1
    Linux Intel 32-bit linux-icc-32 icc 10.1
    Linux Intel 64-bit linux-icc-64 icc 10.1
    Mac OS X Intel 32/64-bit, PowerPC macx-g++ GCC 4.0.1
    Mac OS X Intel 32/64-bit, PowerPC macx-g++42 GCC 4.2
    Solaris SPARC, Intel 32-bit solaris-cc* Sun CC 5.5
    Solaris SPARC, Intel 32-bit solaris-g++* GCC 3.4.2
    Windows XP/Vista Intel 32/64-bit win32-g++ GCC 3.4.2 (MinGW 5.1.4)
    Windows XP/Vista Intel 32/64-bit win32-icc icc 9.1
    Windows XP/Vista Intel 32/64-bit win32-msvc2003 Visual Studio 2003
    Windows XP/Vista Intel 32/64-bit win32-msvc2005 Visual Studio 2005
    Windows XP/Vista Intel 32/64-bit win32-msvc2008 Visual Studio 2008
    Windows CE Intel 32-bit, ARMv4i, MIPS wince*-msvc2005 Visual Studio 2005
    Windows CE Intel 32-bit, ARMv4i, MIPS wince*-msvc2008 Visual Studio 2008
    Community Supported Platforms

    OS Architecture Makespec Compiler version(s)
    Mac OS X Intel 32-bit, PowerPC darwin-g++ -
    FreeBSD – freebsd-g++ -
    FreeBSD – freebsd-g++34 -
    FreeBSD – freebsd-g++40 -
    FreeBSD – freebsd-icc -
    HPUX Itanium hpuxi-g++* GCC 4.1
    Linux – linux-cxx -
    Linux – linux-ecc-64 -
    Linux Itanium linux-g++ GCC 3.4
    Linux Intel 32/64-bit linux-g++ GCC 3.3, 3.4
    Linux Intel 32/64-bit linux-g++ GCC 4.0
    Linux – linux-kcc -
    Linux – linux-llvm -
    Linux – linux-lsb-g++ -
    LynxOS – lynxos-g++ -
    Mac OS X – macx-llvm -
    NetBSD – netbsd-g++ -
    OpenBSD – openbsd-g++ -
    Embedded Linux MIPS, PowerPC qws/linux-g++ GCC 3.4, 4.1, 4.2, 4.3
    Unsupported Platforms

    The following platforms were supported in previous releases, either as actively supported or community supported platforms, but are now unsupported.

    OS Architecture Makespec Compiler version(s)
    IRIX MIPS irix-cc* MIPS Pro
    IRIX MIPS irix-g++* GCC 3.3
    Windows XP/Vista Intel 32/64-bit win32-msvc Visual C++ 6.0
    Windows XP/Vista Intel 32/64-bit win32-msvc2002 Visual Studio 2002
    Windows XP/Vista Intel 32/64-bit win32-msvc.net Visual Studio 2002
    Qt's online Platform Support Policy for Qt describes the level of support you should expect for these platforms.

  3. 104
    Николай Митропольский ответил:

    Да и на MacOS тоже :)

  4. 103
    Святослав Панкратов ответил:

    А на Mac OS можно запустить?

  5. 102
    Святослав Панкратов ответил:

    Книжку в руках держал в магазине =) На практике не приходилось использовать. А на сколько Qt поддерживается различными ОС?…имеется ввиду какие ОС с этим дружат?

  6. 101
    Тимур Багаутдинов ответил:

    Linux'ом нормуль поддерживается. Да чего греха таить… KDE на основе нее разработна

  7. 100
    Николай Митропольский ответил:

    Ну вообще LGPL не настолько либеральна как говорит Евгений HEXen Князев, на самом деле вам придётся заплатить, если вы хотите изменять исходникисамой библиотеки или статически линковать её, не открывая при этом исходники своего продукта.

    Но в целом да,Qt на сегодня бесплатен для коммерческогоиспользования.

  8. 99
    Борис Глебов ответил:

    Евгений HEXen Князев

    Благодарю, у меня оказались чертовски устаревшие сведенья про qt, видимо стоит обновить :)

  9. 98
    Евгений Князев ответил:

    учитывая что 3-я версия канула в лету уже года 3-4 назад с радостью сообщаю, что Qt уже во всю бесплатен. В любом виде и под любым соусом.

    Платное, конечно, осталось…но где-то очень далеко и если требуется коммерческая поддержка.

    А вообще по сравнения с 3-й версией– вообще другой продукт.Кстати,в настоящее время даже не знаю, зачем его "прикручивать к BC". Там собственная IDEQt Creator. Вполне себе. Так что рекомендую :)

  10. 97
    Евгений Князев ответил:

    а…да! никаких сообщений не вылетает никуда.

  11. 96
    Борис Глебов ответил:

    Ну почему же не устраивает, я ее не читал :) Когда знакомился с qt, то была 3я версия, в литературе (да и на их сайте об этом вроде писалось) было написано что для коммерчиских разработок он платный. С тех пор что то поменялось? Или если Вас не затруднит вкратце скажите в чем суть данной лицензии. Да и еще когда качал Qt с инетграцией в VS, там то я и почувствовал всю платность данной либы, когда при запуске приложения появлялось"ненавящевое" напоминание :)

  12. 95
    Николай Митропольский ответил:

    Ну давайте обсудим Qt, итак, Борис Wind Of Change Глебов, чем вас не устраивает LGPL как лицензия Qt?

  13. 94
    Борис Глебов ответил:

    Да qt вещь очень хорошая, но и очень дорогая, чего не скажешь про шарп :)

  14. 93
    Евгений Князев ответил:

    точнее у шарпа есть биндинги к qt :)

  15. 92
    Николай Митропольский ответил:

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

    Кроме того у Qt есть привязки и к C#, если вдруг кому понадобится.

  16. 91
    Александр Лищенер ответил:

    спасибо, извини, что разошелся.
    собственно, как вы думаете, если уж нужна какая-то мощная библиотека на все случаи жизни(чем шарп и является, по-видимому), почему не курить Qt?

  17. 90
    Жека Кирпичев ответил:

    Клоун забанен, связанные сообщения удалены. Продолжаем конструктивную дискуссию ;)

  18. 89
    Александр Лищенер ответил:

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

  19. 88
    Михаил Пеньков ответил:

    А про ActionScript 3.0 скажет кто-нибудь? Все больше на него глаз ложу, хотелось бы ваше мнение о нем услышать.

  20. 87
    Евгений Баталов ответил:

    А я под веб пишу :) Довольно удобно :)

  21. 86
    Николай Митропольский ответил:

    > Novell – кучка энтузиастов.
    Фигасе, несколько тысяч сотрудников, офисы в нескольких странах мира, хорошая кучка.

    > компилировался под mono из-за отсутствия поддержки WPF
    Да, ещё она не умеет варить кофе и бегать за пивом. Чувак, "Вы осведомлены о степени его готовности, стабильности и совместимости с вашим C# ? Нет? Тогда молчите."(с)

  22. 85
    Fedor Amrosievich ответил:

    Novell – кучка энтузиастов. Договор о стратегическом партнерстве – филькина грамота. А насчет подвело: несложный проект WPF, написанный на C# 3.0, не компилировался под mono из-за отсутствия поддержки WPF . Да и вообще, думаю вы без проблем можете разузнать о проблемах совместимости mono.

  23. 84
    Святослав Панкратов ответил:

    Гы…А поддержка WPF в mono и не заявлена. Давайте не будем говорить о том, чего просто напросто нету.

  24. 83
    Николай Митропольский ответил:

    > а вы моно не использовали и вообще, судя по всему не очень в теме.

    Ну вот вы, видимо, использовали, расскажите в каких задачах и как оно вас подвело.

    > Т.к. разрабатывается лишь кучкой энтузиастов(энтузиастом?)

    Оно как бе разрабатывается при активной поддержке Novell, причём командой разработчиков, кроме того у этой команды есть и коммерческие проекты, например MonoTouch.

  25. 82
    Святослав Панкратов ответил:

    У Novell есть договор о стратегическом партнерстве с Microsoft, как вывод – Microsoft будет всячески поддерживать этот проект.

  26. 81
    Борис Глебов ответил:

    Fedor Amrosievich

    Пока вы тут ругаетесь на моно, люди используя его, уже под айфоны пишут :)

  27. 80
    Fedor Amrosievich ответил:

    "почему я не должен доверять этой информации?"
    Потому что информация написана авторами – группой энтузиастов и носит больше рекламный характер, а вы моно не использовали и вообще, судя по всему не очень в теме.

    "Возможно mono со временем выйдет на соответствующий уровень."
    Не выйдет. Т.к. разрабатывается лишь кучкой энтузиастов(энтузиастом?), линукс-сообщество от моно не в восторге, т.е. больших трудо-вливаний и поддержки не будет. МС к разработке тоже отношения не имеет, т.е. моно сегодня есть, а завтра – никто не знает. Тем более ситуация с патентами не ясна – МС может в любой момент подать в иск о нарушении патентов.
    И давайте смотреть правде в глаза, моно – кривая поделка.

  28. 79
    Святослав Панкратов ответил:

    Да и ведь при загрузке все равно работает mono. И значит, как вывод по скорости загрузки тоже можно частично судить о его быстродействии.

  29. 78
    Святослав Панкратов ответил:

    > И да, кстати скорость запуска и скорость работы это не одно и тож.
    Ну приложение было не сложным, поэтому на глаз скорость работы было не оценить. А вот разную скорость загрузки я заметил.
    В Windows заметил, что под разными браузерами скорость работы Silverlight-приложения отличается, причем это видно даже невооруженным глазом.
    Поэтому тут скорость работы может зависеть еще и от браузера.

  30. 77
    Николай Митропольский ответил:

    Вот вот, так что не показатель.

  31. 76
    Николай Митропольский ответил:

    Константин Конашенков, ну как бе и статическая типизация не гарантирует отсутствие ошибок в рантайме. Таки да, пишите тесты, причём динамические языка вас гораздо строже к этому приучат :)

  32. 75
    Святослав Панкратов ответил:

    Николай Митропольский
    > Откуда дровишки, особенно про порядок? Особенно с учётом того что у микрософта какието совершенно драконовские условия на замер скорости работы ихнего дотнета.

    Это ощущения без цифр. Silverlight-приложение когда пробовал запускать на Linux, то оно раза в 3 дак точно дольше грузилось чем на Windows.

  33. 74
    Константин Конашенков ответил:

    Но она их в разу уменьшает, разве нет ? Ибо так будет проверяться весь текст, исходя из статической типизации, в питоне только то что выполниться..

  34. 73
    Николай Митропольский ответил:

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

    И да, кстати скорость запуска и скорость работы это не одно и тож.

    > Но она их в разу уменьшает, разве нет ?
    Ну да, от опечатки в имени класса может спасти. Но тесты всеравно надёжнее.

  35. 72
    Женя Глебов ответил:

    а если на питоне ?Говорят хороший язык

  36. 71
    Святослав Панкратов ответил:

    Согласен, выбирать язык и средства надо исходя из задачи.

  37. 70
    Святослав Панкратов ответил:

    #69
    Да, Python хороший язык. С большими возможностями и потенциалом.

  38. 69
    Николай Митропольский ответил:

    Святослав Панкратов
    > Да, это так…из под mono программы работают на порядок медленнее.

    Откуда дровишки, особенно про порядок? Особенно с учётом того что у микрософта какието совершенно драконовские условия на замер скорости работы ихнего дотнета.

    > а если на питоне ?
    Да можно и на нём, вообще языков и кросплатформенных либ на свете хватает,

  39. 68
    Константин Конашенков ответил:

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

  40. 67
    Святослав Панкратов ответил:

    > Александр [MySchizophrenia] Лищенер
    > //rlgclub.ru/forum/viewforum.php?f=7&sid=59...
    вот здесь кто-то писал на шарпе под моно и выпендривался, что запускал на венде. правда у половины тормозило.)
    лень ссылку искать по темам(

    Да, это так…из под mono программы работают на порядок медленнее. Да, проект еще далек от совершенства. Но это дело времени. Не все сразу выходит на высокий уровень. Уже сейчас можно делать вполне нормальные приложения под Linux, Mac OS и IBM System Z (повторюсь, не идеальные, но вполне работоспособные). Возможно mono со временем выйдет на соответствующий уровень.

  41. 66
    Серж Андреев ответил:

    Что-то серьезное делать лучше на чем-нить серьезном.Можно, конечно, делать что-то под .НЭТ и пускать под моно, но нормальные люди (которые не извращенцы и которые не дебилы, умеющие писать только под .НЭТ) будут использовать другие языки. Ту же яву, например (если уж кроссплатформенность нужна). А если написать на Си (и околопрочем) с учетом требования стандартов, то потом можно откомпилировать подо что угодно.

  42. 65
    Николай Митропольский ответил:

    Fedor Amrosievich, на сайте //www.mono-project.com написано что работает, и даже продемонстрированы отдельные проекты, которые его используют, почему я не должен доверять этой информации?

  43. 64
    Жека Кирпичев ответил:

    Я слышал от профессионалов (не юных троллей), что-де mono еще весьма недоделанный. Но это слухи.
    Я сам только 1 раз им пользовался, и сразу же нашел багу в виртуальной машине, правда уже пофикшенную в development ветке :)

  44. 63
    Fedor Amrosievich ответил:

    #59 "C# хорошо. И, кстати, даже кроссплатфйорменно (под линем это называется mono)."

    Вы этот моно под линем использовали? Вы программы, написанные на нем использовали? Вы осведомлены о степени его готовности, стабильности и совместимости с вашим C# ? Нет? Тогда молчите.

  45. 62
    Александр Лищенер ответил:

    //rlgclub.ru/forum/viewforum.php?f=7&sid=59...
    вот здесь кто-то писал на шарпе под моно и выпендривался, что запускал на венде. правда у половины тормозило.)
    лень ссылку искать по темам(

  46. 61
    Николай Митропольский ответил:

    Ну так как линукс работает на дофига большом количестве архитектур, видимо они так намекают на архитектурную переносимость:)

    Впрочем, кто знает этих дотнетчиков, подозреваю, что большинство из них ни линукс ни моно никогда не запускали :)

  47. 60
    Александр Лищенер ответил:

    Николай, ну когда люди говорят, что шарп кроссплатформен, приводят один аргумент, как правила – он работает под линухом.

  48. 59
    Александр Лищенер ответил:

    почему, когда говорят "кроссплатформенно", имеют ввиду только х86:

  49. 58
    Николай Митропольский ответил:

    Александр [MySchizophrenia] Лищенер, всмысле? кто?
    Mono по идее запускается и на спарках и на паверах и на армах, ну по крайней мере в теории :)

  50. 57
    Евгений Князев ответил:

    C# хорошо. И, кстати, даже кроссплатфйорменно (под линем это называется mono).

    Но, ИМХО, лучше уж Qt учить. Тем более что в связке с Python (PyQt) это уже сила.

  51. 56
    Святослав Панкратов ответил:

    >> Например выбор языка который в команде знает только тимлид ВНЕЗАПНО скажется негативно на процессе разработки.
    Просто такой факт мне вообще казался очевидным. Тут я обычно привожу пример: под платформу .NET уже есть куча компиляторов для довольно большого количества языков. Так что я не вижу тут большой проблемы. Знаешь С++ – пиши на С++, знаешь Basic – пиши на Basic, знаешь C# – пиши на C# и тд, ток код компилируй в MSIL. И все будет работать на ура. А то и вообще, то что легче написать на Basic – пишется на Basic (например COM-серверы), если нужна производительность где то, пишется этот кусок на C++/CLI и тд

  52. 55
    Николай Митропольский ответил:

    > А язык разве может хоть как то повлиять на командную разработку?
    О да! Например выбор языка который в команде знает только тимлид ВНЕЗАПНО скажется негативно на процессе разработки.

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

    > Просто я понял, что приоритетом была производительность, а не меньшее потребление памяти.

    Да сложно сказать, что было приоритетом, я просто привёл случай из жизни, аргументируя свою позицию, что структуры, вобщем-то не нужны.

  53. 54
    Святослав Панкратов ответил:

    >>инструментарий, который к языку вероятно вообще инвариантен
    Согласен.

    >> ни удобства командной разработки
    Тут вы сами себе противоречите. Язык не может повлиять на командную разработку.
    На качество командной разработки влияют только 2 глобальных фактора: уровень команды и используемый инструментарий. (В данном контексте я всего лишь хочу подчеркнуть, что на C# можно писать очень качественное ПО, тк для этого есть все необходимое и на достаточно высоком уровне)

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

    Если я не прав – извините.

  54. 53
    Николай Митропольский ответил:

    Странные вы делаете выводы, я говорю про язык, вы мне рассказываете про инструментарий, который к языку вероятно вообще инвариантен. Что вы мне хотите этим доказать я вообще не понимаю. Вижу только неуместную рекламу продуктов микрософт.

    > Все учатся на ошибках, иначе никак.
    А я совершил ошибку?

  55. 52
    Святослав Панкратов ответил:

    >>Вы мне рекламные проспекты микрософт зачитываете? зачем?
    >>Где?

    >>В постах про Microsoft Visual Studio Team Foundation Server.

    Это все вытекает из #35:
    >>Ну можно так сказать, но из этого не следует ничего хорошего: ни надежности создаваемого ПО, ни простоты отладки и поддержки, ни удобства командной разработки, ни применимости для обучения, ни тому подобного.

    А точнее, что для командной разработки, и вообще для автоматизации всего производственного процесса, есть весь необходимый инструментарий. Причем от одного производителя. А значит, проблем при развертке всего этого не будет.

    Разве это может не радовать?

    >>Ну как бы я переписывал с Java на C# и выбирал более соответствующие моим задачам средства, так как у шарпа их большой ассортимент. При этом я посчитал, что классы, у которых нет методов а есть только паблик поля и объектов которых создаётся большое количество, в шарпе лучше представить в виде структур. Я посчитал это логичным.

    Бывает =) Все ведь приходит с опытом. Все учатся на ошибках, иначе никак.

  56. 51
    Николай Митропольский ответил:

    >>>>Вы мне рекламные проспекты микрософт зачитываете? зачем?
    >>Где?

    В постах про Microsoft Visual Studio Team Foundation Server.

    > зачем классы было заменять на структуры? С какой целью это было сделано?

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

  57. 50
    Святослав Панкратов ответил:

    #48
    >>Вы мне рекламные проспекты микрософт зачитываете? зачем?
    Где?

    >> А не знание того, для чего это – это уже отдельная тема.
    >Так для чего надо использовать структуры?
    С ходу щас не скажу где их разумно использовать.
    >и почему вы считаете, что в моём случае их не нужно было использовать?
    Ну вы же переписывали просто приложение, зачем классы было заменять на структуры? С какой целью это было сделано?

  58. 49
    Святослав Панкратов ответил:

    >>>А пачиму шарп называют быдлокодерским языком???
    Я сказал, что пешу на шарпе, а мне гаварят: "ХАХАХАХАХАХАХА! Ты быдлкодир!"

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

  59. 48
    Николай Митропольский ответил:

    Вы мне рекламные проспекты микрософт зачитываете? зачем?

    > А не знание того, для чего это – это уже отдельная тема.
    Так для чего надо использовать структуры? и почему вы считаете, что в моём случае их не нужно было использовать?

  60. 47
    Александр Лищенер ответил:

    А пачиму шарп называют быдлокодерским языком???
    Я сказал, что пешу на шарпе, а мне гаварят: "ХАХАХАХАХАХАХА! Ты быдлкодир!"

  61. 46
    Жека Кирпичев ответил:

    Думаю, это происки врагов.

  62. 45
    Святослав Панкратов ответил:

    >>То есть вы хотите сказать что структуры в шарпе тоже лишний костыль?
    Лишнего ничего не бывает. Раз есть, значит это для чего то надо. Ане знание того, для чего это – это уже отдельная тема.

    >> Но я говорю про взаимодействие программистов. Тестерам и прочим как правило пофиг на язык разработки.
    Но и программисты и тестеры…да и все участники команды едины, и их должна объединять единая система контроля за их деятельностью. Тут, как и на производственном предприятии, где для учета используется 1С. Ток в связи с тем, что на предприятии, на котором занимаются разработкой софта специфика в корне другая, 1С тут не пойдет. Тут требуется своя система для автоматизации учета, отчетности и других аспектов контроля за деятельностью всего предприятия.
    Плюс должно быть какое то единое хранилище всего исходного кода и готовых сборок, сборок ожидающих тестирование и тд

  63. 44
    Святослав Панкратов ответил:

    Если вы считаете, что я предан Microsoft'у, то это не так. Просто я не видел еще ничего удобнее, и чтобы не надо было кучу всяких плагинов вешать, чем их продукты. Мне, если честно вообще все-равно кто это разработал. НО, мне очень важна качественная техинческая поддержка и сопровождение. Поэтому, если кто то сделает все лучше чем они, я не думая перейду на продукты другой стороны.
    Но мне кажется, что это вряд ли случится. Уж слишком уверенно Microsoft стал набирать обороты.

  64. 43
    Николай Митропольский ответил:

    > А смысл было объекты менять на структуры? О_о
    То есть вы хотите сказать что структуры в шарпе тоже лишний костыль?… просто Жека сделал на них ударение и я было решил, что это что-то полезное. Но вот даже дотнетчики не видят смысла в структурах, замечательно :)

    > Командная разработка – это не только контроль версий.
    Клева, я в курсе. Но я говорю про взаимодействие программистов. Тестерам и прочим как правило пофиг на язык разработки. И даже более того, я подозреваю, что Microsoft Visual Studio Team Foundation Server можно приспособить и при программировании на Питоне. Хотя, честно не знаком с этими продуктами.

  65. 42
    Святослав Панкратов ответил:

    А смысл было объекты менять на структуры? О_о

    #38
    >> Понятия не имею причём тут это. системы контрля версий вообще паральльны тому про сто я говорю.

    Командная разработка – это не только контроль версий. Это как минимум еще постоянный контроль и отчетность перед начальством о ходе всей разработки в целом. А это огромное количество статистической отчетности о текущем процессе разработки, чтобы было видно кто и как работает.
    Так же, это группа тестеров, которая проводит тестирование различных сборок. Результаты тестов должны отслеживаться системой командной разработки и анализироваться автоматически для своевременного уведомления автора тестируемой сборки о наличи ошибок в ней. И тд и тп
    Современная командная разработка в крупных предприятиях – это сложный распеределенный процесс. Причем отдельные части команды могут находиться в разных частях света. Но они все должны быть объединены какой либо системой, чтобы все этапы жизненного цикла ПО не прерывались, а находились в непрерывном процессе и весь этот процесс можно было централизованно контролировать.

    А тк такие системы должны глубоко интегрироваться в IDE-среды разработчиков, то как следствие логично, что они должны разрабатываться компаниями-разработчиками конкретной IDE-среды. Но таких систем, на скока мне известно, не много(если дела обстоят иначе, то просветите). Я знаю только Microsoft Visual Studio Team Foundation Server и IBM Rational на платформе Jazz.

  66. 41
    Николай Митропольский ответил:

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

  67. 40
    Жека Кирпичев ответил:

    Зачем вводить structs если их все равно придется боксить и анбоксить? Просто чтобы можно было из них массивы создавать, и все, что ли?

  68. 39
    Святослав Панкратов ответил:

    >> Ну сделали бы боксинг…
    Упаковка и распаковка типов имеется.

  69. 38
    Николай Митропольский ответил:

    Ну сделали бы боксинг… Впрочем в топку, велью-тайпс всеравно не так нужны как нормальные генерики, если вообще нужны.

  70. 37
    Жека Кирпичев ответил:

    > если разговор про value-types, то неужели так сложно это сделать?
    Это повлечет за собой массу пренеприятнейших последствий: например, никакие дженерики с ними работать не смогут. И вместо List<Foo> придется писать свой FooList (для примитивных типов уже написаны огромные библиотеки коллекций – gnu trove, fastutil итп, с комбинациями типа Int2CharOpenHashMap на каждую пару типов). Потому и не сделали, что дженерики кривые.

  71. 36
    Николай Митропольский ответил:

    > Вот вы все сравниваете C# с РАЗНЫМИ языками. А C# то один. Приведите пример хоть одного языка, который по всем показателем так же удобен, гибок и прост. И как минимум в чем то превосходит его? …или может что то, что не может C#?

    Ха,ха. не знаю пусть будет Scala, но вообще, я как бы критикую шарп за то что он предоставляет СЛИШКОМ много возможностей.

    >>>> ни надежности создаваемого ПО
    >>Пример хотя бы одного проекта на C# с какими то глобальными проблемами?
    >>>> ни простоты отладки
    >>Пример кода, который сложно отладить
    >>
    >>>> ни простоты поддержки
    >>Опять же пример?

    Да те же реф-параметры значительно усложняют отладку в одельных случаях, да и Explicit Interface Implementation про который я так говорил. потому что не всегда из кода очевидно что за метод вызывается и кто когда изменяет переменные.

    Пойдите на сорсфорж или на кодплекс(куда там принято у дотнетчиков) и займитесь закрытием тикетов, потом займитесь аналогично с джавой, с питоном – может поймёте о чём я. в кранем случае просто сделаете доброе дело :) )

    > При правильном проектировании и создании различных схем и архитектурных диаграмм все легко поддерживается, модифицируется и сопровождается.

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

    > Приведите пример хоть одной системы стоящей на порядок выше по командной разработке (даже географически разделенной), чем Visual Studio Team Foundation Server?

    Понятия не имею причём тут это. системы контрля версий вообще паральльны тому про сто я говорю.

    > Обоснуйте. Хотя бы один пример того, чему сложнее научить на C# чем на каком либо другом языке.

    Да странная постановка. я говорю что у студентов глаза разбегаются от возмножностей и времени не хвататет чтоб толком объяснить какие из них когда стоит использовать.

    > А Java, говорят, сама разруливает классы так что struct и не нужен.
    Врут.

    если разговор про value-types, то неужели так сложно это сделать? А доступ к полям JVM определенно может оптимизировать, даже флаг соответсвующий был.

    > а по-моему мы как раз с вами уже спорили на эту тему.
    Напомни?

    ну ссылку я конечно не найду. Но я доказывал как обычно, что это портит язык чужеродными элементами. при этом использовал слово "чистота" и нарвался на лекцию про побочные эффекты от тебя. впрочем я не буду спорить что yield return – удобная штука.

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

    > Техническая мощь языка позволяет писать более выразительные и более компактные программы. Уменьшение количества кода + рост его понимаемости => сокращение количества багов, сокращение затрат на разработку и поддержку.

    Ну тут нелинейная зависимость явно. Один сократил себе код – а сосед теперь и разобраться в нём не может. В меинстриме где не все понимают, что такое лямбда – это вполне бытовая ситуация.

  72. 35
    Жека Кирпичев ответил:

    > Внезапно в С++
    Какой смысл вообще сравнивать C# с C++? По-моему, тут и так все понятно: нужен заоблачный перформанс – пиши на C++, не нужен – пиши на C# :)

    > А Java, говорят, сама разруливает классы так что struct и не нужен.
    Врут.

    > а по-моему мы как раз с вами уже спорили на эту тему.
    Напомни?

    > Дык они как бе и почти везде есть, с разным уровнем качества конечно.
    Ну вот в яве, С и C++ нет, например; а в Питоне они недоделанные :) Учитывая что доля рынка этих трех языков, вероятно, больше, чем доля всего остального вместе взятого, мне кажется неверным заявление "почти везде есть".

    > Честно, не понял. имеется ввиду что-то вроде блоков do хаскеля?
    Да, они родимые. Select = fmap, SelectMany = (>>=) – вот тебе и монада.
    Пример: //msdn.microsoft.com/en-us/devlabs/ee794896.aspx
    Пример использования LINQ для монады событий (Rx framework):
    IObservable<Event<MouseEventArgs>> draggingEvent =
    from mouseLeftDownEvent in control.GetMouseLeftDown()
    from mouseMoveEvent in control.GetMouseMove().Until(control.GetMouseLeftUp())
    select mouseMoveEvent;

    > Ruby смотрит на ваши проблемы… с непониманием
    О нет, только не холивар "статическая vs динамическая типизация" :) Ради того, чтобы об этом не холиварить, готов переформулировать утверждение как "самый технически совершенный из современных статически типизированных мейнстрим-языков".

    > Ну можно так сказать, но из этого не следует ничего хорошего
    Техническая мощь языка позволяет писать более выразительные и более компактные программы. Уменьшение количества кода + рост его понимаемости => сокращение количества багов, сокращение затрат на разработку и поддержку.

  73. 34
    Святослав Панкратов ответил:

    Вот вы все сравниваете C# с РАЗНЫМИ языками. А C# то один. Приведите пример хоть одного языка, который по всем показателем так же удобен, гибок и прост. И как минимум в чем то превосходит его? …или может что то, что не может C#?

    >> ни надежности создаваемого ПО
    Пример хотя бы одного проекта на C# с какими то глобальными проблемами?

    >> ни простоты отладки
    Пример кода, который сложно отладить

    >> ни простоты поддержки
    Опять же пример?
    При правильном проектировании и создании различных схем и архитектурных диаграмм все легко поддерживается, модифицируется и сопровождается.

    >> ни удобства командной разработки
    Приведите пример хоть одной системы стоящей на порядок выше по командной разработке (даже географически разделенной), чем Visual Studio Team Foundation Server?

    >> ни применимости для обучения
    Обоснуйте. Хотя бы один пример того, чему сложнее научить на C# чем на каком либо другом языке.

  74. 33
    Николай Митропольский ответил:

    > – В шарпе есть struct
    Внезапно в С++, например, тоже есть. А Java, говорят, сама разруливает классы так что struct и не нужен.

    > – В шарпе правильно сделаны generics
    Внезапно в С++ есть templates, у которых, кстати, есть еще очень вкусный статический duck-typing :)

    > – В шарпе есть yield return
    а по-моему мы как раз с вами уже спорили на эту тему.

    > – В шарпе есть лямбда-выражения (анонимные функции)
    Дык они как бе и почти везде есть, с разным уровнем качества конечно.

    > – В шарпе есть встроенная поддержка монад (да-да, тот самый LINQ), позволяющая тривиально писать, например, асинхронный код или чудеса вроде Rx Framework.
    Честно, не понял. имеется ввиду что-то вроде блоков do хаскеля? можно пример, особенно про асинхронное исполнение.

    > – В шарпе 4.0 будет variance для дженериков – он намного проще для понимания, чем wildcards в Java.
    Ну я рад, Ruby смотрит на ваши проблемы… с непониманием :)

    > C# – самый технически совершенный из современных мейнстрим языков программирования.

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

  75. 32
    Fedor Amrosievich ответил:

    #23 "Так же повторюсь кроссплатформенность есть. это факт."
    Кроссплатформенности нет и не будет – это факт. МС никогда не будет портировать .НЕТ на конкурирующие системы. А на глючный костыль mono полагаться будет только идиот. Да и совместимость у моно не на высоте.

  76. 31
    Святослав Панкратов ответил:

    Три года назад Novell заключила договор о стратегическом партнерстве с Microsoft и в настоящее время выпускает серверную платформу, которая позволяет выполнять .NET-приложения даже в среде IBM System Z.

    //net.rsu.edu.ru/blog/2009/03/suse-linux-enterp...

  77. 30
    Жека Кирпичев ответил:

    C# – самый технически совершенный из современных мейнстрим языков программирования. Он на несколько голов выше явы. Чтобы говорить, что для него "мозгов не надо" или что "он содран с явы", надо ничего не понимать ни в шарпе, ни в яве, либо просто преследовать лишь цельвыпендриться через порицание микрософта.

    Привожу несколько отличий:

    – В шарпе есть struct
    – В шарпе правильно сделаны generics – они не стираются в runtime, поэтому они по-настоящему типобезопасны, и поддерживают примитивные типы (следовательно, более эффективны). Как следствие, в шарпе нет проблемы ковариантных типов массивов и множества других проблем.
    – В шарпе есть yield return – тому, кто хоть раз писал нетривиальные итераторы на Java, не нужно рассказывать о полезности этой фичи. Сэмулировать ее без кодогенерации практически невозможно.
    – В шарпе есть лямбда-выражения (анонимные функции) – не поясняю, т.к. в наше время уже просто неприлично не знать, что это и для чего.
    – В шарпе есть встроенная поддержка монад (да-да, тот самый LINQ), позволяющая тривиально писать, например, асинхронный код или чудеса вроде Rx Framework.
    – В шарпе 4.0 будет variance для дженериков – он намного проще для понимания, чем wildcards в Java.

    Про некоторые новомодные фишки шарпа я просто не знаю, т.к. давно на нем не писал.

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

    В общем, кагбэ сказывается, что над C# активно работают такие монстры как Эрик Мейер (один из известнейших и наиболее уважаемых в мире ученых в области теории языков программирования).

  78. 29
    Святослав Панкратов ответил:

    >> С каких пор язык стал на себе брать управление памятью? :)
    >С тех, когда отказался от функции освобождения памяти.

    Хотите ручками работать с памятью, используйте работу с указателями через блоки, помеченные ключевым словом unsafe.
    Кстати деструкторы тоже имеются (см документацию), так что освободить память при желании можно самому, а не оставлять это CLR-среде.

    А вообще данный язык прогибается под программиста любого уровня.

  79. 28
    Евгений Баталов ответил:

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

  80. 27
    Серж Андреев ответил:

    Юрий, вы бы хоть прочитали, о чем речь ))))

  81. 26
    Николай Митропольский ответил:

    > И многие как ты считают HTML языком программирования?

    А кто сказал про программирование? вопрос был про создание интерфейсов.
    Впрочем, HTML можно вполне назвать языком декларативного программирования :)

  82. 25
    Николай Митропольский ответил:

    > Линку и так основан на методах расширителях (extension methods)
    Ну не совсем. Его можно назвать синтаксичесим сахаром над extension methods, но боюсь что тут уже нужно говорить про синтаксическое ожирение.

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

  83. 24
    Евгений Баталов ответил:

    Я в линку никакого пипец не вижу :) )) Линку и так основан на методах расширителях (extension methods). Аут параметры – да какой-то атавизм, но это мне не мешает кодить :) ) Я вобще ни разу еще структуру не писал (тип который через аут надо возвращать), все на классах и они как мы знаем все через указатели работают. Собственно мои замечания не говорят против ваших замечаний по поводу синтаксиса, я просто в них ниччего такого не вижу.
    ЗЫ больше не буду писать ибо холивары не труъ.

  84. 23
    Борис Глебов ответил:

    Вы если уж решили развести холивар, то хоть бы примеры приводили "корявости" языка C#. Уже просто раздражает когда не компетентные в данной технологии люди пытаются говорить о ее недостатках.

    Особенно улыбнул#5 (Михаил Falcon Казанцев) Вы вообще что курили, прежде чем писать весь этот бред ))

    – Интерпретирумый язык
    – Писать на ЛЮБОМ языке
    – технология DOT.NET
    – "Основной фишкой данной технологии является способность затемнения кода, что для интерпретируемого языка просто отлично." no comments
    - "Возвращаясь к самому языку C# то тут все просто – он берет на себя управление памятью (к стати не очень эффективно)"
    С каких пор язык стал на себе брать управление памятью? :) Про не эффективность цифры приводите.

    Так же повторюсь кроссплатформенность есть. это факт.

  85. 22
    Николай Митропольский ответил:

    > примеры приводили "корявости"

    Да я давно не пишу на шарпе, но так навскидку, что мне показалось весьма трешовым – это например Explicit Interface Implementation. out-параметры – тоже тот ещё треш.

    Да и встраивание в язык LINQ – это ппц. Если нужно, то делайте язык расширяемым как Scala, но хардкодные костыли – это безобразие.

    А так кончено надо покодить, чтоб вспомнить весь букет корявости

    > С каких пор язык стал на себе брать управление памятью? :)
    С тех, когда отказался от функции освобождения памяти.

    > Про не эффективность цифры приводите.
    //shootout.alioth.debian.org/u32q/benchmark.php... колонка memory

  86. 21
    Роман Гулько ответил:

    C# для начинающих? Врядли, пересел на него после С++ и Дельфи. А писать думаю можно всё, от работы с железом(прекрасно юзаю для работы с пром. контроллерами) до корпоративных и веб приложений…

  87. 20
    Женя Глебов ответил:

    холиварчик попёр )

  88. 19
    Евгений Баталов ответил:

    Видимо я дурак и былокодер (нужное или оба подчеркнуть :) ))), но в C# я не нахожу ничего нелогичного,понимаю для чего нужна каждая его фишка, и что в нем можно сделать все, что относится к корпоративным приложениям, для чего он как и дотнет создавался. Сравнивать с делфи по моему просто смешно.
    А то что в нем нет множественного наследования, мне ничуть немешает. Хотя возможно я бы его и использовал. Это просто меняет направление мысли при проектировании. Результат становится обычно проще от этого, нетзапутанных иерархий.
    Кстати функции friendly в плюсах – вобще наррушение концепции ООП.

  89. 18
    Николай Митропольский ответил:

    Учи С++ – гарантированно найдёшь работу.
    Учи Дельфи – гарантированно найдёшь работу.
    Учи ActionScript- гарантированно найдёшь работу.
    Учи PHP – гарантированно найдёшь работу.
    Учи 1C – гарантированно найдёшь работу.

    Haskell не учи – работу гарантированно не найдёшь :) )

  90. 17
    Николай Митропольский ответил:

    > Это здорово осложняет проектирование.

    Хренасе, как?

    Вообще конечно использовать такой корявый как C# язык, в который понапихано столько всего, для обучения – это сурово.

    А так, если вы согласны продаться в анальное рабство микрософту – то программьте наздоровье, язык C# и платформа .NET более менее универсальны.

  91. 16
    Владислав Самохин ответил:

    Учи C# хорошо. Гарантированно найдешь работу.

  92. 15
    Сергей Сидорчук ответил:

    В C# нет многого из того, что есть в плюсах. Это здорово осложняет проектирование. Даже Delphi удачнее в этом плане.

  93. 14
    Василий Some ответил:

    шарп (сам по себе) довольно неудачный язык.
    все что в нем есть – есть и в яве/питоне
    то что есть хорошего в плюсах/питоне – в нем (как и в яве) нету

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

    Имхо – шарп знать полезно, но он далеко не лучший язык.

  94. 13
    Владимир Бондарец ответил:

    я тоже начинал с C++, и уже потом C# .
    Зато потом шарп после плюсов кажется таким лёгким)))

  95. 12
    Женя Глебов ответил:

    я вообще с С++ начал )

  96. 11
    Константин Конашенков ответил:

    to #7
    Тонкости, о том, что предполагается наличие JVM – я опустил, потому что знающие люди поймут что нужна машина, которая будет интерпретировать код.

  97. 10
    Женя Глебов ответил:

    //habrahabr.ru/blogs/ui_design_and_usability/88...

  98. 9
    Серж Андреев ответил:

    Web-based (HTML/CSS, Javascript и пр.) – 50%. Очень разумно.

  99. 8
    Серж Андреев ответил:

    >>>Учиться нужно на Паскале и Бэйсике. Вам что-нибудь говорят эти слова? В идеале вообще с исполнителей типа робота ну или продвинутого Лого.

    <<< Разумно )))

  100. 7
    Дмитрий Уповалов ответил:

    В свете проталкивания майкрософтом своей технологии Silverlight – C# скорее всего в скором времени (1-2 года) станет весьма популярным и востребованным.
    Последнее время вынужден пересесть на C#. Всё больше студентов заказывают работы именно на нём. Вещь в принципе удобная, но мне лично не хватает тех гибких (очень гибких) возможностей, что были в C++ и чистом С. Иногда те извращения, которые можно было сделать с С++ здорово упрощали алгоритмы. В C# с этим потяжелее.

    >>>Вообще .net платформа, хорошая вещь,но он не кросс-платформенная, в отличии от java. У Java идеи те же только, если вы написали, у вас будет под всеми os работать

    <<< Ну как бы не под всеми ОС, а под всеми ОС где установлена виртуальная машина java. Это немного разные вещи.

  101. 6
    Дмитрий Уповалов ответил:

    >>> Многие говорят,что он хорош для начинающих,тоесть на нем хорошо учится

    <<< Учиться нужно на Паскале и Бэйсике. Вам что-нибудь говорят эти слова? В идеале вообще с исполнителей типа робота ну или продвинутого Лого.

  102. 5
    Серж Андреев ответил:

    "Константин Конашенков – тупишь"

    Неа, он не тупит. Сишарп – это сиквел Си и Явы. Платформа .NET – это штука, облегчающая жизнь программисту без мозга. И это нормально, т.к. мозгов в современном мире все меньше на душу населения.

    Для совсем дебилов есть VB.NET.

  103. 4
    Михаил Казанцев ответил:

    Вообще говоря о C# можно его собственно и не обсуждать. Этот язык является родным для технологии DOT.NET. Поэтому лучше поговорить о ней. Данная технология основывается на интерпретации кода и позволяет писать на любом языке высокого уровня. Основной фишкой данной технологии является способность затемнения кода, что для интерпретируемого языка просто отлично. Java не имеет такой возможности так как является открытой для простоты. Следствием интерпретации является наличие совместимого интерпретатора с ОС – здесь .NET не дотягивает (мои проги тянут и под Linux и под Windows, но только под NET 2.0) по сравнению с Java. Microsoft тупит в отношении этой технологии и мешает ее развертыванию постоянно ищя экономическую выгоду.

    Возвращаясь к самому языку C# то тут все просто – он берет на себя управление памятью (к стати не очень эффективно), управление безопасностью – да так что потом материшся.

    Введу поправочку: к языку можно было не возвращаться так как это язык технологии DOT.NET.

  104. 3
    Юрий Ревотюк ответил:

    Константин Конашенков – тупишь

  105. 2
    Константин Конашенков ответил:

    Вообще .net платформа, хорошая вещь,но он не кросс-платформенная, в отличии от java. У Java идеи те же только, если вы написали, у вас будет под всеми os работать

  106. 1
    Святослав Панкратов ответил:

    Отличный, очень удобный, динамично развивающийся язык с большими возможностями. "Прогать" на нем можно практически все, что душе угодно. От выше указанного вэб, до приложений корпоративного уровня. Все зависит только от уровня команды разработчиков. Плюс вполне сносная переносимость приложений на Юникс-подобные системы (см. mono-project) или переписывание на язык Java, благо языки очень похожи.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.