![]() |
|
Модераторы: LSD |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
GoldFinch,
но если человеку не нужно ничего кроме молотка и отвертки, его не убедишь, что навороченные инструментальные средства могут приносить пользу - они для него просто лишние, |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
простой пример преимущества С++ на С - это RAII
вместо пар функций захвата ресурса и его освобождения, инициализируется соответствующий объект, освобождение производится автоматически. другой пример - это обобщенное программирование. оно позволяет не копировать вручную код для похожих типов, а писать обобщенный код. в серьезных библиотеках обобщенный код может "сам себя" оптимизировать, генерируя подходящие реализации в зависимости от обрабатываемых типов и различных параметров. на С та же эффективность достигается ручным копированием тысяч строк кода. вобщем в С++, путем написания сложного библиотечного кода небольшого размера, можно достичь последующего простого и удобного использования этого кода. |
|||
|
||||
| NightmareZ |
|
||||||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: -1 Всего: 13 |
Это ты прав (если не считать совсем незначительные исключения из правил). Да, это так. Я уже приводил аналогию. C - это сверло, C++ - это сверло с дилдо на конце.
На C# ещё больше встроенных средств. Там целый фреймворк на все случаи жизни. На C# ещё безопаснее писать код. Там, если что, среда по рукам даст.
F# уж куда лаконичнее.
Вот! Вот! Нафиг оно нужно? -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
||||||
|
|||||||
| Fatkh |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
1. Включает не во всем. 2. По поводу встроенных средств. Во-первых - умирает переносимость компилятора. Во-вторых - чем больше встроенных средств - тем больше ошибок в компиляторе (баги фиксятся, но их больше при болшей сложности компилятора). К слову, еще недавно (как сейчас - не знаю) никто не гарантировал потокобезопасность STL. 3. Безопасность выше - бред. Часто видел баги в прогах на С? А на С++? Любой баг проги на С, написанный хоть сколько-нибудь умным человеком, легко ловится. А вот ошибки на плюсах - ловятся с огромным трудом (очень часто). (Не надо все сваливать на мою криворукость. Примеров - тьма) К тому же заботливо встроенные Страуструпом ловушки типа конструкторов по умолчанию не все избегают. Некторые и попадаются. 4. Лаконичность - отнюдь. Если писать на плюсах, как на С - да. Но так писать на плюсах - глупо и бессмысленно. А шаблон отнюдь не лаконичней двух функций. 5. И в случаях, когда это что-то высокоуровневое нужно применять, лучше оценить еще раз задачу и написать прогу на (питоне, шарпе, ...) Так как проще и безопаснее. |
|||
|
||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: -1 Всего: 13 |
Простой пример преимущества C# над C++ - не нужно никакого RAII. А в редких случаях есть using и IDisposable.
C# и это умеет. А, например, Lisp уделывает в этом плане C++ за обе щёки. Ну это работает в любом языке, поддерживающем метапрограммирование. И, кстати, в C++ оно довольно убогое. В C это и не нужно. Просто не нужно и всё. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| Fatkh |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
Просто гений. Такое оригинальное сравнение. Только есть инструменты в 10 раз меньше, во много раз проще для обучения - (Python, #, ...) А иногда нужен и молоток - да, он не может работать кувалдой (С++). А оно надо? Эта кувалда только учит бить. Иногда ей учат работать как современным инструментом (хм... Александреску?), только это все можно сделать еще проще.
Если приходится так делать - вы не умеете программировать на С. Про такое копирование почему то пишут только программисты С++. Потому что нормальный человек так на С не пишет. Может, просто вы не умеете проектировать? |
|||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 1 Всего: 59 |
Присоединяюсь Если человек, который называет серыми мышками приверенженцев С++ в качестве примера, называет это:
А также это: А также это:
О чем может идти спор. Вот откуда берутся безумные продукты, которые жрут немеряно памяти, работают как черепахи, занимают по 300 метров на диске. Если шаблон считать аналогом 2-х функций - это просто незнанием вопроса пахнет. |
||||
|
|||||
| Fatkh |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
Тут незнанием русского языка пахнет. Я привел пример применения. Не более того. И не надо заниматься домыслами. Я знаю сферу применения шаблонов. Иногда нужно думать над тем, что написано. Говорилось про лаконичность.
А пример? Я таких не знаю. (Приложения на Java в пример не приводить) |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: нет Всего: 33 |
ребята. уже не раз было доказано, что этот чел(я буквы не попутал?) троль. кому нужны доказательства, приведу. по моему, отвечать мертвечине, признать себя мертвым. кто против, ответьте ему.
Это сообщение отредактировал(а) andrew_121 - 19.9.2009, 22:52 -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| GoldFinch |
|
||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
Я както смотрел таблицу сравнения языков - выяснил что лучший императивный язык - это javascript. Покодил на нем, и понял что он действительно хорош. Но если мне надо писать библиотеку для приема\передачи данных по некоторому хитрому бинарному протоколу - javascript мне в этом не поможет.
Допустим надо писать код для извлечения данных из двоичного буфера, их изменения, и обратной записи буфер На С это будет выглядеть так
на С++ это будет выглядеть так
Если бы в С++ была интроспекция, позволяющая перечислить поля структур (как в js), serialize() был бы не нужен. |
||||
|
|||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: -1 Всего: 13 |
Оппаньки, тут тебе поможет C#! -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
но вообще, я возлагаю большие надежды на D
вот разгребу то что не дописано на С++ - попробую изучить D Добавлено через 7 минут и 8 секунд NightmareZ, да, отдельные части программы хорошо было бы написать на ***. Но, либо всю программу - на С++, либо часть на асме, часть на С++ (на С смысла писать нет), часть на скриптовых языках. Первый вариант проще, чем стыковать нестыкуемое. |
|||
|
||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: -1 Всего: 13 |
Как тебе такой вариант: ядро пишем на лиспе, а ту часть, которую ты хотел на скриптовых языках, пишем на DSL, написанном на лиспе? Это сообщение отредактировал(а) NightmareZ - 19.9.2009, 23:16 -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| Fatkh |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.9.2009 Репутация: нет Всего: 1 |
Любому языку для развития нужны деньги и реклама. У разрабов D их негде взять. И рекламы также нет.
На асме писать нужно либо жесткую математику, либо работу с процем. И ничуть не проще написать серезный крупный проект на С++, чем на , к примеру, Питоне, а нужные места оптимизировать на С. Это огромный плюс к скорости разработки и безопасности кода. |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
NightmareZ, а асм-вставки в лиспе как? а производительность как? а fastcall лисп поддерживает? чтоб аргументы в eax, edx, ecx?
Fatkh, D вроде бы достаточно развит, чтобы на нем можно было писать код на асме надо писать то, что удобно писать на асме. И это не только математика и производительность. Это еще и задачи расширения функциональности готовых программ (перехваты и т.п.) Разработка (написание+отладка) модулей на С для питона это быстро? не верю. |
|||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |