LINUX.ORG.RU

[C++?] Серьезный вопрос.


3

2

Просьба ответит серьезно, желательно с аргументами за или против.

Предистория:
Когда то давным давно (я тогда еще только закончил 9-ый класс) я увидел в газете объявление о наборе в летнюю группу по изучению классического программирования. В тот момент я был с компьютером на ты и "очень" хорошо в них разбирался (переустанавливал Windows каждый месяц, хаял Microsoft просто потому, что после моих настроек W приходилось постоянно переустанавливать). Группа по классическому программированию так и не набралась, но набралось 1 человек на Visual Basik for Applications. Я соглсился быть вторым и начались занятия.
Все, что мне там объясняли я схватывал быстро. Меня пригласили продолжить обучение в сентябре на курсе "моделирование".
Там уже был Pascal, который я тогда совсем не знал. Сам курс был очень разношорстный: мы изучали и использование мыши через прерывание, готовились к различным олимпиадам. Параллельно я изучил Pascal.
Потом был Delphi. К концу 10-го класса я уже неплохо владел приемами программирования и вовсю клепал бесполезные программулины. Потом поступил в универ на программиста. Там тоже был Delphi, и я особо не напрягаясь писал все лабы (к моменту поступления я уже был знаком с логикой указателей, самописные стеки и графы, etc).
На 2-ом курсе в гостях у знакомого я разобщался с человеком, который уже насколько лет работал в нерезиновой программистом. Он мне и открыл глаза на мир: "Delphi здох. Его уже похоронили и забыли. Сейчас необходимо знание C++, C#. Необходимо занание паттернов проектирование". Вобщем много чего он мне наговорил. Книжек умных насоветовал, подкинул MSVS 2008, кучу электронных книжек. Я изучил C# по книжке Шилдта. Читал "Идеальный кол" (автора уже не помню). Потом купил(!) себе книжку Шилдта про С++. Мне понравился язык. Тем более что мне казалось, что именно он и есть общепринятый стандарт. Наиболее удобный язык для программиста.

А недавно в соседней теме за упоминание это С++ меня чуть было не съели со всем чем можно. Так-то.

Собственно вопрос: Так стоит ли изучать дальше С++ (а я уже достаточно углубился в книжку Страуструпа, подробно изучая все подводные течения)? Какой язык стоит изучать? Какие из них более востребованны?

Спасибо всем, кто осилил это многобукаф.

★★★★★

Ответ на: комментарий от Waterlaz

>>На практике, мой друг, 10% программы действительно удобнее сделать на другом языке, зато 90% превратят вашу жизнь в ад.

>Это что-то новое. 90% кода пишем на крестах, остальное на питоне, да? ппц

Нет. Я говорю о том, что переписывая сколько-нибудь большую программу с плюсов на питон (или на другой "простой в использовании" язык) ты 10% кода напишешь улыбаясь от уха до уха, похохатывая и потирая руки. А оставшиеся 90% заставят тебя плакать кровавыми слезами, драть волосы на голове, выть волком и поседеть молодым. Особенно заметно на php.

legolegs ★★★★★
()
Ответ на: комментарий от Absurd

>А вот хочу я RPC-стаб получить из класса. Вроде бы для этого нужно метапрограммирование. Средство метапрограммирования это шаблоны, раз препроцессор зло теперь.

Вот тут ты меня уел. Убогий функциональный язык шаблонов не позволяет сделать это.

>Введение в программирование и алгоритмы на Паскале обычно дают.

В моём университете время студентов слишком ценно, чтобы тратить его на мёртвые языки.

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

Сорьки, я для RT не пишу. Как и любой си-программист я знаю, что выделение памяти - дорогая операция, скорость её зависит от реализации. Поэтому в критических местах (да и вообще без явной необходимости) я не пользуюсь кучей или использую пулы, где выделение константно по времени.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

> Нет. Я говорю о том, что переписывая сколько-нибудь большую программу с плюсов на питон (или на другой "простой в использовании" язык) ты 10% кода напишешь улыбаясь от уха до уха, похохатывая и потирая руки. А оставшиеся 90% заставят тебя плакать кровавыми слезами, драть волосы на голове, выть волком и поседеть молодым.

