Тема: Почему большинство софта для *nix систем написано на С, а не на С++

Ответить в теме
Страница 1 из 6 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 20 из 109
  1. Вверх #1
    Посетитель Аватар для Денёк Юрич
    Пол
    Мужской
    Возраст
    35
    Сообщений
    245
    Репутация
    61

    По умолчанию Почему большинство софта для *nix систем написано на С, а не на С++

    Интересно узнать разные мнения


  2. Вверх #2
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    потому что C понятнее проще лучше быстрее, ему ненужен рантайм. Линус писал как то почему ядро не на плюсах.

    там нет быдлокода на STLях. не плодятся сущности как указатели и ссылки. и длинный список недостатков этого ужасного языка.

    там совершенно естественная для компьютера и человека реализация "ООП" как
    struct data megaThing_Init(),
    megathing_Calculate(data)
    megathing_Next(data)
    что касается ядра там прекрасная подргузка модулей с их интерфейсами, всё ясно и красиво.

    это отработанно годами.

    хотя насчёт большенства ты не прав насчёт большенства. индусы под предводителсьвом красношапочных уже успели написать столько кода на плюсах, сколько за десятки лет не написали те кто стоял за UNIX. то же Qt взять
    Последний раз редактировалось blackSun; 11.04.2009 в 12:38.

  3. Вверх #3
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    все не так ( комментировать поток сознания не буду )

    есть много причин, почему пишут на с, а не на с++, в случайном порядке:

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

    в частности, линус писал как-то за семь лет до принятия стандарта с++ и, соответственно, до появления нормальной поддержки в gcc

  4. Вверх #4
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    ну да, ну да . они такие тупые и упёртые...

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

    >развивают то, что было написанно до плявления с++
    тут конкретные примеры за и против не привести. как было сказано, Qt написано на плюсах, а это огромная среда, которую чаще всего и принимают за линакс. В Gnutils просто нечего наследовать в инкапсулировать.

    >хотят, чтобы софт собирался на странных системах, где нет с++ компиляторов
    значит у плюсов еще и плохая переносимость.

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

    Говорить что априори плюсы лучше си это глупо.

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

    http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
    в конце концов

  5. Вверх #5
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Почитай Эрика С. Рэймонда "Искусство программирования в UNIX". Там он понятно изложил, почему UNIX-сообщество недолюбливает С++, Java, и вообще ООП, и что такое Unix way.
    ~ Motivation is what gets you started. Habit is what keeps you going.

  6. Вверх #6
    Не покидает форум Аватар для -=TigeR=-
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    7,008
    Репутация
    1410
    Цитата Сообщение от blackSun Посмотреть сообщение
    ...
    там нет быдлокода на STLях. не плодятся сущности как указатели и ссылки. и длинный список недостатков этого ужасного языка.
    ....
    хотелось бы пример того что есть "быдлокод", а что нет...

    P.S.
    любой язык ужасен если его не знать и не уметь им пользоваться...

  7. Вверх #7
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    ок
    Цитата Сообщение от blackSun Посмотреть сообщение
    потому что C понятнее проще лучше быстрее,
    хуже и медленнее, а понятнее и проще может быть только в плане обучения
    ему ненужен рантайм.
    тот, который libc или какой-то еще ?
    там нет быдлокода на STLях.
    тут уже просили привести определение "быдлокода", а то, похоже, оно какое-то очень необычное
    не плодятся сущности как указатели и ссылки.
    ты просто не знаешь, чем они отличаются
    и длинный список недостатков этого ужасного языка.
    самые крупные его недостатки унаследованы из с, у которого, кстати, и список подлиннее
    там совершенно естественная для компьютера и человека реализация "ООП" как
    struct data megaThing_Init(),
    megathing_Calculate(data)
    megathing_Next(data)
    тут даже трудно решить, с какой стороны подступаться
    этот пример вообще не ооп
    реализация ооп на с отвратительна, неудобна в применении и чревата ошибками
    в с++ есть точно такая же, естественно, что ей никто не пользуется
    с++ - не (только) ооп язык
    в любом языке можно применять любую парадигму, но если он ее не поддерживает, то это будет неудобно
    кстати, этот короткий пример ярко демонстирует пару "достоинств" с - километровые имена функций и malloc на каждый чих. а ведь потом забудут удалить - деструктор включить в пример даже не пришло в голову
    ну и первая функция должна возвращать (или получать) указатель
    что касается ядра там прекрасная подргузка модулей с их интерфейсами, всё ясно и красиво.
    это к чему вообще ? к тому, что в с++ нет интерфейсов или динамических библиотек ?
    это отработанно годами.
    отсутствие компьютеров отработано значительно бОльшим числом годов
    хотя насчёт большенства ты не прав насчёт большенства. индусы под предводителсьвом красношапочных уже успели написать столько кода на плюсах, сколько за десятки лет не написали те кто стоял за UNIX. то же Qt взять
    опять полет мысли
    индусы больше на яве пишут, сколько встречал @redhat.com - все какие-то европейские имена, qt писали норвежские тролли, которых потом купила финская nokia, а совсем не redhat
    и, откровение: qt - не с++, как бы его не пытались представить авторы

    Цитата Сообщение от blackSun Посмотреть сообщение
    ну да, ну да . они такие тупые и упёртые...
    почему все ?
    >больше ни на чем не умеют
    бредовый аргумент
    странно слышать подобное от человека, не сказавшего еще ничего умного по теме
    в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
    это только если "всегда" означает "за время твоего с ними знакомства"
    в реальном всегда там был только с
    >развивают то, что было написанно до плявления с++
    тут конкретные примеры за и против не привести. как было сказано, Qt написано на плюсах, а это огромная среда, которую чаще всего и принимают за линакс.
    ты точно qt ни с чем не путаешь ?
    это не среда, во многих дистрибутивах по дефолту гном и qt совсем не видно, да и есть более крупные проекты на плюсах
    В Gnutils просто нечего наследовать в инкапсулировать.
    даже если это и так (уже доверия не осталось), это совсем не значит, что на с++ его нельзя сделать гораздо симпатичней (выше есть подсказка)
    >хотят, чтобы софт собирался на странных системах, где нет с++ компиляторов
    значит у плюсов еще и плохая переносимость.
    странно, да? более крупную программу сложнее переносить, а в некоторых случаях речь идет о хламе, выброшенном на помойку до появления с++
    однако, ключевое слово там было _странных_, т.к. у gcc все в одном флаконе и если он куда-то не портирован, то, может, это никому и не нужно ?
    следует оговорить о чём мы беседуем, о прикладном софте, или системном.
    так же о том что бы вы конкретно использовали из плюсов в разработке.
    я бы использовал все, что мне понадобится
    Говорить что априори плюсы лучше си это глупо.
    глупо этого не признавать: у с нет преимуществ
    конкретно, если расписать по пунктам что есть в плюсах и чего нет в С, то окажется что С++ для системного программирования это ненужный хлам,
    давай, расписывай, а мы посмеемся
    а для прикладного - переусложнённый хлам, тянущий за собой адресную арифметику, сишные строки, и много много всего о чём молчат те кто непосредственно имеет с ним дело.
    переусложненным он может быть только для ума
    если твой ум не справляется - на с твои программы будут не менее печальны
    адресная арифметика и сишные строки - прекрасные фичи при использовании по назначению
    От которых успешно избавились в Java в C#
    недоязыки тут - офтопик
    не надо это мне показывать, я это давно прочел
    линус любит пофлеймить и в данном случае хорошо вписывается в мой список причин
    (для тех, кто в танке - он не знает с++)

  8. Вверх #8
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от Яр Посмотреть сообщение
    Почитай Эрика С. Рэймонда "Искусство программирования в UNIX". Там он понятно изложил, почему UNIX-сообщество недолюбливает С++, Java, и вообще ООП, и что такое Unix way.
    esr хорошо умеет писать howto, а программы - плохо, так что не надо особо в серьез его воспринимать

  9. Вверх #9
    Постоялец форума Аватар для Пилигрим
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    37
    Сообщений
    1,161
    Репутация
    136
    Цитата Сообщение от pal Посмотреть сообщение
    ...
    хуже и медленнее
    ...
    глупо этого не признавать: у с нет преимуществ
    ....
    недоязыки тут - офтопик
    ....
    очередной holly war и обсирание всего, что душе неугодно.

  10. Вверх #10
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    >недоязыки тут - офтопик
    можно было с этого начать. таки избираете самый тяжкий путь.

    >медленнее, а понятнее и проще может быть только в плане обучения
    не медленнее.
    Проще понять структуру и функции с которыми она работает, чем изучать откуда наследовалось какое то поле.и тем более STL, выносящее мозг.

    я конечно же имел ввиду KDE

    >тот, который libc
    да. линкеру можно сказать чтобы его выбросил.

    >переусложненным он может быть только для ума.
    Да. это я и пытался сказать. не сложный а переусложнённый. тоесть можно легче всё писать и продуктивнее.

    >давай, расписывай
    что расписывать то ? что в код на границе с аппаратным обеспечением бесполезно пихать STL, эксшепшены и что то еще из плюсов ??

    >тут уже просили привести определение
    начитаются люди Александреску, и потом пишут на безумной нечитаемой смеси символов< > ::

    >это совсем не значит, что на с++ его нельзя сделать гораздо симпатичней
    заменить _ на -> и гордо именовать неймспейсом ?

    >в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
    ну да, perl, java, awk, shellscript, ocaml... не языки.

    написанное вами это просто воспоминания собственных ощущений. Это быстрее, а то совсем безболезненно...

    Защищайте и пропагандируйте дальше. Может молодёж почитает и таки проникнется тем что юникс-комьюнити дураки и ничего не знают про такой элитный язык как С++, а C#, пропагандируемый а навязываемый МС это вообще несерьезно.

  11. Вверх #11
    Посетитель Аватар для Денёк Юрич
    Пол
    Мужской
    Возраст
    35
    Сообщений
    245
    Репутация
    61
    http://unthought.net/c++/c_vs_c++.html вот в инете нарыл инфу можно почитать.

  12. Вверх #12
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    49
    Сообщений
    1,356
    Репутация
    256
    Цитата Сообщение от blackSun Посмотреть сообщение
    потому что C понятнее проще лучше быстрее, ему ненужен рантайм. Линус писал как то почему ядро не на плюсах.

    там нет быдлокода на STLях. не плодятся сущности как указатели и ссылки. и длинный список недостатков этого ужасного языка.

    там совершенно естественная для компьютера и человека реализация "ООП" как
    struct data megaThing_Init(),
    megathing_Calculate(data)
    megathing_Next(data)
    что касается ядра там прекрасная подргузка модулей с их интерфейсами, всё ясно и красиво.

    это отработанно годами.

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

    язык есть инструмент. а когда вместо головы жопа и люди занимаются не своим делом, упорно продолжая лезть на кактус - тут никакой инструмент не поможет. ни С, ни С++, ни С#, ни Java. и вот это главное. выбор инструмента - вторичен.
    Велик и могуч русский язык, а пользоваться некому

  13. Вверх #13
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от blackSun Посмотреть сообщение
    >недоязыки тут - офтопик
    можно было с этого начать. таки избираете самый тяжкий путь.
    мне показалось естественным начинать с ознакомления с темой
    у меня получилось "Почему большинство софта для *nix систем написано на С, а не на С++", а у тебя ?
    >медленнее, а понятнее и проще может быть только в плане обучения
    не медленнее.
    ты просто не знаешь, как на с++ делать быстрее
    Проще понять структуру и функции с которыми она работает, чем изучать откуда наследовалось какое то поле.и тем более STL, выносящее мозг.
    я все же думаю, что ты не осилил с++, соответственно тебе его и понимать трудно
    это и не удивительно
    для решения сложных проблем нужны сложные инструменты и их сложнее изучать
    я конечно же имел ввиду KDE
    под него я писать не пробовал, но могу предположить, что раз он на qt, то это тоже не с++
    >тот, который libc
    да. линкеру можно сказать чтобы его выбросил.
    ну, в такой программе можно линкеру сказать выбросить и libstdc++
    >переусложненным он может быть только для ума.
    Да. это я и пытался сказать. не сложный а переусложнённый. тоесть можно легче всё писать и продуктивнее.
    легче изучать, а использовать не легче и не продуктивнее
    почему с++ сложнее изучать - см выше
    >давай, расписывай
    что расписывать то ? что в код на границе с аппаратным обеспечением бесполезно пихать STL, эксшепшены и что то еще из плюсов ??
    в с++ есть еще много чего другого, чего нет в с, так что не стесняйся, расписывай
    в "код на границе с аппаратным обеспечением" можно и не пихать то, что там мешает
    только я слабо представляю, какое отношение к этой границе имеет "большинство софта для *nix систем"
    >тут уже просили привести определение
    начитаются люди Александреску, и потом пишут на безумной нечитаемой смеси символов< > ::
    теперь, наверное, надо приводить определение stl, т.к. мне трудно связать его с александреску
    может, ты хотел сказать template metaprogramming ?
    про безумность символов можно сказать следующее:
    перед тем, как требовать от символов умностии читаемости, надо изучить язык
    многие сложные для понимания/использования фичи с++ предназначены для авторов библиотек, т.е. совсем умными надо быть только им, пользователи библиотек могут быть менее умными, нужно меньше знаний, чтобы читать документацию и использовать библиотеки, чем чтобы их писать
    >это совсем не значит, что на с++ его нельзя сделать гораздо симпатичней
    заменить _ на -> и гордо именовать неймспейсом ?
    я в исходники не смотрел, так что это будут абстрактные рассуждения
    чтобы именовать неймспейсом, надо заменять на ::
    причем, внутри неймспейса :: вместе с названием писать не надо совсем
    а снаружи при желании можно использовать using и тоже не писать
    при замене на -> именовать придется классом и, кстати, заменять не только _, но и само имя класса тоже - т.е. опять на слово короче
    но более короткими именами симпатичность не ограничивается !
    >в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
    ну да, perl, java, awk, shellscript, ocaml... не языки.
    тут квотинг попутан слегка

    всегда в юниксах их не было
    с с 1973 года
    awk 1977
    bourne shell 1977
    perl 1987
    java 1996
    ocaml 1996
    причем, остальные в указанный год только появились, а на с юникс был написан целиком
    написанное вами это просто воспоминания собственных ощущений. Это быстрее, а то совсем безболезненно...
    "быстрее"- объективная характеристика, поддающаяся измерению
    Защищайте и пропагандируйте дальше.
    с тобой это был ликбез
    Может молодёж почитает и таки проникнется тем что юникс-комьюнити дураки и ничего не знают про такой элитный язык как С++
    вообще-то прекрасно знают (кто же тут дурак ?)
    на с++ юникс-коммунити написали от тулчейнов до гуя
    может, еще и ядро напишут
    , а C#, пропагандируемый а навязываемый МС это вообще несерьезно.
    мелкомягкие прекрасно пропагандируют и применяют с++
    и даже берут на работу секретарей ISO C++ standards committee

  14. Вверх #14
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от Пилигрим Посмотреть сообщение
    очередной holly war и обсирание всего, что душе неугодно.
    только ты не того процитировал

  15. Вверх #15
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от Денёк Юрич Посмотреть сообщение
    http://unthought.net/c++/c_vs_c++.html вот в инете нарыл инфу можно почитать.
    да
    People don't know good C++ This is not an often heard complaint, but it's something that I see a lot. C++ is a big and complex language - but it also used to be a language that was hyped a lot, especially back in the "OOP solves hunger, cures AIDS and cancer" days. The result seems to be that a lot of really poor C++ code, basically bad C with a few class statements here and there, is out there and is being used as learning material. This means, a lot of people who believe they know C++ actually write really crap code. That's too bad, and it's a problem, but I think it's unfair to blame C++ for this.
    кстати, по теме, прогресс не стоит на месте: http://thread.gmane.org/gmane.comp.gcc.devel/104097

  16. Вверх #16
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    >для решения сложных проблем нужны сложные инструменты и их сложнее изучать
    Хороший дизайн и опыт рулят. а инструменты должны облегчать жизнь и быть в радость.
    А плюсы это одной жопой на три стула. и код побыстрее и памяти поменьше, и разработку побыстрее.

    >всегда в юниксах их не было.
    Когда хотим говорим о линуксах, когда надо о UNIX образца 70х годов. под *NIX подразумевается сейчас всё посиксное(хоть бы и на этом слове не подловили).

    >мелкомягкие прекрасно пропагандируют и применяют с++.
    я не буду никому ничего доказывать. мне хватает того о чём я читал и о чём слышал от знакомых. .net уже повсюду.

    >у меня получилось "Почему большинство софта для *nix систем написано на С, а не на С++", а у тебя ?
    у вас получилось примерно "большенство банально так ниосилило лучший из языков С++, а ты(тоесть я) ламер".

    Сколько лет вы непрерывно пишете на плюсах ? Что кроме них вы знаете ?

    Я видел возможности метапрограммирования и рефлексии в python, мне очень понравилась стройность и определенность java и куча её подходящих к друг другу классов для всех случаев жизни. Лаконичность ML, простоту Erlang. Против C# не имею ничего против.

    Недавно начал писать на Си. нашел имплементацию хэшей, списков, приоритетных очередей. имею полиморфизм void *. В коде всё прекрасно и замечательно. Отзывы об этом языке чудесные. Внятный бинарный интерфейс c простыми типами. и плюсов не желаю.
    Мы вас не знаем и вы нас не знаете.

  17. Вверх #17
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    http://unthought.net/c++/c_vs_c++.html
    тут даже не смешно. Восторги в стиле Страуструпа "смотрите как я могу".

    код с моими скромными комментариями.

    #include <set> //что это такое? где оно лежит ? почему не set.hpp ?
    #include <string>
    #include <iostream>

    int main(int argc, char **argv)// таки от стандартного сишного null-terminated string мы не избавились нигде.
    {
    // Declare and Initialize some variables
    std::string word; // что такое стд ? где оно лежит ? если в iostream то почему не iostream::std?
    std::set<std::string> wordcount;// ну да. неплохо... единственное что выглядит как в нормальных языках.
    // Read words and insert in rb-tree
    while (
    std::cin >> word //мало того что инфиксный оператор, так еще и изменяет наш word неявно
    //чем мешал word = ...?
    //как изменяет ? "применить ">>" к "функции" и "word" еще и возвратить что то. и так оно работает, да..

    ) wordcount.insert(word); //что происходит с word ? как выделяется память, как чистится ?
    // Print the result
    std::cout << "Words: " << wordcount.size() << std::endl;//опять инфиксные операторы, раскрывающиеся совершенно непонятным образом. Делаем std::cout << "Words: " получаем что ? или это как то разворачивается в foreach ?
    return 0;
    //я вспомнил. Всё то говно, которое неявно выделилось на стэке в си бы мы могли просто забыть про него, а тут у нас неявно вызываются деструкторы. прелесть.
    }

  18. Вверх #18
    Посетитель
    Пол
    Мужской
    Возраст
    35
    Сообщений
    202
    Репутация
    7
    std::cout это таки поток.
    а то таки
    (<<) :: Buffer -> String -> Buffer
    совершенно неадекватный сахар..

  19. Вверх #19
    Новичок
    Пол
    Мужской
    Сообщений
    39
    Репутация
    16
    Уважаемый blackSun, Вы обливаете грязью все языки программирования, философию которых Вам не удалось понять?.
    Почитайте немного литературы и Вы найдете ответы на все вопросы, касательно выше приведенного кода (и не только).

    P.S. Если бы С++ действительно был так плох, то на нем не была бы написана большая часть ПО

  20. Вверх #20
    Посетитель
    Пол
    Мужской
    Возраст
    46
    Сообщений
    237
    Репутация
    18
    похоже, я метал бисер перед свиньями. продолжать бессмысленно


Ответить в теме
Страница 1 из 6 1 2 3 ... ПоследняяПоследняя

Похожие темы

  1. З "Win" на "Nix" + GUI
    от YOKO в разделе Программное обеспечение
    Ответов: 10
    Последнее сообщение: 18.10.2007, 14:50
  2. 3d графика и *NIX системы
    от Alisan в разделе Программное обеспечение
    Ответов: 23
    Последнее сообщение: 26.02.2007, 13:27
  3. Ищу *nix livecd с GCC компилятором
    от cTcangel в разделе Программное обеспечение
    Ответов: 54
    Последнее сообщение: 19.12.2006, 00:35
  4. FTP-client API for *nix
    от krieger в разделе Программирование
    Ответов: 4
    Последнее сообщение: 23.05.2005, 03:26

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения