Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему все любят С++? 
:(
    Опции темы
Петрович
Дата 21.7.2005, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 2
Всего: 55



Кстати, об операционных системах. Лично знаком с двумя написанными на Pascal-подобных языках. Одна специализированная сетевая OS для наземного коммандно-измерительного комплекса. Сам лично учавствовал в ее создани еще в конце 80-х. За долго до появления Linux'а, как впротчем и C++ smile.
Вторая, создавалась на языках MODULA-2 и Oberon, для платформы Кронос. К сожалению, платформа Кронос не смогла получить широкого распространения. Соответственно, данная ОС тоже умерла вместе с ней.

Так вот. То что для Linux'а нельзя написать драйвер на каком-то из языков, совсем не означает что этот язык не пригоден для создания операционных систем.

А то можно договориться до странных вещей. Вот например могу смело утверждать что язык C++ это фигня, поскольку на нем нельзя написать программу для моего Nokia 6610. А вот JAVA это круто - на нем можно smile



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
simanyay
Дата 21.7.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 0
Всего: 36



Такое ощущение, что 99% заданий для программиста это написать операционную систему smile


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
RA
Дата 21.7.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Цитата(simanyay @ 21.7.2005, 22:09)
Такое ощущение, что 99% заданий для программиста это написать операционную систему

ага и программ для мобилы. smile
Добавлено @ 22:21

Цитата
Сам лично учавствовал в ее создани еще в конце 80-х. За долго до появления Linux'а, как впротчем и C++


Петрович ну ты ветеран smile
PM   Вверх
simanyay
Дата 21.7.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 0
Всего: 36



RAdmin, а сл-но все задачи программиста сводятся к написанию операционной системы для мобилы smile


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Void
Дата 21.7.2005, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Ой, сколько тут без меня понаписали... smile

Отсюда и далее ИМХО.
Цитата(Mayk @ 21.7.2005, 13:09)
В Си нет тормознутых шаблонов,

В каком месте они тормознутые? Разве макросы могут быть тормознутыми? Или ты имеешь в виду долгую компиляцию? Ну это скорее проблема современных компиляторов. К тому же простой шаблонный код (как в STL, например) компилируется очень быстро.
Цитата(Mayk @ 21.7.2005, 13:09)
нет строгой проверки типов указателей

Я фигею, честное слово smile Народ со страшной силой борется за строгую типизацию, недостаточно строгая типизация едва ли не главный аргумент противников C++, а тут и такая не нравится... smile (Кстати, а нафига вообще в C++ malloc?)

Нет, если использовать язык как "высокоуровневый ассемблер", то может быть так оно и есть... Но тогда при чем тут вообще C++?

Цитата(CosmoMan @ 21.7.2005, 21:06)
А вообще если честно, то меня С++ не привлекает только чисто из-за его сложности. Синтаксис в полне нормальный, но его изучить - это просто титаническая задача. Я пытался, синтаксис я знаю, но не могу понять многоие операции в С++, а также очень продвинутые вложенные конструкции, которыми изобилуют многие конструкции исходников того же ядра Linux.

Это только с непривычки. После пары месяцев практики любой реальный код (демки вроде того куплетиста, что ты приводил - это нереальный код smile ) на Си (а ядро Линукса - это Си, а не Си++) разбирается с налету. Рядовой Си++ код - тоже. Настоящее веселье начинается в вещах а-ля mpl или spirit, но это уже издержки попыток приспособить язык к тому, для чего он изначально не предназначен. Да и нет как правило необходимости городить такое в собственном коде.

В общем, C++ был, есть и будет есть. Причины: 1) гигабайты работающего промышленного кода на C++, который надо будет поддерживать еще очень долго; 2) задачи, где необходима бескомпромиссная производительность - отмазки в виде аппаратных реализаций VM пока не катят.
А учить лучше всего C#/Java (как основные промышленые языки на сегодняшний и, наверное, завтрашний день), C++ (как средство вправления мозгов, утомленных рантаймом) и какой-нибудь функциональный и/или логический язык (как средство вправления мозгов в сторону повышения абстракции).
Dixi smile

