Вопрос по С++

GrAndSE

Тёмный
Модератор
Re: C#

Ну да. Давай сорцы, тесты поганяем, сравним :) Что за платформа ? Было бы любопытно сравнить Mono под никсами и Java. Какие версии JVM и .NET framework ? Какой функционал был задействован в тестах ? Я не отрицаю возможности того, что что-то может работать быстрее. Но чтобы прям в 2 раза всё и сразу - это лажа. Никому в этой жизни нельзя верить ! :)
Кстати, мне вот самому тоже хотелось посмотреть Mono. Дайте хоть ссылочку, а то уже заинтересовали.
Интересно, а на каком коде и когда сравнивали. Вопрос такой весьма щекотливый. Можно написать кода так, что и JIT компиляция ему быстрым быть не поможет и тут уже явно всё что угодно будет обходить код по производительности. Это, наверное, я так пишу :), так что интересно увидеть было бы всё это добро в действии. А пока всё лишь пустые слова. Кстати, по статистике получается, что C# не стал панацеей, и что-то его за пять лет "активного впаривания от Microsoft" так и не смог обойти даже C и С++ по отдельности, не говоря уже о том, чтобы вместе. А вот касательно Java не помню :( Так что наталкивает на размышления.
 

dragonion

Добрый дракон
Re: C#

Насчет скорости - это писали те кто пробовал и то и другое, причем по их словам иногда С# даже в 3 раза быстрее Java работал. Мне и самому интересно узнать про это больше: что же быстрее?

Ссылка:
What is Mono?

Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. Sponsored by Novell, the Mono open source project has an active and enthusiastic contributing community and is positioned to become the leading choice for development of Linux applications.

Mono allows your existing binaries to run on Linux with copy-deployment.

Features
Multi-platform.
Based on the ECMA/ISO standards.
Runs ASP.NET and Winforms applications.
Can run .NET, Java, Python and more.
Open Source, Free Software.
Commercially supported.
Comprehensive technology coverage.
 

dragonion

Добрый дракон
Re: C#

Кто скачает: напишите сюда. :) Мне тоже интересно!
 

daoway

кот Шрёдингера
Re: C#

Ключевое слово на офсайте - "Sponsored by Novell". Вопрос на засыпку - почему не "Sponsored by Microsoft" ? :)
 

GrAndSE

Тёмный
Модератор
Re: C#

Ключевое слово на офсайте - "Sponsored by Novell". Вопрос на засыпку - почему не "Sponsored by Microsoft" ? :)
Всё очень просто: мелкомягкие пытаются вытеснить всех конкурентов из мира ПК, т.е. им ни к чему, чтобы программы с Windows, могли без особых проблем выполнятся под управлением другой ОС. А поскольку же Novell двигает свои операционки, причем за денежки (кои правда в сравнении с вышеупомянутыми окнами стоят довольно дешёво, но стоят, а так же есть варианты для бесплатного использования), то становятся понятными возможные мотивы Novell: а чего бы нам не обеспечить совместимость с окнами на будущее, поскольку Microsoft всё ведут как раз к тому, что скоро все приложения будут разрабатываться именно в рамках .NET. Ну а если:
"Runs ASP.NET and Winforms applications.
Can run .NET, Java, Python and more. "
то это автоматически означает, что проблема с тем, что "моя любимая программа, которая запускалась в Виндовс Виста (ХР - выбрать своё), не работает в Linux" сводится для разрабатываемых программ новой волны (а для некоторых и старой) к "доустановке" этого самого Mono. Таким образом Novell пытается создать себе некоторые гарантии, что её ОС будут таки покупаться и дальше. Это вам не Wine конфигурировать под каждую программу, что по собственному опыту сводится чуть ли не к танцам с бубном..
 

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Re: C#

на лежат бесплатно
Лежат то бесплатно, но потом регистрационный ключ надо:
3.
Register

After you download Visual C# 2005 Express Edition and install the product, you should register the software.

Why register? You’ll need to get your registration key. Additionally, you’ll get a lot of free stuff including royalty-free images from Corbis, online training from Microsoft Learning, E-books from Microsoft Press and more. Learn more about registration benefits.
, который на халяву, как я понял не дают. Если дают, ты как шарящий в языках, возьми мне ;).
Кому интересно применение этого языка - сервер по Ультиме у меня на нём. Скрипты компилируются Framework'ом в .dll, можно и в .exe - само ядро сервака так и сделано.
Кому интересно, как это всё выглядит - скачивайте клиент Ультимы и заходите на сервак, всё что там бегает и прыгает управляется откопилироваными скриптами, написаными на C#.
А кто заинтересуется поизвращаться в плане что-то там наваять, могу и стандартный сервак подкинуть вместе с исходниками ядра.
А если что-то дозреет до написания самому скриптов - вообще будет замечательно - есть острая необходимость в скриптере.
 