Осталось только выяснить, зачем нужно переписывать что то с плюсов на питон :/ Я думал, обычно поступают ровно наоборот...

Hjorn
()
Ответ на: комментарий от legolegs

> В моём университете время студентов слишком ценно, чтобы тратить его на мёртвые языки.

Неужели паскаль наконец выпилили из вузов? И что теперь дают в качестве первого языка?

Hjorn
()
Ответ на: комментарий от Hjorn

>Осталось только выяснить, зачем нужно переписывать что то с плюсов на питон

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

>Неужели паскаль наконец выпилили из вузов? И что теперь дают в качестве первого языка?

Вуз вузу рознь. В моём был си. С near и far :) Причём предполагалось, что основы мы знаем.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

>Нет. Я говорю о том, что переписывая сколько-нибудь большую программу с плюсов на питон (или на другой "простой в использовании" язык) ты 10% кода напишешь улыбаясь от уха до уха, похохатывая и потирая руки. А оставшиеся 90% заставят тебя плакать кровавыми слезами, драть волосы на голове, выть волком и поседеть молодым. Особенно заметно на php.

Ну на лиспе я скорее всего напишу быстрее и проще, чем на С++. Переписать... переписывать - дело неблагодарное.

ЗЫ php ты тут зря в пример привел.

Waterlaz ★★★★★
()
Ответ на: комментарий от legolegs

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

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

Waterlaz ★★★★★
()
Ответ на: комментарий от legolegs

>>А вот хочу я RPC-стаб получить из класса. Вроде бы для этого нужно метапрограммирование. Средство метапрограммирования это шаблоны, раз препроцессор зло теперь.

>Вот тут ты меня уел. Убогий функциональный язык шаблонов не позволяет сделать это.

Бугогец. На том же тертом-перетертом в этом треде лиспе макрос можно написать хоть императивно через деструктивные присваивания и лупы хоть функционально через хвостовую рекурсию. И появился он немного раньше С++.

>>Введение в программирование и алгоритмы на Паскале обычно дают.

>В моём университете время студентов слишком ценно, чтобы тратить его на мёртвые языки.

Что принципиально нового дают современные языки для обучения базовым алгоритмам?

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

>Сорьки, я для RT не пишу. Как и любой си-программист я знаю, что выделение памяти - дорогая операция, скорость её зависит от реализации. Поэтому в критических местах (да и вообще без явной необходимости) я не пользуюсь кучей или использую пулы, где выделение константно по времени.

"I know that your system has more than one kind of memory and/or you have real time requirements and you can't use a traditional malloc implementation. But trust me, you're going to hate the day you've heard about those pools. Pools have arbitrary size limits (at most 20 objects of this, at most 30 objects of that...). Everybody is going to have a paranoia attack and set the limits to huge values, and then you're out of memory, and then you start thinking about the "right" limits, and it turns out that it's extremely hard to figure that out, because seemingly independent modules have related memory requirements (say, they handle mutually exclusive situations so you'd like them to use the same memory, but how?), and then you need some hairy logic to compute those values on a per-configuration basis, which means building several versions of the program, and maybe creating scripts for computing the values at build time, and you're going to hate the day you've heard about those pools. "

Мне лучше не сказать.

Absurd ★★★
()
Ответ на: комментарий от legolegs

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

Очевидно проще (если не ставить целью переписывание каких то низкоуровневых оптимизаций). По-моему наезды на GC и высокоуровневые абстракции в основном из-за привычек (вредных). С одной стороны это привычка к ощущению "контроля над ситуацией", которое дают С/C++. В результате программист испытывает тревогу, если не нужно писать delete и прочий boilerplate, который можно и нужно автоматизировать. С другой стороны, это привычка к некоторому уровню абстракции и набору идиом. Вот ведь в спорах C++ vs C уже плюсовики выступают за более высокоуровневые абстракции и автоматизацию вроде RAII. Потому что это привычно и воспринимается как должное. А всякие лямбды/мультиметоды отторгаются как нечто неидиоматичное и не всегда понятное. В общем, Blub paradox во всей красе.

