Pull to refresh
31
0
Сергей Бодров @serbod

Инженер-программист

Send message
Ясен пендель, в метаданных современных форматов можно что угодно спрятать.
Точно так же. Принцип ведь простой, разбить карту на узлы, вычислить проходимость между соседними узлами, построить оптимальный маршрут. А тут это в два этапа делается, сначала маршрут по крупным «клеткам», потом внутри каждой клетки маршрут «по пикселям».
Легаси было на шарпах.

Опа, сишарп уже легаси. =8-[ ]
Из справки Delphi 7:
Delphi is a high-level, compiled, strongly typed language that supports structured and object-oriented design. Based on Object Pascal, its benefits include easy-to-read code, quick compilation, and the use of multiple unit files for modular programming.

Насчет ISO Pascal все понятно, это документированный стандарт, эталон. Как ANSI C.

Всякие Delphi, ObjectPascal, TurboPascal, VirtualPascal, FreePascal, PascalABC и прочие — диалекты, в которых что-то добавлено. Но в целом, ObjectPascal это ISO Pascal + OOP. Как C++, у которого тоже разные диалекты.
Формально — да. Хотя, разница между ObjectPascal и Delphi только в автоматическом разыменовывании типизированных указателей. То есть, можно не ставить @ и ^ во многих случаях.

В Lazarus и FreePascal это просто опция компилятора.
Тогда почему у файлов Delphi расширение .pas? =)
Есть мнение, что компьютер должен помогать человеку, а не человек компьютеру.
Нет ничего сложного привязать функции к типу, например, по типу первого параметра. Компилятору без разницы, что там — str.split() или split(str), машинный код будет одинаков. А человеку удобнее и понятнее str.split().
Lazarus и Delphi это IDE. А язык называется Pascal. По возможностям он не отличается от C/C++, а по безопасности и удобству близок к C#. Производительность кода ограничена только качеством компилятора. Впрочем, можно прямо в коде использовать ассемблер, не полагаясь на компилятор.
Но вскоре мир за окном опять поменяется. Вы обнаружите, что ПК по своим возможностям уже обходят ваш мини-компьютер, ваши техники давно жалуются, что ваше железо пора менять. И узнаете, что с экономической точки зрения вам выгодно заменить одну мини ЭВМ на десяток ПК, объединенных в сеть.

Раз выгодно, то о чем спор? Раньше бухгалтерия предприятия со всеми своими вычислительными машинами занимала целый этаж, а сейчас это пара человек на десяток предприятий. Ради такого прогресса можно хоть каждый год весь софт переписывать.
Если вы имеете в виду перевод string на unicode, то это не особо серьезная проблема. Где в string были буквы — работает как прежде и даже лучше. А у кого в string были байты — сами виноваты. Исправляется легко.

Для мобильных платформ стринги сделали 0-based, а AnsiString вообще забанили.
Обратная совместимость потерялась только на приложениях под мобильные платформы (Android и iOS). И не настолько сильно потерялась, можно включить режим обратной совместимости.

На самом деле Delphi не умер. Microsoft сманил к себе его автора, а фирму-разработчика вынудил в итоге отказаться от Delphi. Сейчас Delphi в хороших руках и постепенно восстанавливает свои позиции. Кроме того, есть полностью опенсорсный бесплатный аналог — FreePascal + Lazarus, который тоже неплохо развивается.
Ну так используйте систему говорящих имен для асинхронных методов. И в комментарии напишите, куда и чем оно стреляет, название мишени.
У вас под рукой десятки проектов с сотнями похожих файлов? =)
Однажды я попросил очень опытного водителя научить меня правильно водить машину. А он говорит:
— Едь как в автошколе учили, не нарушай правила.
— Ну это понятно. А как быстро разгоняться и проходить повороты, как выходить из заноса?
— Если будешь ехать по правилам, то не будет разгонов и заносов. И с машиной меньше хлопот.
— А если…
— Если скучно нормально ездить — иди с парашютом прыгай.

Ну, вот я отмотал мильон километров и написал мильон строк кода. Да, все так. Чем спокойнее едешь, тем меньше износ (машины и организма), тем больше можешь проехать. Больше внимания уделяется маршруту, цели поездки. Чем аккуратнее пишешь код (с говорящими именами, соблюдением стиля и правил безопасности), тем легче его читать и дорабатывать, тем больше кода и крупнее проекты можно поддерживать. То есть, код сам по себе перестает быть проблемой, можно сосредоточиться на решаемых задачах, взаимосвязях, архитектуре.
То, что железо все стандартное и одинаковое на десяток моделей и брендов, а разница лишь в корпусах — это даже хорошо. Потому что все эти российские бренды живут год, максимум два, до первой налоговой проверки. А потом внезапно исчезают, остается глючный сайт с глючными прошивками, которые некому исправлять
Разница в менталитете начальников. В 50..60 годах была весьма развита техническая школа связи, были свои «телеграфные интернеты» у правительства, у почты и у силовиков. А машины для автоматической передачи и приема изображений (аналог факса) были и вовсе с 30-х годов. В 60..70 годах были проекты цифрового интернета от Китова и Глушкова. Погуглите, там много интересного. Бюллетени технических достижений СССР можно найти в библиотеках США. Но в самом СССР распространение информации строго контролировали, «как бы чего не вышло». А распространителей наказывали.
Ну, пусть будет 500к маршрутов, что странно для иерархичной системы по 64к на уровень. Поиск по хешу или по дереву это уже давно не проблема. И даже поиск по 100500к записей не проблема.
Достаточно было перейти на «телефонную» адресацию, делов-то.
За эти 6 лет мое мнение о типизации и Python несколько поменялось. Типизация нужна, и чем строже, тем лучше. Но безопасный способ ее обойти (без жесткого typecast) тоже бывает нужен. Что-то вроде variant с поддержкой классов, когда можно попытаться вызвать какой-то метод наугад, и это приведет не к segfault, а к цивильному исключению несовпадения типа.

Дженерики и анонимные методы я так ни разу и не использовал в Delphi. В Java и Kotlin так и не привык к анонимным процедурам, очень портят структуру кода.

Information

Rating
Does not participate
Location
Орел, Орловская обл., Россия
Date of birth
Registered
Activity