sergey

Wheeeeeeeee
Re: C#

Если нужна среда для разработки на Си-шарпе то можно скачать альтернативу майкрософту бесплатно.
Ссылки или .
 

zx

Member
C#. что вижу я.

здравствуйте товарищи.

перед тем как начать гадить в комментах, отрезумирую по сути.
C# - наверное флагманское средство разработки, сделанное Макроссофтом для платформы .Net.
Остальные (неццкий бейсик, J#, managed C++) - по сути делают то же самое, но являются подмножеством шарпа по возможностям. Кто в курсе - например, в Шарпе есть диектива Using для работы с классами, реализующими IDisposable. То, что она делает, в других языках можно собрать руками, а в шарпе она - уже есть..

Под .Net борланд выпускало несколько версий своих дельфей и билдеров но они убоги.. При всем моём обожании Дельфи.

Сама платформа .Нет - (ну это помоему. я всетаки не гейтс) - неизбежное будущее мира Майкрософт и Виндоуззз. И непоганое будущее.

.Нет дает уникальную возможность:
- лепить очень надежный код просто. он еще и кросс - платформенный получится.. такого же плана средством была ява но ни такой скорости, ни такой глубокой и удобной работы с железяками там не было. Плюс в Нете реализованы куча уникальных артефактов программирования (атрибуты например, также интерфейсы, ну интерфейсы не вполне уникальная вещщщьчь. в КОМе и в том же дельфи они уже были, а вот в ЯВЕ, насколько я знаю - нет).
- модульность получаемого кода очень удобна. ни в одном средстве не было возможности сделать ДЛЛку и при подключении ее к внешнему проекту видеть все ее классы методы и прочие потроха как в исходнике без всяких заголовков и библиотек импорта. Такой модульности не хватало всю жизнь, нихто даже не решался о ней мечтать - а теперь она просто есть.

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

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

А еще 1 момент по сути пока не началось копание в деталях и размазывание каши по столу.
Позиционируем себя и .Нет.
вопрос 1 - зачем он может пригодиться ?
варианты:

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

написание клиентских приложений для работы с базами данных.
- если проникнуться идеей и писать надо чтото монументальное - рекомендую.
очень мощная среда разработки. мощная модульность.
но если вам нада прога на 10-15 формочек с базой таблиц на 20.
и она вам нада через 3 дня. и вы знаете Дельфи. Я в таком случае не колебусь - запускаем винамп, нью прожект, секундомер, чай, буттерброд и вскорости - результат.
Для легких проектов (и примитивных) имхо дельфи юзать удобней.

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

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

взаимодействие с неуправляемым кодом и с кодом, использующим COM-технологии.
для работы сэтими вещами есть механизмы создания типа прозрачных оберток (transparent proxies) в обе стороны. типа dll в машинном коде можно обернуть классом в нете, на методы которого будут спроецированы точки входа этой длл. и наоборот, можно создать длл на .нете (такой код называется il или msil - Intermediate Language или Microsoft Intermediate Language; промежутоШный йазыГГГ) и сделать неуправляемую длл-заглушку, которая будет перенаправлять вызовы из машинного кода на методы классов .нет - дллки.
с комами та же песня - можно в обе стороны переопылять понятия .net-класса и COM-интерфейса.
но сразу говорю, что на этой зыбкой почве валяются неприятные грабли. а именно, для преобразования данных из типов .нет в типы COM используются т.н. МАРШАЛЛЕРЫ так вот в случае, когда при взаимодействии через COM ваши куски кода обмениваются данными сильно замороченной структуры (ну типа массивами записей самодельной структуры), то штатные маршаллеры этого не вытягивают а самодельные писать стрёмно.. короче если ВДРУГ будет у вас такая задача - перед тем как кинуться в нее всеми местами - повтыкайте более глубоко в почву, если что-то покажется вам мутным - берите простой C++ без всякого нета и не вы$#&вайтесь.

Графика.
прорисовка форм в нете на сегодня реализована средствами GDI+. Оно притормажЫвает.
Плюс производительность графической подсистемы упирается в возможности старого кода управления окнами, старого API windowHandler-ов и точек входа в процедуры.
Когда MS домучит свой обьектный движок для работы с окнами (он вроде в одном из проектов авалоном назывался, хотя в конце-концов под этим именем родилось хрензнаетшо) - думаю скорость отрисовки .нет - визуальщины радикально улуччицца.

Но я повторюсь, что не верю в Майкрософт.
Слоган - Microsoft - not to be trusted. Just to be.
Скажем так. Майкрософт не меняется от того, верю ли в него я или ты.

Единственный выбор который у тебя есть - работать или не работать с ним.
На сегодняшний день я альтернативы винде на рынке десктоп-платформ, позволяющих быстро разрабатывать клиентские приложения с богатым интерфейсом (пытаюсь указазть, что жто приложения, которые работают НЕ_В_БРАУЗЕРЕ) - не вижу. Видел бы - сам бы вприпрыжку туды сбежал. До нета. а после нета - теперь 3 раза подумаю. Бо удобно однако в нем программить.

Насколько мне известно, с .NET готовая программа получается что-то наподобие того же Visual Basic по скорости.
ГЫ. Смотря какой VB иметь в виду. Если VB.Net - то оно не только по скорости будет так же, там и сам код получится практически идентичным. Вся идеология средств .нет разработки от МЗ - что любым средством мы получим одинаковый код, и можем юзать его в любом сочетании.
Например у меня 2 бойца рисуют проект на VB.Net а третий им на шарпе нарисовал dll, они ее себе без вопросов вкручивают и едут как тут и было.

но если сравнить с не-.NET бэйсиком - звыняйте. Нет ЖЖОТТ.

Кому довелось поработать, особенно с графикой, тот наверняка поймёт о чем я.
Графика - отдельная песня. я говорил. А невизуальный код фигачит практически со скоростью обычного маш. кода. И вообще, принцип работы .НЕТ - т.н. JIT(just in time)-compiller.
Когда ты запускаешь .нет -экзешник -загрузчик фреймворка берет его промежуточный IL-код (ну и код библиотек, на к_рые твой эге опирается) и компилит его в машинный код твоего ЦПУ. Это занимает время и чуйствуется (хоть и не особо). Зато потом все шуршит как обычно.
Кроме того, при установке фреймворка в винде заводится целоя обвеска администрирования его политик и я подозреваю что там есть возможность указать, что я хочу такие-то сборки (эгешники и дллки) скомпилять в маш. код заранее. Тада при запуске все ваще буит шуршать. Не уверен на все 100 что такое есть, но чето мне помнится что оно есть.

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

Ну а лично для себя я буду тихонечко ночами мечтать, о хорошем и красивом коде, написанном на привычных мне Java, C/C++, Object Pascal (ой пардон, а можно ли Free Pascal так назвать? думаю пока-что да), и тешиться свободой выбора :)
синтаксис фри паскаля и обжэкта настоко похож шо называть его можно как хочеш - все равно то же самое. а ночами мечтать о коде.. я всю жизнь о бабах думаю. а про ночи ваще молчу.
А шоб про баб не токо думать - надо шевелиться. И код я люблю надежный, шустрый и такой, который можно быстро изваять и легко сопроводить. Я не особо люблю программить. Я люблю результат. И девок. С такой жизненной позиции - код на шарпе - моё почтение. Кроме того.
Попробуйте. и вы увидите, что он очень красив. я такого красивого ни на чем не видел, честно.

