XaeroX писал: Первый стандарт приняли в 1998 году и дополнили в 2003-м.
То есть страутруп изобрёл язык в 1981-м году, а стандарт приняли в 98-м?
Я правильно понимаю? А до этого там писали абсолютно всякое, любые ключевые слова, любые операторы и это как-то компилировалось и даже работало?
Ну в таком случае стандарты явно не пошли языку на пользу, т.к. качество софта начало резко ухудшаться Вот как раз после 98-го года.
Цитата:
XaeroX писал: Я вообще не понимаю, как в 2017 году можно компилировать шестой студией
А представляешь кто-то ездит на машине 89-го года выпуска или живёт в доме, построенном в 1971-м году. Вот как так?
Цитата:
Ku2zoff писал: Если некоторые проекты, изначально написанные в шестой студии, не собираются другими компиляторами без предварительной правки, значит, что-то в ней не так
Скорее уж не так в тех новых компиляторах. У шестёрки есть ровно один общепризнанный баг - выпадение видимости переменной, объявленной внутри цикла за его пределы. Иными словами, студия считает, что если что-то было объявлено в строке for, то это объявлено вне тела цикла. В принципе это не баг, технически так оно на самом деле и есть - невозможно инкременировать переменную, объявленную внутри тела цикла для проверки условия на выход из тела цикла. Разве что статическую объявить или выделить память деномически. Таким образом все более свежие компиляторы делают это хаком, ради соответствия каким-то стандартам, еще неизвестно кем принятым. Всё остальное, что было добавлено в язык - говно и ненужно. Язык должен быть простым и острым как бритва. Да что там говорить. Соберите одну и ту же программу шестёркой и новой студией. То, что собрано шестёркой будет работать минимум в два раза быстрее. Вот вам и новомодные студии, вот вам и оптимизации. Щас уже не осталось нормальных компетентных людей, любой умник, который лепит виджеты на скриптах уже гордо именует себя пограмистом.
Дядя Миша писал: То есть страутруп изобрёл язык в 1981-м году, а стандарт приняли в 98-м?
Верно.
Цитата:
Дядя Миша писал: А до этого там писали абсолютно всякое, любые ключевые слова, любые операторы и это как-то компилировалось и даже работало?
Да, могли не поддерживать какие-то ключевые слова, реализовывать их как им вздумается - тогда по сути весь язык был implementation-specific.
Цитата:
Дядя Миша писал: качество софта начало резко ухудшаться Вот как раз после 98-го года.
Если это и так - то явно по другим причинам.
Цитата:
Дядя Миша писал: А представляешь кто-то ездит на машине 89-го года выпуска или живёт в доме, построенном в 1971-м году. Вот как так?
В домах периодически делается капремонт. Вот и новая студия - это как старая с капремонтом. А ты, грубо говоря, живёшь в доме, где все перекрытия в трещинах. Он, может быть, ещё и простоит несколько лет - но оно как минимум визуально неприятно.
Цитата:
Дядя Миша писал: У шестёрки есть ровно один общепризнанный баг - выпадение видимости переменной, объявленной внутри цикла за его пределы. Иными словами, студия считает, что если что-то было объявлено в строке for, то это объявлено вне тела цикла. В принципе это не баг, технически так оно на самом деле и есть - невозможно инкременировать переменную, объявленную внутри тела цикла для проверки условия на выход из тела цикла. Разве что статическую объявить или выделить память деномически. Таким образом все более свежие компиляторы делают это хаком, ради соответствия каким-то стандартам, еще неизвестно кем принятым.
У тебя любопытные представления об области видимости.
В шестёрке это действительно не баг - это достандартное поведение.
Цитата:
Дядя Миша писал: То, что собрано шестёркой будет работать минимум в два раза быстрее.
Пруфы будут?
Цитата:
Дядя Миша писал: Щас уже не осталось нормальных компетентных людей
Дядя Миша писал: качество софта начало резко ухудшаться Вот как раз после 98-го года.
Не согласен. Качество софта начало ухудшаться где-то года с 2005-го. Когда в моду окончательно вошёл дотнет. Приложения стали тяжеловесными и тормозными. Это на винде. Линуксы (которые десктопные), такая ситуация настигла где-то в 2011 году, с выходом GNOME 3 и QT5, а также появлением Юнити в бубунтах. С того момента многие гуйные приложения в самых основных средах рабочего стола стали попахивать говнецом.
Цитата:
Дядя Миша писал: Всё остальное, что было добавлено в язык - говно и ненужно. Язык должен быть простым и острым как бритва.
Тащем-то он таким и остался. Сверху навесили новомодных либ и всякого, чтобы можно было быстро, не заморачиваясь, клепать визуальные интерфейсы и взаимодействовать с устройствами и интернетом. Вон, видал я рекламу какого-то кастомного инструмента для студии, который позволяет... РИСОВАТЬ код. Ну то есть заранее подготовленные блоки втыкать в нужное место файла, проведя мышкой. Здесь всё зависит от того, кто на языке пишет. Можно и в шестёрке наворотить такого, что приложение будет лагать. А можно написать быструю консольную утилиту в 2017 студии. Помнится, ты сетовал на то, что Xash3D FWGS потерял в производительности и компактности в связи со сменой компилятора. Мне кажется, потерял он больше потому, что там наворотили всякого ненужного для кроссплатформенности.
Вообще, надо обычный ксаш портировать на линукс и макось, и будет круто. А все эти андроиды и прочие мобилки забыть как страшный сон.
Какое отношение либы имеют к языку? Студия это вообще IDE, как из-за неё программа будет работать медленнее или быстрее?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro я к этому и веду. Кому-то расширения языка и новые тулкиты нужны и полезны (тем, кто создаёт приложения для массового рынка, часто кроссплатформенные), а кому-то они нафиг не упали (например, Дяде Мише, у которого движок на сях написан, и вообще он в консольные утилиты любит, а не в гуй).
А уж чем собирать - без разницы. Спор-то у нас идёт о стандартах, а не о расширениях языка. Если ксаш не собирается 2010-17 студией без дополнительных правок - это признак того, что правила написания кода для новых компиляторов более строгие, чем в шестёрке. Ну и ещё хедеры и либы могут быть с изменениями, а кое-что deprecated (кажется правильное слово), может быть вообще выкинуто в новых версиях.
Ничего, доживём до того момента, когда x86 станет deprecated. Вот тогда точно придётся переехать на 2010 студию, т.к. более ранние не умеют собирать в x64.
Добавлено 20-07-2017 в 14:50:
Сейчас Дядя Миша снова какой-нибудь аргумент приведёт в пользу шестёрки, я уверен. Я про остроту и простоту языка заранее в ответ на него скажу: HLSDK, адаптированный под новые студии, отлично собирается в шестёрке. О чём это говорит? Правильно, о правилах написания кода, которые не соблюдались в шестёрке.
Ещё раз повторю, каждому своё, всё зависит от конечной цели. Если ксаш собирается шестёркой без проблем, то и менять ничего не нужно. Будет. Ровно до той поры, пока не возникнет необходимость. Например, портирование куда-нибудь.
FiEctro
Под студией обычно подразумевают также её родной компилятор.
В отличие от многих других IDE, в микрософтовской так просто его не поменяешь. Только в 2015 (емнип) появился выбор между CL и Clang, да и там последний несколько специфичный и заточенный под студию (например, параметры командной строки).
Добавлено 20-07-2017 в 16:51:
Цитата:
Ku2zoff писал: то признак того, что правила написания кода для новых компиляторов более строгие, чем в шестёрке
Не строгие, а более соответствующие официально принятому стандарту языка. Хотя у микрософтовских компиляторов с этим традиционно проблемы. Хотите "нормальный" С++ юзать - добро пожаловать в мир gcc и clang. Но в принципе, писать кросс-компилирующийся код не так уж сложно, например, та же волатила компилится и cl, и gcc/mingw, и clang.
Добавлено 20-07-2017 в 16:54:
Цитата:
Ku2zoff писал: Если ксаш собирается шестёркой без проблем, то и менять ничего не нужно.
Вот кстати любопытно - а на новых виндах с софтом, собранным старым компилятором (и старыми версиями сопутствующих библиотек), проблем нет никаких?
После переезда на семёрку я потерял кучу старого любимого софта (и особенно игр), неизбежной миграции на десятку жду со страхом.
XaeroX писал: Вот кстати любопытно - а на новых виндах с софтом, собранным старым компилятором (и старыми версиями сопутствующих библиотек), проблем нет никаких?
Если софт написан грамотно, и не тянет каких-то специфичных зависимостей за собой (или либы прилинкованы статически) - зачастую всё работает стабильно. Вот тот же ксаш, например. Там зависимостей по минимуму. Работает во всех виндах от XP до 10, лишь бы драйвера на видео стояли. Проги-редакторы и утилиты для халфы нормально работают: PakScape, PakExplorer, Wally, компиляторы от зонера... Всё работает хорошо, кроме Jed's HLMV. В десятке, кстати, работает. x64.
XaeroX писал:
Вот кстати любопытно - а на новых виндах с софтом, собранным старым компилятором (и старыми версиями сопутствующих библиотек), проблем нет никаких?
Есть. Если очень повезёт, с ними справится режим совместимости.
Ku2zoff писал: [b]SOZON какую хочешь. Я тебе сейчас просто опишу плюсы и минусы (на мой взгляд).
2010:
+малый вес (что-то около 900 Мб или даже меньше)
+не очень требовательна к железу
+только C++ и никаких сирешоток с бейсиками и жабарешотками
+актуальна до сих пор
-не может конвертировать проекты, т.к. Express-версия
-требуется адаптация HLSDK под новые компиляторы
-некоторые проекты (паработ в частности) крэшатся из-за какого-то внутреннего бага в либах STL
-подсветка синтаксиса всё равно хуже, чем в 2013
Огромный двухгигабайтный монстр, который ставится около часа и запускается минут пять.
nemyax писал: Если очень повезёт, с ними справится режим совместимости.
Верно, обычно он нифига не помогает, т.к. дело не в совместимости с версией винды, а в совместимости с драйверами и какими-то либами, которые не ставятся в эту версию винды. Ну ещё часто бывают проблемы из-за неподдержки старых версий интернет эксплорера и прочих встроенных просмотрщиков.
Ku2zoff писал:
дело не в совместимости с версией винды, а в совместимости с драйверами и какими-то либами, которые не ставятся в эту версию винды
Возможно. Например, Deus Ex на десятке с невидией без режима совместимости отказывается определять разрешения экрана. А в режиме совместимости он их находит, но не регулирует яркость. Форменный бардак карочы.