Вот, vsb говорит что C простой язык — 45 слов всего нужно выучить. И ни тебе классов ни тебе виртуальных методов ни тебе шаблонов.
Но вот глянуть на стандартную библиотеку — там же нет даже списков (динамических массивов) и словарей. Или я не увидел? А ведь без этого практически ни один проект не обходится.
И вопрос — будете ли вы это писать с нуля каждый раз? Или же заранее знаете о существовании готового кода? Так же о готовом коде — ведь знание этих библиотек, как и что применить — фактически входит в набор минимально необходимого знания, без которого ничего полезного сделать не получится.
Re: Касательно простоты голого C (vsb призывается)
Здравствуйте, Shmj, Вы писали:
S>ни тебе классов
зачем?
S>ни тебе виртуальных методов
зачем?
S>ни тебе шаблонов
зачем?
S>списков (динамических массивов)
зачем?
S>словарей
зачем?
S>А ведь без этого практически ни один проект не обходится.
какой проект? не стоит писать на Си перекладывание из базы в ДЖСОН и обратно, вот не стоит. просто поиграться для себя, поизвращаться, устроить себе боль, страдания и мучения, БДСМ и вот это вот все... да пожалста! писать такое в проде – нафейхоа бы оно надо было?!?!?
короче, отвечай для себя на вопросы выше и думай...
не ООП единым и иже с ними депенденсями ижекшнами и прочими паттернами живет мир разработки... ну так, к сведению
Патриот здравого смысла
Re[2]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
DP>зачем? DP>зачем? DP>зачем? DP>зачем? DP>зачем?
Слишком много банального нужно объяснять, и так все знают зачем — вводите в гугле и получаете.
S>>А ведь без этого практически ни один проект не обходится. DP>какой проект? не стоит писать на Си перекладывание из базы в ДЖСОН и обратно, вот не стоит. просто поиграться для себя, поизвращаться, устроить себе боль, страдания и мучения, БДСМ и вот это вот все... да пожалста! писать такое в проде – нафейхоа бы оно надо было?!?!?
Так и юзер-интефейс пишут, а юзер-интерфейс это всегда дерево объектов, фактически. Пишут все.
Re[2]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
S>>А ведь без этого практически ни один проект не обходится. DP>какой проект? не стоит писать на Си перекладывание из базы в ДЖСОН и обратно, вот не стоит. просто поиграться для себя, поизвращаться, устроить себе боль, страдания и мучения, БДСМ и вот это вот все... да пожалста! писать такое в проде – нафейхоа бы оно надо было?!?!?
Ну вот есть redis , например. Не то, чтобы мне было понятно почему они избрали именно C, но есть и такое. Там и списки и словари, и, по-моему, джсоны тоже.
Спасибо за внимание
Re[3]: Касательно простоты голого C (vsb призывается)
S>Слишком много банального нужно объяснять, и так все знают зачем — вводите в гугле и получаете.
Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами. Мне вот твои хипстотошно-модные паттерн в пень не уперлись. Мне процедурно нужно все запрограммить. Нафейхоа, еще раз спрашиваю, мне там ООП и прочее???
Ты попробуй пошире помыслить, еще раз те повторяю! не все пишут перекладывания из ДЖСОНа в базку и обратно!
S>>>А ведь без этого практически ни один проект не обходится. DP>>какой проект? не стоит писать на Си перекладывание из базы в ДЖСОН и обратно, вот не стоит. просто поиграться для себя, поизвращаться, устроить себе боль, страдания и мучения, БДСМ и вот это вот все... да пожалста! писать такое в проде – нафейхоа бы оно надо было?!?!?
S>Так и юзер-интефейс пишут, а юзер-интерфейс это всегда дерево объектов, фактически. Пишут все.
Я тебе про Фому, ты мне про Ерему. Еще раз: сходи и попробуй поперекладывать из БД в ДЖСОН и обратно, где объекты по 30-50 филдов содержат и надо в 3-5-7 табличек сходить. Контроллеры то бишь пописать. Десктоп тут не при чем. Там иначе.
Патриот здравого смысла
Re[3]: Касательно простоты голого C (vsb призывается)
D>Ну вот есть redis , например. Не то, чтобы мне было понятно почему они избрали именно C, но есть и такое. Там и списки и словари, и, по-моему, джсоны тоже.
Все верно! Редиска должна быть мега-быстрой. И там нет никакой бизнес-логики в ДЖСОНах.
Я говорил о том, что у тебя есть сущности системы, которые лежат в базе. Тебе нужно сделать АПИшку, к ней доку сгенерить, и это все отделается наружу на фронт и мобилки, допустим. Нужно написать тонны бойлерплейта на Си, чтобы это все взлетело!
На всех же современных языках, для этого предназначенных, уже все есть! Описал структуру – и она сама умеет через ОРМку или фреймворк ходить в базу и перекладывать с языка базы (любой! почти) в язык моделей. Другая функция – и у тебя есть маршаллинг/демаршаллинг/сериализация/как угодно в ДЖСОН/XML/ini/csv/что угодно еще...
На Си это писать мучение! На плюсах полегче, но и там – трата времени, высокая вероятность ошибки. В общем, дорого.
Вот для примера АПИшка к одной-единственной сущности User. 105 строк с учетом кода сервера. Сколько сотен и тысяч строк кода надо будет на Си и сколько писать+отлаживать?
Здравствуйте, DiPaolo, Вы писали:
DP>Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами. Мне вот твои хипстотошно-модные паттерн в пень не уперлись. Мне процедурно нужно все запрограммить. Нафейхоа, еще раз спрашиваю, мне там ООП и прочее???
Я думал у нас тут таких нету, обычно подобные вещи пишут в высшей цивилизации а простым смертным достается работа попроще.
Re[4]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
DP>Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами. Мне вот твои хипстотошно-модные паттерн в пень не уперлись. Мне процедурно нужно все запрограммить. Нафейхоа, еще раз спрашиваю, мне там ООП и прочее???
Когда я переписывал этот год пару лет назад на С++, он уменьшился раза в 2 точно при полном сохранении функциональности. Медленнее работать при этом не стал.
Re[5]: Касательно простоты голого C (vsb призывается)
DP>>Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами. Мне вот твои хипстотошно-модные паттерн в пень не уперлись. Мне процедурно нужно все запрограммить. Нафейхоа, еще раз спрашиваю, мне там ООП и прочее???
S>Я думал у нас тут таких нету, обычно подобные вещи пишут в высшей цивилизации а простым смертным достается работа попроще.
Это было для примера. Я сам енкодер не пишу. Но я из этой темы и много что приходилось делать.
И нет, я не считаю, что это какая-то "высшая каста". Я говорил лишь о том, что где-то выгоднее и все еще используют Си и там не нужны ООП и прочие современные мейнстримовые модные посылы.
Патриот здравого смысла
Re[2]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
S>>ни тебе классов DP>зачем?
Инкапсуляция
S>>ни тебе виртуальных методов DP>зачем?
Полиморфизм. Иногда нужно (в каждом втором проекте на сишечке изобретают виртуальные методы)
S>>ни тебе шаблонов DP>зачем?
Чтобы не писать десять раз одно и тоже, и не городить шаблоны на макросах
S>>списков (динамических массивов) DP>зачем?
Всё равно придётся писать, а когда есть готовое и отлаженное — это удобно
S>>словарей DP>зачем?
Всё равно придётся писать, а когда есть готовое и отлаженное — это удобно
S>>А ведь без этого практически ни один проект не обходится. DP>какой проект? не стоит писать на Си перекладывание из базы в ДЖСОН и обратно, вот не стоит. просто поиграться для себя, поизвращаться, устроить себе боль, страдания и мучения, БДСМ и вот это вот все... да пожалста! писать такое в проде – нафейхоа бы оно надо было?!?!?
ООП нужен только для перекладывания из базы в ДЖСОН и обратно?
DP>короче, отвечай для себя на вопросы выше и думай...
И ты думай
DP>не ООП единым и иже с ними депенденсями ижекшнами и прочими паттернами живет мир разработки... ну так, к сведению
К сведению, ООП так или иначе везде применяется, просто если в языке нет его нативной поддержки, то изобретают свой ООП через костыли, боль и страдание
Re[4]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
DP>Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами. Мне вот твои хипстотошно-модные паттерн в пень не уперлись. Мне процедурно нужно все запрограммить. Нафейхоа, еще раз спрашиваю, мне там ООП и прочее???
Тут шаблоны явно напрашиваются.
DP>Ты попробуй пошире помыслить, еще раз те повторяю! не все пишут перекладывания из ДЖСОНа в базку и обратно!
Это ты попробуй пошире мыслить, и понять, что бывают не только числодробилки с голой математикой и перекладывание из ДЖСОНа в базку и обратно
Re[4]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
DP>Шымж, вот я например пишу видео-енкодер: тот кусок, где голая математика, числодробилка. Надо макси-переносимо на более чем 3 платформы. Плюс свести все с SIMD-ами.
Потом твой энкодер-декодер поломают специально подсунутым битым видеофайлом, запустят трояна, а затем человека, у которого этот троян запустили, например посадят.
Дали же вам, инженеграм, Аду, ещё в 83 году — так ведь нет — на сишечке корябать продолжаете.
Re[5]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
DP>Вот для примера АПИшка к одной-единственной сущности User. 105 строк с учетом кода сервера. Сколько сотен и тысяч строк кода надо будет на Си и сколько писать+отлаживать?
DP> https://gist.github.com/mashingan/4212d447f857cfdfbbba4f5436b779ac
Не справедливости ради, а холивара для, солько сотен и тысяч строк кода в следующих пакетах?:
Здравствуйте, so5team, Вы писали:
С>>Дали же вам, инженеграм, Аду, ещё в 83 году
S>И 640Kb на все про все. Так ведь нет же, все вам, инженеграм, мало.
Вы вроде должны быть в курсе технических подробностей Ады и её версий. Ну и причём тут 640килобайт? На Аде просто ковбойствовать не столь круто, как на Си segfault ловить. Как, знаете, в российском БДСМ-сообществе от бедности любят вместо покупки чего-то нормального изобретать свою кривую ерунду, из деревянных табуреток и бельевых прищепок. Зато творчество. Программисты любят творчество. И покупать ничего не надо, свобода же, если у вас есть тьюринг-полное говно, то значит можно на нём писать, а кто этим брезгует — тот, стало быть, плохой программист. Именно поэтому мы наблюдаем такой прогресс в разработке софта, от Вин95 на 16мб оперативки, до современного сайтостроительства.
Re[7]: Касательно простоты голого C (vsb призывается)
Здравствуйте, Слава, Вы писали:
С>>>Дали же вам, инженеграм, Аду, ещё в 83 году
S>>И 640Kb на все про все. Так ведь нет же, все вам, инженеграм, мало.
С>Вы вроде должны быть в курсе технических подробностей Ады и её версий. Ну и причём тут 640килобайт?
При том, что как 640Kb не хватило, так и возможностей Ada для широкого круга проектов не хватало еще в 1980-х.
Тот же ООП туда, емнип, только в Ada 95 запихнули. А в 1995-ом C++ за счет нужного тогда ООП был уже настоящим мейнстримом и даже Java уже была на подходе.
Re[5]: Касательно простоты голого C (vsb призывается)
Здравствуйте, Shmj, Вы писали:
S>Но вот глянуть на стандартную библиотеку — там же нет даже списков (динамических массивов) и словарей. Или я не увидел? А ведь без этого практически ни один проект не обходится.
S>И вопрос — будете ли вы это писать с нуля каждый раз?
Так и происходит — каждый раз с нуля.
Была интересная хохма с GC дотнета. Выложили в интернет его код, ровно один файл 1мб+ весом, и там полный фарш — базовые сишные структуры данных, с нуля, алгоритмы типа сортировок итд На этом фоне сам GC где то потерялся
Re[2]: Касательно простоты голого C (vsb призывается)
Здравствуйте, DiPaolo, Вы писали:
S>>ни тебе классов DP>зачем?
S>>ни тебе виртуальных методов DP>зачем?
S>>ни тебе шаблонов DP>зачем?
S>>списков (динамических массивов) DP>зачем?
S>>словарей DP>зачем?
Это все инструменты для управления сложностью. В Си у вас ничего подобного нет, а потому каждый старается во что горазд. Если приходится писать что нибудь прикладное, код быстро превращается в непойми что.
Т.е. для управления сложность в Си есть функции, массивы, указатели. И всё. В принципе, почти всё то же, что и в ассемблере, только кроссплатформенность получше.
Re: Касательно простоты голого C (vsb призывается)
Здравствуйте, Shmj, Вы писали:
S>И ни тебе классов ни тебе виртуальных методов ни тебе шаблонов.
ну плюс же! Никаких проблем с виртуальным деструктором, нет проблем с шаблонами.
В первую очередь, Линус говорит, что использование C++ неизменно приводит программиста к плохим решениям вроде использования библиотек STL или Boost, которые считаются прекрасными.
Однако на деле, по мнению Линуса, они постоянно ломаются, отладка кода становится испытанием, а сам код нестабильный и не портируемый.
Также Торвальдс заявил, что код на C++ построен на абстракциях, которые не работают как следует. Программист может легко обнаружить, что использованная им абстракция неэффективна, и захочет заменить ее, но для этого ему потребуется переписать все приложение.
Если же программист захочет написать хорошее, эффективное и портируемое приложение на C++, он будет ограничен рамками, которые уже хорошо реализованы на языке Си.
Кроме того, использование Си страхует программистов от ошибок, и они не смогут «облажаться» на проекте, а сам язык учит кодеров разбираться в низкоуровневых проблемах. По версии Торвальдса, сплошные плюсы.
Линус признался, что в 1992 году они уже пытались использовать C++ для написания Linux. С тех пор, по его мнению, мало что изменилось.
Нельзя не согласиться. Для такого монстра как Linux уже написаны базовые вещи типа списка и переписывание в С++ парадигме ломает совместимость и кучу кода.
Также бесспорно, что для нового проекта использовать С не имеет смысла. Хотя я бы попробовал: интересно. Язык с челенжем. Как раз после универа была возможность, но я её упустил, потому как мозг был засран ООП.