Пользуясь случаем, передаю привет всем женщинам. Всем спасибо, я вас люблю. Код мне по ночам не снится.


dragonion, забудь Delphi и спокойно долби C#. У меня есть чем огорчить твоего препода - больше всего С# похож на Java (как идеология так и сам язык), но тооолько не на паскаль !! Если нет желания заниматься системным программазмом, С++ не актуален. "Зачем платить больше" (с)
дельфи и сишарп - очень разные среды. С очень разной архитектурой получаемого исполнимого модуля. Да, шарп - это очень взрослая ява. Ява, доросшая до того, чего от нее никто не ждал.
При моём _обожании_ дельфи - я всетаки тащусь от шарпа. Все двойные объявления дельфи (объявление-тело) и т.п. - сильно перегружено. в шарпе меньше объявлений. и в нем гораздо проще найти что нужно.

приведу 1 пример.

свойства в дельфи и шарпе.

пусть есть класс TzxClass. как ему сделать свойство в дельфи:

Код:
TzxClass = class 
begin
  FMyProp: Integer;
  function GetMyProp: Integer;
  procedure SetMyProp(AValue: Integer);
 published
  property MyProp: Integer read GetMyProp write SetMyProp;
end;

И ЭТО ЕЩЕ НЕКОНЕЦ :)
еще ж тела методов :)

implementation

  function TzxClass.GetMyProp: Integer;
  begin
    // ну ясно, что тут логика посложней, ради этого нихто б метод не ваял, ну это так, для примеру..
    Result := FMyProp;
  end;
  
  procedure TzxClass.SetMyProp(AValue: Integer);
  begin
    ну типа..
	if AValue = FValue then
	  exit;
	FValue := AValue;
  end;
терь шарп..

Код:
  public class TzxClass
  {
  int FMyProp;
  public MyProp
  {
  get{return FMyProp;}
  set{if(Value!=FmyProp)FMyProp=Value;}
  }
  }
.. усё. если учесть, что мой профиль - библиотеки компонент.. нушо.. я за шарп..