Это сообщение отредактировал(а) Void - 21.7.2005, 22:47


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
S.A.P.
Дата 21.7.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 1
Всего: 71



Цитата(Void @ 21.7.2005, 22:46)
Кстати, а нафига вообще в C++ malloc?
в винде new тоже не надо smile . Если не использовать всякие приблуды сишного рантайма, программа будет легкая как пух smile .

PM MAIL   Вверх
RA
Дата 21.7.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Мда, прочитанные критерии выбора языка вызывають лоль, симпатизирыю только одному критерию (УДОБСТВО).

А так к общему числу приимущественных языков хочу добавить один из лутших в мире, и имя ему QBasic smile !!!


Спросите почему? Да потому что это один из самых безобидных языков программирования (для изготовления мал-варе не годится)


PM   Вверх
Void
Дата 21.7.2005, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(Perchilla @ 22.7.2005, 00:50)
в винде new тоже не надо smile . Если не использовать всякие приблуды сишного рантайма, программа будет легкая как пух smile

Ну и кого сейчас интересует, сколько будет весить программа, 100 или 20 Кб? Разве что вирус писать smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
ManiaK
Дата 21.7.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Perchilla на счёт Паскаля/Дельфи погорячился. Я его, конечно, не люблю (Майк тут уже писал за что его Сишники не любят), но достоинств его как сильного языка не отрицаю.

Я б хотел вернуться к того с чего начали, мы ж не во флейме smile

Начали мы с этого:
Цитата
Почему все любят С++?


Закончили как обычно:
Цитата(CosmoMan @ 21.7.2005, 20:06)
Только на Паскале его можно написать в двое быстрее.


1. Не спорю, написать операционку на Паскале можно. Но ответьте на вопрос: почему таковых нет в массовом употреблении в наше время, а не в каких-то там 80-х?
2. Главное достоинство Си++ - его потрясающая способность подстраиваться под задачи.
Цитата
Си++ - это скорее не язык программирования, а набор инструментов для создания ваших собственных языков" © Д. Элджер

То, что до сих пор организация интерфейса пользователя в Си++ - задача более сложная, чем в языках вроде Си#, Java (не говоря уже о Дельфи) - указывает только на одно: не написано ещё удобных библиотек к нему. Много раз уже повторял тем же Явленцам: к указателям никто особой любви не питает даже среди Си++шников, но Си++ даёт возможность подумать над ними один раз, а дальше пользоваться кодом, в котором вы даже не будете подозревать, что пользуетесь указателем. Ява не даёт такой свободы. Он говорит: у меня есть набор инструментов, на основе них могёшь делать, что хотишь. А больше - ни-ни! Простите, а на чём написаны эти базовые инструменты?..
PM MAIL WWW   Вверх
bel_nikita
Дата 22.7.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: нет
Всего: 47



Народ, а Delphi стандартизирован кем-либо или это только детище Borland? smile И если умрет Borland, то умрет и Delphi.

З.Ы.: А вот, С/С++ - стандартизирован smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 22.7.2005, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 1
Всего: 71



bel_nikitaВпрочем Жаба без Сана тоже мало куда продвинется smile .
PM MAIL   Вверх
bel_nikita
Дата 22.7.2005, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: нет
Всего: 47



Perchilla
Цитата
Впрочем Жаба без Сана тоже мало куда продвинется
Возможно и так smile
Но вопрос в том, что: Delphi стандартизирован? smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Mayk
Дата 22.7.2005, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Цитата(ManiaK @ 21.7.2005, 12:26)
Mayk объясни, каким таким способом "чистые" классы (без шаблонов, без ....) хуже структур+набора функций (Си)? Не вижу тут ни капли проигрыша Си++ перед Си. Си++ тем и лучше, что он более обобщенный язык, на нём можно написать всё то, что напишешь на Си, только в более красивой форме.