Hjorn
()
Ответ на: комментарий от linuxfan

> Поскольку исключения нужны ну просто исчезающе редко, а используют их ну просто ужасающе часто, так что можно сказать, что C++ не потерял бы ничего, если бы избавился от этих try..catch, throw.

Лично мне тогда C++ нахер был бы не нужен в данный момент. Программировать что-то более-менее сложное без исключений, наверное, возможно, то очень сложно. На эту тему что-то в последнее время приходится говорить снова и снова, так чтобы не повторяться: http://eao197.blogspot.com/2009/08/compprogcpp_7399.html

Да, а всякие Haskell-исты с Maybe могут идти лесом.

eao197 ★★★★★
()
Ответ на: комментарий от Waterlaz

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

С++, как настоящий друг, говорит тебе всю правду -- мол, херовый ты программист, и програмка твоя херовая -- и неделю не проработает.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

У плюсовщиков ЧСВ зашкаливает на недостижимую для программистов на других языках высоту. То, что бороться с подводными детскими граблями языка -- не есть первейшая добродетель программиста, им в детстве сказать забыли.

kemm
()
Ответ на: комментарий от kemm

> У плюсовщиков ЧСВ зашкаливает на недостижимую для программистов на других языках высоту

Ну, скажем, до лисперов им далеко :)

Hjorn
()
Ответ на: комментарий от Hjorn

> Ну, скажем, до лисперов им далеко :)

Нет, плюсовщики давно лисперов оставили далеко в хвосте. Лисперы обычно заканчивают на "ты не умеешь готовить и лисп, и вообще <твой любимый ЯП> -- говно", а плюсовщики считают, что если тебе не правятся кресты -- то ты хреновый программист по определению.

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

kemm
()
Ответ на: комментарий от kemm

> У плюсовщиков ЧСВ зашкаливает на недостижимую для программистов на других языках высоту. То, что бороться с подводными детскими граблями языка -- не есть первейшая добродетель программиста, им в детстве сказать забыли.

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

eao197 ★★★★★
()
Ответ на: комментарий от eao197

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

kemm
()
Ответ на: комментарий от kemm

> а плюсовщики считают, что если тебе не правятся кресты -- то ты хреновый программист по определению.

Все проще: у хорошего программиста и на C++ программы работают. У плохого -- нет, плохому только Java помогает.

eao197 ★★★★★
()
Ответ на: комментарий от legolegs

> По сути в человеке кроме углеводородов и воды ничего нет. Всё остальное "ненужное", когда нужда таки припирает, реализуется из углеводородов и воды.

Ну вот видишь, ты уже сам всё понял! Когда в крестах понадобится иметь фичу "сердце", которой в лиспе сто лет в обед, из доступных инструментов у тебя только баллон метана, ведро воды, УФ излучение Солнца и вечность случайных мутаций впереди.

> Вот опять. Чего-то нет в плюсах. Через пять страниц вы признаете что есть, но вам всё равно не нравится :D


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

mv ★★★★★
()
Ответ на: комментарий от eao197

> Все проще: у хорошего программиста и на C++ программы работают. У плохого -- нет, плохому только Java помогает.

Я понял! С ними нельзя общаться без волшебных заклинаний 'class A: public B, C', 'template<typename T>' и прочих. Без них они уже и русский текст не вопринимают, даже который сами строчкой выше и процитировали.

kemm
()
Ответ на: комментарий от eao197

> Лично мне тогда C++ нахер был бы не нужен в данный момент. Программировать что-то более-менее сложное без исключений, наверное, возможно, то очень сложно.

Есть такое понятие как "базовая гарантия безопасности". Есть еще строгая. Так вот, базовая гарантия во многих современных языках обеспечивается "из-коробки". В плюсах об этом еще надо позаботиться. Что-то у меня большые сомнения, что все, использующие эксепшены в плюсах, пишут безопасный код. Я даже сомневаюсь, что в учебниках начального и среднего уровня об этом упоминается, а Саттера читают далеко не все. Даже в продкшен коде может быть куча скрытых ошибок в обработке исключений. Это такая фича языка - иметь кучу подводных и далеко неочевидных камней.

