![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Пончик |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 21.6.2009 Репутация: нет Всего: нет |
Всем ку-ку =)
Звиняюсь за демагогию... но о.О ну какбы... захотелось мне учить тот язык за какой платят деньги... (а то так и паскаль учить можно Короче я о другом =) расскажите какие изюменки в .НЕТ? Может у него в других местах всё намного быстрее работает? И почему 90% фирм которые предлогают работу ищут программистов именно на .НЕТ ? |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
дело далеко не в компиляторе ;)
Покажите код на C++ и код под .NET =) -------------------- СУВ, Partizan. |
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Билдер компилит сразу в машинный код, а .NET - в байт-код, который потом на лету (Just In Time) преобразуется
в машинный... Из фишек например можно назвать поддержку множества языков на одной платформе, и удобство повторного использования кода... Ну и много других фишек, которые лень вспоминать... -------------------- ![]() |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Если хочется той же (примерно) скорости, то лучше использовать unsafe-код. В вычислительных работах он будет выполняться значительно быстрее за счет отсутствия контроля CLR и множества проверок (выход за границы массива, выход за границы типа и т.п.). Поэтому попробуй переписать код в unsafe, должно получиться быстрее. А вообще, C# как бы по своей сути не претендует на лучшую скорость, т.к. работает под управлением CLR и, как правильно было сказано, сначала компилируется в байт-код, а уже потом происходит его выполнение с сохранением контроля, работой GC и тому подобным. Его сила - в его простоте, удобстве, еще большей абстрагированности от низкоуровневых проблем и огромном количестве возможностей, реализуемых с помощью библиотеки классов .NET, которые предоставляют отличную функциональность при минимальных затратах по сравнению с другими языками а-ля Паскаль, C/C++ и т.п.
Так что мое личное мнение - C# учить нужно обязательно, не зря .NET-программисты одни из наиболее востребованных в настоящее время на рынке труда. |
|||
|
||||
| Пончик |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 21.6.2009 Репутация: нет Всего: нет |
Мммм ребята =) если честно то только mr.Anderson практически ответил на то что я хотел =)
Я какбы уже знаю о .НЕТ. Ну о принципе работы и т.д. само собой что интерпритированый код будет в 2 раза дольше грузится. Вот практически самое то что я хотел услышать =) но если честно я например после Делфей или того же С++ (РАД Студио) более высокой удобности не заметил (может и на первых порах). А ещё чем отличается .НЕТ? Ну может он на чём то специализируется? Например НЕТ специализируется на Базах Данных и т.д. ну вот такое бы хотелось услышать.
Может я и чайник в .НЕТ =) но дело в самом подходе =). Я имел ввиду не только Билдер, но тот же МФЦ А как? Если я правильно понял... унсейф это более для продвинутых программистов? Если скажем я работал не мало на С++ (1 год С++ 1 год Делфи) и уже какбы знаю азы и т.д. то я спокойно могу писать в ансейфе? |
|||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
||||
|
||||
| mr.Anderson |
|
||||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Пончик, насчет "а как" неплохо бы сначала погуглить про то, что вообще такое unsafe, а потом уже пробовать "а как". А вообще - в настройках проекта на вкладке Build включить галку "Allow unsafe code". А потом переписать код, допустим, так:
И потом... Нет такого понятия как ".NET специализируется на...". Нет вообще понятия специализации для языков типа паскаля, бейсика, с/с++ и уж тем более языков .NET и Java. Узкоспециализированы только некоторые языки, типа FORTRAN, который создан специально для вычислений. На языках вселенной .NET можно сделать все, что угодно, за некоторыми исключениями, которые в своем решении требуют низкоуровневой работы (допустим, антивирус на нем не напишешь в принципе). Но остальное - все, что угодно, все, что доступно твоим знаниям, на них сделать можно и, что главное, легко и быстро, без лишних проблем. Добавлено через 4 минуты и 42 секунды
Нет, не можешь. Не рекомендую. Пока ты не разберешься в деталях работы указателей, обращения с памятью, деталях функционирования твоих программ и их работы в операционной системе, нельзя, повторяю, нельзя писать unsafe-код. CLR чем и хороша, что избавляет программиста от многих проблем работы в более ранних языках, где приходилось следить за памятью, за утечками, за выходом за границы и так далее и тому подобное... Здесь этого нет по умолчанию, в этом несомненный плюс системы. И unsafe здесь оставлен только для реально нужных задач, тяжелых вычислений или, допустим, управления системой через импорт библиотек, написанных на C/C++, в которых, к примеру, функции требуют указателей в качестве аргументов. Тут без unsafe никак. Но ты же не будешь этого делать? В принципе, всех возможностей библиотеки классов .NET перечислить, наверное, невозможно, они реализуют огромное множество задач, так что вряд ли тебе в ближайшие несколько лет изучения реально понадобится unsafe-код. Это сообщение отредактировал(а) mr.Anderson - 17.7.2009, 21:38 |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
И еще. Сила .NET в очень многих вещах. Если вкратце.
|
|||
|
||||
| Пончик |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 21.6.2009 Репутация: нет Всего: нет |
Убедил!
С него то я и отталкивался =) Думаю что 99.99% буду =) поскольку я заядлый фанат оптимизации... то может и не для гипер задач буду... но буду! =) главное только научится танцевать с бубном Жалко :( а я привык к ним... Вот читаю... вроде тут Хендл какбы заменяет их. Типа Хендл Обекта.
Радует =)
Слышал что только на Винде + Кубунту с графическим интерфейсом (вроде начиная с 11). Ну ладненько =) буду надеятся что не зря учу =) |
||||||
|
|||||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
Вы в .net программе оптимизацию Release поставили? И опять же, код программы на .net хотелось бы увидеть, ибо разница должна быть 10-30% процентов, но никак не 100. -------------------- I don't need a reason being who I am... |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Сначала научись танцевать без бубна. Я программирую серьезно уже 8 лет, и я еще не могу сказать, что я на 100% уверен, что могу писать безопасный unsafe-код. |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: нет Всего: 36 |
Пончик,
Программка на Билдере бегала примерно в 10 раз быстрее... это может означать только одно: криворуко-написанный код. |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
unsafe - вовсе не панацея, всё, конечно, зависит от задачи, но он может дать проценты, а не разы
вероятнее всего, код .нет очень кривой из-за незнания платформы |
|||
|
||||
| Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 0 Всего: 10 |
Присоединяюсь к сомневающимся - разница в пару десятков процентов еще так сяк. Но в 10 раз... код в студию. Очень вероятно что по неопытности использовали самые неэффективные конструкции-"паттерны" для C#, которые в С++ были вполне хороши.
Откуда эта цифра - в 2 раза? Во вторых CLR не умеет интерпретировать код. В третьих - "грузится" и "выполняется" совсем разные вещи.
Когда начнут "штрафовать" деньгами, куды тот фанатизм денется Тем более что и нужна то она в реальной жизни - крайне редко. Достаточно знать-понимать какие конструкции медленные, а какие - быстрые. И "один лишний запрос к БД перекроет всю твою оптимизацию в сотни раз". Так что проектировать нужно учиться, а не оптимизировать. |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Верно все... Сначала заставь свою программу работать, потом заставь ее работать правильно, и лишь потом заставь ее работать быстро (с). Заниматься в "99.99%" случаев оптимизацией с использованием unsafe-кода на C# при опыте программирования 1 год, таким знанием техники работы платформы .NET и таким оперированием терминами - без обид, но нельзя.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |