vak: (Default)
[personal profile] vak
Народ проанализировал, какие языки программирования эффективнее по скорости, памяти и энергопотреблению. Си заметно выделяется из толпы. Rust тоже неплох.



Полный текст статьи: https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf

Date: 2021-03-26 04:16 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Для полноты Ассемблера не хватает

Date: 2021-03-26 05:49 (UTC)
mdmx: (Default)
From: [personal profile] mdmx
Согласен, но думаю что это своего рода читерство.

Date: 2021-03-26 07:30 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
По какому формальному признаку это не язык?

Date: 2021-03-26 09:44 (UTC)
x86128: (Default)
From: [personal profile] x86128
Предположу что из-за отсутствия правил переписывания термов.
Другими словами из-за того что символьная запись на ассемблере соответствует один в один машинным командам. Язык же программирования предполагает синтез машинных команд по каким либо правилам (оптимизациями вычисления арифметичских операций, удаления мертвого кода, и т.д.).

Date: 2021-03-26 10:46 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Тут можно возразить:

1) Оптимизация - необязательное свойство компилируемых языков

2) Аппаратную оптимизацию выполнения команд производит сам процессор

3) Мы можем писать на ассемблере одной машины, например x86. А исполнитель транслировать код в систему команд ARM. У него огромное пространство для оптимизаций и однозначного соответствия символьной записи нет.
Edited Date: 2021-03-26 10:48 (UTC)

Date: 2021-03-27 08:48 (UTC)
doldonius: (Default)
From: [personal profile] doldonius
Был, помнится, у покойной ныне DEC славный макроассемблер MACRO-11. Синтезировал, отлично синтезировал. И при этом вполне себе ассемблер.

Date: 2021-03-26 21:47 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
В расширенном понимании "машина" не обязательно физическая.
По-другом еще называют Runtime.

Программист на Java должен представлять архитектуру JVM.
на C#: CLR.

Писать на каком-либо ЯП не представляя ничего об исполнителе, вряд-ли возможно.

Date: 2021-03-27 09:03 (UTC)
x86128: (Default)
From: [personal profile] x86128
Еще как возможно, если посмотреть на армию JavaScript-ологов. И любителей запихать JS куда только не попадя - даже на FPGA.

Date: 2021-03-27 09:54 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Даже в JS есть 2 различный рантайма: браузер и Node.Js.
Написание программ под них существенно различается.

Date: 2021-03-26 04:21 (UTC)
brumka: (Default)
From: [personal profile] brumka
Интересно, кто (и где?) пишет на Аде?..

Date: 2021-03-26 04:58 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Принято считать что в армии, но там же всё засекречено

Date: 2021-03-26 15:42 (UTC)
brumka: (Default)
From: [personal profile] brumka
Кажется в '97ом году, в универе, меня учили принципам ООП на примере Ады... Даже пару студенческих проектов на ней написал. Тогда препод нам сетовал, что когда появилась Ада они считали её вторым пришествием, языком будущего. А потом появился С++ и...
Edited Date: 2021-03-26 15:43 (UTC)

Date: 2021-03-26 04:23 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Паскаль у них по памяти на первом месте, потому что в списке нет Форта.

Date: 2021-03-26 05:30 (UTC)
ufm: (Default)
From: [personal profile] ufm
Непонятно как у них Си оказался хуже Go/Паскаля по памяти. Впрочем - я подозреваю как. И это еще больше убеждает, что программирование на Си/Сипипи нужно приравнять к работе с особоопасными веществами и программисты должны получать на это дело специальную лицензию.

Date: 2021-03-26 06:50 (UTC)
utochka: ШЁЛКОВАЯ УМНИЦА (Default)
From: [personal profile] utochka
Give us back our Basic! :-)

Date: 2021-03-26 14:16 (UTC)
From: [personal profile] bowhill
... и DTSS.

Date: 2021-03-26 15:15 (UTC)
utochka: ШЁЛКОВАЯ УМНИЦА (Default)
From: [personal profile] utochka
:-)

Date: 2021-03-26 08:10 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
В том, что С++ оказался менее эффективным по времени, чем С, нет ничего удивительного. Если на С++ специально писали "высокоуровнево", то вот он и результат. Интересно было бы узнать, насколько ухудшаются значения от компиляции сишной программы С++ным компилятором (для чего могут понадобиться мелкие косметические правки, но этой разницей можно пренебречь).

Date: 2021-03-26 20:07 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Тогда все эти мерялки не имеют смысла для multi-paradigm languages, потому что результаты зависят от стиля программирования.

Date: 2021-03-26 21:39 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Вот именно. И сишную программу на любом unmanaged языке.

Date: 2021-03-27 08:59 (UTC)
x86128: (Default)
From: [personal profile] x86128
И даже если в языке нет goto !

Date: 2021-03-26 09:33 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Вот так всегда у зелёных. Сколько электричества выделили -- посчитали, сколько программисты во время написания кода тяжёлых вздохов сделали -- не посчитали.

Зато, тема важная. Прямо в номер.

Date: 2021-03-26 09:49 (UTC)
x86128: (Default)
From: [personal profile] x86128
Для софта который только работает миллионными тиражами, действительно, параметром можно пренебречь, но если же про разработку прошивок каких-нибудь марсоходов (мелкосерийного всякого), то там больше про "поправил пересобрал запустил", то между компиляцией кода какой-нибудь условной java или kotlin можно и чайку успеть налить :)

Date: 2021-03-26 10:07 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
И для марсоходов, и для совфта, который "только работает миллионными тиражами" вопросы надёжности превышают все другие интересы. А оптимизация высоконагруженного кода должна идти руками на уровне ассемблера. Впрочем, даже в банальном SQL перестановка скобочек может привести к падению производительности на два порядка.

Хотя, конечно, и туда пришёл менеджмент с залёной ватой в головах.