dave ★★★★★
()
Ответ на: комментарий от kemm

> Я понял! С ними нельзя общаться без волшебных заклинаний 'class A: public B, C', 'template<typename T>' и прочих. Без них они уже и русский текст не вопринимают, даже который сами строчкой выше и процитировали.

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

Правильно я изложил вашу точку зрения или что-то упустил?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Ты правильно изложил точку зрения своего воображаемого оппонента, но лучше бы ты это делал на своем воображаемом ЛОРе.

kemm
()
Ответ на: комментарий от dave

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

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

А сохранение инвариантов нигде в мейнстриме не обеспечивается из коробки.

> Даже в продкшен коде может быть куча скрытых ошибок в обработке исключений.

Что очень хорошо доказывают большие системы на Java. Уж там обработчики исключений написаны так, что лучше уж не писали бы совсем.

> Это такая фича языка - иметь кучу подводных и далеко неочевидных камней.

Офигенное открытие. Которому лет двадцать уже. Если есть возможность плюсы не использовать, их не используют. Если нет такой возможности, то оказывается, что альтернативы им нет.

Если есть желающие писать высокопроизводительный и кроссплатформенный софт на OCaml -- путь пробуют, потом пусть расскажут, если здоровье позволит. У остальных выбор остается только между Java и C++.

eao197 ★★★★★
()
Ответ на: комментарий от kemm

> Ты правильно изложил точку зрения своего воображаемого оппонента, но лучше бы ты это делал на своем воображаемом ЛОРе.

Только после вас.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

> Что очень хорошо доказывают большие системы на Java. Уж там обработчики исключений написаны так, что лучше уж не писали бы совсем.

У меня был положительный опыт. Обработчик исключений в Java используются очень часто. А вот в плюсах есть некоторая вероятность, например, поиметь утечку памяти или еще что-нибудь. Как я понимаю, многие в плюсах опасаются использовать исключения. Из-за их побочных эффектов.

> Если есть возможность плюсы не использовать, их не используют. Если нет такой возможности, то оказывается, что альтернативы им нет.

С этим я вполне согласен. Только не всегда правильно дается ответ, есть такая возможность или нет. И еще почему-то некоторые считают, что если программа написана на плюсах, то она непременно будет эффективной... Хотя это еще большой вопрос.

> Если есть желающие писать высокопроизводительный и кроссплатформенный софт на OCaml -- путь пробуют, потом пусть расскажут, если здоровье позволит. У остальных выбор остается только между Java и C++.

Многие выбирают межде тем, что знают. Вот, я, например, только неделю назад начал изучать OCaml и Haskell. Мне понравилось. Хотя должен признать, что функциональщина вряд ли станет мейнстримом и заменит императивщину. Но это нисколько не помешает лично мне использовать такие языки в своих проектах.

dave ★★★★★
()
Ответ на: комментарий от dave

> Как я понимаю, многие в плюсах опасаются использовать исключения.

А вот я не понимаю. Однозначно есть области, где исключения принципиально не используются (embedded, hardcore real-time, разработка игр для специфических платформ) -- там даже не всегда поддержка исключений есть в компиляторах. Но вне этих областей есть прямо таки маниакальное, ничем не объяснимое нежелание использовать исключения. И C++ здесь не очень причем, проблема в головах, я думаю.

> Многие выбирают межде тем, что знают.

Далеко не все. Многие выбирают из того, что есть вообще. И оказывается, что инструментов для того же OCaml-а по сравнению с C++ кот наплакал. Т.е. язык, может быть и хороший (но сильно на любителя имхо, к тому же не чисто функциональны), но вот с отладчиками, средствами разработки, профайлерами, библиотеками, документацией, доступными на рынке труда разработчиками, да и с качественной поддержкой разных платформ ситуация гораздо хуже.

Т.е. писать маленький проект в одиночку, под одну платформу, для какой-то конкретной задачи -- OCaml и Haskell сейчас вполне привлекательны. Но увеличте команду до 10 человек, перенесите свой продукт на несколько платформ и ситуация серьезно изменится.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

> Но вне этих областей есть прямо таки маниакальное, ничем не объяснимое нежелание использовать исключения. И C++ здесь не очень причем, проблема в головах, я думаю.

