Спустя столько лет мы видим, что Java является стандартом дефакто для серверного программирования с вкраплениями Си только там, где это удобно и оправдано.
«достаточно знать как работает железка и ос» — а Вы только под одну железку пишете что-ли?
Я вот порой даже не знаю, на каком железе оно там у меня в облаке сейчас трудится…
Абсолютно все ассемблеры, с которыми я имел дело (кроме одного tasm.com размером в несколько килобайт) понимали все вышеперечисленное. Урезанные реализации Си я тоже видел.
Подытожу.
Ассемблеры предоставляют не так уж и мало абстракций, как это кажется. Просто сейчас ими мало кто пользуется, так как проще сделать всё на Си, а только некоторые вставки на асме, чтобы не писать прямо в машкодах.
Ну а где же тут ассемблерные макросы, например?
Или автоматическое распределение памяти под всякую статику, с метками, с выравниванием, со всеми делами?
Ассемблер много чего умеет делать еще.
Это же не просто транслятор мнемоники машинных кодов.
Где-то я помню было автоматическое именование регистров и алиасы для них.
Я в свое время писал bitblt на Турбоассемблере с опцией .286 и очень гордился этим.
А скажите, сейчас есть в природе такая железка, которая не делает это аппаратно?
Если говорить о высоком уровне, то надо и задачи соответствующие рассматривать. Например, сборка мусора в Java вполне может работать эффективнее чего-нибудь сишного на рефкаунтерах.
Разумеется, можно и на нижний уровень притащить всякие умные гарбеджколлекторы и прочий рантайм, только тогда там уже не Си будет а такая же Java :)
С какого-то момента стало не достаточно просто знать за сколько тактов выполняется та или иная инструкция. А заниматься ручной оптимизацией, чтобы потом увидеть, как грамотный компайлер обгоняет её просто из-за того, что он помнит больше процессорных тонкостей уже не в кайф. Не говоря уж о том, что абсолютно бесперспективно.
Не из желания потроллить, а просто из любознательности интересуюсь —
расскажите, что за люди пользуются всем этим многообразием функций и построителями графиков в _ручном_ _калькуляторе_? Сколько их не Земле и как часто они это делают?
т.е. я прекрасно понимаю, зачем бывают калькулятора с большой кнопкой +, кнопкой 000 и %,
понимаю всякие мат.системки со своим встроенным языком, графиками и численными методами,
но зачем гибрид?
А что они писать-то умеют тогда?
«достаточно знать как работает железка и ос» — а Вы только под одну железку пишете что-ли?
Я вот порой даже не знаю, на каком железе оно там у меня в облаке сейчас трудится…
Подытожу.
Ассемблеры предоставляют не так уж и мало абстракций, как это кажется. Просто сейчас ими мало кто пользуется, так как проще сделать всё на Си, а только некоторые вставки на асме, чтобы не писать прямо в машкодах.
Или автоматическое распределение памяти под всякую статику, с метками, с выравниванием, со всеми делами?
Ассемблер много чего умеет делать еще.
Это же не просто транслятор мнемоники машинных кодов.
Где-то я помню было автоматическое именование регистров и алиасы для них.
А скажите, сейчас есть в природе такая железка, которая не делает это аппаратно?
Ключевое слово register :)
Про лисперов я уж и не говорю — программа рисуется по сути сразу из AST деревьев, где чуть ли не в каждом узле свои языковые конструкты.
(утрирую :)
Так как всякие объектно-ориентированные штучки для ассемблеров тоже были.
Разумеется, можно и на нижний уровень притащить всякие умные гарбеджколлекторы и прочий рантайм, только тогда там уже не Си будет а такая же Java :)
С какого-то момента стало не достаточно просто знать за сколько тактов выполняется та или иная инструкция. А заниматься ручной оптимизацией, чтобы потом увидеть, как грамотный компайлер обгоняет её просто из-за того, что он помнит больше процессорных тонкостей уже не в кайф. Не говоря уж о том, что абсолютно бесперспективно.
Линусовская sha1 компилируемая gcc обошла по скорости оптимизированную ассемблерную реализацию из openssl.
Но если говорить о JIT'ах, то их преимущество в том, что они работают на основе runtime статистики на реальных данных.
Напишите контактный емайл, по которому можно предметно пообщаться насчет параметров изделия и возможностей приобретения.
Что они на нем делают и почему не делают другими средствами.
Может быть им вообще не нужны функции, но душу греет их наличие.
А правильный интерфейс может иметь еще бОльшее значение.
расскажите, что за люди пользуются всем этим многообразием функций и построителями графиков в _ручном_ _калькуляторе_? Сколько их не Земле и как часто они это делают?
т.е. я прекрасно понимаю, зачем бывают калькулятора с большой кнопкой +, кнопкой 000 и %,
понимаю всякие мат.системки со своим встроенным языком, графиками и численными методами,
но зачем гибрид?