| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Действительно ли C# "продвинутее" чем С++ |
| Автор: Riddik 11.2.2009, 22:48 |
| Для интереса просмотрел книжки по С#, так задело за живое, что в каждом введение C# позиционируется, как следующий шаг, как более продвинутый язык, чем С++. Время разработки значительно меньше, мощность та же, что и у С++, но более проще и т.д. Что это язык будущего. Символ шарп # это ++ два раза. В общем, у меня прям чувство ревности какое-то. Неужели С++ отмирает, потихонечку? Насколько всё это правда? Короче, я стал париться... изучаю С++, мне нравится, но с# этот теперь... Помогите мне без лишних мыслей дальше учить С++ |
| Автор: andrew_121 11.2.2009, 22:59 |
| Riddik, Зря паришься! Такие языки как asm, C, C++ никогда не вымрут. Возможно появятся языки более высокого уровня, что-то вроди D, но прежние останутся. |
| Автор: NightmareZ 11.2.2009, 23:30 |
| Действительно ли синее продвинутее зелёного? |
| Автор: Luter 12.2.2009, 00:26 |
| С# круче, но не забывай что на С++ на писаные все проги под линукс, если С++ будет умирать, то как минимум через 20 лет. Через 20 лет неизвестно что будет, каждых 10 лет приходят революционные технологии, аналога С++ нету, который сможет полностью заменить С++. |
| Автор: Riddik 12.2.2009, 01:06 |
| Спасибо! Т.е. без .NET нет c#? Luter, а чем с# всё же круче C++? |
| Автор: NightmareZ 12.2.2009, 01:33 |
Может расскажешь, чем C# круче? Или абы ляпнуть? |
| Автор: cutwater 12.2.2009, 02:01 |
| Блин... опять тема почти холивар.... круче не круче. У каждого языка своя область и специфика применения. И C# является узкоспециализированным языком направленным на разработку enterprise приложений. Но раскройте глаза - на enterprise мир не заканчивается... Можно сравнивать отдельно фреймворк, вот только за столько лет существования С++ столько библиотек и фреймворков написано, что опять таки глупый спор получается Дык много новичков бывает купятся за громкие заявления во вступлениях книг, потом и идут monkeycoding заниматься. А рассуждать что круче - это удел хелловордеров и ламеров, уж извините на недобром слове. |
| Автор: kemiisto 12.2.2009, 02:15 | ||
| Опять холивар! Очень коротко. Мой, так сказать, point of view:
Я бы поправил .NET на Windows. И не был бы так категоричен после иначе... |
| Автор: NightmareZ 12.2.2009, 03:15 | ||||
Теперь расскажи, чем True OOP хуже, чем False OOP?
Чесно.... не понял придирки. ? Ну с этим не буду спорить. Мелкософт следует стандарту (именно стандарту) C# не больше, чем С++. Они то стандарт продвинули.... только следовать ему...... |
| Автор: mes 12.2.2009, 03:18 |
речь шла о выборе из двух языков. |
| Автор: cutwater 12.2.2009, 03:49 |
Имхо в вопросе четко просматривается нотка холивара. Что "продвинутее" напильник или молоток... и что вам больше нравится. А если говорить о выборе.. то выбирать необходимо под задачу... Если автор задается вопросом выбора языка то следует спросить у автора цели которые он перед собой ставит и задачу которую необходимо решить. А (повторюсь) если разговор сводится к определению языка будущего, что продвинутее и т.д... то тема обсосана вдоль и поперек в песочнице и холиварах. можно даже перлы отыскать среди всех бессмысленных споров. |
| Автор: math64 12.2.2009, 08:53 |
| Вы вводите "MyClass var. " и IDE предоставляет вам посказку какие поля и методы есть в классе MyClass. IDE для С++ это сделать сложнее - нужно просмотреть все #include. IDE может также сделать такие вещи как переменовать класс, поле, переменную, создать из выделенного фрагмента кода новый метод, создать новый класс-наследник, переместив в него некоторые методы из базового класса и т.д. - всё это проще сделать в C#, чем в С++ (а ещё проще в Java, IDE для Java предлагают больше средств рефакторинга, чем Visual Studio) |
| Автор: Lazin 12.2.2009, 10:05 | ||||||||
то, что они запретили свободные функции - не есть Ъ ООП, скорее лишний геморой, в остальном - то-же самое (ну есть рефлекшн, ну и что, на тех задачах, на которых можно использовать интроспекцию - C# не лучший выбор)
это да, но адекватная реализация модульности есть везде кроме С++, механизм заголовочных файлов ровесник мамонтов ничего подобного, скорее refined Java, большинства фич срр там нет и не будет, например шаблонов, еще там нет такой штуки как deterministic destruction, объекты умирают не сразу после выхода за пределы scope-a а тогда когда этого захочет garbage collector, в общем, время жизни не определено, для многих задач это неприемлемо... миллионы строк кода на с++ *смеется* Добавлено @ 10:14
Ванга, залогиньтесь! С++ в том виде, в котором он есть сейчас будет жить еще долго, а после выхода нового стандарта С++ 0х еще дольше, с новым стандартом писать программы будет намного проще, например там появятся анонимные ф-ии и замыкания, можно будет использовать стандартные алгоритмы и контейнеры a la ruby:
ну и много чего еще, так что с++ на месте то-же не стоит |
| Автор: kemiisto 12.2.2009, 10:55 | ||||
Lazin, да я не про то, что в C# всё объект. Не в этом дело. Достаточно наличия в С++ множественного наследования. Это не есть Ъ. Плюс должно быть промежуточное представление кода, испольняемое ВМ + сборка мусора. Ну то есть мощная поддержка времени исполнения. А до разработчиков C# (правда только к 4 версии языка Самому писать лень!
Так что, тут можно и поспорить. Угу, угу. Да, тут немного забавно. Сам придумал стандарт - сам реализовал. |
| Автор: cutwater 12.2.2009, 11:29 | ||
Единственное утверждение с которым не могу не согласиться. |
| Автор: Lazin 12.2.2009, 11:52 | ||||
почему? с одиночным наследованием оно конечно проще, но почему Ъ объект не может иметь несколько потомков, либо реализовывать несколько интерфейсов?
И чего это ради типизация должна быть всегда динамической, к примеру, для сложной обработки данных это не подходит, тут вообще рулит ФП подход. Для того, что-бы писать надежный код, необходимо, что-бы компилятор находил ошибки в коде(в идеале - если оно компилируется, значит оно не содержит ошибок), а с динамической типизацией даже простая опечатка вылезет в ран тайме. В тех случаях когда мне нужна будет сложная архитектура, состоящая из множества объектов обменивающихся сообщениями, я просто сделаю биндинг для какого-либо динамического яп(например lua или python) и буду дергать свой низкоуровневый с++ код оттуда, но такого кода как раз очень не много. Большая часть кода написанного мной это код которому динамическая типизация не нужна |
| Автор: Riddik 12.2.2009, 12:04 |
| Рассмотрим такую область. Игры под windows. Большинство больших игр программировались на С++. До недавнего времени. А теперь (правда информация не подтверждена, слухи на форумах), например "Легенда о Рыцаре" и знаменитый "Ведьмак" написаны на .NET (C#). Т.е. задачу, которую можно решить и на С++, и на С# предпочли решать на C#. (опять же, 100% неизвестно) Получается, что если глядеть в сторону разработки тем более не таких больших и сложных игр, то предпочтительнее выбрать C#? Потому что на нём это будет делаться проще и гораздо быстрее? |
| Автор: GoldFinch 12.2.2009, 12:32 |
| когда железо сможет тянуть игры написанные на бейсике, игры будут писать на бейсике |
| Автор: Riddik 12.2.2009, 13:05 |
| Как вам цитата: ".NET обладает очень высокопроизводительным менеджером памяти, скорость аллокации объекта в 20-25 раз превышает скорость аллокации при помощи malloc, при этом никакой фрагментации. Благодаря этому можно добиться огромного повышения производительности по сравнению с C++ именно на динамических структурах данных. В этой ситуации именно языки без GC оказываются в роли догоняющего. Можно добиться схожей производительности и от C++ кода, однако это потребует написания специальных высопроизводительных аллокаторов, которые, как показывает практика, большинство C++ программистов писать не умеют. Короче, путь .NET программиста не усыпан цветами. Часто слышал утверждения, что типа любой сиплюсплюсник может писать эффективные .NET приложения: враньё. Обычно требуется около двух лет коммерческой разработки на полное освоение платформы. Только после этого можно говорить об эффективном коде. З.Ы. Смешно читать типично сиплюсплюсные флеймы типа "использовать STL или нет". Ведь там же динамические структуры данных, которые память фрагментируют. В .NET такой проблемы даже не возникает. Лёгким движением руки квадратичные алгоритмы превращаются в линейные путём использования в качестве локальных переменных хешмапов. И никакого мозгового гемороя. Да можно кучу подобных примеров привести." |
| Автор: GoldFinch 12.2.2009, 13:14 |
| локальная переменная выделяется в миллионы раз быстрее чем через маллок %) если написать свой хип, то он тоже будет работать быстрее маллока только разве это узкое место чтобы это было так важно? |
| Автор: math64 12.2.2009, 13:18 |
| Именно: программировать на C# быстрее (но не Notepad'е же). Хотя код на C++ можно написать работающий быстрее C#, но на его создание уйдёт намного больше времени. |
| Автор: Kallikanzarid 12.2.2009, 16:39 |
| Riddik, спасибо за шедевральный бред, смеялсо Ведьмак создавался на модифицированном движке Aurora (Neverwinter Nights), а тот написан на C++, в чем можно легко убедиться, скачав теперь уже Open Source-исходники. Mount & Blade, ЕМНИП, создавался изначально под .NET, но бета, в которую я играл, была недвусмысленно помечена как Native. А вообще C# - это такая помесь Java и Delphi a la MS, я его использую для макетирования. Серьезно работать с ним не вижу смысла - он сливает Java и Delphi в производительности, не говоря уже о C++. |
| Автор: cutwater 12.2.2009, 16:55 |
| Скажу так.. в джаве я вижу для себя один большой недостаток - очень медленный ГУЙ. Поэтому обычно гуевые приложения и пишут либо на шарпе либо на плюсах с использванием QT, etc. |
| Автор: Lazin 12.2.2009, 17:01 | ||||
смеялсо
после этого смеятсо не было сил... это мог написать только человек страдающий "мозговым геморроем" |
| Автор: cutwater 12.2.2009, 17:09 | ||
Открывать нужно раздел "Юмор Винграда или программисты шутят" |
| Автор: Torsten 12.2.2009, 17:52 | ||
а ты не смотри
Все пишут, но факты говорят обратное почти всегда. Кроме того никаких доказательств хотя бы 1 пункта из вышеперечисленного в этих книгах не дают. Значит врут. Хочешь простой и очевидный факт ? Назови хотя бы 3 программы написанные на С#, которые пользуются успехом у пользователей. Я только одну знаю - Paint.NET. Касательно NWN, 1ая часть была реализована как сказали на движка аврора написанном на С++, в результате в 2002 (или 2001 уже забыл) это игрушка была хит, по все параметрам в том числе и по качеству графики, при этом НИЧЕГО не тормозило. Вышла NWN 2ая часть написанная на .NET, тормозит жутко, графика визуально хуже чем в 1-ом НВН. Я так и не смог в нее поиграть нормально, при том что комп у меня далеко не самый слабый, и даже при том что я был ярым фаном 1-го НВН (в онлайне играл около 2х лет) и очень хотел поиграть во 2-ой, но после 3х попыток я сдался. |
| Автор: Riddik 12.2.2009, 17:54 |
| Рад, что про Ведьмака развеяли легенду! Ну, раз цитата так повеселила, вот ссылка на http://www.gamedev.ru/flame/forum/?id=90998&page=4 Хотя признаюсь, я ещё не понимаю, что такое аллокаторы и т.д. Эту тему я нашёл, когда искал в нете о противоборстве ++ и # И вот ещё что. Как я уже сказал, цитату я эту не очень то понимаю. Но раз вы так реагируете, то вопрос: как не стать таким программистом, как цитируемый? |
| Автор: UniBomb 12.2.2009, 18:10 |
| Добавлю и свои пять копеек. Язвки С/С++ очень широко используються при написании программ для различных микроконтроллерных систем. Бывают задачи, где особоая мощность ненужна в принципе, в таких задачах как правило используют 4/8/16 битные микроконтроллеры, имеющие относительно небольшие тактовые частоты и относительно фиговенькую производительность. Запускать на них интепритируемые языки - это извращение. Нет, есть конечно ARM9/ARM11 на которых можно поднять .NET (все более-менее новые кпк аботают под интеловскими процами, которые по сути являються ARM11 со своими изменениями), но уже на них чуствуется разница в производительности. Да и потом такие системы по цене уже сравнимы с полноценными компьютерами, так что выгода здесь очень сомнительная. Так что С/С++ самое оно для таких систем... |
| Автор: vinter 12.2.2009, 18:38 |
| Riddik, С# рулит, юзай его. Lazin, смени аватарку, не возможно посты читать |
| Автор: Kallikanzarid 12.2.2009, 19:39 | ||
Отличный первоисточник, гыгы |
| Автор: Riddik 12.2.2009, 19:53 |
| Нет, не я! |
| Автор: cutwater 12.2.2009, 20:28 | ||||
| Приводя ссылку на первоисточник и цитату с первоисточника, автор явно невнимательно читал обсуждение... Тема:
Аргументы из первоисточника :
Добавлено @ 20:31 Об аллокации памяти (20-25 разовом преимуществе) бред имхо. Ну не может быть физически. Или даже если может то с весьма сомнительным преимуществом и скрытыми недостатками. |
| Автор: Riddik 12.2.2009, 20:46 |
| cutwater, внимательно. Только авторитет тех "авторов" под сомнением, я больше нашим верю. А мало ли что кто скажет там |
| Автор: Kallikanzarid 12.2.2009, 20:54 |
| Короче, спалился, казачок. |
| Автор: cutwater 12.2.2009, 21:11 |
| Одну цитату удалил, так как несколько сомнительна, правда. Если уже сравнивать... Я год программировал на C#, 2,5 года разрабатываю на С++. Впечатления, что то лучше или хуже... нет. Оба инструмента которыми можно пользоваться, просто нужно верно выбрать инструмент. Если честно мне больше нравится на плюсах писать и под линукс. Обычно небольшие проекты так и пишу, под линуксом на QТ, потом единожды компилирую под винду и готово. Мне нравится ибо свобода выбора.. практически свобода во всем. С# как и платформа диктует жесткие условия.... ибо есть под Win только один нормальный компилятор, только одна вменяемая студия разработки... и т.п. Если требуется написать приложение с гуем + в короткие сроки ( может с привязкой к бд ) и только на вин... то лучше подойдет С# Для игр где критична память и скорость, или серверов которые должны работать с тысячами подключений, пропускать и обрабатывать массу информации, или же приложений для шифрования данных, реализации криптоалгоритмов и т.д... то взять С / С++. Для игр к С++ в качестве скриптового языка прикручивается Python или Lua и очень красиво все работает. |
| Автор: Riddik 12.2.2009, 23:06 |
| Kallikanzarid, может по айпи сравните, если не верите?! Я ту тему не создавал! |
| Автор: Kallikanzarid 12.2.2009, 23:53 |
| Как тебе угодно. |
| Автор: Dmi3ev 13.2.2009, 01:23 |
| Riddik, не волнуйся, если ты станешь невероятным гуру С++, С# тебе изучить будет не очень сложно, даже скорее очень просто. Будешь знать два языка... Осталось только стать гуру С++... PS если с экономической точки зрения смотреть, то программерам шарпа больше платят (это чисто моя статистика, возможно, ошибочная...) |
| Автор: Riddik 13.2.2009, 02:05 |
| Dmi3ev, ну, если смотреть по вакансиям в Москве, то больше всё же платят С++ программистам. И по-вашему, если гуру не стать, а просто хорошим программистом на С++, то изучение С# будет проблемой)) С# легко даётся только гуру программерам на С++. |
| Автор: cutwater 13.2.2009, 02:25 | ||
Все дело в том что хорошего специалиста в С++ найти гораздо сложней чем аналогичного специалиста на C#. Поэтому вакансий на C# больше, зарплаты на первый взгляд больше. Но в зависимости от уровня решаемых задач на С / С++ зарплата варьируется очень сильно. |
| Автор: Riddik 13.2.2009, 02:31 |
| http://hh.ru/applicant/searchvacancyresult.xml?keyword1=C%2B%2B&professionalAreaId=0&itemsOnPage=20&fromAgency=true&withoutSalary=true&orderBy=2&allFields=true&areaId=113 http://hh.ru/applicant/searchvacancyresult.xml?keyword1=C%23&actionSearch=Найти&areaId=113&professionalAreaId=0&fromAgency=true&withoutSalary=true&allFields=true&orderBy=2&itemsOnPage=20 Это на текущую дату. |
| Автор: cutwater 13.2.2009, 02:59 |
| Эти ссылки конечно не показатель, но все таки доля правды есть. |
| Автор: Riddik 13.2.2009, 03:12 |
| Согласен. |
| Автор: Dmi3ev 13.2.2009, 03:29 | ||||||
Нет, просто ты так заморачиваешься, что из этого учить! Учи любой, когда добьешься успеха в одном, начни учить другой... Я про это...
это да...
я просто высказал свое мнение, в скобках указал, что оно может ошибочное, но оно мое личное... Да, все зависит от задач, а сложные задачи решают на С++ обычно... Там нет необходимости в С#... Однако, если задачи фуфловые, то, по-моему С++ программер дешевле... Это мое мнение, еще раз уточняю! |
| Автор: Riddik 13.2.2009, 10:45 |
| Понятно, спасибо. |
| Автор: bsa 13.2.2009, 12:31 | ||
Как человек, который пытался найти сотрудника (программер С++), могу сказать, что хорошего программиста найти очень сложно за вменяемые деньги (например, 50000 рублей в месяц в Москве). Обычно, идут студенты последних курсов либо "умудреные опытом"... Но только один человек из 4-х, с которыми мы работали был хорошим программистом (заинтересованным в профессии). Но, к сожалению, наша работа его не сильно заинтересовала, поэтому он ушел. |
| Автор: mrbrooks 14.2.2009, 12:01 |
| Если вернуться к самому сабжу - то по своему опыту могу сказать следующее - на счет продвинутости C# сказать сложно, но когда приходилось доводить до конца проект стажера, ярого сторонника C#, нахлынула студенческая ностальгия, ибо ощущение, что пишешь на Delphi Добавлено через 52 секунды Для Москвы действительно, как то мало. |
| Автор: Riddik 14.2.2009, 15:39 |
| Короче, мне С++ нравится и буду внедряться в него. И потом, ничто не помешает мне поучить и c#, если будет на то желание/необходимость. |
| Автор: math64 14.2.2009, 16:16 |
| А вы не то сравниваете. Если уж сранивать C++ и C# как языки, то нужно сравнивать C++/CLI и C# - теоретически можно написать компилятор для C#, который будет создавать обычную программу, без использования .NET |
| Автор: Kallikanzarid 14.2.2009, 16:22 | ||
Вам саночки или ехать? |
| Автор: Goliaf777 14.2.2009, 16:28 |
| Вопрос вроед какбы в другом стоял, но грязные рученки замарали тему холиваром. А если по сабжу, каждое важное изменение не делает язык на 100% круче чем его предшедственник. Аналогично по моему привести пример с С и С++, ну и что, все прям по бросали С и пересели на более новый, более крутой, более всяко-всякий С++ |
| Автор: NightmareZ 14.2.2009, 16:56 | ||
Ты не прав. C и C++ менее кросплатформенны на данный момент, чем C#. Дело в том, что, для того, чтобы написать переносимое приложение на C/C++ нужно использовать библиотеки, которые тоже портированы на разные платформы. А потом ещё нужно заюзать компилятор для каждой из платформ.... Последний год мы работаем над проектом на C#. Он работает и под виндой и под MacOS, и под линухом (на Mono). |
| Автор: Kallikanzarid 14.2.2009, 17:08 | ||
Смишно |
| Автор: GoldFinch 14.2.2009, 17:20 |
| NightmareZ, C# на AVR работает?)) |
| Автор: vinter 14.2.2009, 17:23 | ||||
компиляторная кроссплатформенность, ничем не хуже кросплатформенности уровня исполнения.
шо? |
| Автор: NightmareZ 14.2.2009, 22:03 | ||
Будет фреймворк под AVR - будет работать.
Проще написать один раз виртуальную машину под конкретную платформу, чем портировать тысячи программ. Если у тебя программа использует Qt - проблем не будет. Но, попробуй перенести на линух приложение на WinAPI. |
| Автор: vinter 14.2.2009, 22:18 | ||||
это твое субъективное мнение, объективности тут ноль.
мм, ты в кусре что С++ это язык, который не предоставляет средств работы с GUI. Если человек их использует сторонние либы, то это его проблема. Это не делает С++ платформозависимым. |
| Автор: NightmareZ 14.2.2009, 23:03 | ||
Это реальность.
А зачем нужен язык без библиотек? Чтобы писать сферического коня в вакууме? |
| Автор: Riddik 14.2.2009, 23:05 |
| А если необходимо разработать систему видеонаблюдения для охраны, что выбрать ++ или # ? |
| Автор: NightmareZ 14.2.2009, 23:29 | ||
Я бы выбрал C#. |
| Автор: unicuum 14.2.2009, 23:34 | ||
С++ естественно, только после этого у тебя встанет вопрос, какие библиотеки использовать. |
| Автор: Goliaf777 15.2.2009, 00:24 |
| Самый кросс это Лого и нечего тут) |
| Автор: Lazin 15.2.2009, 00:37 | ||
Конечно-же haskell, тут и думать нечего я это серьезно |
| Автор: Riddik 15.2.2009, 00:51 |
| Ага, на Miranda тогда уже. В общем, и тут мнения расходятся... Добавлено через 1 минуту и 23 секунды unicuum, и какие посоветуете? |
| Автор: Lazin 15.2.2009, 10:07 |
Миранда не испоьзуется в разработке, а Haskell - вполне если посмотреть в общем, то C# ничем не отличается от C++ - это все императивные языки программирования, которые позволяют совершить множество ошибок, которые программист на Haskell просто не в состоянии совершить =) |
| Автор: Goliaf777 15.2.2009, 10:30 |
| А ты сделай на Хаскелле то что можно на С и я сьем свою тюбитейку. Еще кетчюпом помажу. |
| Автор: Lazin 15.2.2009, 11:05 |
| что конкретно? зы готовь кетчуп |
| Автор: unicuum 15.2.2009, 13:39 |
Давай для начала разберёмся в деталях. Задача: Снятие, отображение и запись видеопотока с устройств. Варианты: 1. Используем C#. 2. Используем C++. Что нужно: 1. GUI-оболочка. 2. Библиотека для работы с видеопотоками. Лично я сталкивался лишь с программами под DirectX для захвата видео. Их можно написать как на C#, так и на C++, да и примеры есть готовые в DirectX SDK для обоих языков. Причём когда люди ведутся на C#, они ведутся вовсе не на качество самого языка, просто создать GUI с помощью VS и дизайнеров виндоус форм очень легко. Если же делать оболочку на C++, то я бы посоветовал взять Qt, хотя существуют и другие кроссплатформенные библиотеки (GTK, wxWidgets). Теперь по поводу библиотек для работы с видеопотоками. Про DirectX уже сказал, с остальными не работал, но поиск сразу показал библиотеку http://ru.wikipedia.org/wiki/OpenCV. Обещают поддержку таких ОС как Windows, GNU/Linux и Mac OS X. Мне кажется, что надо вначале попробовать сделать, что-то типа Qt(С++) плюс OpenCV (или как-то так), или уж сразу забивать на кроссплатформенность, брать DirectX SDK и разбирать готовые примеры по работе с видеопотоком. |
| Автор: MAKCim 15.2.2009, 14:25 |
реализуй семантику volatile к примеру ;) |
| Автор: Riddik 15.2.2009, 15:00 |
| unicuum, большое спасибо! Буду смотреть на QT и DirectX |
| Автор: Lazin 15.2.2009, 15:12 |
state monad |
| Автор: MAKCim 15.2.2009, 17:06 |
я не знаю, что это можно в двух словах по-русски? |
| Автор: Lazin 15.2.2009, 18:24 |
| Если в двух словах, то haskell не работает с местами в памяти, вместо этого он работает со значениями, эти значения не могут менятся. Для того, что-бы к примеру реализовать ввод/вывод, нужно использовать специальный тип данных - монаду IO. Если ф-я имеет сигнатуру String -> String, то это означает что ф-я получает на вход строку и возвращает строку, она реентерабельна, результат зависит только от параметра ф-ии, а если ф-я имеет сигнатуру String -> IO String, то это означает, что ф-я может выполнить операцию ввода-вывода, тоесть она не реентерабельна. Это очень круто и позволяет компилятору проверять статически большую часть кода, а так-же делает очень простым написание тестов, все чистые ф-ии можно протестировать(есть даже скрипт - quickCheck, который это автоматизирует), к тому-же проще писать многопоточные приложения. Монада ST позволяет работать с какими либо данными в памяти, правда я не в курсе, насколько реально эту область памяти разделять между потоками, но если учесть наличие поддержки software transactional memory, то наверное это не сложно сделать =) |
| Автор: EgoBrain 6.3.2009, 14:38 | ||
Наверное я не прав, но мне это напомнило логические языки программирования типа Prolog (предикаты и все такое). Касательно темы: придерживаюсь мнения что нада и С++ знать и С# (для работодателя оптимальный вариант при принятии на должность). Что касается производительности и т.п. незнаю, это нада большой опыт иметь и там и там (так что наверное тут все спецы и в С++ и в C# раз такие громкие ИМХО высказывают), но скажу так, что если в короткие сроки нада что-то сделать в обширной области (например Direct-3D или тот же захват с камеры), то лучше С# юзать (для студентов и их дипломных кул). А вообще думаю все эти холивары среди простых трудяг сводятся к тому что больше нравится и на чем лучше пишут, вот например чувак говорит что С++ круче - значит он на нем дольше работает и больше знает. |
| Автор: unicuum 9.3.2009, 10:34 | ||
Ты не прав, у некоторых более абстрактное мышление. |
| Автор: Severyanin 11.3.2009, 10:20 | ||
Вот тут я плакаль долго. NightmareZ, ты, похоже, совсем не представляешь, о чем говоришь, почитай пост UniBomb, он именно про это писал. Посмотрел бы я на реализацию интерпретатора на риск-камнях гарвардской архитектуры, да еще и без аппаратной подержки защищенного режима. На них оси-то не поднимаются нормально. а ты говоришь про интерпретирующие компиляторы. Там, на самом деле, и ООП-то не всегда используется, так как порой жрет столько ресурсов, что становится нерентабельным, так как отнимает их больше основной задачи, а критичные по времени выполнениЯ подпрограммки вообще дописываются на ассемблере, который очень сильно отличается от своего собрата под х86, в основном, в силу различия архитектуры камней |
| Автор: nerezus 11.3.2009, 13:36 | ||||||||
P.S. Сегодня отрывался в NWN2: SoZ
|
| Автор: Lazin 11.3.2009, 16:11 | ||
ты это про Qt Jambi? |
| Автор: nerezus 11.3.2009, 20:45 | ||
|
| Автор: Lazin 11.3.2009, 22:01 |
| ну он какбы больше не поддерживается фирмой nokia |
| Автор: nerezus 11.3.2009, 22:13 |
| Lazin, ого. 4.4 поддерживалось. Буквально 2 недели назад... Как время летит то ) |