Желание иметь специальный flow control для критических ситуаций легко объясним: гораздо легче читается тот код, где описана только логика нормального поведения, без ведра проверяющего говна на каждую ложку кода, а перехват и обработка ошибок вынесены в другое место. В плюсах оно плохо сделано, поэтому так неудобно и травмоопасно в использовании. А вот в том же Коммон Лиспе концепция кондишенов и рестартов - это определённо кусок торта ;)

mv ★★★★★
()
Ответ на: комментарий от kemm

>по скорости другие языки уже вплотную подобрались...

Хаха. 30-40% -- это у нас уже "вплотную" называется? Про петоны вообще молчу.

linuxfan
()
Ответ на: комментарий от eao197

> Но увеличте команду до 10 человек,

Для Окамла должен быть довольно большой проект, чтобы потребовалось сразу 10 программистов. Впрочем, когда код из-за наличия высокоуровневых абстракций легче читается, да плюс сами окамлщики пока люди с интеллектом выше среднего, проблем с расширением тима с техническо-социальной точки зрения не будет.

> перенесите свой продукт на несколько платформ и ситуация серьезно изменится.


Плюсы здесь выживают исключительно из-за чрезвычайно широкой распространённости gcc. Была бы кучка вендорозалоченных компиляторов - был бы ад.

К тому же, окамл имеет нативный кодогенератор для множества платформ, а там, где не имеет, всё ещё может в своей виртуальной машине исполняться. Haskell, как было показано в этом сраче, компилируется через Си. Ocaml, по моему мнению, вообще крайне удачная замена для плюсов: это ещё не такой брейн фак для среднего крестоваятеля, как хаскелль, но уже и не джаво-кресты.

mv ★★★★★
()
Ответ на: комментарий от mv

> ... и вечность случайных мутаций впереди.

Если твои программы являются результатом случайной долбежки жопы о клавиатуру, не следует думать, что остальные пишут код подобным образом. В C++ ты получаешь ровно то, что пишешь. Проблема большинства быдлокодеров в том, что они не понимают того, что пишут.

linuxfan
()
Ответ на: комментарий от linuxfan

> Если твои программы являются результатом случайной долбежки жопы о клавиатуру, не следует думать, что остальные пишут код подобным образом. В C++ ты получаешь ровно то, что пишешь. Проблема большинства быдлокодеров в том, что они не понимают того, что пишут.

Я про то же самое. Ты споришь о том, чего не знаешь. Я знаю, поэтому твои нелепые отмазки выглядят просто глупо.

Hjorn правильно описал твою поведенческую реакцию: http://www.linux.org.ru/jump-message.jsp?msgid=4088836&cid=4140709

mv ★★★★★
()
Ответ на: комментарий от linuxfan

>>по скорости другие языки уже вплотную подобрались...

>Хаха. 30-40% -- это у нас уже "вплотную" называется? Про петоны вообще молчу.

На плюсы бесполезно похерено столько человеколет по сравнению теми же с Хаскилем и Окамлом с их небольшими коммунити что плюсофилам про это лучше всего заткнуться на эту тему.

Absurd ★★★
()
Ответ на: комментарий от linuxfan

> Хаха. 30-40% -- это у нас уже "вплотную" называется?

Я так понимаю, ты уже готов предоставить подтверждение бредней, что окамл сливает gcc в 6 раз, а icc -- в 36? Просим!

> Про петоны вообще молчу.

Тебя каждую ночь насилует толпа питоновцев? Я никак иначе не могу объяснить страсть постоянно упоминать питон в этой теме. Никто, кроме тебя, о нём тут не заикался, если ты ещё не заметил.

kemm
()
Ответ на: комментарий от Waterlaz

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

Что значит "дружелюбный"? Или ты из секты гей-программистов на макбуках в кафешках?

linuxfan
()
Ответ на: комментарий от mv

>Ocaml, по моему мнению, вообще крайне удачная замена для плюсов: это ещё не такой брейн фак...

http://www.podval.org/~sds/ocaml-sucks.html

> ...не такой брейн фак для среднего крестоваятеля, как хаскелль, но уже и не джаво-кресты.

