Здравствуйте, Артём, Вы писали:
Аё>Похоже, питон так не может. Но никто не мешает установить параллельно старую версию питона. Гемор, не спорю.
Это не только гемор, но и рост технического долга.
N>>Нет, я пишу приложения/библиотеки/сервисы, которые оптимизированы под конкретный инстанс Аё>Т.е. пишешь монолит.
Здравствуйте, Артём, Вы писали:
S>>К простому точно не приведет, мы же в C++, здесь просто не бывает. Ну вот вообще никогда
Аё>И это imho причина маргинализации C++.
Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач. А именно тех, где сочетается высокая сложность самой задачи с высокими требованиями к производительности/эффективности и/или тесной интеграцией с системой (что, как правило, автоматически прикладывается к высоким требованиям по производительности).
Другое дело, что это совпало с необходимостью массово разрабатывать новый софт для новых платформ в конце 1980-х и в 1990-х, а эти самые новые платформы не могли похвастаться производительностью, чтобы нормально тянуть софт на каком-нибудь Smalltalk или Lisp. Низкая мощность тогдашних персоналок и мини-компьютеров как раз и перевела большинство задач именно в эту нишу. Добавим сюда еще и то, что 1980-е и 1990-е -- это расцвет десктопа, для разработки которого ООП оказался более чем удачным, а C++ был одним из немногих нативных+эффективных языков, который это самое ООП более чем прилично поддерживал.
К началу 2000-х мощность ПК выросла уже достаточно для того, чтобы условная Java перестала тормозить. Поэтому с начала 2000-х начался закономерный отток из C++. Который усугубился еще и 15 годами застоя в развитии самого языка.
Ну а сейчас C++ вполне себе живет там, где он и должен был бы жить всегда. И конкуренцию ему составляет пока что чистый Си и, местами, Rust.
Аё>Т.е. того, что в нем остались лишь маргиналы.
Ты не представляешь, как это хорошо, когда в плюсах нет персонажей вроде тебя. Правда, природа еще не настолько очистилась, подобные тебе еще встречаются и гораздо чаще, чем хотелось бы.
Здравствуйте, night beast, Вы писали:
NB>потому в последнее время и посматриваю на раст.
Года с 2013 придерживаюсь мнения, что для меня важен не столько язык, сколько предметная область и задача. Если задача интересная, то под нее можно и другой инструмент задействовать. Хотя, конечно, от того же чистого Си все-таки хотелось бы держаться как можно дальше
NB>но сейчас в основном работа на питоне идет, так что руки не доходят.
По нынешним временам если работа вообще идет, то это уже более чем хорошо. Не всем так везет
Здравствуйте, so5team, Вы писали:
S>Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач.
Это неправда. C++ появился, как прикладной системный язык- как C, но с классами как у Smalltalk. У C хорошая производительность, у Smalltalk плохая. C с классами продавал идею на елку залезть, и не ободраться. Тогда не было альтернатив, а теперь альтернатив просто дофига. Начиная с легаси уже жавы, которую оч давно JVM довели производительность до сравнимой с C, потом V8 который догнал JVM, и Go, который компилируемый, быстрый, и без вывиха мозга сиплюсного. А еще Clojure / ClojureScript, хотя это не попсовый язык.
Здравствуйте, Артём, Вы писали:
Аё>Точно также при компиляции приходится лочить версию компилятора. Потому что при апгрейде компилятора, ненулевая вероятносиь что что-то отвалится.
Вот уже какая версия CLang меняется и всё никак не начнёт отваливаться
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Артём, Вы писали:
S>>Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач.
Аё>Это неправда.
Очень надеюсь, что ты сможешь объяснить что именно неправда.
Аё>C++ появился, как прикладной системный язык- как C, но с классами
Именно это -- "прикладной системный язык" -- и есть язык для очень узкого спектра задач, далее смотри по тексту. Для более широкого спектра есть просто прикладные языки. Или чисто системные (к коим можно отнести чистый Си, Modula-2 и Ada-95, а сейчас еще и Rust).
Аё>как у Smalltalk.
Как у Simula, если быть точным.
Аё>У C хорошая производительность, у Smalltalk плохая. C с классами продавал идею на елку залезть, и не ободраться.
Чем это противоречит тому, что я говорил выше?
Аё>Тогда не было альтернатив
Были. Если брать нативные языки с поддержкой ООП и высокой производительностью, то в 1980-х появились (из тех, что я знаю): Eiffel, ObjectPascal (ставший в 1990-е популярным в виде диалекта Delphi), Objective-C (вот уж где пытались скрестить производительность Си с классами из SmallTalk-а), Modula-3 (не взлетел), Oberon (до сих пор является фетишем для истинных верующих).
Если не требовать ООП, то были Pascal, Modula-2 и Ada-83/95.
Так что C++ был не единственным и уж точно он не был однозначным лидером. А с учетом того, что первую версию Windows начинали писать на Pascal и C++ проник в системную разработку в Microsoft в начале 1990-х, т.е. лет на 5-6 позже, то у какого-нибудь TurboPascal в 1980-х шансов стать мейнстримом на ПК было не меньше.
Аё>Начиная с легаси уже жавы, которую оч давно JVM довели производительность до сравнимой с C, потом V8 который догнал JVM, и Go, который компилируемый, быстрый, и без вывиха мозга сиплюсного. А еще Clojure / ClojureScript, хотя это не попсовый язык.
Ну а теперь объясни чем это противоречит тому, что я писал выше. И где же я сказал неправду.
Здравствуйте, so5team, Вы писали:
S>>>Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач.
Аё>>Это неправда.
S>Очень надеюсь, что ты сможешь объяснить что именно неправда.
Что еще обьяснять, когда на C++ писали вообще весь прикладной софт.
Аё>>C++ появился, как прикладной системный язык- как C, но с классами
S>Именно это -- "прикладной системный язык" -- и есть язык для очень узкого спектра задач, далее смотри по тексту.
Для всего спектра.
S>Были. Если брать нативные языки с поддержкой ООП и высокой производительностью, то в 1980-х появились (из тех, что я знаю): Eiffel, ObjectPascal (ставший в 1990-е популярным в виде диалекта Delphi), Objective-C (вот уж где пытались скрестить производительность Си с классами из SmallTalk-а), Modula-3 (не взлетел), Oberon (до сих пор является фетишем для истинных верующих).
Дельфи (паскаль) весьма сливал C++ по производительности. И ниша его была узкой- клиент к БД.
Аё>>Начиная с легаси уже жавы, которую оч давно JVM довели производительность до сравнимой с C, потом V8 который догнал JVM, и Go, который компилируемый, быстрый, и без вывиха мозга сиплюсного. А еще Clojure / ClojureScript, хотя это не попсовый язык.
S>Ну а теперь объясни чем это противоречит тому, что я писал выше. И где же я сказал неправду.
Здравствуйте, Артём, Вы писали:
S>>Очень надеюсь, что ты сможешь объяснить что именно неправда. Аё>Что еще обьяснять, когда на C++ писали вообще весь прикладной софт.
Тёмчик, актись, просто ахриненную кучу прикладного софта на ПК писали на dBase/FoxBase/Clipper, VisualBasic, Clarion, PowerBuilder, Delphi и пр. Настолько ахриненную, что C++ просто нервно курил в сторонке. И уж софт был прикладнее некуда.
S>>Именно это -- "прикладной системный язык" -- и есть язык для очень узкого спектра задач, далее смотри по тексту. Аё>Для всего спектра.
Да, для всего этого узкого спектра.
S>>Были. Если брать нативные языки с поддержкой ООП и высокой производительностью, то в 1980-х появились (из тех, что я знаю): Eiffel, ObjectPascal (ставший в 1990-е популярным в виде диалекта Delphi), Objective-C (вот уж где пытались скрестить производительность Си с классами из SmallTalk-а), Modula-3 (не взлетел), Oberon (до сих пор является фетишем для истинных верующих). Аё>Дельфи (паскаль) весьма сливал C++ по производительности.
В начале 1990-х разница в производительности между C++, C, Pascal, Modula-2 гораздо, гораздо ниже, чем в каком-нибудь 1998-ом между С++ и Java. Бенчмарков в тогдашних околокомпьютерых журналах было в избытке и результаты зависели от компилятора и задачи. Так что на фоне SmallTalk-а или Clipper-а у Pascal/Modula-2 производительность была более чем достаточная.
Аё>И ниша его была узкой- клиент к БД.
Ну что поделать, слишком поздно появился.
Аё>Неправда что C++ всегда был нишевым. Это не так.
Тёмчик, это так. А то, что ты не можешь с этим смириться -- это твои личные половые трудности.
Здравствуйте, so5team, Вы писали:
S>Тёмчик, актись, просто ахриненную кучу прикладного софта на ПК писали на dBase/FoxBase/Clipper, VisualBasic, Clarion, PowerBuilder, Delphi и пр. Настолько ахриненную, что C++ просто нервно курил в сторонке. И уж софт был прикладнее некуда.
Все перечисленное использовалось на уровне локальной организации.
S>>>Именно это -- "прикладной системный язык" -- и есть язык для очень узкого спектра задач, далее смотри по тексту. Аё>>Для всего спектра.
S>Да, для всего этого узкого спектра.
Весь десктоп на сиплюсах был. Потом MS пудрил мозг пончиком, а потом десктоп скукожился в ноль.
S>В начале 1990-х разница в производительности между C++, C, Pascal, Modula-2 гораздо, гораздо ниже, чем в каком-нибудь 1998-ом между С++ и Java.
Жава была просто ужасна, не нужно этого вот на ночь. Как жаваскрипт. А дельфи реально сливала плюсам по скорости, это хорошо помню. Как ассемблерная вставка расшила тормозную функцию с секунд до миллисекунд, и следом то же самое, на VC++ 6 без всяких вставок за миллисекунды работало.
S> на фоне SmallTalk-а или Clipper-а у Pascal/Modula-2 производительность была более чем достаточная.
На фоне улитки, да.
Аё>>И ниша его была узкой- клиент к БД.
S>Ну что поделать, слишком поздно появился.
Не поздно, напрямую конкурирлвал с VB6.
Аё>>Неправда что C++ всегда был нишевым. Это не так.
S>Тёмчик, это так. А то, что ты не можешь с этим смириться -- это твои личные половые трудности.
Ок, если ты не мог найти работу на C++ в 90-х- это твои половые трудности. В моем окружении C++ был самым таким мейнстримом.
Здравствуйте, Артём, Вы писали:
S>>Тёмчик, актись, просто ахриненную кучу прикладного софта на ПК писали на dBase/FoxBase/Clipper, VisualBasic, Clarion, PowerBuilder, Delphi и пр. Настолько ахриненную, что C++ просто нервно курил в сторонке. И уж софт был прикладнее некуда. Аё>Все перечисленное использовалось на уровне локальной организации.
А теперь подумай о количестве этих самых локальных организаций. Ну или задумайся о том, на чем же делали деньги разработчики FoxBase (и почему они были куплены MS-ом), Clarion, PowerBuilder и т.д. Если все писали на C++ (на самом деле нет), то кому они свои продукты-то продавали?
S>>Да, для всего этого узкого спектра. Аё>Весь десктоп на сиплюсах был.
Тёмчик, ну нельзя же быть настолько неспособным думать. Я же говорил, что в 1980-х/1990-х так совпало, что из-за слабости тогдашнего железа изрядная часть разработки попала в категорию "высокая сложность самой задачи с высокими требованиями к производительности/эффективности и/или тесной интеграцией с системой". Как раз в плане "высоких требований к производительности". Хотя и сложность разработки под десктоп в 1990-ом была значительно выше, чем даже в 1995-ом. Ну и плюс нужно было тесно общаться с ОС, что было проще для Си и C++, чем для других ЯП.
Но стоило только железу стать мощнее, а инструментарию для GUI продвинутее, как разработка под десктоп перестала быть сложной и требующей производительности.
Аё>А дельфи реально сливала плюсам по скорости, это хорошо помню.
Блин, ну хоть прочитать то, что я тебе пишу ты можешь? Речь идет о середине 1980-х и самом начале 1990-х, когда и C++, и Eiffel, и Objective-C, и ObjectPascal были никем и звать их было никак. Они все боролись за место под Солнцем. И производительность у них была плюс-минус одинаковая.
Это потом уже определились лидеры и в этих лидеров было вбухало немерено средств на оптимизацию компиляторов.
Когда Delphi появился в 1994-ом C++ уже был самым что ни есть мейнстримом (в своей нише) с кучей компиляторов от разных вендоров, некоторые из которых славились своими оптимизаторами и скоростью работы результирующего кода (вроде Watcom C++).
Аё>Как ассемблерная вставка расшила тормозную функцию с секунд до миллисекунд, и следом то же самое, на VC++ 6 без всяких вставок за миллисекунды работало.
Как бы Pascal всегда был более безопасным языком, чем Си и C++, там была куча проверок в run-time и для получения максимальной производительности местами требовалось играться с директивами компилятора. Тем не менее, в 1990-х в постсоветских ВУЗах Delphi широко использовался для вычислительных задач и для задач имитационного моделирования, где производительность была не на последнем месте.
Так что ты скорее вспоминаешь прохладные истории про кривизну собственных рук.
S>>Ну что поделать, слишком поздно появился. Аё>Не поздно, напрямую конкурирлвал с VB6.
Поздно для того, чтобы стать мейнстримом и захватить вообще все. Пришлось довольствоваться своей нишей. Но и этой нише многие бы позавидовали бы.
Хотя и за пределами "морды к БД" на Delphi делали разное. Первые версии Skype тому отличный пример.
Аё>Ок, если ты не мог найти работу на C++ в 90-х- это твои половые трудности. В моем окружении C++ был самым таким мейнстримом.
В 90-х я как раз таки программировал на C++, но это были специфические задачи, типа АСУТП. А вокруг было огромное количество работы на FoxBase/Clipper/VisualBasic/Delphi. Так что где-то C++ был мейнстримом, а где-то его применяли разве что для того, чтобы узкие места по производительности расшить.
Немного позанудствую ооп добавили в turbo pascal в версию 5.5 это примерно 88 год
Компилятор позволял собирать проекты в 100 тыс трое можно было. Обрата не имея hdd
Дельфиновых появилось после выхода win 3,1 думаю это 92 год
Здравствуйте, кубик, Вы писали:
S>>Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач.
К>C++ не создавался изначально для очень узкого спектра задач.
Из "Дизайн и эволюция языка C++" Страуструпа:
С++ -- это язык программирования общего назначения, цель которого -- сделать работу серьезных программистов более приятным занятием.
...остановлюсь на сильных сторонах C++:
* низкоуровневое системное программирование;
* высокоуровневое системное программирование;
* встроенные системы;
* численные и научные расчеты;
* общее прикладное программирование.
Каждый сам может оценить ширину спектра, особенно с учетом того, какое количество софта в этих же нишах разрабатывались, разрабатываются и будут разрабатываться не на C++.
Здравствуйте, so5team, Вы писали:
S>>>Причина не в этом. Причина в том, что C++ изначально создавался для очень узкого спектра задач.
К>>C++ не создавался изначально для очень узкого спектра задач.
S>Из "Дизайн и эволюция языка C++" Страуструпа:
S>
С++ -- это язык программирования общего назначения, цель которого -- сделать работу серьезных программистов более приятным занятием.
S>
...остановлюсь на сильных сторонах C++:
S>* низкоуровневое системное программирование;
S>* высокоуровневое системное программирование;
S>* встроенные системы;
S>* численные и научные расчеты;
S>* общее прикладное программирование.
Так это широкий спектр задач
Притом, из ядра, из драйверов, C++ так и не вытеснил C.
S>Каждый сам может оценить ширину спектра, особенно с учетом того, какое количество софта в этих же нишах разрабатывались, разрабатываются и будут разрабатываться не на C++. Высокоуровневое системное- типа шелл, десктопный софт- сама эта область уменьшилась в разы, все что можно и нельзя, перенесли в веб и в облака. И тоже не вытестил C++ другие языки на десктопе.
Численные рассчеты- ну давай, покажи мне датааналистов, квантов- экспертов в C++. Там питон, матлаб, R.
"общее прикладное" это что вообще? Десктоп? См. выше.
C++ остается де-факто выбор в видео-играх, для кастомизации движка. Так-то движок исполняет скриптовый язык, какой-нибудь lua.- вот на lua и питоне, игродевы и пишут игры.
Здравствуйте, Артём, Вы писали:
Аё>Так это широкий спектр задач Аё>Притом, из ядра, из драйверов, C++ так и не вытеснил C. Аё>Численные рассчеты- ну давай, покажи мне датааналистов, квантов- экспертов в C++. Там питон, матлаб, R. Аё>"общее прикладное" это что вообще? Десктоп? См. выше.
Тёмчик, ты сам в своих словах противоречий не видишь? Если что, то не стесняйся, спроси, я покажу пальцем.
Здравствуйте, CreatorCray, Вы писали:
CC>Писал на С++ в ядре ещё лет 10 назад
Только в макоси в ядре COM и C++. Можешь рассказать нам, как хорошо работают исключения и вообще стандартный рантайм C++ в ядре.