• Тема бронелифчиков в культуре Востока и Запада
    –1
    Вообще-то ур. жизни там не столь и высок, з/п высокие, проживание тоже. Богато в Японии никогда не жили.

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

    «реалистичная графика» != «хорошая игра»


    Вам никто не доказывает обратного, но я буду играть в «Ведьмака», а не в Марио, точно так же, как в нашем дворе в эпоху моего детства никто бы не стал играл в какого-нибудь Donkey Kong'а, когда есть Contra.

    Просто покачайте аниме 20-тилетней давности и современное, и вы увидите тот же самый трусельно-сисячный фан-сервис и точно таких же персонажей ОЯШей с такими же реакциями.
  • Тема бронелифчиков в культуре Востока и Запада
    –3
    Ключевое слово «продаются». Чтобы у нас что-то реально продалось просто показать труселя, или полапать за сиськи недостаточно. Мы того, что там продается, за вечерок накачаем на месяцы вперед.

    И я ничего не имею против Марио, но зачем играть в Марио, когда есть всякие «Крузисы» и «Ведьмаки», причем на торрентах («Ведьмак»-3 я сначала скачал, а потом честно купил в Стиме со всеми DLC, но подобное еще заслужить надо).
  • Тема бронелифчиков в культуре Востока и Запада
    –2
    Просто в Европе и США голой девкой никого уже не удивишь. А в Японии или Корее качать с торрентов порнушку не умеют, да и сажают за это, соответственно там до сих пор продаются даже самые примитивные виды эротизма. Как и игры про Марио на никому не интересных в остальном мире «детских» консолях от Nintendo.
  • Жизнь С++
    0
    Отлично а если разновидностей этих юнитов куча, а поведение наполовину перекрывается. а работать с ними по сути нужно одинаково?


    Если вы хотите именно ООП, то, конечно, печаль-беда, но ООП хорошо работает, когда у вас есть библиотека, да еще предполагающая расширение. Но если вам нужно описать 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;
  • Жизнь С++
    0
    Тогда, видимо, так же как в плюсах извращаться с PChar, если по какой-то причине родной управляемый String вам не подходит. Как вариант использовать ShortString. На практике вам его 255 символов длины в 99.9% случае за глаза хватит.

    Но писать свой менеджер памяти, это как-то слишком крутовато, сдается мне даже на плюсах таким не страдают.
  • Жизнь С++
    0
    где не тот символ ведёт к ошибке, есть во всех языка


    В Паскале нету, сразу вылетит ошибка синтаксиса. И регистронезависимость в этом плане тоже плюс, не напишешь V1 и v1, а потом ткнешь мимо шифта.

    Питоне так там вообще ппц, ошибся в имени переменной так программа даже не чихнёт


    А он с контекстным объявление переменных? Когда-то еще в инсте, препод рассказывал известную историю про do i=1.10 в проге на Фортране, воспринятое, как присваивание и стоившее миллиардов, буквально улетевших в космос.

    Ну а я курсе на 4-ом согласился за N рублей сделать прогу на Бейсике (QBasic 5 ЕМНИП), благо я что-то со школ помнил (в инсте уже Паскаль и Си, Васика не было, и мое мнение о нем было как о некой безвредной игрушке...). Прогу-то я сделал, и даже числа правдоподобные выдавала (решение ур. теплопроводности), но в процессе очень больно сел на эту подлянку с новой переменной и очень долго искал ошибку в небольшой чисто учебной программе. С тех пор я языки, в которых переменные не надо объявлять, просто ненавижу.

    За яву


    Я имел в виду ЯВУ (язык выс. ур).

    11 стандарт просто невероятно поднял производительность программистов


    Мог бы спросить, но вряд ли вы мне на пальцах объясните, если какие-то моменты мне непонятны будут. Погуглю.

    И это довольно грустно, хотя скорее всего это из-за того что ими тупо неудобно пользоватся, анонимные методы в дельфях это я так понимаю аналог лямбд? Они являются замыканиями?


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

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

    пишут на С++ по вполне объективным причинам.


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

    Кстати, Вики утверждает, что в мире каждый год пишется 5 млр. строк нового кода на КоболЬДе. Х) Я даже не знаю, что более вероятно, то, что переписать\сконвертировать до сих пор не могут в силу объективных факторов. Или где-то в бункерах сидят бородатые гномы, прикованные к компьютерным столам и кодят. На КоболЬДе.

    мощные шаблоны, которые позволяют писать более оптимизированный код


    До того, как в Delphi появились дженерики, шаблоны были, наверное, единственной вещью из-за которой дельфины завидовали сишникам, но что-то мне подсказывает, что многое из того, что они дают, сейчас можно чисто компиляторными средствами сделать.
  • Жизнь С++
    0
    Нету. Как и конструктора. А у object'а есть. Но здесь вопрос не только в странности ситуации, а еще и в том, как часто нужно наследование. Т. е. класс какого-нибудь интерфейсного элемента, наследуемый через 10 поколений это понятно и нормально, но, допустим юнит в стратежке можно спокойно описать структурой и работать с ним не как с некой цельной сущностью, как, например, с классом соединения с базой данных, а как с данными.

    Собственно в этом, я полагаю, и видят основную проблему ООП те, кто его критикуют. Далеко не всегда эта самая общность, оправдывающая наследование выстраивается очевидным образом, и на первый план выходит алгоритм.
  • Жизнь С++
    0
    А таки шо вы имеете против record? У вас в плюсах они ЕМНИП от объекта неотличимы. И ИМХО это логично, что есть ссылочные классы и есть структуры\объекты на стеке.
  • Жизнь С++
    0
    Методы структурам завезли еще в Delphi 2005. И где-то я уже возмущался, что теперь есть классы в куче, есть старые object's еще из TP у которых и методы, и наследование, и структуры, у которых методы. Х)
  • Жизнь С++
    0
    В смысл в стандарте? Есть TObject от которого наследуются все, и у него есть NewInstance.
    FastMM ЕМНИП давно интегрирован в VCL.
  • Жизнь С++
    0
    Скажем в Delphi никто не запрещает использовать вместо классов в куче, структуры на стеке, или старый object, была даже такая библиотека сверхлегкая KOL на них. Я не понимаю, почему в совр. версиях Delphi ввели у структур методы, но не объединили их с object'ом. PChar, как и масса других строк доступен просто для совместимости с WinAPI. А что касается аллокации, то там она осуществляется методами, которые при желании можно перекрыть и разложить всё так, как душе угодно.
  • Жизнь С++
    –1
    В С++ если код нормально написан, тоже не так просто сделать ошибку.


    Попадания не в те кнопки от качества написания кода не зависят. Я, например, постоянно попадаю, но тут же получаю ошибку проверки синтаксиса. А так да, 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
    В случае Модулы так же 2 файла, и сам Вирт потом признал что это неудобно. А так в плюсах даже автоматического контроля, что вообще наинклюдено нету. Собственно это и есть принципиальная разница, при нормальной модульности просто указал, что используешь, и не думаешь, что надо еще с препроцессором фигней заниматься.

    Но в нормальных модулях есть еще и настройка доступа, а так же инициализация и финализация. Что делает их похожими на классы…
  • Жизнь С++
    –1
    Не поверите, но это позволяет любой язык. x = a + b; x = a — b;


    Это не язык, а принятая запись мат. выражений. Не делайте вид, что вы не поняли о чем я, и что вы на эти гвозди не садитесь через раз.

    Вы правда в это верите?


    А почему бы мне в это не верить, раз это подтверждается практикой?

    А вы не думали что тот-же C# и другие языки часто попросту не подходят? Я занимаюсь графикой, так вот там балом правит С++.


    Поправка, там балом правит не C++, а его оптимизированные компиляторы, хотя как с этим на x64 уже вопрос. Были бы столь же оптимизированные компиляторы у Бейсика, вы бы писали на Бейсике. И вряд ли вы пишите на C++ Builder'е
  • Жизнь С++
    0
    Ага, в Паскале оно называется unit, а в «Модуле», внезапно Module. X) А в плюсах, вроде, до сих пор ничего подобного не появилось.

    От своего мнения о деятельности Вирта после изобретения Паскаля, я вас избавлю, по причине врожденных лени и вежливости.
  • Жизнь С++
    –2
    Ну это в основном следствие перехода на юникод. Как правило, можно втупую починить просто заменив String на ANSIString.

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

    Другая причина, почему может не компилироваться, некоторые изменения в VCL, но, объективно там был маразм, который стоило выбросить, и уже давно всех предупреждают за несколько лет метками deprecated.

    При этом работаем мы все-таки не с абстрактным языком, а с конкретным инструментом. И совершенно безотносительно языка мы можем использовать библиотеку 10-тилетней давности, которая перестанет нормально работать с очередной обновой ОС.
  • Жизнь С++
    –1
    Эм… Что вы хотели этим сказать?


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

    Да и знать синтаксис != уметь программировать на этом языке.


    Правда? Почему-то, когда доходило до разбора поделок Васи Пупкина, пишущего на 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 можно открыть проект, который делался то ли в этой, то ли в пред. версии и получать кучу непонятных глюков. Может потом исправили, но я запомнил студию именно так.
  • Жизнь С++
    –5
    Наш ответ Кренигану, или «Почему 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 {}-язычков рангом поменьше.

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