У тебя какая-то тайная обида на фигурные скобки чтоли? Самое ужасное -- это имена шаблонных типов в сообщениях об ошибках.

linuxfan
()
Ответ на: комментарий от mv

>Hjorn правильно описал твою поведенческую реакцию

Я уже неоднократно намекал в этом треде, что память -- фигня. А вот то, что у скриптовиков временами начинают утекать соединения с базой и прочие вещи, которые надо освобождать ручками, не лечится никак кроме живительной эвтаназии разжиженного сборщиком мусора мозга.

От хорошей жизни чтоли всевозможные with-open-file появились? Это копирование той же идеологии RAII, потому что она оказалась на удивление практичной.

linuxfan
()
Ответ на: комментарий от linuxfan

> http://www.podval.org/~sds/ocaml-sucks.html

Какой забавный хомячок... Он не прочитал даже первое предложение по ссылке, которую указал в подтверждение своего мнения? 8)))

> Caveats:

> 1. Make no mistake: Java/C/C++/C#/Perl are much worse than OCaml! There appears to be just one good tool, with OCaml coming a distant second.

> 2. I know a few very smart people who love OCaml, so my personal opinion that OCaml sucks does not mean that you will not love it.

> 3. One should try OCaml (or, better yet, Haskell) even if you think it sucks and you are not planning to use. Without it, your Computer Science education is incomplete, just like it is incomplete without some Lisp and C (or, better yet, Assembly) exposure.

kemm
()
Ответ на: комментарий от kemm

>Никто, кроме тебя, о нём тут не заикался, если ты ещё не заметил.

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

При том, что я держу дома Vuze для торрентов, я не испытываю абсолютно никакого неудобства от полного отсуствия хацкиля и окамля в системе. Единственный скриптовый язычок, на котором написано хоть что-то полезное -- это петун. Остальное -- академическая изотерика, не имеющая никаких точек пересечения с объективной реальностью.

linuxfan
()
Ответ на: комментарий от linuxfan

А, это у тебя в голове толпы питонофилов, понятно... Только мы-то тут при чём?

kemm
()
Ответ на: комментарий от linuxfan

> http://www.podval.org/~sds/ocaml-sucks.html

Я даже побоюсь вводить в строку поиска гуглю: "C++ sucks"...

> У тебя какая-то тайная обида на фигурные скобки чтоли? Самое ужасное -- это имена шаблонных типов в сообщениях об ошибках.


Со скобками у меня проблем, очевидно, нет =) Самое ужасное в треде - наличие людей, которые отрицают всё, кроме одного сравнительно примитивного языка.

mv ★★★★★
()
Ответ на: комментарий от linuxfan

Ты забыл ответить на первый вопрос (уже примерно в сотый раз). Я его напомню:

> Я так понимаю, ты уже готов предоставить подтверждение бредней, что окамл сливает gcc в 6 раз, а icc -- в 36?

kemm
()
Ответ на: комментарий от kemm

Не имею привычки предварительно цензурить статью и выдавать линк на зацензуренный вариант. То, что статья написана лиспотроллем со врожденной нелюбовью ко всему, что вытеснило его любимые скобки, не делает окамль менее убогим.

linuxfan
()
Ответ на: комментарий от linuxfan

> Я уже неоднократно намекал в этом треде, что память -- фигня. А вот то, что у скриптовиков временами начинают утекать соединения с базой и прочие вещи, которые надо освобождать ручками, не лечится никак кроме живительной эвтаназии разжиженного сборщиком мусора мозга.

Ну у вас периодически память просто так течёт, плюс код сегфолтится, что с того? Утечка памяти в не-managed средах и сторонних ресурсов в managed - это одна и та же человеческая проблема, на самом деле.

> От хорошей жизни чтоли всевозможные with-open-file появились? Это копирование той же идеологии RAII, потому что она оказалась на удивление практичной.


Ты ещё скажи, что RAII в крестах изобрели =)

mv ★★★★★
()
Ответ на: комментарий от mv

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

> да плюс сами окамлщики пока люди с интеллектом выше среднего

И это C++ников здесь обвиняют в завышенном самомнении.

