Забавные новости 0й-Ti :)

Тема в разделе "WASM.HEAP", создана пользователем UbIvItS, 18 июн 2018.

Статус темы:
Закрыта.
  1. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Да не, я просто угараю)
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    главное для питоХИ, что он в числе инфраструктурных яп-ов, а для них пилят единую экосистему. тч в перспективе питоХА код может автоматом конвертироваться в тот же го, к примеру.
    ада была и ржавому придётся уйти за ней :)
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ада не была, Ада есть. В сферах, где программная ошибка может привести к смерти или серьезным травмам людей, Ада вообще своего рода стандарт. Но для обычного всратого софта в Аде нет необходимости, ну упал и упал, данные пользователя не пропали - и то хорошо.
    --- Сообщение объединено, 10 ноя 2023 ---
     
  4. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Ада и близко не стояла даже с дэльфи в его лучшие годы, не говоря уже о си и плюсах. Чтобы составить конкуренцию топам, надо быть, как минимум, языком общего назначения, на котором можно пильнуть и прошивку, и драйвер, и сайтик.
    Собственно, быть как си и плюсы, и уметь не меньше, добавляя сверху какие-нибудь киллер-фичи.
    Например, в дэльфи такой фичей были (да и сейчас остаются) GUI, и если бы они тестировали его перед выпуском в релиз - дела бы у них шли на лад.
    А что ещё есть (или было) из популярных нативных языков? Раст вроде первый.
    --- Сообщение объединено, 10 ноя 2023 ---
    Пока не появится кто-то лучше - вряд ли. Заменить его сейчас особо нечем: если в вебе и прикладном софте есть гоу, джава и шарп, то в системной сфере вариантов нет.
     
    Последнее редактирование: 10 ноя 2023
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    си. :) ну, вот акий толк от ржавого, если все сколь-либо значимые оси написаны на си??? напомни мне, как там ось на ржавом называется и её актуальный статус???:blush2:
    ada:
    смотря что понимать под "близко стоять" :) ада в своём роде уникальный яп и в том же ржавом нет ничего, что могло бы превзойти аду. но она оказалась оверкилом и пролетела си/плюсам - разработка чисто адой была слишком дорогой. а, например, в реал-тайм системах более стабильного кода, чем сишный и/ль асмовый не получается, пч сама тормознутость для реал-тайма и есть фатальная ошибка.
    goto ada; :grin:
     
  6. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Это пока не было ничего лучше. Он же неудобный и невыразительный, с кучей ручной работы - сейчас это самый неудачный выбор. Разве что поддерживать старый код, который был написан, когда не существовало ничего лучше.
    А ты от операционки не зависишь, можешь позволить себе нормальные языки. Чего только стоит концепция деструкторов, ради одной только неё стоит выбросить си на свалку истории.
    Ты наверно говоришь про RedoxOS. Вроде что-то пилят. За семь лет пройти путь до полноценного GUI, NVMe и сетевого стека для группы энтузиастов - очень круто. Правда, никому не нужно)

    О том и речь - нафиг нужен язык, на котором ты будешь писать какую-то фигню два года, которую студент на джаве пильнёт за неделю, и потом любой ревьювер ещё и сможет понять, что там написано)
    Не, это известное заблуждение. Дыры в проектах на си вдоль и поперёк, один сплошной дуршлаг из-за постоянно забытых close() и free(), из-за использований после освобождения и подобных детских ошибок, которые никак нельзя предотвратить.
    С появлением плюсов с деструкторами мы сразу делаем километровый шаг в сторону бесплатного упрощения и безопасности. Производительность та же, а код намного короче, проще и безопаснее.
    Юзаем шаблоны - сразу минус копипаста. Юзаем констэкспры - часть кода уходит в компайлтайм.
    Вводим move-семантику - получаем бесплатные и безопасные перемещения данных между владельцами (и статические анализаторы их понимают).
    Ну и чем дальше - тем больше ништяков, короче, быстрее и проще код, меньше ошибок, больше сэкономленного времени и счастливее программисты.
    Собственно, раст - просто логическое развитие плюсов: взяли лучшее, добавили наконец систему сборки, менеджер пакетов, async/await, кучу таргетов из коробки, выразительный синтаксис и ещё один шажок в безопасности.
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    когда пишешь реал-тайм, там удобств не может быть по-определению :)
    как и сам ржавый :)
    неа, текстовка ады сама по себе весьма толкова и читабельна, но результат по скорости работы сильно уступает сишке и опосля отключения всех сейфовых фишек ады, мы получаем тот же сишный бинарь. ровно та же самая смехота со ржавым - оффим его сейфовость и бАлин сиииииишка на выходе по бинарю :)
    Ты ошибаешься с самим понятием "ошибка". прога работает в цикле и каждый обработчик ошибки делает тот цикл всё более пухлым. и мы вынуждены считать акие ошибки наиболее вероятны. в итоге в цикл не попадает даже куча хендлеров ошибок из списка наиболее приоритетных. так что пиши реал-тайм любым япом, а получишь на выходе сишку/асм :)
     
  8. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    По чьему определению?) Кажется, по определению, реалтайм - это гарантированное время ответа системы на запрос. Ни слова про удобства.
    Как введение всех вышеописанных удобств противоречит реалтайму?


    Не совсем понял, что значит «получишь сишку». Асм - да, получишь (гм, было бы странно на выходе получить что-то ещё). А если нет разницы, зачем страдать, когда можно не страдать?
    Вот и причина, по которой нужны нормальные языки.
    Ты же сам буквально каждым словом подтверждаешь всё, что я пишу!
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    я про удобства разработки говорил - ни один яп тебе их там не даст .. по-определению не даст :)
    бинарь получишь идентичный бинарю от сишного кода. и ни-акий яп тебе более простого, чем сишка, кода не даст. другой Вопрос, если автоматику смогут допилить по единой экосистеме разработки, тогда пиши ядро оси хоть питохой.. но, когда допилят иль допилят ли вообще, оного неизвестно :)
     
  10. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Дык по какому определению? Никаких проблем с реалтаймом на любом нативном языке без сборщика мусора.
    Свободно юзай все ништяки, лишь бы уложился в требования ко времени.

    Так и я об этом: ты пишешь на высокоуровневом языке с сахаром и удобствами, а на выходе получаешь ультрабыстрый бинарник, как если бы писал его на чистом си, только напишешь многократно меньше кода, код будет читабельнее, понятнее, его легко будет поддерживать, и чем выше уровнем язык - тем сложнее на нём написать бяку.
    И вдобавок получаешь более широкие возможности по оптимизации, когда компилятор, зная семантику высокоуровневых конструкций, сможет статически доказать безопасность оптимизаций, которые мог бы забраковать в более низкоуровневых языках.
    Или пример с констэкспрами, когда ты в компайлтайме можешь посчитать то, что на си компилится в рантайм.
    На си ты всё это можешь написать вручную, в уме посчитать все выражения, аккуратно везде освободить ресурсы, но… зачем, если времени потратишь больше, а разницы не будет?
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    например, что за фичи можно такие новомодные пользовать и прям профайл не проседает??? :)
    а это что это за такие чудесные япы??? опять же вот совсем ничто не мешает на сишке написать чекеры по ошибкам памяти в рантайме и удобств будет даже больше, чем в том же ржавом.. но вот бЯда от чекеров тех можно забыть про реалтайм. вот почему ядра топовых осей до сих пор не вышвырнули сишку на свалку ХИстории??? :)
     
  12. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Хм, я бы ставил вопрос иначе: от каких фич он проседает? Надо смотреть что-то конкретное…
    Вообще любой. Наверно единственными ограничениями будут автоматический сборщик мусора и JIT, поскольку они немного нарушают предсказуемость времени выполнения программы. Но в принципе, допускаю, что можно написать реалтайм и с ними.
    В остальном ограничений никаких.
     
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    ото всех..

    1. сборка мусора.
    2. проверка размера массива/стека.
    3. проверка на переполнение целочисленной переменной.
    4. чек на целостность памяти (перепады напряжения, радиация, перегрев и битики кувыркаются).
    ...
     
  14. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Гм, и это всё?
    Сборщик мусора из нативных языков есть только в Go, в других языках его нет.
    Проверки на переполнение и выход за границы - это вообще не причина. Они бесплатные и отключаемые (в дебаге собираешь с проверками, в релизе можешь их отключить). Они не противоречат требованиям реалтайма. Кроме того, в любом нативном языке (даже в расте) есть возможность работать с сырыми указателями: их компилятор никак не проверяет.
    А проверок целостности нет вообще ни в одном языке. Если ты пишешь софт для железа, в котором такое возможно, все проверки ты пишешь сам.

    Но всё, что ты назвал, это даже не удобства.
    Что насчёт синтаксического сахара, системы типов и метапрограммирования?
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Я бы попросил: Nim, Crystal, D, Eiffel, OCaml, Haskell, Haxe, куча разных Lisp и Scheme, и это только, что я с ходу вспомнил.

    И да, Ада - очень приятный язык, имхо, куда приятнее Ржавого, и на ней вполне можно сделать дров или операционную систему, она умеет в bare-metal. В вебе - такое себе, но при желании есть такие библиотеки у Ады.
     
  16. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Ладно, они тоже)
    --- Сообщение объединено, 11 ноя 2023 ---
    Но за сорок лет у неё так и не сложилось заметного сообщества. Глянул на хедхантере - ни одной вакансии. И в TIOBE её популярность ниже, чем у Кобола с Прологом.
    Раст тем и хорош, что подойдёт и для веба, и для GUI, и для железа. У Ады, видимо, очень узкая сфера применения - или используют из-за поддержки старого кода. Сложно представить, чтобы сейчас кто-то обоснованно взял её для нового проекта.
     
  17. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Сложно представить, чтобы кто-то сейчас брал бы какие-то Цэ/Плюсы (из-за отсутствия гарантий безопасности) или какую-то Джаву (из-за отсутствия быстродействия и высокому потреблению памяти) для прошивки какого-то поезда или самолета. В этой сфере часто Аду выбирают. Ржавый мог бы по идее отжать какую-то часть этого рынка, но у Ржавого плохо читаемый синтаксис (в сравнении с Ады), и (насколько я знаю) нет решений по формальной верификации кода (см. Ada SPARK, или как-то так это называлось). В этой сфере тебе нужно не просто написать кода, но и формально доказать, что он корректен, прежде чем этому коду позволят управлять самолетом или поездом. Но опять же у любого правила бывают исключения.

    Ты пытаешься натянуть Аду на сферу современный веб-макак, конечно, она не будет популярна, так как на ней нельзя делать "*уяк-*уяк и в продакшен", тебе этого просто компилятор не даст.
     
  18. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Нууу, насчёт "часто" сомневаюсь. Бегло погуглил, и выглядит так, будто это мёртвый язык. Вакансий нет, даже если гуглить в Штатах, а сама Ада упоминается только в контексте поддержки легаси-проектов, связанных с авионикой, типа Боинга, и каких-то засекреченных оборонных разработок (да и те упоминания нашёл на реддите семь лет назад).
    Ну такое ~
     
  19. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну ты должен выбирать язык, исходя из задачи, а не исходя из того, сколько макак ищется на хедхантере. Ты что только скиллбокс закончил? Еще раз, для задач, где нужна формальная верификация кода, лучшей альтернативы Аде ты не найдешь. От того, что ты и где нагуглил, AdaCore не разоряется почему-то уже черти сколько лет.
    --- Сообщение объединено, 11 ноя 2023 ---
    https://www.adacore.com/industries
     
  20. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Ладно, убедил)
     
Статус темы:
Закрыта.