Давай разберём по пунктам.
1) Инкапсуляция. Дрова и так инкапсулированы сами в себе. Они довольно самодостаточны, чтобы жить.
2) Наследование. И от чего наследоваться драйверу? Разве что от абстрактного класса. А чему наследоваться от драйвера?? Сложно придумать.
3) Полиморфизм. Ну дрова вообще-то просто имплементируют базовый объект.Они ничего по сути не изменяют, они просто делают.
Ну и к чему всё это?
Цитата(ManiaK @ 21.7.2005, 12:26)
Ты не представляешь себе жизнь в Си++ без STL?

Я себе даже Си без qsort/hsearch/printf представляю. Только зачем такое безобразие? Если есть библиотека - то её надо бы использовать.
Цитата(ManiaK @ 21.7.2005, 12:26)
Они, насколько знаю, не тормознутые, а немного увесистые - получится кода больше (и то не всегда). После компиляции все шаблоны становятся обычными классами.

"Немного увесистые"?! Время компиляции увеличивается в разы!


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
simanyay
Дата 22.7.2005, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 0
Всего: 36



По поводу Java: без Sun Java проживёт прекрасно. В отличие от всяких Delphi за Java стоят такие гиганты, как IBM, BEA, Oracle, etc., которые просто напросто возьмут сий замечательный язык под своё крыло, в случае чего. Более того скажу, что IBM только этого и ждёт, ИМХО smile
Так что господа, выбор очевиден: Java.


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
ManiaK
Дата 22.7.2005, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(Mayk @ 22.7.2005, 05:59)
Давай разберём по пунктам.

Давай smile
Цитата(Mayk @ 22.7.2005, 05:59)
1) Инкапсуляция. Дрова и так инкапсулированы сами в себе. Они довольно самодостаточны, чтобы жить.

Первое. Не очень понял, что ты этим хотел сказать. С дровами надо как-то общаться, чтобы управлять устройствами. Один из вариантов - драйвера как Slave, ядро оськи - как Master.
Второе и главное! Не цепляйся к дровам - ими область применимости Си++ не заканчивается. Есть ещё одна огромнейшая сфера - встроенные системы...
Цитата(Mayk @ 22.7.2005, 05:59)
2) Наследование. И от чего наследоваться драйверу? Разве что от абстрактного класса. А чему наследоваться от драйвера?? Сложно придумать.

Вот пример:
Код

class SuperDrv// Базовый класс для драйверов
{
public:
    SuperDrv() : m_DrvID(NULL) {  }
    
    // Операции даны от балды
    vitrual int PutCh(char Ch) { return 0; }
    virtual char GetCh(char Ch) { return ' '; }
    virtual int PutStr(char* pStr) { return 0; }

    char* m_DrvID;
};

// А теперь то, шо делают производители железок: пишут свой драйвер
class GF440MXDrv : public SuperDrv// Типа драйвер для GeForce440MX
{
    GF440MXDrv() { m_DrvID = new char[10]; memcpy(m_DrvID, "GF 440 MX", 10); }

    // А здесь уже реализуем как надо, скорей всего с асм вставками
    vitrual int PutCh(char Ch) { /* ...Жуткий код.... */ }
    virtual char GetCh(char Ch) { /* ...Жуткий код.... */ }
    virtual int PutStr(char* pStr) { /* ...Жуткий код.... */ }
};

// Где-то в ядре
QArray Drivers;

// .......

Drivers[0].PutStr("Hello, World!");

Опять же, одиними драйверами ограничиваться глупо.
Цитата(Mayk @ 22.7.2005, 05:59)
3) Полиморфизм. Ну дрова вообще-то просто имплементируют базовый объект.Они ничего по сути не изменяют, они просто делают.

Думаю и так понятно. Где надо - используй, где не надо - не используй. Свобода выбора!..
Цитата(Mayk @ 22.7.2005, 05:59)
Время компиляции увеличивается в разы!

И что? Зато летают они не медленнее обычных классов и даже обычных функций/структур из Си. А для компиляции можно и машину лучше поставить и компилятор по-лучше взять. Главное, чтоб у клиента летало.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0958 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.