> Плюсы здесь выживают исключительно из-за чрезвычайно широкой распространённости gcc.

Есть мнение, что Linux и BSD выживают исключительно из-за черезвычайно широкой распространенности gcc.

eao197 ★★★★★
()
Ответ на: комментарий от mv

>Я даже побоюсь вводить в строку поиска гуглю: "C++ sucks"...

Со скобками у меня проблем, очевидно, нет =) Если только с круглыми. От угловых (<>) ты побежишь, как черт от ладана.

>Самое ужасное в треде - наличие людей, которые отрицают всё, кроме одного сравнительно примитивного языка.


Самое ужасное -- наличие в треде людей, которые пихают свои окалехацкили, петуны и прочее говно во все щели. Пишите на них лабы или подручные скрипты -- я не против, но пихать эти недоязыки в серьезные задачи и говорить с умным видом: "Отстаем на 40% -- херня! Это же не 36 раз." -- это полный 3.14здец и деградация сознания.

linuxfan
()
Ответ на: комментарий от eao197

> И это C++ников здесь обвиняют в завышенном самомнении.

Ты не чувствуешь разницы между высказыванием "окамлщики пока люди с интеллектом выше среднего" и своим "не любишь плюсы -- херовый программист"?

kemm
()
Ответ на: комментарий от dave

> Хотя должен признать, что функциональщина вряд ли станет мейнстримом и заменит императивщину.

Не заменит, но дополнит существенно. Пусть и не в чистом виде. Вот повсеместное прониковение HOF - это уже big win. Мне когда то давно полюбился перл именно из-за удобства функциональной декомпозиции. Хотя я тогда ни о какой функциональщине даже не подозревал. Позже я зачитал до дыр "Higher Order Perl". Там столько интересных ФП-техник прорабатывается, и всё это в рамках совершенно мейнстримного быдлоязыка. Средний perl-кодер даже не подозревает, какая выразительная мощь у него под руками. И в С++ тоже есть мощные выразительные средства, только немного из другой оперы (параметрический полиформизм). Всё же не такой уж это безнадёжный язык, как пытаются представить. Хотя тот же окамль кажется на порядок проще, это да. Смысл поста в том, что сейчас можно вовсю тащить фишки ФП в быдлоязыки и иметь профит, пусть даже хаскель с окамлем никогда не станут мейнстримом. А то глядишь, F# переведут из статуса экспериментального в промышленный, и вот вам "сбылась мечта идиота".

Hjorn
()
Ответ на: комментарий от linuxfan

Вызовите к нему кто-нибудь госнаркоконтроль, а?

kemm
()
Ответ на: комментарий от eao197

> И это C++ников здесь обвиняют в завышенном самомнении.

Куда деваться, это естественный эффект обладания чем-то социально значимым... Например, студент произносит слово "птушник" с нескрываемым лёгким презрением, потому что он, в отличие от птушника, проходит через несколько лет дополнительного мозгоё...ва. Специалист со стажем с нескрываемым превосходством говорит о "студиотах". Изучение Окамла после крестов включает в себя знакомство с новыми абстракциями, что требует определённого напряжения мозга (качественно другого рода, чем поиск банальных утечек памяти), поэтому окамлщик имеет такое же право на социальный артефакт в виде повышенного ЧСВ. И т.д., и т.п.

mv ★★★★★
()
Ответ на: комментарий от mv

>Ты ещё скажи, что RAII в крестах изобрели =)

RAII в крестах воплотили. А в каких еще языках это сделано? C -- нет, Pascal -- нет, Lisp -- нет, Java -- нет, Python -- нет, Haskell -- нет, Ocaml -- видимо, тоже нет.

>Ну у вас периодически память просто так течёт, плюс код сегфолтится, что с того?

Ты может не читал тред, но там выше хацкилевское поделие падало с невнятным бормотанием о том, что не нашло подходящего шаблона, если не передать два параметра командной строки.

Утекание памяти и сегфолты -- это миф. Такое происходит в руках людей, которые бы хоть на энтерпрайзной жабе текли соединениями с БД и вылетами с unhandled exception'ами.

linuxfan
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.