Интересно узнать разные мнения
|
Интересно узнать разные мнения
потому что C понятнее проще лучше быстрее, ему ненужен рантайм. Линус писал как то почему ядро не на плюсах.
там нет быдлокода на STLях. не плодятся сущности как указатели и ссылки. и длинный список недостатков этого ужасного языка.
там совершенно естественная для компьютера и человека реализация "ООП" как
struct data megaThing_Init(),
megathing_Calculate(data)
megathing_Next(data)
что касается ядра там прекрасная подргузка модулей с их интерфейсами, всё ясно и красиво.
это отработанно годами.
хотя насчёт большенства ты не прав насчёт большенства. индусы под предводителсьвом красношапочных уже успели написать столько кода на плюсах, сколько за десятки лет не написали те кто стоял за UNIX. то же Qt взять
Последний раз редактировалось blackSun; 11.04.2009 в 12:38.
все не так ( комментировать поток сознания не буду )
есть много причин, почему пишут на с, а не на с++, в случайном порядке:
больше ни на чем не умеют
развивают то, что было написанно до плявления с++
хотят, чтобы софт собирался на странных системах, где нет с++ компиляторов
думают, что получат больше волонтеров по одной из предыдущих причин
и т.д.
в частности, линус писал как-то за семь лет до принятия стандарта с++ и, соответственно, до появления нормальной поддержки в gcc
ну да, ну да . они такие тупые и упёртые...
>больше ни на чем не умеют
бредовый аргумент в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
>развивают то, что было написанно до плявления с++
тут конкретные примеры за и против не привести. как было сказано, Qt написано на плюсах, а это огромная среда, которую чаще всего и принимают за линакс. В Gnutils просто нечего наследовать в инкапсулировать.
>хотят, чтобы софт собирался на странных системах, где нет с++ компиляторов
значит у плюсов еще и плохая переносимость.
следует оговорить о чём мы беседуем, о прикладном софте, или системном.
так же о том что бы вы конкретно использовали из плюсов в разработке.
Говорить что априори плюсы лучше си это глупо.
конкретно, если расписать по пунктам что есть в плюсах и чего нет в С, то окажется что С++ для системного программирования это ненужный хлам, а для прикладного - переусложнённый хлам, тянущий за собой адресную арифметику, сишные строки, и много много всего о чём молчат те кто непосредственно имеет с ним дело. От которых успешно избавились в Java в C#
http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
в конце концов
Почитай Эрика С. Рэймонда "Искусство программирования в UNIX". Там он понятно изложил, почему UNIX-сообщество недолюбливает С++, Java, и вообще ООП, и что такое Unix way.
~ Motivation is what gets you started. Habit is what keeps you going.
ок
хуже и медленнее, а понятнее и проще может быть только в плане обучения
тот, который libc или какой-то еще ?ему ненужен рантайм.
тут уже просили привести определение "быдлокода", а то, похоже, оно какое-то очень необычноетам нет быдлокода на STLях.
ты просто не знаешь, чем они отличаютсяне плодятся сущности как указатели и ссылки.
самые крупные его недостатки унаследованы из с, у которого, кстати, и список подлиннееи длинный список недостатков этого ужасного языка.
тут даже трудно решить, с какой стороны подступатьсятам совершенно естественная для компьютера и человека реализация "ООП" как
struct data megaThing_Init(),
megathing_Calculate(data)
megathing_Next(data)
этот пример вообще не ооп
реализация ооп на с отвратительна, неудобна в применении и чревата ошибками
в с++ есть точно такая же, естественно, что ей никто не пользуется
с++ - не (только) ооп язык
в любом языке можно применять любую парадигму, но если он ее не поддерживает, то это будет неудобно
кстати, этот короткий пример ярко демонстирует пару "достоинств" с - километровые имена функций и malloc на каждый чих. а ведь потом забудут удалить - деструктор включить в пример даже не пришло в голову
ну и первая функция должна возвращать (или получать) указатель
это к чему вообще ? к тому, что в с++ нет интерфейсов или динамических библиотек ?что касается ядра там прекрасная подргузка модулей с их интерфейсами, всё ясно и красиво.
отсутствие компьютеров отработано значительно бОльшим числом годовэто отработанно годами.
опять полет мыслихотя насчёт большенства ты не прав насчёт большенства. индусы под предводителсьвом красношапочных уже успели написать столько кода на плюсах, сколько за десятки лет не написали те кто стоял за UNIX. то же Qt взять
индусы больше на яве пишут, сколько встречал @redhat.com - все какие-то европейские имена, qt писали норвежские тролли, которых потом купила финская nokia, а совсем не redhat
и, откровение: qt - не с++, как бы его не пытались представить авторы
почему все ?
странно слышать подобное от человека, не сказавшего еще ничего умного по теме>больше ни на чем не умеют
бредовый аргумент
это только если "всегда" означает "за время твоего с ними знакомства"в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
в реальном всегда там был только с
ты точно qt ни с чем не путаешь ?>развивают то, что было написанно до плявления с++
тут конкретные примеры за и против не привести. как было сказано, Qt написано на плюсах, а это огромная среда, которую чаще всего и принимают за линакс.
это не среда, во многих дистрибутивах по дефолту гном и qt совсем не видно, да и есть более крупные проекты на плюсах
даже если это и так (уже доверия не осталось), это совсем не значит, что на с++ его нельзя сделать гораздо симпатичней (выше есть подсказка)В Gnutils просто нечего наследовать в инкапсулировать.
странно, да? более крупную программу сложнее переносить, а в некоторых случаях речь идет о хламе, выброшенном на помойку до появления с++>хотят, чтобы софт собирался на странных системах, где нет с++ компиляторов
значит у плюсов еще и плохая переносимость.
однако, ключевое слово там было _странных_, т.к. у gcc все в одном флаконе и если он куда-то не портирован, то, может, это никому и не нужно ?
я бы использовал все, что мне понадобитсяследует оговорить о чём мы беседуем, о прикладном софте, или системном.
так же о том что бы вы конкретно использовали из плюсов в разработке.
глупо этого не признавать: у с нет преимуществГоворить что априори плюсы лучше си это глупо.
давай, расписывай, а мы посмеемсяконкретно, если расписать по пунктам что есть в плюсах и чего нет в С, то окажется что С++ для системного программирования это ненужный хлам,
переусложненным он может быть только для умаа для прикладного - переусложнённый хлам, тянущий за собой адресную арифметику, сишные строки, и много много всего о чём молчат те кто непосредственно имеет с ним дело.
если твой ум не справляется - на с твои программы будут не менее печальны
адресная арифметика и сишные строки - прекрасные фичи при использовании по назначению
недоязыки тут - офтопикОт которых успешно избавились в Java в C#
не надо это мне показывать, я это давно прочел
линус любит пофлеймить и в данном случае хорошо вписывается в мой список причин
(для тех, кто в танке - он не знает с++)
>недоязыки тут - офтопик
можно было с этого начать. таки избираете самый тяжкий путь.
>медленнее, а понятнее и проще может быть только в плане обучения
не медленнее.
Проще понять структуру и функции с которыми она работает, чем изучать откуда наследовалось какое то поле.и тем более STL, выносящее мозг.
я конечно же имел ввиду KDE
>тот, который libc
да. линкеру можно сказать чтобы его выбросил.
>переусложненным он может быть только для ума.
Да. это я и пытался сказать. не сложный а переусложнённый. тоесть можно легче всё писать и продуктивнее.
>давай, расписывай
что расписывать то ? что в код на границе с аппаратным обеспечением бесполезно пихать STL, эксшепшены и что то еще из плюсов ??
>тут уже просили привести определение
начитаются люди Александреску, и потом пишут на безумной нечитаемой смеси символов< > ::
>это совсем не значит, что на с++ его нельзя сделать гораздо симпатичней
заменить _ на -> и гордо именовать неймспейсом ?
>в свете того что юниксы всегда были зоопарком из языков и колыбелью для кучи платформ.
ну да, perl, java, awk, shellscript, ocaml... не языки.
написанное вами это просто воспоминания собственных ощущений. Это быстрее, а то совсем безболезненно...
Защищайте и пропагандируйте дальше. Может молодёж почитает и таки проникнется тем что юникс-комьюнити дураки и ничего не знают про такой элитный язык как С++, а C#, пропагандируемый а навязываемый МС это вообще несерьезно.
http://unthought.net/c++/c_vs_c++.html вот в инете нарыл инфу можно почитать.
от ты веселун. давно я не видел такого отжига в этом разделе форума.
ты прежде думай, потом пиши.
язык есть инструмент. а когда вместо головы жопа и люди занимаются не своим делом, упорно продолжая лезть на кактус - тут никакой инструмент не поможет. ни С, ни С++, ни С#, ни Java. и вот это главное. выбор инструмента - вторичен.
Велик и могуч русский язык, а пользоваться некому
мне показалось естественным начинать с ознакомления с темой
у меня получилось "Почему большинство софта для *nix систем написано на С, а не на С++", а у тебя ?
ты просто не знаешь, как на с++ делать быстрее>медленнее, а понятнее и проще может быть только в плане обучения
не медленнее.
я все же думаю, что ты не осилил с++, соответственно тебе его и понимать трудноПроще понять структуру и функции с которыми она работает, чем изучать откуда наследовалось какое то поле.и тем более STL, выносящее мозг.
это и не удивительно
для решения сложных проблем нужны сложные инструменты и их сложнее изучать
под него я писать не пробовал, но могу предположить, что раз он на qt, то это тоже не с++я конечно же имел ввиду KDE
ну, в такой программе можно линкеру сказать выбросить и libstdc++>тот, который libc
да. линкеру можно сказать чтобы его выбросил.
легче изучать, а использовать не легче и не продуктивнее>переусложненным он может быть только для ума.
Да. это я и пытался сказать. не сложный а переусложнённый. тоесть можно легче всё писать и продуктивнее.
почему с++ сложнее изучать - см выше
в с++ есть еще много чего другого, чего нет в с, так что не стесняйся, расписывай>давай, расписывай
что расписывать то ? что в код на границе с аппаратным обеспечением бесполезно пихать 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
да
кстати, по теме, прогресс не стоит на месте: http://thread.gmane.org/gmane.comp.gcc.devel/104097People 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.
>для решения сложных проблем нужны сложные инструменты и их сложнее изучать
Хороший дизайн и опыт рулят. а инструменты должны облегчать жизнь и быть в радость.
А плюсы это одной жопой на три стула. и код побыстрее и памяти поменьше, и разработку побыстрее.
>всегда в юниксах их не было.
Когда хотим говорим о линуксах, когда надо о UNIX образца 70х годов. под *NIX подразумевается сейчас всё посиксное(хоть бы и на этом слове не подловили).
>мелкомягкие прекрасно пропагандируют и применяют с++.
я не буду никому ничего доказывать. мне хватает того о чём я читал и о чём слышал от знакомых. .net уже повсюду.
>у меня получилось "Почему большинство софта для *nix систем написано на С, а не на С++", а у тебя ?
у вас получилось примерно "большенство банально так ниосилило лучший из языков С++, а ты(тоесть я) ламер".
Сколько лет вы непрерывно пишете на плюсах ? Что кроме них вы знаете ?
Я видел возможности метапрограммирования и рефлексии в python, мне очень понравилась стройность и определенность java и куча её подходящих к друг другу классов для всех случаев жизни. Лаконичность ML, простоту Erlang. Против C# не имею ничего против.
Недавно начал писать на Си. нашел имплементацию хэшей, списков, приоритетных очередей. имею полиморфизм void *. В коде всё прекрасно и замечательно. Отзывы об этом языке чудесные. Внятный бинарный интерфейс c простыми типами. и плюсов не желаю.
Мы вас не знаем и вы нас не знаете.
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;
//я вспомнил. Всё то говно, которое неявно выделилось на стэке в си бы мы могли просто забыть про него, а тут у нас неявно вызываются деструкторы. прелесть.
}
std::cout это таки поток.
а то таки
(<<) :: Buffer -> String -> Buffer
совершенно неадекватный сахар..
Уважаемый blackSun, Вы обливаете грязью все языки программирования, философию которых Вам не удалось понять?.
Почитайте немного литературы и Вы найдете ответы на все вопросы, касательно выше приведенного кода (и не только).
P.S. Если бы С++ действительно был так плох, то на нем не была бы написана большая часть ПО
похоже, я метал бисер перед свиньями. продолжать бессмысленно
Социальные закладки