Не обязательно во-первых, и главное — не в их интересах посчитать всё получше.
Понимаете, они работают на Западе. Там за недобросовестную рекламу/информацию могут неплохо отсудить денег.
Если у нас появится в сборке какой-нибудь маленький модуль на Delphi и для того, чтобы его поддержать на 1000 машин раскатать компилятор — нельзя будет сказать, что у нас появилось 1000 программистов на Delphi.
Зачем компилятор кидать на тысячу машин? :) Это же компилирующий ЯП :) Один раз собрал бинарь на одной машине разраба — и он будет работать хоть на всех компьютерах мира с подходящей ОС.
И оверхид есть. И писать код мотаясь по множеству сред — удовольствие ниже среднего. Намного удобнее, когда код монолитный и единый. Опять же: на 'стыках' накосячить нельзя в принципе, просто потому что стыки отсутствуют. А так — нужно знать массу особенностей, типы могут быть разные в разных языках, boolean, string — запросто. А это всё верный путь к потенциальным багам. Вообще, на стыках постоянно всякая 'веселуха' проявляется. По собственному опыту.
Поговаривают, что MS недурно наехала на Борланд, когда та начала плотно продвигать Кайликс. Нужно было кровь из носу продвигать свой дотнет. И тут под Линукс появляется мега-тул быстрой разработки. В то время на рынке ничего даже близко сравнимого просто не было. Ну и результат мы все знаем.
Они вверх не совместимы? Я просто на той же Delphi привык, что крупных проблем, как правило, нет. Были как-то давно при переходе ansi > unicode. Сейчас юникодовый код почти весь. Больше такого глобального изменения в коде как-то не наблюдалось. Версию подняли, ну может дефайнов пяток обновили, работает дальше с минимальными правками. По собственному опыту переноса больших проектов на старшие версии.
Всё это понятно. Однако выбор (при равных прочих) был сделан в пользу Delphi, а не VS. Сейчас, к слову, ситуация стала лучше. Выпустили Community Edition, полнофункциональную среду, с ограничением по доходу с неё.
Есть полнофункциональный Community Edition. Если доход от деятельности до $5000, то можно использовать легально и бесплатно. В том числе там доступен мобильный пак, то есть можно писать под все поддерживаемые платформы. Используется много где и кем, в мире порядка трех миллионов установок (по оценке Эмбаркадеро).
Известно почему, на Западе был (применим это слово, сейчас ситуация существенно поменялась) монополист — Майкрософт, который агрессивно продвигал .net и VB, а у нас люди себе выбирали инструменты сами. У нас такой монополист — 1С, в своей области.
В Лазарусе это LCL — кросс-плафторменная библиотека. Можно собрать с одним кодом и одними формами под все платформы и отлаживать по месту прямо, удобно. У нас несколько программ в продакшне, уже продаём, на Линукс в том числе.
Но они будут тоже страдать лишним весом в 6Мб на среду и интерпретатор.
Ну и с гуём в Питоне не очень. В том смысле, что консоль онли. Только если внешнее что-то подключать. Ну и скорость, как у любых скриптов, на троечку, если не на двоечку. Так что местами там тоже суровая жесть :)
Delphi/Lazarus. Скорее всего свою первую (неконсольную) программу Hello world вы сможете написать минут за 10 :) 9 — просмотр подходящего видео, 1 — остальное.
Delphi Community Edition — отличная бесплатная полнофункциональная среда (ограничение — зарабатываемые на ней деньги, до $5000 в год), блокнотить не нужно :)
Лазарус — бесплатный полностью. Качество постепенно приближается к Delphi и местами превосходит. Сама среда запускается почти на чем угодно, вплоть до утюгов :) Win, Linux, Mac, Raspbery и так далее. Ну и, само собой, собирает под это всё.
Современный Скайп ужасен во всех своих проявлениях. Юзаю на Windows и Андроид. На Андроиде постоянно всё вымораживается. На Винде просто гора разнообразных глюков. От полной неотрисовки окон и частей (смайлов и т.д) до слетевшего логина, и так постоянные тормоза. Пока был на Delphi, был на порядок приятнее и стабильнее. Но тут пришел хайп :(
Намного ли понятнее станет, если будет написано как ниже?
function resample(image: TImage, spacing: TSpacing, new_spacing: TSpacing): TImage;
В несколько раз точно. TImage — это стандартный класс. Сразу заранее понятно, что и как будет работать и что нужно передавать. Кроме TImage существует несколько стандартных контейнеров для изображений (TGraphic, TBitmap, TPicture, ...). Ну и обще-распространенных библиотек хватает. Я, например, сторонние TDIB и TNativeJPG использую постоянно. Кто-то — TFastImage, кто-то TDXDraw, TImageEnView и так далее, библиотек изображений для Delphi десятки. Уже из самого названия класса понятно, какую библиотеку используют, и, в целом, что ожидать от объявленного кода.
TSpacing? Среда в помощь (раз уж вы среду призываете, позволим себе). Кликнули по нему с нажатым контролом и сразу увидели определение класса, стало понятно как и что передавать. Запускать ничего не нужно, документация не нужна, в коде всё видно. На что кликать тут? :) def plot_2d(image3d, axis, pid, img_dir)? Pycharm просто ничего не показывает.
Что именно непонятно в этих примерах? Объекты какого типа передавать? Так это ясно из документации. Просто ещё одну строчку в ней нужно прочитать.
Не всегда есть документация, увы. Нормальная документация — вообще редкость, как на Питоне, так и на Паскале. В лучшем случае у коммерческого кода. А так как большинство кода Питона — бесплатно, то и документация соответствующая. Вообще, когда пользователь зачем то полез в документацию, значит система спроектирована не очевидно.
И о каком скрипте речь? Это только заголовки функций.
В Паскале почти всегда заголовков достаточно, что бы понять, что нужно передавать функции, по телу рыться, как правило, не нужно.
То, что вы говорите, это очень субъективная оценка. Откуда такие проценты? Может, на Pascal вы смотрите на пузырьковую сортировку, а на Python – исходники какого-нибудь условного asyncio.
На Паскале я привык смотреть на тысячестрочные листинги (у нас проекты по миллиону строк). В Питоне часто даже несколько-строчные функции без отладки непонятны.
И никто не призывает заменять типизацию тестами. Просто тесты помогают вообще в любых крупных проектах, неважно на каком языке. А в Python они могут помочь найти ошибки с типами.
Тесты могут быть полезны, я спорить не буду. Однако лучше, когда сам язык берет на себя часть тестирования во время компиляции. Потому что он это делает постоянно и сам, а тесты нужно писать каждый раз и руками.
Или по-вашему, это похожие языки?
И там и там — динамическая типизация.
С другой стороны, в Python есть много выразительных средств, которых нет в Pascal. Например, генераторы,
Из недавнего обсуждения в конференции телеграмм: «все генераторы — итераторы».
Если что, итераторы в Delphi завезли уже лет 10 назад.
Например, генераторы, богатый набор встроенных, работающих из коробки типов данных, богатая стандартная библиотека.
Я сходу не могу вспомнить область, подо что бы для Delphi/Lazarus не существовало библиотек. Кроссплатформенность? Есть полная. Веб — пожалуйста. Расчеты, графика — сколько угодно. А вот как в Питоне с графическим интерфейсом? Насколько я знаю — никак. В лучшем случае приходится внешний QT использовать.
Складывается впечатление, что ваше знакомство с Python было поверхностным. Вам язык показался непривычным, и вы решили, что он никуда не годится.
Несколько ссылок. Как бы не хоронили Паскаль, однако он остается у нас одним из самых востребованных языков. В обучении в том числе. Несколько ссылок: www.cyberforum.ru/pascal www.cyberforum.ru/delphi-beginners
Есть что-то подобное на Питоне или JS?
Кому интересно, канал по Delphi/Lazarus, множество профессионалов, ежедневная активность: t.me/Delphi_Lazarus
Зачем компилятор кидать на тысячу машин? :) Это же компилирующий ЯП :) Один раз собрал бинарь на одной машине разраба — и он будет работать хоть на всех компьютерах мира с подходящей ОС.
habr.com/ru/company/psb/blog/433434/#comment_19536944
Могу свежих докинуть.
www.embarcadero.com/press-releases/embarcadero-brings-millions-of-c-and-delphi-developers-to-windows-10-with-its-latest-rad-product-release
«RAD Studio 10 Seattle brings Embarcadero’s three million strong community of C++ and Delphi developers to Windows® 10»
И это было в 2015-м. Сейчас, я думаю, парк больше, и за счет Community Edition и, вообще, активного продвижения.
Delphi/Lazarus. Скорее всего свою первую (неконсольную) программу Hello world вы сможете написать минут за 10 :) 9 — просмотр подходящего видео, 1 — остальное.
Delphi Community Edition — отличная бесплатная полнофункциональная среда (ограничение — зарабатываемые на ней деньги, до $5000 в год), блокнотить не нужно :)
Лазарус — бесплатный полностью. Качество постепенно приближается к Delphi и местами превосходит. Сама среда запускается почти на чем угодно, вплоть до утюгов :) Win, Linux, Mac, Raspbery и так далее. Ну и, само собой, собирает под это всё.
TSpacing? Среда в помощь (раз уж вы среду призываете, позволим себе). Кликнули по нему с нажатым контролом и сразу увидели определение класса, стало понятно как и что передавать. Запускать ничего не нужно, документация не нужна, в коде всё видно. На что кликать тут? :) def plot_2d(image3d, axis, pid, img_dir)? Pycharm просто ничего не показывает.
Не всегда есть документация, увы. Нормальная документация — вообще редкость, как на Питоне, так и на Паскале. В лучшем случае у коммерческого кода. А так как большинство кода Питона — бесплатно, то и документация соответствующая. Вообще, когда пользователь зачем то полез в документацию, значит система спроектирована не очевидно.
В Паскале почти всегда заголовков достаточно, что бы понять, что нужно передавать функции, по телу рыться, как правило, не нужно.
На Паскале я привык смотреть на тысячестрочные листинги (у нас проекты по миллиону строк). В Питоне часто даже несколько-строчные функции без отладки непонятны.
Тесты могут быть полезны, я спорить не буду. Однако лучше, когда сам язык берет на себя часть тестирования во время компиляции. Потому что он это делает постоянно и сам, а тесты нужно писать каждый раз и руками.
И там и там — динамическая типизация.
Из недавнего обсуждения в конференции телеграмм: «все генераторы — итераторы».
Если что, итераторы в Delphi завезли уже лет 10 назад.
Я сходу не могу вспомнить область, подо что бы для Delphi/Lazarus не существовало библиотек. Кроссплатформенность? Есть полная. Веб — пожалуйста. Расчеты, графика — сколько угодно. А вот как в Питоне с графическим интерфейсом? Насколько я знаю — никак. В лучшем случае приходится внешний QT использовать.
Я не говорю, что язык принципиально плох и бесполезен. Но он намного сложнее Паскаля. И порог входа многократно выше.
Добавлю несколько ссылок.
Постоянно пополняемый список бесплатных библиотек:
github.com/Fr0sT-Brutal/awesome-delphi
Сотни тысяч учебных вопросов, ответов и задач:
www.cyberforum.ru/pascal
www.cyberforum.ru/delphi-beginners
Кому интересно, канал по Delphi/Lazarus, множество профессионалов, ежедневная активность:
t.me/Delphi_Lazarus
www.cyberforum.ru/pascal
www.cyberforum.ru/delphi-beginners
Есть что-то подобное на Питоне или JS?
Кому интересно, канал по Delphi/Lazarus, множество профессионалов, ежедневная активность:
t.me/Delphi_Lazarus