Языки, программы и так далее, Вынос из БН-800 |
Здравствуйте, гость ( Вход | Регистрация )
Языки, программы и так далее, Вынос из БН-800 |
6.12.2016, 18:18
Сообщение
#61
|
|
Ветеран форума Группа: Patrons Сообщений: 1 273 Регистрация: 23.12.2014 Пользователь №: 34 075 |
Ещё раз упомяну слова Страуструпа про C++11: "I find a higher-level style of programming more natural than before and as efficient as ever."
То есть, на C++11 можно писать в высокоуровневом стиле, но без каких либо потерь в скорости. Да и, всё те же unique_ptr/shared_ptr/weak_ptr заставляют задуматься, зачем вообще нужны простые поинтеры. Конечно, пока что ещё нужны, для non-owning применений. Но и это когда-нибудь изменится. Кстати, я нисколько не утверждаю, что управляемые языки плохи. Чем ближе к пользователю, тем выше уровень языка должен быть. -------------------- Всё это мелкая рябь на волнах экономических циклов, незаметных на приливах эпох.
Накапливать ОЯТ абсурдно для здорового человека. Если мечтать — то ни в чём себе не отказывать. 8956 |
|
|
6.12.2016, 18:28
Сообщение
#62
|
|
Ветеран форума Группа: Patrons Сообщений: 1 273 Регистрация: 23.12.2014 Пользователь №: 34 075 |
Нас всех забанят.
-------------------- Всё это мелкая рябь на волнах экономических циклов, незаметных на приливах эпох.
Накапливать ОЯТ абсурдно для здорового человека. Если мечтать — то ни в чём себе не отказывать. 8956 |
|
|
6.12.2016, 20:19
Сообщение
#63
|
|
Эксперт Группа: Уровень доступа - 2 Сообщений: 3 885 Регистрация: 9.6.2007 Из: Обнинск-Москва Пользователь №: 89 |
Я тут вас почитал, сижу, недоумеваю, как у меня система в 3 млн.строк кода на С++ вообще работает...
-------------------- С уважением
Александр Быков |
|
|
6.12.2016, 22:45
Сообщение
#64
|
|
Постоянный участник Группа: Patrons Сообщений: 3 147 Регистрация: 16.3.2011 Из: Россия, Краснодар Пользователь №: 32 291 |
Я тут вас почитал, сижу, недоумеваю, как у меня система в 3 млн.строк кода на С++ вообще работает... Александр, если не тайна сколько времени эта система в 3 млн.строк кода на С++ писалась и отлаживалась. Интересно мнение от реального разработчика. А то пишут часто, что с отладкой пары миллионов строк кода C++ можно больше времени потерять, чем потратить на написание. Сообщение отредактировал VBVB - 6.12.2016, 22:46 -------------------- "чтобы задать правильный вопрос, надо знать большую часть ответа" - Роберт Шекли
|
|
|
6.12.2016, 22:53
Сообщение
#65
|
|
Ветеран форума Группа: Patrons Сообщений: 1 510 Регистрация: 17.3.2011 Из: Russia, Moscow Пользователь №: 32 515 |
Цитата можно больше времени потерять, чем потратить на написание. это верно для любого языка -------------------- Спор - это когда обе стороны пытаются сказать последнее слово первыми
|
|
|
6.12.2016, 23:18
Сообщение
#66
|
|
Постоянный участник Группа: Patrons Сообщений: 2 427 Регистрация: 16.3.2011 Пользователь №: 32 318 |
Я тут вас почитал, сижу, недоумеваю, как у меня система в 3 млн.строк кода на С++ вообще работает... Да нормально работает, я полагаю. Отлаживать пласпласный код просто несколько более муторно, чем, скажем, тот же C#. Не знаю, уж насколько это важно для расчётных задач. |
|
|
6.12.2016, 23:46
Сообщение
#67
|
|
Эксперт Группа: Уровень доступа - 2 Сообщений: 3 885 Регистрация: 9.6.2007 Из: Обнинск-Москва Пользователь №: 89 |
Александр, если не тайна сколько времени эта система в 3 млн.строк кода на С++ писалась и отлаживалась. Интересно мнение от реального разработчика. А то пишут часто, что с отладкой пары миллионов строк кода C++ можно больше времени потерять, чем потратить на написание. Да не тайна, в общем-то. Мы в своё время в конце 90-х (ещё до меня) дали возможность паре толковых программистов полностью сосредоточиться на концепции новой платформы. На концепцию ушла пара лет, ещё несколько лет - на перенос прикладного ПО на новую платформу. Платформа и ПО, естественно, развиваются непрерывно. Естественно, баги эпизодически вылавливаем, есть "специальный человек", который занят исключительно тестированием. Но платформа построена так, что почти всё обвязано самодиагностикой, а, допустим, сигналы у нас пишутся в архивы, т.е. воспроизвести ситуацию, в которой возникает ошибка, можно достаточно легко. В общем, ребята заняты в основном не поиском и устранением ошибок, а прикладными вопросами, например, применением платформы под новые задачи, валидацией входных данных и т.п. -------------------- С уважением
Александр Быков |
|
|
7.12.2016, 11:12
Сообщение
#68
|
|
Ветеран форума Группа: Patrons Сообщений: 1 211 Регистрация: 24.8.2016 Пользователь №: 34 367 |
Вы повторяетесь, не аргументируя. И опять мешаете в кучу С и С++. По Вашей ссылке намешано вообще всё подряд: от претензий к реализации некоторых механизмов в С и претензий к ООП в принципе до анекдотов и чьих-то высказываний. По стилю - это больше похоже на политическую пропаганду в форме листовки "для своих", чем на обсуждение какого-то технического вопроса. До кучи Вы, похоже, полагаете, что Паскаль каким-то чудом не подпадает _под ту же самую_ критику и почему-то думаете, что он пригоден для реализации современных больших проектов и/или как замена С++. Образно говоря, Вы в 2016-м году критикуете паровоз, сидя на телеге. А я тут - как коммивояжер, втирающий про преимущества маглева человеку, который ненавидит и боится паровозы, как-то испачкавшись мазутом в одном из них. Ваша позиция понятна. Чтобы она изменилась Вам должен попасться большой проект (много кода, десятки человек в команде, большой жизненный цикл кода), чтобы Вас сама жизнь выбила из зоны комфорта и сложившихся ощущений. Вы меня переубедить не можете в принципе, но уже по другим причинам. Поэтому разговор как-то не складывается... Подытоживая свою... гм... точку зрения: а) почти вся критика С/С++ переносима и на Паскаль/его наследников (добавляясь к их собственным недостаткам), разумеется не мешая всё в кучу: С - к Паскалю, а С++ - всё же сравниваем с его наследниками; б) у С++ - была/есть масса сильных сторон, которых Вы не видите и/или не понимаете(и которых у того же Паскаля нет), он быстро стал индустриальным стандартом вовсе не просто так (и это НЕСМОТРЯ на то, что Паскаль для многих язык первичного обучения, выбор и усилия по переходу люди принимали сознательно); в) С++ понемногу уходит из индустрии, времена меняются; например, сейчас во многих случаях дешевле платить накладные расходы рантайм того же сборщика мусора, чем мучаться с потенциальными проблемами аллокации памяти, и это лишь один пример из очевидного. 1) Претензии к утверждению, что с и с++ являются языками высокого уровня, коими они не являются 2) Стандарт на С еще может и быть, а вот на С++ - какой это стандарт, если на выходе код работает как карта ляжет? Я это не теоретически говорю, а с практической точки зрения, ибо сам столкнулся. 3) Для программирования критического кода инструмент должен быть прямой как железная дорога, а не плутать по лесным тропинкам по лесу. Т.е. логика должна просматриваться в одном файле, а не размазана по разным. Претензия к С/С++ в том, что при компиляции получается неоднозначный код и результат (опять же в зависимости от настроек директив компилятора). Этого что мало? Этого уже достаточно, чтобы поставить крест на С++ как инструмента для написания критического программного обеспечения. Про Паскаль, тот который FPC. Он развивается, выходят новые релизы. Мне он очень нравится. Я сейчас на нем пишу. Так как он делается на базе С , то в коде можно переключаться и делать вставки как на Асме, так и на чистом С. Почему пересел с Delphi на Lazarus? Переносимость кода на Линукс. Если пишешь на Паскале получаешь логически чистый код, ибо код читается и компилируется однозначно. ДА, может нет того богатого инструментария - а он нужен для прикладников? Может это наоборот благо, а не беда. Если смотреть на объем кода, который генерирует Lazarus (которым так любят хвастаться Сишники), если это очень критично, то вместо LCL библиотек можно задействовать KOL, тем более, что Lazarus это позволяет. Так что Lazarus/FPC очень даже современный мощный инструмент высокого уровня, который может спокойно заменить С++, без ущерба (а то и где-то даже обставив) за счет меньшей трудоёмкости при отладке. А то, что вместо С++, начинают использовать Java и С# - это признак того, что не всё так сладко с С++. |
|
|
7.12.2016, 11:44
Сообщение
#69
|
|
Эксперт Группа: Уровень доступа - 2 Сообщений: 3 885 Регистрация: 9.6.2007 Из: Обнинск-Москва Пользователь №: 89 |
Superwad, простите, от директив компиллятора будет зависеть генерация любого кода из исходников. По поводу "логики в одном файле" - бейте код на элементарные функции с обвязкой при падении, выдерживайте логику проекта и будет Вам счастье.
Сам пишу на Паскале, но я то пишу коротенькие программки, состоящие из пары модулей и десятка функций максимум. В код в логике проекта переводят уже программисты, и вот как раз их код вполне читаем, хотя я на С++ и не пишу... И ещё одно. По поводу исполнения стороннего кода. Мы сознательно в проекте отказались от использования большей части сторонних API - именно там зарыта неоднозначность исполнения, ребята пишут всё сами. Зато это даёт очень неплохую кроссплатформенность - система работает под несколькими версиями Винды и Линукса. Частичное использование "сторонних" dll остаётся, в основном, потому, что "наука" пишет преимущественно на фортране и переучить её очень сложно, приходится жёстко оговаривать директивы компиллятора фортрана, чтобы dll-ка подхватывалась без сбоев. Но и тут мы потихоньку приходим к общему знаменателю, когда практически все входные/выходные параметры передаются в качестве параметров функций, а не через коммон-блоки, а ребята генерят исполняемый код для разных сортов топлива уже в двух вариациях: в фортрановский и сишный исходники (для математики это оказалось совсем не сложно)... -------------------- С уважением
Александр Быков |
|
|
7.12.2016, 15:04
Сообщение
#70
|
|
Постоянный участник Группа: Patrons Сообщений: 2 427 Регистрация: 16.3.2011 Пользователь №: 32 318 |
1) Претензии к утверждению, что с и с++ являются языками высокого уровня, коими они не являются 2) Стандарт на С еще может и быть, а вот на С++ - какой это стандарт, если на выходе код работает как карта ляжет? Я это не теоретически говорю, а с практической точки зрения, ибо сам столкнулся. 3) Для программирования критического кода инструмент должен быть прямой как железная дорога, а не плутать по лесным тропинкам по лесу. Т.е. логика должна просматриваться в одном файле, а не размазана по разным. Претензия к С/С++ в том, что при компиляции получается неоднозначный код и результат (опять же в зависимости от настроек директив компилятора). Этого что мало? Этого уже достаточно, чтобы поставить крест на С++ как инструмента для написания критического программного обеспечения. Про Паскаль, тот который FPC. Он развивается, выходят новые релизы. Мне он очень нравится. Я сейчас на нем пишу. Так как он делается на базе С , то в коде можно переключаться и делать вставки как на Асме, так и на чистом С. Почему пересел с Delphi на Lazarus? Переносимость кода на Линукс. Если пишешь на Паскале получаешь логически чистый код, ибо код читается и компилируется однозначно. ДА, может нет того богатого инструментария - а он нужен для прикладников? Может это наоборот благо, а не беда. Если смотреть на объем кода, который генерирует Lazarus (которым так любят хвастаться Сишники), если это очень критично, то вместо LCL библиотек можно задействовать KOL, тем более, что Lazarus это позволяет. Так что Lazarus/FPC очень даже современный мощный инструмент высокого уровня, который может спокойно заменить С++, без ущерба (а то и где-то даже обставив) за счет меньшей трудоёмкости при отладке. А то, что вместо С++, начинают использовать Java и С# - это признак того, что не всё так сладко с С++. 1) Вы опровергаете мнение всего мира авторитетной ссылкой на самого себя. Методологически это очень неверный подход. В науке и технике это прокатывает исключительно редко и только при исключительно репутации человека в данной области. 2) О, блин... я-то думал, при каком-то сложном портинге вылезла какая-то нетривиальная разница между тулчейнами... А, оказывается, Вы обиделись на мир после того, как лично накосячили с опциями компиляции. Ну, что тут можно сказать? Не хочу Вас пугать, но если Вы выберетесь из своей песочницы, Вы можете столкнуться не только со своими косяками, но и с реальными проблемами. Даже это - не проблема _языков,_ но чтоб объяснить это, Вас нужно вытащить из песочницы и ваших игрушек к взрослым дядям с игрушками посложнее. 3) У Вас в руках три кубика стандартных библиотек и Вы можете их свободно переносить из песочницы в песочницу. Представьте себе, что мир не исчерпывается песочницами, а машины - состоят из частей сложнее, чем ровный гладкий кубик. Что Вы будете делать, если потребуется заставить Ваш код прямо завтра работать на MIPS или, блин, том же Эльбрусе-4? Выравнивание элементов? Внезапный big-endian? Процессор не поддерживает побайтовую индексацию, а у Вас всё построено на строках? Вы полагаете, что дяди за Вас решат ВСЕ проблемы так, чтоб Вы даже не задумывались о том, куда и что Вы компилируете? Нет, вот тут и возникают всякого рода настройки и опции, кнопочки и переключатели, кои Вы, не разобравшись в том, зачем они, ничтоже сумняшися назвали недостатком и нестандартностью. Вы ударную дрель видели? Вот она, если ударник включить - тоже непредсказуемо мешает сверлить деревяшки. Нестандарт. Не то, что Вы от дрели ожидали. Игры в песочнице подразумевают гладкие кубики с ровными гранями удобных размеров, для Вас их умные дяди вырезали и отполировали, подогнав соразмерно песочнице. Вы даёте советы дядям, о том, как нужно конструировать машины из этой песочницы на примере этих пирамидок. А у дядей кубики к друг другу не подходят, клей отваливается, и резьбу приходится нарезать самостоятельно по месту, и так, чтобы метрическая работала с дюймовой. Вы вообще представляете себе, на КАКОМ разнообразии машин и окружений работает С/С++? Нет? Ну что ж Вы говорите всякие глупости-то про то, что у Вас любые два кубика из трёх друг другу подходят один в один предсказуемо? Вот Ява изначально задумана переносимой. Очень умные дяди сильно подумали, крепко выругались, плюнули и изобразили для этого машинно-независимый байт-код и стековую машину. Не только поэтому, конечно... Но и проблем переносимости хватило. Конечно, с С++ всё не идеально. Далеко всё не идеально. Конечно, с# и Ява появились не просто так. Но как я уже говорил, все проблемы неуправляемого кода применимы к наследникам Паскаля в полной мере. По Вашим же словам, Вы с ними не сталкивались, и даже не представляете пока тех проблем, из-за которых люди переходят на c#. Значит Ваши программы слишком простые и маленькие для этого - и это хорошо. Но зачем тогда Вам "точка зрения" и votum separatum в вопросе, который перед Вами никогда даже не вставал? Вот это непонятно. Сообщение отредактировал Татарин - 7.12.2016, 18:16 |
|
|
7.12.2016, 23:20
Сообщение
#71
|
|
Эксперт Группа: Patrons Сообщений: 1 444 Регистрация: 8.4.2010 Пользователь №: 5 621 |
скорее бы пришел лесник...
|
|
|
7.12.2016, 23:24
Сообщение
#72
|
|
Ветеран форума Группа: Patrons Сообщений: 1 510 Регистрация: 17.3.2011 Из: Russia, Moscow Пользователь №: 32 515 |
в кои-то веки я не влез в этот срач)
-------------------- Спор - это когда обе стороны пытаются сказать последнее слово первыми
|
|
|
8.12.2016, 0:38
Сообщение
#73
|
|
Частый гость Группа: Haunters Сообщений: 341 Регистрация: 18.3.2011 Из: Калифорния Пользователь №: 32 567 |
|
|
|
8.12.2016, 0:41
Сообщение
#74
|
|
Ветеран форума Группа: Patrons Сообщений: 1 510 Регистрация: 17.3.2011 Из: Russia, Moscow Пользователь №: 32 515 |
ждите терпеливо. ик
-------------------- Спор - это когда обе стороны пытаются сказать последнее слово первыми
|
|
|
8.12.2016, 2:10
Сообщение
#75
|
|
Частый гость Группа: Haunters Сообщений: 265 Регистрация: 28.7.2014 Пользователь №: 34 017 |
|
|
|
8.12.2016, 12:20
Сообщение
#76
|
|
Ветеран форума Группа: Patrons Сообщений: 1 211 Регистрация: 24.8.2016 Пользователь №: 34 367 |
Superwad, простите, от директив компиллятора будет зависеть генерация любого кода из исходников. По поводу "логики в одном файле" - бейте код на элементарные функции с обвязкой при падении, выдерживайте логику проекта и будет Вам счастье. Сам пишу на Паскале, но я то пишу коротенькие программки, состоящие из пары модулей и десятка функций максимум. В код в логике проекта переводят уже программисты, и вот как раз их код вполне читаем, хотя я на С++ и не пишу... И ещё одно. По поводу исполнения стороннего кода. Мы сознательно в проекте отказались от использования большей части сторонних API - именно там зарыта неоднозначность исполнения, ребята пишут всё сами. Зато это даёт очень неплохую кроссплатформенность - система работает под несколькими версиями Винды и Линукса. Частичное использование "сторонних" dll остаётся, в основном, потому, что "наука" пишет преимущественно на фортране и переучить её очень сложно, приходится жёстко оговаривать директивы компиллятора фортрана, чтобы dll-ка подхватывалась без сбоев. Но и тут мы потихоньку приходим к общему знаменателю, когда практически все входные/выходные параметры передаются в качестве параметров функций, а не через коммон-блоки, а ребята генерят исполняемый код для разных сортов топлива уже в двух вариациях: в фортрановский и сишный исходники (для математики это оказалось совсем не сложно)... 1) Я писал, что логика в С++ размазана по двум файлам .с и .h. Чтобы восстановить логику нужно анализировать сразу два файла. Это хорошо для диверсантов - тот кто будет анализировать - психушка обеспечена 2) Ссылку что я приводил, разные люди(не мое мнение!), пишут об очень большой сложности С++ и неоднозначности работы полученного кода. Язык С вообще пишут, что это низкоуровневый, создан для улучшения написания системных вещей вместо Асма. 3) Если начать бить код на блоки (ибо это разумно, т.н. unix-way принцип), то... получаем Паскаль с его модульной структурой. 4) Насчет сторонних библиотек - просто привел пример, как написанная на С++ библиотека неоднозначно вызывалась из Паскаля из-за неработающего механизма вызова из вне перегружаемых функций, ибо эта вещь не зависит от настроек компилятора (хотя и это тоже может зависит - я решил проблему через функцию-прокладку и директиву компилятора этой функции-прокладки использовать только чистый синтаксис С), а зависит от конкретной реализации С++ компилятора (привет стандартизации!). На бумаге все красиво, на деле как с забором - на заборе написано три буквы, а за ним дрова лежат. Так и тут ситуация. 5) Я стараюсь задачи выносить в разные программы - так удобнее и быстрее компилировать на старом компьютере (то что есть на работе). "Правильно готовить программу на С++" (с) Татарин - у меня просто нет на это лишнего времени, мне надо сразу нормально работающий код с минимальными затратами. Поэтому использую бритву Оккамы, я выбираю более простое решение, тем более что результат то получается один, а затраты то разные. Вот, соприкоснувшись с таким поведением кода и расхлябанностью программистов с высоты своей колокольни и говорю, что с++ надо пристрелить на подступах, ибо нужны решения которые дадут однозначно правильный результат при ЛЮБЫХ условиях, а не только при "правильном" приготовлении. ЗЫ. "Если бы программисты были строителями, то случайно залетевший дятел в город привел бы к гибели цивилизацию" (с) Народное. |
|
|
8.12.2016, 20:50
Сообщение
#77
|
|
Новичок Группа: Haunters Сообщений: 93 Регистрация: 16.3.2011 Из: Санкт-Петербург Пользователь №: 32 410 |
1) Я писал, что логика в С++ размазана по двум файлам .с и .h. Чтобы восстановить логику нужно анализировать сразу два файла. Это хорошо для диверсантов - тот кто будет анализировать - психушка обеспечена Уважаемый Superwad, огромная к Вам просьба: пожалуйста, дождитесь, когда лесник вернётся из своего леса и выделит обсуждение языков программирования в отдельную тему. Не сомневаюсь, что после этого у присутствующих очень быстро найдётся, что Вам ответить по каждому пункту. Пока что лишь замечу, сознательно не конкретизируя, что многое из того, что Вы (и не только Вы) называете недостатками C++, является естественным и даже неизбежным продолжением его достоинств. |
|
|
9.12.2016, 11:34
Сообщение
#78
|
|
Эксперт Группа: Уровень доступа - 2 Сообщений: 3 885 Регистрация: 9.6.2007 Из: Обнинск-Москва Пользователь №: 89 |
Не готов обсуждать достоинства и недостатки именно языков. Однако вчера расчётное ядро нашей СВРК получило паспорт Ростехнадзора... Ну и референтный опыт на 20+ блоках чего-то стоит, наверное.
-------------------- С уважением
Александр Быков |
|
|
9.12.2016, 11:45
Сообщение
#79
|
|
Модератор Группа: Clubmen Сообщений: 24 891 Регистрация: 16.1.2007 Из: Обнинск Пользователь №: 4 |
|
|
|
9.12.2016, 12:43
Сообщение
#80
|
|
Эксперт Группа: Уровень доступа - 2 Сообщений: 3 885 Регистрация: 9.6.2007 Из: Обнинск-Москва Пользователь №: 89 |
Давно пора! Поздравляю Спасибо, Саша! Весело быть первыми в своём роде -------------------- С уважением
Александр Быков |
|
|
Текстовая версия | Сейчас: 25.4.2024, 15:09 |