А насчёт переносимости - наилучшая переносимость у Java.
ну по крайней мере лучче шарпа. это да.

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

Да только мое ИМХО - сомневаюсь что Mono достигнет 100% точной реализации фреймворка и тучи библиотек, хотя как знать...
причем тут имхо. во-первых - моно не может покрыть в принципе весь фреймворк. он реализует только его подмножество. во 2х - как может так и реализует т.е. не факт что все буит работать в моне также как в нете. А нюансов там тьма. Например, во 2м фреймворке срэды работают весьма не так, как в первом (например обработка исключит. ситуаций в срэдах). Т.е. в самом фреймворке куча нюансов, помоему стопудов чего-нибудь в моне да не так как в оригинале..
Кроме того, как моно могет в прынцыпе реализовать например все классы из system.win32 ?
(пишу по памяти, могу ошибиться, но такой или похожый неймспэйс есть :)
для этого в моно нада засунуть винду.. маленькую такую.. ембеддед :)


Кроме того, оказывается есть уже и поддержка платформы .Net Framework и для Linux, Solaris, Mac OS, FreeBSD, Unix. Проэкт называется Mono. Так что все не столь плохо как казалось :) . Также следует сказать, что скорость работы С# примерно в 2 раза выше скорости работы Java. Вот пока что все что я нашел и узнал. Буду дальше пополнять новость.
Пополняю. кроме моны - самодельной - есть еще Макрософтовский фреймворк с открытыми сырцами.
Rotor называется. Тоже подмножество полного фреймворка. Кому оно надо - фтыкайте :).

Ну да. Давай сорцы, тесты поганяем, сравним :)
а смысл ? перед тем как чегото гонять и тестить - поставь всою задачу. Поставь допуски - с какой мин. скоростью оно должно крутиться. потом лепи тесты.
а ТЕСТИТЬ ВООБЩЕ.. я не академик и не идиот. я выше сказал, люблю баб и бабки.

Если нужна среда для разработки на Си-шарпе то можно скачать альтернативу майкрософту бесплатно.
хто попробует - отпишите впечатления. если пробовали студию - сравните, поделитесь.
интересно.

усё. желаю удачь. кому чего интересно - что могу отвечу detral@gmail.com

сорри за длинный высер ну так я ж не заставляю его читать. хотел сказать пару строк да увлекся...
 
Останнє редагування:

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Re: C#

:) Респект.
Честно, прочёл до конца, много-го не знал, например про графику и возможность задействовать сторонние дллки, бо не надо було, но относительно красоты кода, удобства раздупления в чужих и написания своих - замечательное дело.
Ещё раз респект!
 

daoway

кот Шрёдингера
Re: C#. что вижу я.

На сегодняшний день я альтернативы винде на рынке десктоп-платформ, позволяющих быстро разрабатывать клиентские приложения с богатым интерфейсом (пытаюсь указазть, что жто приложения, которые работают НЕ_В_БРАУЗЕРЕ) - не вижу.
+1. Точно знаю что в одном оочень крупном забугорном банке на дектопах работает дот нет, а на server side - Java (IBM WebSphere).

Да, шарп - это очень взрослая ява. Ява, доросшая до того, чего от нее никто не ждал.
Я называю это немножко по-другому. Идею спи***ли + создали язык максимально похожий на Java. Очень популярные продукты в Java-мире -
Hibernate, JUnit, log4j, db4o уже имеют свои аналоги на C#. Осталось переписать Struts, WebWork, Spring... список можно продолжать. Я не говорю что это всё на 100% калька, но оно на то похоже.

Ну это ты с железом не работал небось. а то там всетаки появляется вроде нейтив код. но врать не буду с явой я токо начинаю сталкиваться и чураюсь ее пока..
Я - нет. Для взаимодействия с железом действительно надо юзать нейтив. Но, народ даже embedded и real-time (датчики всякие и т.п.) системы пишет на Java. Попробуем сравнить кол-во телефонов с поддержкой Java и .NET ? ;)

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

а смысл ? перед тем как чегото гонять и тестить - поставь всою задачу. Поставь допуски - с какой мин. скоростью оно должно крутиться. потом лепи тесты.
а ТЕСТИТЬ ВООБЩЕ.. я не академик и не идиот. я выше сказал, люблю баб и бабки.
Обычно когда говорят о тестах, выкладывают исходники и описывают условия - как и что тестилось. Как минимум интересны критерии для сравнения. Ничего мудрого - если по нормальному - пару раз запустить батник :) Вероятно, это не помешает продолжать любить баб, бабки и не быть идиотом.

P.S.
Я всё-таки не противник .NET - для программазма под винду очень славный инструмент.
P.S.S.
К стати, а ASP.NET юзал кто-нибудь по-взрослому ? Какие там вкусности есть ?
 
Зверху