Комментарии 121
Показательна статистика по «модным» языкам, многие из которых тоже появились далеко не вчера — средний опыт разработчика 3-6 лет?
Чем вам Qt монструозен?
Либы с собой таскать надо, а это всегда длл ад. В линуксе почему снап пакеты появились? Потому что люди утомились плясать с зависимостями. Да даже если и либы не надо было бы таскать иде откровенная слаба по сравнению с делфи, набор компонентов и свойств тоже куцый.
Если вам не нужны гуи, то «быстро и удобно» гарантированно не дельфи.Ой ли. Зачем мне что то, что по вашему якобы лучше, если у меня есть делфи которы может и в гуй и в консоль одинаково хорошо?
leonP4, в моем сообщении вы видимо проглядели слово «нативно».
Потому что иначе закрытый софт тяжко распространять. С открытым, который можно собрать из исходников под дистр силами мейнтейнеров, таких проблем нет.Ну или как делфи собрать все в один исполняемый файл и любые проблемы с распространением решены.
К слову, я не пользуюсь snap'ом или flatpack'ом и не знаю, зачем он мне был бы нужен.Видите, вам конкретно нет, но многим видимо да, раз оно идет в стандартной поставке тойже убунты.
Какая из? Я вот в CLion спокойно код кутешного приложения писал, а это хорошая IDE.QtCreator конечно же. CLion видел одним глазом. Очевидно в CLion удобно писать код как и в любом продукте от jet brains, но разработка гуя хромает.
Потому что есть другие языки, которые компилируются в нативный код, и которые куда выразительнее и удобнее, чем дельфи.Ну у меня есть две проблемы гуи и консоль. И их хорошее решение. Вы второй комментарий мне пытаетесь втюхать что то что решает вторую проблему чуть лучше, но в первой полностью бесполезно. Отсюда и повторю свой вопрос. Мне второй язык зачем учить если у меня уже есть тот который закрывает все задачи, удобен, прост, поменьше неожиданных граблей чем в том же С++, а еще имеет прекрастное свойство раскрываться по мере изучения? Вот именно, просто незачем. Даже если какой то абстрактный <язык> может дать преимущество в консолях, это преимущество должно быть настолько весомым что бы вы решили тратить время на вхождение в незнакомый язык и его средства разработки. Скорость и ресурсы не считаются. Мир показал что людям плевать на задротские оптимизации сожрав и не поморщившись приложения на электроне.
выразительнее и удобнее, чем дельфиСмелое заявление, а примеры будут?
И, подозреваю, при этом даже генерят более эффективный код.«Па ащущэниям» — это конечно хорошо, но я вот почему то думаю что 20+ лет разработчики делфи тоже время не теряли даром, так что код будет примерно одинаковый, а вот время компиляции космически быстрое.
Ну, пару недель назад я за один выходной день сделал веб-сервис...
Или вот вчера игрался с реализацией двухмерного дискретного преобразования Фурье...
Сколько это всё займёт на дельфях?А сколько по вашему, это занимает при использовании делфи?
В первом примере тоже легко уложиться за день, идя по вашему пути использования готовых фреймворков.
Во втором примере вообще непонятна претензия в сторону делфи. Вы видимо забываете (ну или не знаете?), что делфи это компилируемый язык, использует натив ОС, в которых приложение работает. Соответственно поддержка того же параллелизма в языке — из коробки (причем не только на уровне потоков, но и на уровне нитей). А собственно реализацией математических вычислений разного уровня занимаются даже студенты, а что говорить о делфи-разработчиках с большим опытом работы?
Я периодически забавляюсь написанием ненужных бенчмарков на всяких игрушечных задачах...А меня всегда забавляло, что люди на полном серьёзе делают бенчмарки всяких синтетических тестов, например сколько тиков уходит на оптимизированный компилятором расчет цикла. Но вот когда речь заходит о бенчмарке алгоритма например в 10000 строк, все эти «тестеры» обычно плавно уходят в закат. Компилируемый код в делфи весьма достойный (не идеальный и не самый top1, но тем не менее).
Про скорость компиляции даже можно и не говорить, при компиляции проекта в 1 млн строк за 5 секунд на компьютере обычной мощности частота выполняемых автоматических тестов несоизмеримо с языками, где сборка идет например 2 часа.
Учитывая количество фич в плюсах, не думаю, что дельфи сильнееА каких конкретно критически важных фич относительно плюсов нет в делфи? вот так чтобы «капец, нет XXX фичи в делфи, значит использование делфи невозможно»?
Да и под линуксом что-то этой среды не видно.IDE в настоящее действительно работает исключительно в Windows. Однако это не мешает из IDE пошагово отлаживать как на линусах, так и на маке, андроиде, ios.
Далее отвечу другим комментаторам.
Это пока проект крошечный. На крупных проектах неизбежно приходят к схеме EXE + пачка BPL, которые глубоко в душе те же DLLБатенька, bpl уже давно в серьезных проектах не используются, так как несут проблемы совместимости при переходе на более свежие версии делфи. .dll, .so и т.д. тоже используются далеко не во всех проектах, это же вам не Qt, тут реально можно всё собрать в единый бинарник, даже пусть который станет весить 100 Мб, но который будет работать без зависимостей от каких либо установленных библиотек в системе.
То Kylix разработают, а потом выбросят, то бросятся дельфю для дотнета делать...Так мы же живем в реальном мире, а не идеальном, где всё сразу делается правильно. Вспомните тот же Microsoft и его начальную позицию по отношению к мобильной ОС и мобильным приложениям (теперь рвут на себе волосы). Владельцы Delphi в 2000х годах тоже допустили много управленческих ошибок, к моему большому сожалению. Но тем не менее сейчас язык очень сильно стал хорош.
Батенька, bpl уже давно в серьезных проектах не используются, так как несут проблемы совместимости при переходе на более свежие версии делфи. .dll, .so и т.д. тоже используются далеко не во всех проектах
Зайдите что ли в каталог Bin дельфей. Всегда удивляла эта тяга напихать всё в один экзешник.
но который будет работать без зависимостей от каких либо установленных библиотек в системе.
Что вы там куда устанавливать собрались?
Первое место, где ищутся DLL — каталог, в котором лежит экзешник.
Но тем не менее сейчас язык очень сильно стал хорош.
Вакансий почти нет. А в тех, что есть, уровень оплаты ниже, чем у какого-нибуть жабиста или дотнетчика. Можно хоронить.
Не под линуксом, там с этим будут проблемы.Не заведется из коробки под каким то специфическим дистрибутивом? А программы которые зависимости тянут что без проблем заработают? Нет, будут те же самые проблемы потому что какой то зависимости обязательно не будет.
Я бы не стал ориентироваться на убунту как на признак того, что нужно массово, но это совсем другая история.Ха ха, а я бы стал потому что убунтой пользуется больше всего людей… не серверов и не докер файлов, а именно людей.
Новые языки вообще полезно учить, это многие рекомендуют. Просто для расширения кругозора.А еще полезно бегать по утрам, есть овсянку, не пить на праздники и не кушать жирное. У меня нету задачи красноглазить за компом до 40, а потом умереть от запора. Язык для меня просто инструмент заработка денег у меня есть паруу языков которые отличню закрывают несколько ниш моей востребованности и их стоит развивать. Учить язык который не принесет заработка по моему мнению смысла не имеет. Широкой кругозор монетизируется откровенно хуже чем сеньор на C# или Java.
Ну, пару недель назад я за один выходной день сделал веб-сервис, который парсит блок-листы Роскомнадзора, сохраняет их в индекс, поднимает сервер для поиска блокировок по IP и прочим, и так далее, и при этом имеет логгирование, всякие метрики и их отображение, и так далее. Работает быстро, отлаживать не потребовалось — как только скомпилировалось, так сразу заработало. Суммарно строк 200 и часов 8 работы. Надо бы, кстати, дописать статью про это.Так это заслуга «чудесного» языка или вы просто использовали огромные куски готового функционала просто слепив их вместе? Если первое так поделитесь светочем технологий разработки ПО.
Или вот вчера игрался с реализацией двухмерного дискретного преобразования Фурье, так как давно не писал вычислительного кода, и часа за полтора сделал мелкую программку строк на 30 для сих целей (из которых полчаса переписывал ручкой на бумажке повторяющуюся сумму в последовательность двух сумм, а ещё полчаса прикидывал, как бы сделать отображение комплексного числа на обычный трёхцветный пиксель, чтобы выглядело адекватно). При этом параллелизм там идёт практически из коробки, и отлаживать вообще ничего не пришлось — как только код скомпилировался, он работал как ожидается.Мы поняли что вы очень крутой программист. Но язык батенька, язык назовите.
Я периодически забавляюсь написанием ненужных бенчмарков на всяких игрушечных задачах и прошу одного приятеля-полиглота сделать реализации на других языках, и дельфи там сильно не в топе (по крайней мере, реализация в fpc, что бы это ни значило — дельфи я не знаю).Fpc и делфи это прям сильно разные вещи. Примерно как если выдавать результаты тестов С за С++.
что бы это ни значило — дельфи я не знаюЗачем тогда лезть в спор? Зачем поливать грязью то чего не знаете? В чем мотивация такого поведения? Религиозным фанатизмом попахивает. Раз вы любите учить новые языка вот и поставте себе делфи, напишите пару программ которых вам всегда нехватало. Там и поговорим.
Ну или как делфи собрать все в один исполняемый файл и любые проблемы с распространением решены.
Это пока проект крошечный. На крупных проектах неизбежно приходят к схеме EXE + пачка BPL, которые глубоко в душе те же DLL. С распространением тоже непонятно какие проблемы. Написать конфигурацию для InnoSetup это не космические технологии.
Мне второй язык зачем учить
Например для того, чтобы быть востребованным на рынке. Потребность в Delphi-программистах с начала нулевых значительно просела.
почему то думаю что 20+ лет разработчики делфи тоже время не теряли даром
Ага. То Kylix разработают, а потом выбросят, то бросятся дельфю для дотнета делать с тем же результатом, ещё какой-то Delphi for PHP был. Попутно футболя отдел разработки по маршруту Borland — Inprise — CodeGear — Embarcadero — КтоТамСейчасДавноНеСлежу.
Это пока проект крошечный. На крупных проектах неизбежно приходят к схеме EXE + пачка BPL, которые глубоко в душе те же DLL. С распространением тоже непонятно какие проблемы. Написать конфигурацию для InnoSetup это не космические технологии.
Были у меня и крупные проекты и почему то не возникало необходимости ПО разбивать. Все прекрасно работало из одного Exe.
Например для того, чтобы быть востребованным на рынке. Потребность в Delphi-программистах с начала нулевых значительно просела.Я бы не сказал что прям значительно. Просто такой эффект возникает из за того что IT отрасль впринципе разрослась и доля десктопного ПО в ней сильно снизилась. В начале 2000-х например мобильного рынка не существовало как такового, а теперь чуть ли не самая денежная сфера. Веб фронт и бэк тоже разрослись с появлением быстрого интернета. К тому же кто сказал что я знаю один язык) Я выбрал два языка знание которых закрывает значительный кусок сфер разработки ПО. 50-60% времени я пишу на Java, остальное на Delphi. Вот и совершенствуюсь в них.
Ага. То Kylix разработают, а потом выбросят, то бросятся дельфю для дотнета делать с тем же результатом, ещё какой-то Delphi for PHP был. Попутно футболя отдел разработки по маршруту Borland — Inprise — CodeGear — Embarcadero — КтоТамСейчасДавноНеСлежу.Да, было время когда delphi метался и не знал чем ему быть… Но это закончилось в 09-10 году. Тогда по руководством Embarcadero он таки нащупал ногами правильный путь и с того момента сильно развился. Последний Delphi 10.4 прям супер современный и навороченный. Они настолько «ператрахнули» язык что теперь есть инлайн переменные. Интересно короче чем кончится. :)
Судя по результатам этого опроса, адептам Delphi как раз около 40.Многим да, но далеко не всем.) Но ключевое слово было красноглазить, потому что мы все рано или поздно будем сидеть за компом в 40, а кто то даже уже.)
Справедливое замечание, проглядел, ибо причем тут это? Играете роль недалекого заказчика?При том что нативный код и нативный интерфейс это быстрое ПО с отзывчивым интерфейсом. Качественное ПО одим словом и то что встречается достаточно редко в наше время. Заказчик который требует от вас качественное ПО «недалекий» по вашему? А вы уверены что недалекий именно заказчик?
Есть разные ЯП под свои задачи.Да и делфи отлично справляется с своей задачей написания десктопного по, как с гуями так и без. Я ж не утверждаю что делфи топ для мобилок (он конечно может, но есть более подходящие инструменты)…
Судя по комментам под этим постом, у Вас либо знатно горит от того что Ваше представление не совпадает с реальностью, либо вы знатный тролль, который решил постебать над остальными.Судя по тому что хоронят и поливают грязью делфи именно те кто кто его никогда не видел и не знает горит и не совпадает явно не у меня.
Во всяком случае воспринимать Вас в серьез нет смысла.Ярлыки расклеивайте в обувном отделе пожалуйста.
Pyqt. Если очень хочется — qml, хоть я его и не люблю. На край есть електрон. Джависты будут топить за свинг.
Все что тут перечислил, сейчас используется на реальных проектах.
Пример софта на pyqt — Cura Ultimaker 4. Популярная софтина среди 3д печатников.
п.с. кстати, а Вы в какой версии работаете? У меня ноутбук thinkpad w701 в стоковой комплектации 2010г. вполне справляется с последней курвой(4.5-4.6). Если брать первые версии с номерами 15, и 3ю, тогда были косяки, когда во время слайсинга процесс не отвечал. В первых версиях был включен автослайсинг по умолчанию, приложение после каждого изменения пыталось нарезать модель на слои, что вызывало дикие баги в не без того загруженном ошибками приложении с убитой архитектурой.
Там ещё вышли решения от Mellow Store с wifi на борту и довольно приятным web интерфейсом. Но хочется быстрой загрузки принтера и отклика интерфейса. Тормозные вебморды всего и вся уже достали.
Большинство разработчиков начинало программировать на Pascal и С++, но вскоре первыми языками разработчиков станут JavaScript и Python. Интересно, как это повлияет на культуру программирования.Уже видно как.
Нет, я сам шарпист и считаю C# гораздо более выразительным и комфортным языком, чем Java. Но пересадит армию жавистов на C# кажется мне не особо реальным
Уж лучше на TypeScript перейти, чем мириться с style guide C#.
Это, безусловно, вкусовщина. Логично же выбирать то, что более по вкусу, а не объявлять священную войну ветряным мельницам.
В конце концов вас же никто не заставляет его придерживаться.
Если что-то пишешь для себя и никому не показываешь, то да. Если пишешь в команде за деньги, то «не придерживаться» не получится. Код, конфликтующий по стилю с RTL/распространёнными библиотеками/остальным кодом приложения выглядит непрофессионально и неприятен в поддержке.
Да, но речь как раз идет о том, что шарп в последнее время сильно меняется в лучшую сторону, так что может и сейчас вернувшись, жалеть будет не о чем
Местами это самое "много что написанное на Java" занесли в раздел легаси и потихоньку от этого избавляются.
Только далеко не всегда избавляются в пользу шарпа. Альтернатив сейчас предостаточно.
Альтернатив сейчас предостаточно.Для бэка? Это какие например? Go? Php? Node?
Но ведь есть Kotlin, который не менее выразительный, чем C#, но при этом совместим с JVM-legacy.
В Kotlin нет аналога Linq (зато есть встраиваемые (inline) фукции, которых нет в C#).
AgressiveInlining атрибут это разве не то же самое?
Не совсем. Во-первых, AgressiveInlining работает только во время JIT-компиляции, а inline в котлине раскрывается на этапе компиляции в байт-код. Во-вторых, AgressiveInlining нельзя поставить на делегат. В-третьих, inline в Котлине позволяет использовать нелокальные управляющие конструкции.
public inline fun repeat(times: Int, action: (Int) -> Unit) {
contract { callsInPlace(action) }
for (index in 0 until times) {
action(index)
}
}
Может использоваться, скажем, так
suspend fun bar() = Unit
suspend fun foo() {
repeat(10) { bar() }
}
Особенность suspend в том, что их можно вызывать только из других suspend функций, аналогично и @Composable
Без inline каждую подобную функцию нужно было бы дублировать по штуке на каждый контекст, который завезут компиляторными расширенями
public fun repeat(times: Int, action: (Int) -> Unit)
public suspend fun repeat(times: Int, action: suspend (Int) -> Unit)
public @Composable fun repeat(times: Int, action: @Composable (Int) -> Unit)
Так что inline — круто
Не то чтобы query синтаксис был нужен.
Fluent-like для коллекций-то есть
Посмотрите проект Avalonia — пока еще сыро, но это кроссплатформенное развитие WPF.
Для фронта + бека есть ASP Net Core или ASP Net Core Blazor (Web assempler)
Каковы шансы C# обогнать Java
А нужно ли обгонять?
Очень хотелось бы посмотреть на график стоимости минуты простоя программного обеспечения в зависимости от языка написания этого самого обеспечения. Жаль что это из области фантастики.
Тем, кто только выбирает себе язык программирования, возможно, стоит ориентироваться не на язык как таковой, а на сферы применения
А где Rust используют в продакшене?
Современный Firefox, стремящийся занять всю доступную оперативную память, скорее антиреклама для языка.
Зависит от того, сколько у вас памяти, вкладок и как часто перезапускаете лису.
52 ESR до 3 Гб раздувался за месяцы работы с сотнями вкладок в нескольких окнах и это был один процесс, который легко контролировать.
Firefox 80+ с 100 вкладками раздувается до 4Гб практически сразу после старта, а поработав без перезапуска несколько месяцев может спровоцировать своп даже в системе с 32 Гб.
И закрытие почти всех вкладок память в систему не вернёт, только перезапуск браузера. А после перезапуска может оказаться, что сессия последний раз сохранялась пару дней назад, а всё остальное время тихо падала с Out of Memory (!).
www.redox-os.org
И что это? Игрушечная ОС на игрушечном языке?
![Вакансии](https://habrastorage.org/webt/b-/8o/be/b-8oberwadczbndolj3def0hzd4.png)
Где тут вообще раст? Он даже в 20-ку по вакансиям не попадает (в отличие от Perl'а и даже Delphi). Контролируйте свой фанатизм ©.
Так то кроме Firefox примеров и не знаю.
Ходят слухи что Microsoft его использует, но где и как — непонятно
Подтекст таков… не всё что в релизе и в «продакшон» является чем то стоящим, востребованным, качественным…
Rust в продакшен
К примеру в AWS он используется для запуска лямбд: github.com/firecracker-microvm/firecracker
Rust же… Я просто нигде его не вижу кроме как в заголовках новостей.
Что тогда делать с языками, которые заточены на написание продуктов от 10к до 1м строк? Ну вот дизайн такой, и для 99% проектов вполне успешно работает. Делает ли это язык "плохим"? Или в чем обсуждение?
Ведь не факт что язык который идеально справляется со сложность и единственный язык на котором можно написать скажем 10^6 kloc окажется строго лучше/успешнее всех остальных.
Довольно много блокчейнов пишут сейчас на Rust: Solana, Polkadot, Soramitsu переписывают свои проекты на Rust, ну и т. д. Также знаю об использовании Rust в HFT-системах и ядрах бирж. Потихоньку появляются Dapp-проекты на Rust (типа Fluence) — очень удобно, когда язык позволяет легко организовать wasm-песочницу, к тому же можно одновременно и бэк и фронт писать на одном языке.
Что кроме них?
Liquibase, Netty, Eclipse, Jenkins, HSQLDB, Hadoop, Apache Kafka, Android (не считая линуксового ядра)
Ну, если уж считаем млоки, то у NetBeans IDE на openhub 66 миллионов строк на джаве, у CXF — 40 миллионов, maven 3 — 17 миллионов…
А так, из больших проектов, вспомним еще Elasticsearch, GraalVM, openHAB, eclipse IDE (и производные), Apache Flink, Hive, Spring, Gradle, Bazel… В общем, по-моему, недостатка крупных проектов на джаве не наблюдается.
Да те же CLion и Android Studio (Java, Kotlin), Eclipse (Java) и все производные на Eclipse RAP/RCP. Немалый кусок Android тоже на Java.
Уидел переводную плашку — ага, интересно.
Увидел шарп в топе — появился червячок сомненеия.
Посмотрел на плашку по внимательнее — а, ясно, украинский источник.
Что сказать: шарп популярен только в СНГ, причем полагаю как раз по причине хелсберга (по крайней мере выбирая между джавой и шарпом в универе я взял шарп потому что он был больше похож на уже известный мне паскаль), ну и из-за особенностей использования лицензионного софта на просторах СНГ.
В европе/штатах шарп скорее диковинка, и хотя он входит в том языков по популярности, в абсолютных цифрах это 3.7%, вместе с обычноый сишкой. Сравните это с 12% у джавы и 20% у JS.
P.S. В Европе в «кровавом интерпрайзе» С# вот совершенно не экзотика и встречается на каждом шагу(собственно там всё что не Java — это .net).
Рейтинг языков программирования 2021: доля Python падает, а TypeScript обошел С++, в лидерах JavaScript, Java, C#