Обновить
-24
0
Maxim Penzin @maxp

Пользователь

Отправить сообщение
Ой, как это?
А что они писать-то умеют тогда?
Спустя столько лет мы видим, что Java является стандартом дефакто для серверного программирования с вкраплениями Си только там, где это удобно и оправдано.

«достаточно знать как работает железка и ос» — а Вы только под одну железку пишете что-ли?
Я вот порой даже не знаю, на каком железе оно там у меня в облаке сейчас трудится…
Ну фиг знает, у меня знакомые микрушкини воспринимают Си, как такой более удобный макроассемблер :)
Абсолютно все ассемблеры, с которыми я имел дело (кроме одного tasm.com размером в несколько килобайт) понимали все вышеперечисленное. Урезанные реализации Си я тоже видел.

Подытожу.
Ассемблеры предоставляют не так уж и мало абстракций, как это кажется. Просто сейчас ими мало кто пользуется, так как проще сделать всё на Си, а только некоторые вставки на асме, чтобы не писать прямо в машкодах.
Для использования в разных Java-based системах.
Ну а где же тут ассемблерные макросы, например?
Или автоматическое распределение памяти под всякую статику, с метками, с выравниванием, со всеми делами?

Ассемблер много чего умеет делать еще.
Это же не просто транслятор мнемоники машинных кодов.
Где-то я помню было автоматическое именование регистров и алиасы для них.

Я в свое время писал bitblt на Турбоассемблере с опцией .286 и очень гордился этим.
А скажите, сейчас есть в природе такая железка, которая не делает это аппаратно?
Адресная арифметика, прямая и декларированная зависимость базовых типов от архитектуры.
Ключевое слово register :)
Вон рубисты шага ступить не могут, чтобы не реализовать быстренько какой-нибудь DSL и не писать на нём :)

Про лисперов я уж и не говорю — программа рисуется по сути сразу из AST деревьев, где чуть ли не в каждом узле свои языковые конструкты.
(утрирую :)
Это время уже давно настало.
Даже Java можно считать низкоуровневой, просто для другой целевой платформы, для jvm.

Так как всякие объектно-ориентированные штучки для ассемблеров тоже были.
Ну как бы Си всегда был низкоуровневым по близости к железу.
Если говорить о высоком уровне, то надо и задачи соответствующие рассматривать. Например, сборка мусора в Java вполне может работать эффективнее чего-нибудь сишного на рефкаунтерах.

Разумеется, можно и на нижний уровень притащить всякие умные гарбеджколлекторы и прочий рантайм, только тогда там уже не Си будет а такая же Java :)

«Аналогичный случай был в нашей деревне...» (С)

С какого-то момента стало не достаточно просто знать за сколько тактов выполняется та или иная инструкция. А заниматься ручной оптимизацией, чтобы потом увидеть, как грамотный компайлер обгоняет её просто из-за того, что он помнит больше процессорных тонкостей уже не в кайф. Не говоря уж о том, что абсолютно бесперспективно.
В смысле кто чего не видел?
Линусовская sha1 компилируемая gcc обошла по скорости оптимизированную ассемблерную реализацию из openssl.

Но если говорить о JIT'ах, то их преимущество в том, что они работают на основе runtime статистики на реальных данных.
Присоединяюсь к вопросу.
Напишите контактный емайл, по которому можно предметно пообщаться насчет параметров изделия и возможностей приобретения.
Вот как раз и интересно кому?
Что они на нем делают и почему не делают другими средствами.

Может быть им вообще не нужны функции, но душу греет их наличие.
А правильный интерфейс может иметь еще бОльшее значение.
Не из желания потроллить, а просто из любознательности интересуюсь —
расскажите, что за люди пользуются всем этим многообразием функций и построителями графиков в _ручном_ _калькуляторе_? Сколько их не Земле и как часто они это делают?

т.е. я прекрасно понимаю, зачем бывают калькулятора с большой кнопкой +, кнопкой 000 и %,
понимаю всякие мат.системки со своим встроенным языком, графиками и численными методами,
но зачем гибрид?
Когда люди могут публиковать подобные логи, то у них нет _проблем_ с ФСБ, а только лёгкие разногласия разве что.

Информация

В рейтинге
4 695-й
Откуда
Иркутск, Иркутская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
Python
PostgreSQL
Linux
Java
MongoDB
Redis