Вообще-то ур. жизни там не столь и высок, з/п высокие, проживание тоже. Богато в Японии никогда не жили.
Наличие магазинов свидетельствует о том, что это покупают, неважно почему, не умеют качать, за это садят, совестливые, но у нас сейчас даже пиратские диски перестали продавать, т. к. абсолютно всё люди выкачивают.
«реалистичная графика» != «хорошая игра»
Вам никто не доказывает обратного, но я буду играть в «Ведьмака», а не в Марио, точно так же, как в нашем дворе в эпоху моего детства никто бы не стал играл в какого-нибудь Donkey Kong'а, когда есть Contra.
Просто покачайте аниме 20-тилетней давности и современное, и вы увидите тот же самый трусельно-сисячный фан-сервис и точно таких же персонажей ОЯШей с такими же реакциями.
Ключевое слово «продаются». Чтобы у нас что-то реально продалось просто показать труселя, или полапать за сиськи недостаточно. Мы того, что там продается, за вечерок накачаем на месяцы вперед.
И я ничего не имею против Марио, но зачем играть в Марио, когда есть всякие «Крузисы» и «Ведьмаки», причем на торрентах («Ведьмак»-3 я сначала скачал, а потом честно купил в Стиме со всеми DLC, но подобное еще заслужить надо).
Просто в Европе и США голой девкой никого уже не удивишь. А в Японии или Корее качать с торрентов порнушку не умеют, да и сажают за это, соответственно там до сих пор продаются даже самые примитивные виды эротизма. Как и игры про Марио на никому не интересных в остальном мире «детских» консолях от Nintendo.
Отлично а если разновидностей этих юнитов куча, а поведение наполовину перекрывается. а работать с ними по сути нужно одинаково?
Если вы хотите именно ООП, то, конечно, печаль-беда, но ООП хорошо работает, когда у вас есть библиотека, да еще предполагающая расширение. Но если вам нужно описать 2-3, ну пусть даже 5 частных случаев, и код является конечным, то проблемка сильно меркнет.
BTW Я тут новости по след версии Delphi глянул, обещают конструкторы, конструкторы копирования для структур завезти. Ну прикольно, только до сих пор не завезли, походу, из-за управляемого String. Так что всех этих сишных геморроев просто не было. Точнее, его было сильно меньше.
А переменные всё ещё нужно писать в начале функции? (потихоньку стал вспоминать дельфи) А ректы могут быть дженериками?
Что за ректы? Рекорды? Ну можно сделать дженерик с ограничением, что это именно класс, рекорд, или интерфейс.
Объявление только в начале. Сейчас есть диалекты Паскаля, где навводили объявление в любом месте, но у меня подобное вызывает желание оторвать руки по самую задницу. В Pascal. ABC.NET есть присваивание в стиле a+=b; Может в Smart Mobile Studio есть. В принципе, в Паскале такая штука, в отличие от Си безопасна, т. к. a=b, если плюсик не нажал, сразу даст ошибку компиляции, но у меня подобное оптимизма не вызывает.
Да нет, просто в дельфях это костыль.
Ну Object еще в Turbo Pascal 5.5 появился.
Зачем насильно ограничивать программиста? Если ему нужен рекорд, он просто создаёт класс с публичными полями и всё. Просто лишняя сущность придуманная непонятно зачем.
Ну я вроде писал уже, я вижу 2 вещи:
1) Ссылочные классы, которые всегда ссылочные, которые можно передавать как параметры без всяких указателей и прочей лабуды, просто зная, что если передаешь класс, то не создаешь его копию. Это реально очень удобно. И которые надо явно создавать.
2) Структуры\объекты на стеке, которые передаются по значению и действительно копируются, и всегда инициализированы сразу. В принципе, я уже и забыл, как там под новый record память выделять. Просто локально объявляю, и если нужно как-то дальше использовать, то в TList;
Тогда, видимо, так же как в плюсах извращаться с PChar, если по какой-то причине родной управляемый String вам не подходит. Как вариант использовать ShortString. На практике вам его 255 символов длины в 99.9% случае за глаза хватит.
Но писать свой менеджер памяти, это как-то слишком крутовато, сдается мне даже на плюсах таким не страдают.
где не тот символ ведёт к ошибке, есть во всех языка
В Паскале нету, сразу вылетит ошибка синтаксиса. И регистронезависимость в этом плане тоже плюс, не напишешь V1 и v1, а потом ткнешь мимо шифта.
Питоне так там вообще ппц, ошибся в имени переменной так программа даже не чихнёт
А он с контекстным объявление переменных? Когда-то еще в инсте, препод рассказывал известную историю про do i=1.10 в проге на Фортране, воспринятое, как присваивание и стоившее миллиардов, буквально улетевших в космос.
Ну а я курсе на 4-ом согласился за N рублей сделать прогу на Бейсике (QBasic 5 ЕМНИП), благо я что-то со школ помнил (в инсте уже Паскаль и Си, Васика не было, и мое мнение о нем было как о некой безвредной игрушке...). Прогу-то я сделал, и даже числа правдоподобные выдавала (решение ур. теплопроводности), но в процессе очень больно сел на эту подлянку с новой переменной и очень долго искал ошибку в небольшой чисто учебной программе. С тех пор я языки, в которых переменные не надо объявлять, просто ненавижу.
За яву
Я имел в виду ЯВУ (язык выс. ур).
11 стандарт просто невероятно поднял производительность программистов
Мог бы спросить, но вряд ли вы мне на пальцах объясните, если какие-то моменты мне непонятны будут. Погуглю.
И это довольно грустно, хотя скорее всего это из-за того что ими тупо неудобно пользоватся, анонимные методы в дельфях это я так понимаю аналог лямбд? Они являются замыканиями?
Ну да. Прикол в том, что сходные возможности давали процедурный тип, через который, как известно, и сделали формошлепство таким легким, и такая полезная вещь, как вложенные функции.
Т. е. можно иногда сэкономить на строчках кода, записав тело ф-ии прямо в точку передачи параметра, но только если она совсем крошечная.
пишут на С++ по вполне объективным причинам.
Ну так отсутствие альтернатив в силу имеющейся кодовой базы, доступных специалистов и т. д. — это тоже объективная причина.
Кстати, Вики утверждает, что в мире каждый год пишется 5 млр. строк нового кода на КоболЬДе. Х) Я даже не знаю, что более вероятно, то, что переписать\сконвертировать до сих пор не могут в силу объективных факторов. Или где-то в бункерах сидят бородатые гномы, прикованные к компьютерным столам и кодят. На КоболЬДе.
мощные шаблоны, которые позволяют писать более оптимизированный код
До того, как в Delphi появились дженерики, шаблоны были, наверное, единственной вещью из-за которой дельфины завидовали сишникам, но что-то мне подсказывает, что многое из того, что они дают, сейчас можно чисто компиляторными средствами сделать.
Нету. Как и конструктора. А у object'а есть. Но здесь вопрос не только в странности ситуации, а еще и в том, как часто нужно наследование. Т. е. класс какого-нибудь интерфейсного элемента, наследуемый через 10 поколений это понятно и нормально, но, допустим юнит в стратежке можно спокойно описать структурой и работать с ним не как с некой цельной сущностью, как, например, с классом соединения с базой данных, а как с данными.
Собственно в этом, я полагаю, и видят основную проблему ООП те, кто его критикуют. Далеко не всегда эта самая общность, оправдывающая наследование выстраивается очевидным образом, и на первый план выходит алгоритм.
А таки шо вы имеете против record? У вас в плюсах они ЕМНИП от объекта неотличимы. И ИМХО это логично, что есть ссылочные классы и есть структуры\объекты на стеке.
Методы структурам завезли еще в Delphi 2005. И где-то я уже возмущался, что теперь есть классы в куче, есть старые object's еще из TP у которых и методы, и наследование, и структуры, у которых методы. Х)
Скажем в Delphi никто не запрещает использовать вместо классов в куче, структуры на стеке, или старый object, была даже такая библиотека сверхлегкая KOL на них. Я не понимаю, почему в совр. версиях Delphi ввели у структур методы, но не объединили их с object'ом. PChar, как и масса других строк доступен просто для совместимости с WinAPI. А что касается аллокации, то там она осуществляется методами, которые при желании можно перекрыть и разложить всё так, как душе угодно.
В С++ если код нормально написан, тоже не так просто сделать ошибку.
Попадания не в те кнопки от качества написания кода не зависят. Я, например, постоянно попадаю, но тут же получаю ошибку проверки синтаксиса. А так да, if (5==n), опытный программист на Си легко решает любые несуществующие в Паскале проблемы.
Какой практикой? Все живые языки продолжают развиваться, а те что не развиваются, их почти не используют 3 миллиона используют дельфи, вы считаете это много?
1) 3 Млн — это проданных копий, сколько сидит на пиратках, или Лазарусе вряд ли вообще кто-то считал. Много это или мало? На фоне остромодных языков, скорее мало, но в абсолютных числах достаточно, чтобы самоподдерживаться. Если предположить, что в России программист (т. е. реально пишет какой-то код) каждый сотый, то получится, что на всю страну всего 1.4 млн. прогеров и на плюсах, и на Жабе, и на 1С, и каких-нибудь языках для SCADA-систем и PLC…
2) А что принципиально нового добавилось не то, что в C++, а в ЯВУ вообще за последние лет 20, что серьезно подняло производительность программиста? Не однострочные примеры, как в массиве заменить все элементы на их квадраты, а что-то действительно полезное. Как один автор пишет в книжке 2015-го года: «When I speak to Delphi developers about anonymous methods, many are at least aware of their existence, but almost no one uses them.»
эм… нет, там правит с++ потому что в этой сфере все пишут на С++, да в основном из-за производительность
Замкнутый круг, все пишут на A, потому что все пишут на A. Аналогично с Фортраном на суперкомпьютерах.
>С++ устроен так, что позволяет достичь такой производительности
Хорошо, вопрос без капли сарказма, какие особенности C++ позволяют этого достичь? В сравнении с другими языками, генерирующими нативный код.
В случае Модулы так же 2 файла, и сам Вирт потом признал что это неудобно. А так в плюсах даже автоматического контроля, что вообще наинклюдено нету. Собственно это и есть принципиальная разница, при нормальной модульности просто указал, что используешь, и не думаешь, что надо еще с препроцессором фигней заниматься.
Но в нормальных модулях есть еще и настройка доступа, а так же инициализация и финализация. Что делает их похожими на классы…
Не поверите, но это позволяет любой язык. x = a + b; x = a — b;
Это не язык, а принятая запись мат. выражений. Не делайте вид, что вы не поняли о чем я, и что вы на эти гвозди не садитесь через раз.
Вы правда в это верите?
А почему бы мне в это не верить, раз это подтверждается практикой?
А вы не думали что тот-же C# и другие языки часто попросту не подходят? Я занимаюсь графикой, так вот там балом правит С++.
Поправка, там балом правит не C++, а его оптимизированные компиляторы, хотя как с этим на x64 уже вопрос. Были бы столь же оптимизированные компиляторы у Бейсика, вы бы писали на Бейсике. И вряд ли вы пишите на C++ Builder'е
Ну это в основном следствие перехода на юникод. Как правило, можно втупую починить просто заменив String на ANSIString.
Насчет компонентов вообще, то в свое время было модно делать в виде компонентов абсолютно всё, даже то, что не было никакого смысла интегрировать в среду и бросать на форму. Ну и была мода на разного рода декоративные свистелки и перделки.
Другая причина, почему может не компилироваться, некоторые изменения в VCL, но, объективно там был маразм, который стоило выбросить, и уже давно всех предупреждают за несколько лет метками deprecated.
При этом работаем мы все-таки не с абстрактным языком, а с конкретным инструментом. И совершенно безотносительно языка мы можем использовать библиотеку 10-тилетней давности, которая перестанет нормально работать с очередной обновой ОС.
То, что если синтаксис языка допускает превращение одной допустимой синтаксической конструкции в совершенно другую допустимую синтаксическую конструкцию возможно всего-лишь из-за одной опечатки, то язык не пригоден к практическому применению.
Да и знать синтаксис != уметь программировать на этом языке.
Правда? Почему-то, когда доходило до разбора поделок Васи Пупкина, пишущего на Delphi прогу для местной конторы, ну просто потому, что выбора не было, а в школе давали Паскаль и еще можно было как-то разобраться — это считалось аргументом против Delphi.
Обновляют стандарт каждые 3 года, а что насчёт вашего паскаля? Последнее развитие это дельфи и всё?
Ну я не слежу за всеми реализациями от игрушечного Pascal ABC.NET, до FPC, или Smart Mobile Studio, но в Delphi я для себя выделяю языковые стандарты 7, 2005, 2009, и разные добавления меньших масштабов. При этом добавляется именно то, что нужно в практической работе. И за 30-40 лет можно уже довести систему до состояния, когда серьезные обновления ей не требуются.
Я сейчас переписываю одну ненавистную софтину с C++ на Delphi, как мне рассказывали, один алгоритм там программист делал полгода. И то не сказать, что хорошо вышло. Не расчет вращения галактики, регистрацию сигналов со станка. Если не самый тупой человек за полгода не мог найти нормального решения, может его и нет, и сама идея изначально была неверной?
И со своей стороны я тоже могу сказать, что у меня тут развитие идет, а эти мазохисты на плюсах, которые на C# до сих пор не сбежали, поди до сих пор собственные строковые классы пишут. ИМХО C++ сейчас держится исключительно за счет миллиардов вложенных в развитие компиляторов. На его месте мог бы быть даже Бейсик, в самых первобытных формах, если бы в оптимизацию генерируемого им кода, так вложились.
И, возможно, что люди, которые живут в мире Питона точно так же смотрят на происходящие и мире плюсов, и в мире Паскаля, шевелится там чего-то, на месте топчется, и вообще разве оно еще не сдохло. Ну а про Фортран вообще только читали, что такой был.
Полторы калеки используют?
Embarcadero насчитывает 3 млн. пользователей их продукта. Про FPC я вообще не в курсе. Но хоронить уже устали. Сомневаюсь, что хоть одна фирма будет выпускать продукт в течение 10 лет, если его никто не покупает.
С++ сохранил обратную совместимость это вообще одна из самых главных задач при выпуске нового стандарта.
В истории Delphi был слом с переходом на юникод, и это было для всех больно. Было еще введение адресации строк с 0 для мобильной разработки, но по умолчанию оно отключено, и старый код не страдает. Но только в Visual Studio можно открыть проект, который делался то ли в этой, то ли в пред. версии и получать кучу непонятных глюков. Может потом исправили, но я запомнил студию именно так.
Наш ответ Кренигану, или «Почему C++ не является мои любимым языком».
if (N=M) или, например, printf( something,...) с пропущенным амперсандом — это всё, что вам надо знать про синтаксис C++.
Хоть раз открыть в Delphi сколь угодно большой проект и нажать на проверку синтаксиса. Это всё, что вам нужно, чтобы понять насколько плюсы в этом плане в каменном веке.
Найти какое-нибудь написанное на C++ приложение, которое вы жутко ненавидите, и для которого доступен исходник. Открыть и долго думать, есть ли хоть какая-то корреляция между умением работать с указателями, создавать сложные классы и т. д. и т. п. к и разработкой ПО. Когда неопытные быдлокодеры формашлепали черт знает что на Delphi в период его расцвета и получали на выходе УГ — это было понятно. Но, когда УГ делают дяди, способные разобраться во всем этом плюсовом ужасе, то возникают сомнения, а нужна ли вся эта сложность, если результат одинаковый.
Когда начавший впадать в маразм (или наоборот, хотевший новых денег) Вирт сделал новую версию Паскаля, в которой вместо
if something then
begin
end;
надо было писать
IF Something THEN
…
ENDIF
ну или как там в Модуле-2 принято, всем было пофиг. Просто багландовцы добавили в Паскаль то, что в нем не хватало. Ну и далее по нарастающей, что в Delphi, что в других компиляторах. И ни у кого не возникает вопросов, что те или иные средства ущербны и опасны. Паскаль используют и не матерятся.
Что сделали за это время с C++? Попользовались, часть попользовавшихся пришла к выводу, что как-то хреново, ножи, вилки, пистолеты торчат, запилили Жабу. Жаба снова не то, запилили C#. Еще время прошло, пришли Гугл и сказали, что у них инструмента нет, будут делать свой C с запретом вызова функций без присваивания результата переменной и ограничениями на форматирование, так что каждая программа выглядит для меня так, что хочется оторвать руки по самую задницу. Какого...? 21-ый век на дворе программированию уже 60 лет, и оказывается, что за это время не создали инструментов серверное ПО писать?? Серьезно? А может просто последние лет 30-40 просто занимались ерундой и разборками о допустимости множественного наследования и т. п. туфты неочевидной целесообразности?
Это без упоминания 100500 {}-язычков рангом поменьше.
Я, конечно, всё понимаю, но если какая-то технология изначально правильная, то она развивается последовательно, а не так, что здесь мы одно выкинем, там другое, тут у нас еще какая-то надуманная проблема, заниматься этим можно до бесконечности.
Наличие магазинов свидетельствует о том, что это покупают, неважно почему, не умеют качать, за это садят, совестливые, но у нас сейчас даже пиратские диски перестали продавать, т. к. абсолютно всё люди выкачивают.
Вам никто не доказывает обратного, но я буду играть в «Ведьмака», а не в Марио, точно так же, как в нашем дворе в эпоху моего детства никто бы не стал играл в какого-нибудь Donkey Kong'а, когда есть Contra.
Просто покачайте аниме 20-тилетней давности и современное, и вы увидите тот же самый трусельно-сисячный фан-сервис и точно таких же персонажей ОЯШей с такими же реакциями.
И я ничего не имею против Марио, но зачем играть в Марио, когда есть всякие «Крузисы» и «Ведьмаки», причем на торрентах («Ведьмак»-3 я сначала скачал, а потом честно купил в Стиме со всеми DLC, но подобное еще заслужить надо).
Если вы хотите именно ООП, то, конечно, печаль-беда, но ООП хорошо работает, когда у вас есть библиотека, да еще предполагающая расширение. Но если вам нужно описать 2-3, ну пусть даже 5 частных случаев, и код является конечным, то проблемка сильно меркнет.
BTW Я тут новости по след версии Delphi глянул, обещают конструкторы, конструкторы копирования для структур завезти. Ну прикольно, только до сих пор не завезли, походу, из-за управляемого String. Так что всех этих сишных геморроев просто не было. Точнее, его было сильно меньше.
Что за ректы? Рекорды? Ну можно сделать дженерик с ограничением, что это именно класс, рекорд, или интерфейс.
Объявление только в начале. Сейчас есть диалекты Паскаля, где навводили объявление в любом месте, но у меня подобное вызывает желание оторвать руки по самую задницу. В Pascal. ABC.NET есть присваивание в стиле a+=b; Может в Smart Mobile Studio есть. В принципе, в Паскале такая штука, в отличие от Си безопасна, т. к. a=b, если плюсик не нажал, сразу даст ошибку компиляции, но у меня подобное оптимизма не вызывает.
Ну Object еще в Turbo Pascal 5.5 появился.
Ну я вроде писал уже, я вижу 2 вещи:
1) Ссылочные классы, которые всегда ссылочные, которые можно передавать как параметры без всяких указателей и прочей лабуды, просто зная, что если передаешь класс, то не создаешь его копию. Это реально очень удобно. И которые надо явно создавать.
2) Структуры\объекты на стеке, которые передаются по значению и действительно копируются, и всегда инициализированы сразу. В принципе, я уже и забыл, как там под новый record память выделять. Просто локально объявляю, и если нужно как-то дальше использовать, то в TList;
Но писать свой менеджер памяти, это как-то слишком крутовато, сдается мне даже на плюсах таким не страдают.
В Паскале нету, сразу вылетит ошибка синтаксиса. И регистронезависимость в этом плане тоже плюс, не напишешь V1 и v1, а потом ткнешь мимо шифта.
А он с контекстным объявление переменных? Когда-то еще в инсте, препод рассказывал известную историю про do i=1.10 в проге на Фортране, воспринятое, как присваивание и стоившее миллиардов, буквально улетевших в космос.
Ну а я курсе на 4-ом согласился за N рублей сделать прогу на Бейсике (QBasic 5 ЕМНИП), благо я что-то со школ помнил (в инсте уже Паскаль и Си, Васика не было, и мое мнение о нем было как о некой безвредной игрушке...). Прогу-то я сделал, и даже числа правдоподобные выдавала (решение ур. теплопроводности), но в процессе очень больно сел на эту подлянку с новой переменной и очень долго искал ошибку в небольшой чисто учебной программе. С тех пор я языки, в которых переменные не надо объявлять, просто ненавижу.
Я имел в виду ЯВУ (язык выс. ур).
Мог бы спросить, но вряд ли вы мне на пальцах объясните, если какие-то моменты мне непонятны будут. Погуглю.
Ну да. Прикол в том, что сходные возможности давали процедурный тип, через который, как известно, и сделали формошлепство таким легким, и такая полезная вещь, как вложенные функции.
Т. е. можно иногда сэкономить на строчках кода, записав тело ф-ии прямо в точку передачи параметра, но только если она совсем крошечная.
Ну так отсутствие альтернатив в силу имеющейся кодовой базы, доступных специалистов и т. д. — это тоже объективная причина.
Кстати, Вики утверждает, что в мире каждый год пишется 5 млр. строк нового кода на КоболЬДе. Х) Я даже не знаю, что более вероятно, то, что переписать\сконвертировать до сих пор не могут в силу объективных факторов. Или где-то в бункерах сидят бородатые гномы, прикованные к компьютерным столам и кодят. На КоболЬДе.
До того, как в Delphi появились дженерики, шаблоны были, наверное, единственной вещью из-за которой дельфины завидовали сишникам, но что-то мне подсказывает, что многое из того, что они дают, сейчас можно чисто компиляторными средствами сделать.
Собственно в этом, я полагаю, и видят основную проблему ООП те, кто его критикуют. Далеко не всегда эта самая общность, оправдывающая наследование выстраивается очевидным образом, и на первый план выходит алгоритм.
FastMM ЕМНИП давно интегрирован в VCL.
Попадания не в те кнопки от качества написания кода не зависят. Я, например, постоянно попадаю, но тут же получаю ошибку проверки синтаксиса. А так да, if (5==n), опытный программист на Си легко решает любые несуществующие в Паскале проблемы.
1) 3 Млн — это проданных копий, сколько сидит на пиратках, или Лазарусе вряд ли вообще кто-то считал. Много это или мало? На фоне остромодных языков, скорее мало, но в абсолютных числах достаточно, чтобы самоподдерживаться. Если предположить, что в России программист (т. е. реально пишет какой-то код) каждый сотый, то получится, что на всю страну всего 1.4 млн. прогеров и на плюсах, и на Жабе, и на 1С, и каких-нибудь языках для SCADA-систем и PLC…
2) А что принципиально нового добавилось не то, что в C++, а в ЯВУ вообще за последние лет 20, что серьезно подняло производительность программиста? Не однострочные примеры, как в массиве заменить все элементы на их квадраты, а что-то действительно полезное. Как один автор пишет в книжке 2015-го года: «When I speak to Delphi developers about anonymous methods, many are at least aware of their existence, but almost no one uses them.»
Замкнутый круг, все пишут на A, потому что все пишут на A. Аналогично с Фортраном на суперкомпьютерах.
>С++ устроен так, что позволяет достичь такой производительности
Хорошо, вопрос без капли сарказма, какие особенности C++ позволяют этого достичь? В сравнении с другими языками, генерирующими нативный код.
Но в нормальных модулях есть еще и настройка доступа, а так же инициализация и финализация. Что делает их похожими на классы…
Это не язык, а принятая запись мат. выражений. Не делайте вид, что вы не поняли о чем я, и что вы на эти гвозди не садитесь через раз.
А почему бы мне в это не верить, раз это подтверждается практикой?
Поправка, там балом правит не C++, а его оптимизированные компиляторы, хотя как с этим на x64 уже вопрос. Были бы столь же оптимизированные компиляторы у Бейсика, вы бы писали на Бейсике. И вряд ли вы пишите на C++ Builder'е
От своего мнения о деятельности Вирта после изобретения Паскаля, я вас избавлю, по причине врожденных лени и вежливости.
Насчет компонентов вообще, то в свое время было модно делать в виде компонентов абсолютно всё, даже то, что не было никакого смысла интегрировать в среду и бросать на форму. Ну и была мода на разного рода декоративные свистелки и перделки.
Другая причина, почему может не компилироваться, некоторые изменения в VCL, но, объективно там был маразм, который стоило выбросить, и уже давно всех предупреждают за несколько лет метками deprecated.
При этом работаем мы все-таки не с абстрактным языком, а с конкретным инструментом. И совершенно безотносительно языка мы можем использовать библиотеку 10-тилетней давности, которая перестанет нормально работать с очередной обновой ОС.
То, что если синтаксис языка допускает превращение одной допустимой синтаксической конструкции в совершенно другую допустимую синтаксическую конструкцию возможно всего-лишь из-за одной опечатки, то язык не пригоден к практическому применению.
Правда? Почему-то, когда доходило до разбора поделок Васи Пупкина, пишущего на Delphi прогу для местной конторы, ну просто потому, что выбора не было, а в школе давали Паскаль и еще можно было как-то разобраться — это считалось аргументом против Delphi.
Ну я не слежу за всеми реализациями от игрушечного Pascal ABC.NET, до FPC, или Smart Mobile Studio, но в Delphi я для себя выделяю языковые стандарты 7, 2005, 2009, и разные добавления меньших масштабов. При этом добавляется именно то, что нужно в практической работе. И за 30-40 лет можно уже довести систему до состояния, когда серьезные обновления ей не требуются.
Я сейчас переписываю одну ненавистную софтину с C++ на Delphi, как мне рассказывали, один алгоритм там программист делал полгода. И то не сказать, что хорошо вышло. Не расчет вращения галактики, регистрацию сигналов со станка. Если не самый тупой человек за полгода не мог найти нормального решения, может его и нет, и сама идея изначально была неверной?
И со своей стороны я тоже могу сказать, что у меня тут развитие идет, а эти мазохисты на плюсах, которые на C# до сих пор не сбежали, поди до сих пор собственные строковые классы пишут. ИМХО C++ сейчас держится исключительно за счет миллиардов вложенных в развитие компиляторов. На его месте мог бы быть даже Бейсик, в самых первобытных формах, если бы в оптимизацию генерируемого им кода, так вложились.
И, возможно, что люди, которые живут в мире Питона точно так же смотрят на происходящие и мире плюсов, и в мире Паскаля, шевелится там чего-то, на месте топчется, и вообще разве оно еще не сдохло. Ну а про Фортран вообще только читали, что такой был.
Embarcadero насчитывает 3 млн. пользователей их продукта. Про FPC я вообще не в курсе. Но хоронить уже устали. Сомневаюсь, что хоть одна фирма будет выпускать продукт в течение 10 лет, если его никто не покупает.
В истории Delphi был слом с переходом на юникод, и это было для всех больно. Было еще введение адресации строк с 0 для мобильной разработки, но по умолчанию оно отключено, и старый код не страдает. Но только в Visual Studio можно открыть проект, который делался то ли в этой, то ли в пред. версии и получать кучу непонятных глюков. Может потом исправили, но я запомнил студию именно так.
if (N=M) или, например, printf( something,...) с пропущенным амперсандом — это всё, что вам надо знать про синтаксис C++.
Хоть раз открыть в Delphi сколь угодно большой проект и нажать на проверку синтаксиса. Это всё, что вам нужно, чтобы понять насколько плюсы в этом плане в каменном веке.
Найти какое-нибудь написанное на C++ приложение, которое вы жутко ненавидите, и для которого доступен исходник. Открыть и долго думать, есть ли хоть какая-то корреляция между умением работать с указателями, создавать сложные классы и т. д. и т. п. к и разработкой ПО. Когда неопытные быдлокодеры формашлепали черт знает что на Delphi в период его расцвета и получали на выходе УГ — это было понятно. Но, когда УГ делают дяди, способные разобраться во всем этом плюсовом ужасе, то возникают сомнения, а нужна ли вся эта сложность, если результат одинаковый.
Когда начавший впадать в маразм (или наоборот, хотевший новых денег) Вирт сделал новую версию Паскаля, в которой вместо
if something then
begin
end;
надо было писать
IF Something THEN
…
ENDIF
ну или как там в Модуле-2 принято, всем было пофиг. Просто багландовцы добавили в Паскаль то, что в нем не хватало. Ну и далее по нарастающей, что в Delphi, что в других компиляторах. И ни у кого не возникает вопросов, что те или иные средства ущербны и опасны. Паскаль используют и не матерятся.
Что сделали за это время с C++? Попользовались, часть попользовавшихся пришла к выводу, что как-то хреново, ножи, вилки, пистолеты торчат, запилили Жабу. Жаба снова не то, запилили C#. Еще время прошло, пришли Гугл и сказали, что у них инструмента нет, будут делать свой C с запретом вызова функций без присваивания результата переменной и ограничениями на форматирование, так что каждая программа выглядит для меня так, что хочется оторвать руки по самую задницу. Какого...? 21-ый век на дворе программированию уже 60 лет, и оказывается, что за это время не создали инструментов серверное ПО писать?? Серьезно? А может просто последние лет 30-40 просто занимались ерундой и разборками о допустимости множественного наследования и т. п. туфты неочевидной целесообразности?
Это без упоминания 100500 {}-язычков рангом поменьше.
Я, конечно, всё понимаю, но если какая-то технология изначально правильная, то она развивается последовательно, а не так, что здесь мы одно выкинем, там другое, тут у нас еще какая-то надуманная проблема, заниматься этим можно до бесконечности.