The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Сравнение эффективности 20 языков программирования"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Сравнение эффективности 20 языков программирования"  +/
Сообщение от opennews (??), 03-Янв-24, 11:05 
Опубликована вторая редакция проекта PLB (Programming Language Benchmark), нацеленного на тестирование производительности решения типовых задач на различных языках программирования. В отличие от первой редакции, опубликованной в 2011 году, новый вариант оценивает производительность кода для умножения  матриц, решения задачи расстановки 15-ферзей, поиск решений в игре Судоку и определение пересечений двух массивов. Код для тестирования был написан на 20 языках программирования...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=60384

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 03-Янв-24, 11:05   +21 +/
Опять всё переписывать...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4

2. Сообщение от Аноним (2), 03-Янв-24, 11:07   +16 +/
А теперь надо сравнить эти языки на обработке юникодного текста. И не забыть сравнить время, затраченное на написание кода для всех тестов
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9

3. Сообщение от Аноним (3), 03-Янв-24, 11:07   +1 +/
А почему GCC не участвовал в этом соревновании?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #35, #94, #130, #157

4. Сообщение от Аноним (4), 03-Янв-24, 11:08   +4 +/
Ну, если тебя высосанная из пальца синтетика с сомнительными результатами мотивирует, то -- вперёд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #145

5. Сообщение от Dzen Python (ok), 03-Янв-24, 11:11   +/
А смысл заниматься подобным онанизмом, если и так понятно, что (по времени исполнения) компилируевые < байт-код < интерпретируемые?

Нет, серьёзно.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23, #116, #334, #336

6. Сообщение от Dzen Python (ok), 03-Янв-24, 11:12   +9 +/
Тогда все эти зиги и нимы с моджо не получили бы первые места, естественно. Пришлось бы шаманить с разворачиванием циклов для луДшей синтетики
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #51

7. Сообщение от Аноним (7), 03-Янв-24, 11:15   +/
Их бы сравнения да фронтоделам в уши.
Один дискорд поражает своей "эффективностью"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #79, #111

8. Сообщение от Аноним (8), 03-Янв-24, 11:17   +8 +/
Каким это образом Zig, Mojo и Nim получают первые 3 места, если задача Судоку на них не решалась вообще (еще и Пересечение массивов у Zig и Mojo)? Логичней было б прибавить к полному времени выполнения на них бесконечность а не нули.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

9. Сообщение от наука_кандидатов (?), 03-Янв-24, 11:19   –17 +/
C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки. Задача "оставить в строке только буквы алфавитов X и Y" на этих языках нерешаема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #13, #30, #32, #49, #52, #90, #128, #182

10. Сообщение от Аноним (10), 03-Янв-24, 11:19   –2 +/
Вот и очередное доказательство, что ужасный ржавый проигрывает божественному зигу
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16

11. Сообщение от Аноним (11), 03-Янв-24, 11:23   +3 +/
Как часто вы умножаете матрицы в ваших программах?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36, #134, #418

12. Сообщение от Аноним (-), 03-Янв-24, 11:26   +/
лол, вот просто сижу на работе и каждый день судоку решаю
а по выходных ферзей переставляю)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18

13. Сообщение от пох.. (?), 03-Янв-24, 11:26   –10 +/
за такую задачу надо сразу бить ее постановщика лопатой по хлебалу.

(в одном интересном языке принято записывать звуки, отсутствующие в алфавите, с помощью апострофа. Догадываешься что происходит при попытке ввести мои паспортные данные в такой вот хрени?)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

14. Сообщение от Аноним (14), 03-Янв-24, 11:27   +/
я так понимаю, что сравнение велось по суммарному времени для всех 4 тестов, а почему на 1 диаграмме для zig, nim, mojo и др. не все тесты отражены? или они мгновенно отработали?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22

15. Сообщение от пох.. (?), 03-Янв-24, 11:27   +1 +/
> Каким это образом Zig, Mojo и Nim получают первые 3 места, если задача Судоку на них не решалась вообще

и почему тогда не победил brainfuck, вот что непонятно!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

16. Сообщение от Анонин (?), 03-Янв-24, 11:28   +12 +/
Проигрывает в matmul, выигрывает в nqueens.
Но остальные две задачи зиг вообще не решил... поэтому, по мнению авторов, он быстрее чем раст.
Тогда проще было вообще не решать задачи и стать лучшим языком!))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #159

17. Сообщение от Советский инженер (ok), 03-Янв-24, 11:28   +3 +/
```rust
fn matmul(n: usize, a: Vec<Vec<f64>>, b: Vec<Vec<f64>>) -> Vec<Vec<f64>>
```

какойто додик упоротый передает вектора в функцию по значению !!!
это даже не смешно.

всратые клоуны

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #31, #84, #85, #136, #329

18. Сообщение от пох.. (?), 03-Янв-24, 11:28   +1 +/
> лол, вот просто сижу на работе и каждый день судоку решаю
> а по выходных ферзей переставляю)

вот, а теперь тебя уволят и заменят роботом на хрусте (потому что зиг к сожалению не справился)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

19. Сообщение от фнон (?), 03-Янв-24, 11:29   +7 +/
Т.е если взять брейнфак, где нет ни одной реализованной задачи - то он победит, тк время будет минимально?
(Эти гении "добавляют 0 времени" для нерешенной задачи /_-)
Максимально глупые условия теста.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #223, #299

20. Сообщение от Аноним (20), 03-Янв-24, 11:30   +12 +/
Где FPC? Где Fortran?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40, #349

21. Сообщение от пох.. (?), 03-Янв-24, 11:30   –1 +/
> какойто додик упоротый передает вектора в функцию по значению !!!
> это даже не смешно.

"appease clippy"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

22. Сообщение от Аноним (447), 03-Янв-24, 11:31   +/
Потому что для zig и mojo еще не написали sudoku и bedcov, а для nim - bedcov.
Зачем при этом делать такую диаграму - вопрос к автору.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #26, #39

23. Сообщение от Anonymus (?), 03-Янв-24, 11:31   +1 +/
> PyPy < CPython

Тут всё правильно?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

25. Сообщение от Аноним (25), 03-Янв-24, 11:33   +/
> производительность PHP оказалась примерно в 4 раза выше, чем CPython.

Воистину не тормозит!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #48, #55, #267

26. Сообщение от Аноним (14), 03-Янв-24, 11:34   +/
мне показалось или новость исправили?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #28

28. Сообщение от Аноним (14), 03-Янв-24, 11:38   +4 +/
теперь первый си
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

29. Сообщение от Анонин (?), 03-Янв-24, 11:40   +1 +/
Вообще очень классный вброс!
Сейчас набегут со словами:
"Вы написали на моем любимом языка какое-то овно! Сейчас я покажу вам как надо писать!!11"
Так что ждем третью версию тестов))
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #60

30. Сообщение от qetuo (?), 03-Янв-24, 11:42   +9 +/
О как. А libicu на чем написана, напомните?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #124

31. Сообщение от qetuo (?), 03-Янв-24, 11:45   +2 +/
Передает. Но в Rust по умолчанию используется "перемещение", поэтому никаких промежуточных аллокаций и копирований содержимого происходить не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #129, #190

32. Сообщение от Герострат (?), 03-Янв-24, 11:45   +/
Что значит "умеет в юникодные строки"? Чем юникодная строка отличается от любой другой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #38, #59

33. Сообщение от Bottle (?), 03-Янв-24, 11:48   +/
Очень всратый бенчмарк, кроме того, что не на всех языках решены все задачи, так езё задач мало.
The Benchmarks Game гораздо информативней.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #86, #139

34. Сообщение от Анонн (?), 03-Янв-24, 11:49   +1 +/
Такое ощущение, что все компилируемые языки должны асимптотически сходиться к одним значения.
У автора V и rust немного обгоняют Си в nqueen.
А в matmul V проигрывает Си около 6 раз - 3.17 vs 0.54!
Предположу, что там что-то неправильно реализовали.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #56, #219, #426

35. Сообщение от Archer73email (ok), 03-Янв-24, 11:50   +2 +/
По тестам Phoronix актуальный gcc в среднем чуть медленнее clang
https://www.phoronix.com/review/gcc-clang-eoy2023/8
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #50

36. Сообщение от Тот_ещё_аноним (ok), 03-Янв-24, 11:56   +2 +/
Удивительно, но часто
Клиент калькулятор на сайт попросил, умножение матриц внутри, php
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #47, #516

37. Сообщение от Анонус (?), 03-Янв-24, 11:57   +/
Было бы здорово увидеть решение на asm для эталона.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #42, #61, #194

38. Сообщение от Аноним (4), 03-Янв-24, 11:57   +3 +/
Тем, что предсказать количество байт, необходимое под определённое число символьных единиц, а также, сколько будет каждая из них, невозможно. Это накладывает определённые ограничения на работу с текстом, но, на практике, строки бывают только такими. Если, конечно, это не UTF-32, там размер предсказуемый. Понятное дело, накладные расходы в любом случае довольно серьёзные, по сравнению с обработкой однобайтных строк.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #57, #92, #147

39. Сообщение от Анонус (?), 03-Янв-24, 11:59   +/
Могли бы в ЧатЖПТ заказать. Возможно и не самый оптимальный вариант будет, но лучше чем ничего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

40. Сообщение от Тот_ещё_аноним (ok), 03-Янв-24, 12:00   +4 +/
См результаты Си
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

42. Сообщение от Тот_ещё_аноним (ok), 03-Янв-24, 12:03   +/
Разница с Си будет доли %
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #46, #120

45. Сообщение от Аноним (46), 03-Янв-24, 12:04   +/
Все это почти не имеет значения, если речь не про системное программирование с критическими участками, где требуется производительность именно процессора. В большинстве случаев все упирается в I/O, будь то память, шина или сеть.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63, #70, #72, #77, #488

46. Сообщение от Аноним (46), 03-Янв-24, 12:05   –3 +/
Не смеши мои тапки, Си от голого ассемблера отстаёт в десятки раз. Проверено ещё во времена msdos и 8086 процессора.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #69, #263, #278, #326

47. Сообщение от фнон (?), 03-Янв-24, 12:05   +1 +/
хм... мне казалось, что мат. либы должны быть уже или написаны, или быть в std.
Или это какой-то особый калькулятор?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #110, #325

48. Сообщение от Аноним (48), 03-Янв-24, 12:06   +1 +/
PHP фреймворки эффективно устраняют это недоразумение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #251

49. Сообщение от Аноним (49), 03-Янв-24, 12:07   +5 +/
> C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки

Звездёж наглый. https://en.cppreference.com/w/cpp/language/string_literal u8 и https://en.cppreference.com/w/cpp/locale/codecvt_utf8 .

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #64

50. Сообщение от Аноним (4), 03-Янв-24, 12:09   +1 +/
Все, кто хоть немного интересовался вопросом, понимают, что это булшит. Но у шланга есть грязные менее универсальные к входным данным оптимизации (aka лапша из goto), которые во многих случаях дают хороший результат.

Хотя гцц тоже не без проблем, но производительность сгенерированного им кода куда более предсказуемая и пго позволяет применять наиболее эффективные оптимизации.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #95, #346

51. Сообщение от Витюшка (?), 03-Янв-24, 12:10   +/
Получили бы, после того как ты написал поддержку Zig в gcc.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #105, #122

52. Сообщение от Аноним (52), 03-Янв-24, 12:11   +1 +/
Не то чтобы гуру в си юникоде, но даже без libicu всё работает нормально. Сами по себе строки и регексы в них - без проблем вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

54. Сообщение от Анонус (?), 03-Янв-24, 12:14   –1 +/
В новости надо бы добавить уточнение, что результаты получены на

> Timing on Apple M1 Macbook Pro

Ответить | Правка | Наверх | Cообщить модератору

55. Сообщение от Аноним (4), 03-Янв-24, 12:15   –5 +/
>> производительность PHP оказалась примерно в 4 раза выше, чем CPython.
> Воистину не тормозит!

PHP не ЯП.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

56. Сообщение от Archer73email (ok), 03-Янв-24, 12:16   +1 +/
Не понятно каким компилятором собирался код V. В makefile есть только опция -prod. Лучше было бы явно задать в качестве компилятора gcc, и добавить опции fast_math и no_bounds_checking. Возможно это ничего не поменяет, но явное лучше неявного.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #192, #287

57. Сообщение от пох.. (?), 03-Янв-24, 12:16   –5 +/
это не про unicode, это про utf8/16 - два самых уе6-щных в мире способа его кодирования.
виндовый ucs2 вполне себе fixed width.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #74, #76, #125, #135

58. Сообщение от Аноним324 (ok), 03-Янв-24, 12:16   +1 +/
А теперь посмотрим в рейтинг зарплат, за что готовы платить, и увидим, что никаких быстрых языков там не нужно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #65, #68, #73, #167

59. Сообщение от Аноним (59), 03-Янв-24, 12:17   +/
«От любой другой» — это от ASCII? Примерно всем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #126

60. Сообщение от Витюшка (?), 03-Янв-24, 12:17   +3 +/
Кроме Rust. Они обосрались и не смогли написать самый простой мьютекс ещё в прошлой ветке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #67

61. Сообщение от Аноним (61), 03-Янв-24, 12:20   +/
Посмотрел по ссылкам подробности алгоритмов. Составителям тестов следовало бы привлечь специалистов, которые читали что-либо еще, кроме Википедии. Используется неэффективное хранение матриц. На С можно намного увеличить скорость их перемножения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

62. Сообщение от Аноним (62), 03-Янв-24, 12:21   +4 +/
Раст на уровне D и Явы, даже не в первой пятерке, чего собственно и следовало ожидать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #75, #97, #168, #199

63. Сообщение от Аноним (61), 03-Янв-24, 12:21   +/
Думаю, они I/O, как Вы выразились, все-таки не учитывали. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

64. Сообщение от Аноним (447), 03-Янв-24, 12:22   +/
std::codecvt_utf8
(deprecated in C++17)
(removed in C++26)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #150

65. Сообщение от Витюшка (?), 03-Янв-24, 12:22   –4 +/
Быстрые языки много где нужны. Но там язык только инструмент. Нужна математика, алгоритмы, знание предметной области.

Остальным хватит и однопоточного JS за глаза

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #78, #101, #103

66. Сообщение от Аноним (48), 03-Янв-24, 12:23   +9 +/
Победили JavaScript, Lua, Julia, Python. Только на этих языках были решены все задачи.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #337

67. Сообщение от Анонин (?), 03-Янв-24, 12:24   +/
Странно, вроде обосрался ты запутавшись в волотилях аж в 60 строках кода...
А они умные люди - решили не тратить свое время на новый год на какую-то фигню.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #112

68. Сообщение от Аноним (61), 03-Янв-24, 12:24   +/
Если не нужно результатов, то да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

69. Сообщение от Аноним (59), 03-Янв-24, 12:26   +3 +/
Вспомнила бабка, как девкой была. Сейчас компилятор так наоптимизирует, что кожаный движок в жизни не догадался бы так написать. Да и тогда не было никаких десятков раз, конечно.
А тут ведь у нас про математику? Программирование 8087 на ассемблере — занятие для законченного мазохиста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #80, #142, #161

70. Сообщение от FF (?), 03-Янв-24, 12:27   +1 +/
Тогда еще хуже будет. "200 метров джава-скрипта грузит текста 300 байт"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

71. Сообщение от Витюшка (?), 03-Янв-24, 12:27   +/
Начал учить Flutter и Dart. Язык показался на удивление приятным!

А ещё такой производительный. Есть куда расти

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #104

72. Сообщение от Аноним (59), 03-Янв-24, 12:28   +/
Тысячи задач, где всё упирается в скорость процессора.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

73. Сообщение от FF (?), 03-Янв-24, 12:28   +/
> никаких быстрых языков там не нужно

ты уверен? подсказать, где еще больше платят, за один час и в продакшен, можно дальше новый фреймворк изучать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

74. Сообщение от Аноним (4), 03-Янв-24, 12:29   +2 +/
В венде, кстати, самый убогий и проблемный юникод, не понимаю, откуда твои восторги. Компромиссное решение конечно было, спасибо хоть теперь utf8 приняли. Но после этого перекодированый utf16 в utf8 может отправлять её в бсод. Когда в одних местах огрызок utf16 и в других местах огрызок utf8, это весело тоже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

75. Сообщение от Аноним (75), 03-Янв-24, 12:29   +1 +/
> чего собственно и следовало ожидать

26 звёзд за 12 лет намекают что тесты мягко говоря необъективные

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #310

76. Сообщение от Аноним (76), 03-Янв-24, 12:30   +/
> ucs2

но ведь там нет эмодзи !

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #93

77. Сообщение от FF (?), 03-Янв-24, 12:31   +/
процессор не обязателен, так и запишем
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

78. Сообщение от Аноним (447), 03-Янв-24, 12:31   –2 +/
Или тайпскрипт (͡° ͜ʖ ͡°)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #113

79. Сообщение от Аноним (79), 03-Янв-24, 12:31   +4 +/
> Их бы сравнения да фронтоделам в уши.
> Один дискорд поражает своей "эффективностью"

Я вам секрет страшный открою - фронтоделам и прочим вэбманкам фиолетово, они живут в парадигме - мы лабаем, а пользователю, если нужно запускать наш чудокод следует если что докупить дополнительных железок на апгрейд его "устаревшего гроба"!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

80. Сообщение от Аноним (4), 03-Янв-24, 12:34   +/
Оптимизации это хорошо (потому что компилятор в теории лучше знает об особенностях каждой архитектуры), но, в конечном счёте, без ручного ассемблера сегодня не обойтись.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

82. Сообщение от Аноним (82), 03-Янв-24, 12:36   +1 +/
Очередной наброс на вентилятор а не тесты!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #307

84. Сообщение от Alladin (?), 03-Янв-24, 12:37   +1 +/
сьто?, Vec представляет из себя указатель и ты переместил/скопировал указатель в функцию.

ты бы лучше спросил зачем им аллокация в аллокации.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #102

85. Сообщение от Sw00p aka Jerom (?), 03-Янв-24, 12:38   +/
задам вопрос не по теме, зачем какой либо функции возвращать значение return-ом, если назначение (dst) возвращаемого значения можно передать указателем в качестве аргумента фукнции?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

86. Сообщение от Alladin (?), 03-Янв-24, 12:40   +/
зиг тупо луДше:)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

88. Сообщение от фнон (?), 03-Янв-24, 12:41   +1 +/
В тесте явно не хватает 1С
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #152, #162, #187

90. Сообщение от Netcat (?), 03-Янв-24, 12:42   +/
wchar_t нет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #106, #151

92. Сообщение от Аноним (-), 03-Янв-24, 12:43   +1 +/
В чистых сях, если предказать невозможно размер строки, используют 2 пути:
1. Используют аллокаторы.
2. Используют массив, превыщающий размеры вводимых данных, с дополнительной проверочной функцией выхода массива за пределы допустимого размера.

>Понятное дело, накладные расходы в любом случае довольно серьёзные, по сравнению с обработкой однобайтных строк.

Понятие "накладные расходы" пришло из языков высокого уровня, где программисты отучились соображать, как в оперативной памяти располагаются данные. Чисто-сишник не знает таких слов, как "накладные расходы. Он просто видит задачу, и её делает. А Си плюс-плюс объектно-ориетрированный язык, в нём проблем с работой со строками вообще не существует.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #121, #174, #333, #514

93. Сообщение от пох.. (?), 03-Янв-24, 12:43   +/
увы. Поэтому в современной венде тоже помойка из где-то 16, где-то 8, а где-то и вообще восьмибитных кодировок для совместимости.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

94. Сообщение от olelukoie (ok), 03-Янв-24, 12:46   +7 +/
Потому что надо новость внимательно читать. Там в заголовке обоих графиков черным по белому написано «arm64-darwin». А что это такое? Правильно, это новые макбуки. И GCC там еще даже рядом не пробегал (я нашел только экспериментальную ветку, еще не включенную в официальный релиз).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #109

95. Сообщение от Аноним (-), 03-Янв-24, 12:53   +1 +/
Скажем так, код скомпилированный пр помощи GCC будет "качественным". ГНУ-тым, как "кровь из носу" тупая производительность, "во чтобы та ни стало", не нужна, они взрослые люди и переболели этой детской болезнью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

97. Сообщение от ИмяХ (ok), 03-Янв-24, 12:54   +/
Если правильно отсортировать график, то раст будет на 4 месте по производительности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #311

99. Сообщение от ИмяХ (ok), 03-Янв-24, 12:55   +/
Как js:bun оказался на 5 месте, хотя по цифрам должен был быть на 11м?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #107, #221, #306

101. Сообщение от Аноним324 (ok), 03-Янв-24, 12:56   +3 +/
> Быстрые языки много где нужны. Но там язык только инструмент. Нужна математика,
> алгоритмы, знание предметной области.
> Остальным хватит и однопоточного JS за глаза

Ох люблю кекспертво в области однопоточного джаваскрипта, знания поражают. Впринципе словосочетание "однопоточный джаваскрипт" уже отражает твоё знание предмета обсуждений.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #155

102. Сообщение от Советский инженер (ok), 03-Янв-24, 12:57   +/
>Vec представляет из себя указатель

указатель и счетчик занятого

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #266

103. Сообщение от Аноним324 (ok), 03-Янв-24, 12:58   +1 +/
> Быстрые языки много где нужны. Но там язык только инструмент. Нужна математика,
> алгоритмы, знание предметной области.
> Остальным хватит и однопоточного JS за глаза

Там где нужны быстрые языки, как правило не платят денег, я сомневаюсь что разрабы какой-то йоба электроники заплатят мне 12 тысяч долларов, а вот бизнес гои, отвалят мне 12 за джаваскриптик, 15 девопсу несисадминовичу, ещё чирик менеджеру.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #117

104. Сообщение от Аноним324 (ok), 03-Янв-24, 12:59   +/
> Начал учить Flutter и Dart. Язык показался на удивление приятным!
> А ещё такой производительный. Есть куда расти

Флаттер да, он приятный он как Vue.js

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #169

105. Сообщение от Аноним (-), 03-Янв-24, 13:00   +1 +/
А есть какие-то предпосылки для этого?
Зиг вроде и от шланга хотел отказываться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #132

106. Сообщение от Аноним (-), 03-Янв-24, 13:03   +/
>wchar_t нет?

Есть. А он имеет ввиде резиновый utf8.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

107. Сообщение от Аноним (-), 03-Янв-24, 13:04   +/
"А как тебе такая магия графиков, ИмяХ?" (с)
Просто там график по nqueen + matmul.

1. учитываются всего 2 задачи из 4х
2. если у тебя одна супер быстрая, а вторая супер медленная (как случилось с V), то ты можешь обогнать язык, где обе задачи среднячки

В общем тест нуждается в фиксах и улучшении, зато отлично генерирует срач

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

108. Сообщение от corvuscor (ok), 03-Янв-24, 13:14   –1 +/
Мне вот интересны два момента.
1. В подавляющем большинстве языков для matmul нынче используется OpenBLAS или что-то подобное, откуда там разница в разы? Свой велосипед делали?
2. По-хорошему, раз уж это тест производительности, надо тестировать на предварительно откомпилированых программах, если таковая возможность имеется. Тогда это будут равные условия.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #115, #305

109. Сообщение от Аноним (-), 03-Янв-24, 13:15   +12 +/
> Потому что надо новость внимательно читать. Там в заголовке обоих графиков черным по белому написано «arm64-darwin».

Ну ты сказанул!
Ты бы еще предложил "разобраться в теме, а потом потом только комментировать"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

110. Сообщение от Аноним (-), 03-Янв-24, 13:16   –1 +/
Функция "Умножение матриц", не являяется математической библиотекой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

111. Сообщение от Аноним (-), 03-Янв-24, 13:17   –5 +/
Мне платят за код, а не за оптимизации под устаревшие платформы.
Если надо будет сделать так, чтобы оно запускалось на некрожелезе - то я готов это сделать за отдельный прайс.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #228, #470

112. Сообщение от Витюшка (?), 03-Янв-24, 13:20   –1 +/
Я как раз не запутался, я его не использовал до этого. Это нормально для программистов, которые пишут больше чем 0 строк кода 😀😀😀

Только в Rust все пишут сразу безопасно и идеально. Но теперь мы поняли как 😀😀😀

Лучшая программа - это ненаписанная программа. По версии Rust фанатиков.

И, кстати, если бы я и не сказал, никто бы и не узнал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #118, #119

113. Сообщение от Витюшка (?), 03-Янв-24, 13:21   –3 +/
Или его. Шикарный язык, по сравнению с чистым JS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

115. Сообщение от Анонин (?), 03-Янв-24, 13:23   +/
Да, там для каждого языка написали свой велосипед. И эти велосипеды явно разной степени кривизны.
github.com/attractivechaos/plb2/tree/master/src

После это пункта, второй уже не имеет никакого значения))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #164

116. Сообщение от Аноним (116), 03-Янв-24, 13:24   –7 +/
Байт-код с JIT бывает быстрее компилируемого
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #515

117. Сообщение от Витюшка (?), 03-Янв-24, 13:24   –1 +/
А потом ты проснулся? Зарплаты посмотри на JavaScript, на Node.js. Заплатят тебе 12к$. Ну ты и мечтатель.

Покажи эти вакансии.

За JavaScript платят значительно меньше чем за C++. И даже за не 10к платят единицам.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #133, #156, #279

118. Сообщение от Аноним (-), 03-Янв-24, 13:25   +/
> Лучшая программа - это ненаписанная программа. По версии Rust фанатиков.

Странно, тебе вроде кинули код мютексов на расте.
Код есть - есть. Какие вопросы?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #138

119. Сообщение от Анонин (?), 03-Янв-24, 13:26   +/
Угу, только "фанатики" раст тебе предоставили рабочую написанную программу "проверенную годами" (с).
А ты... ну, что смог, то смог. Есть куда расти.

> И, кстати, если бы я и не сказал, никто бы и не узнал.

... думаешь ты.
Но даже если это так, то это как бы намекает, насколько всем непофиг на твои потуги)))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #137

120. Сообщение от User (??), 03-Янв-24, 13:28   –2 +/
Так-то при решении сколько-нибудь осмысленной объёмной задачи компилятор почти наверняка справится лучше... Т.е. возможны конечно варианты - но in general на x64 как-то так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #163

121. Сообщение от Аноним (-), 03-Янв-24, 13:29   +9 +/
> Чисто-сишник не знает таких слов, как "накладные расходы. Он просто видит задачу, и выходит за границы массива.

Я поправил, не благодари)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92

122. Сообщение от Аноним (122), 03-Янв-24, 13:38   +1 +/
Не, гендерфлюид не напишет. Он только токсить в комментах горазд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #127

124. Сообщение от Аноним (124), 03-Янв-24, 13:41   +/
Которая зачастую и используется во всяких других решениях чтобы работать нормально, в т.ч. для SQLite для нормального текстового поиска приходится пересобирать с ней
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #141

125. Сообщение от Аноним (124), 03-Янв-24, 13:43   +1 +/
В винде все "любят" BOM с которым проблемы и грабли в каждом втором кейсе, а в собственно кодировки нормально не умеют
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

126. Сообщение от Аноним (124), 03-Янв-24, 13:45   +/
При одном и том же наборе символов примерно ничем) А потом выясняется что ASCII в реале тебе не хватает и начинается цирк с теми, кто изначально использовал ASCII only подход
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

127. Сообщение от Аноним (124), 03-Янв-24, 13:46   +1 +/
На самом деле Zig и раст - это разные штуки
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122

128. Сообщение от Аноним (128), 03-Янв-24, 13:50   +/
>C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки.

С++20 имеет юникодные типы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

129. Сообщение от Аноним (124), 03-Янв-24, 13:52   +3 +/
Оказывается раст не защищает от полного непонимания происходящего и, как следствие, говнокода) удивительно... восхитительно...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #131

130. Сообщение от Аноним (128), 03-Янв-24, 13:53   +1 +/
>А почему GCC не участвовал в этом соревновании?

Так Darwin-платформа же. Им там религия запрещала GCC >4.2.2 использовать. Вам же неинтересны будут тесты на этой версии GCC?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

131. Сообщение от Аноним (-), 03-Янв-24, 13:59   –1 +/
Но, только для тех, кто не читал документацию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #248

132. Сообщение от Витюшка (?), 03-Янв-24, 13:59   –1 +/
Конечно от llvm он никогда не уйдет (и не планировал).

Они хотели отвязаться от llvm инфраструктуры, а мы их неправильно поняли (был огромный батхерт в GitHub).

Те генерировать напрямую llvm bc файлы. Всё что выше будет написано на Zig.

https://llvm.org/docs/BitCodeFormat.html

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #184

133. Сообщение от Аноним324 (ok), 03-Янв-24, 14:00   +/
> А потом ты проснулся? Зарплаты посмотри на JavaScript, на Node.js. Заплатят тебе
> 12к$. Ну ты и мечтатель.
> Покажи эти вакансии.
> За JavaScript платят значительно меньше чем за C++. И даже за не
> 10к платят единицам.

Раскажи мне как за С++ платят больше, средняя зарплата мидла на плюсах 3500, средняя мидла на джаваскрипте 4700.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #140, #158

134. Сообщение от Аноним (128), 03-Янв-24, 14:00   –1 +/
Чаще всего в одностраничном коде на CPython. Прямо скажем, часто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #261

135. Сообщение от sena (ok), 03-Янв-24, 14:03   +1 +/
> ucs2 вполне себе fixed width

Это только если выкинуть часть юникода.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

136. Сообщение от Витюшка (?), 03-Янв-24, 14:03   +/
Rust программисты не знают семантику перемещения в своём языке 😀🥳 Почему это неудивительно?

А потом будут рассказывать нам про то какие классные и безопасные программы эти г...кодеры пишут.

Не удивлюсь что про перемещение сказал как раз не программист на Rust, а любопытствующий.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #144, #209, #235, #250

137. Сообщение от Витюшка (?), 03-Янв-24, 14:06   +/
Так и я мог скинуть "проверенную годами". Вы то зачем тогда? Брать того программиста и дело с концом. А вас на пересылку JSON-чиков.

Видимо настолько пелена глаза замылила, что не понимаете про что спор был.

Я разве где-то говорил что на Rust нельзя мьютекс написать???

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119

138. Сообщение от Витюшка (?), 03-Янв-24, 14:12   –1 +/
Спор был. Я пишу СВОЙ код, он пишет СВОЙ код. Потом я доказываю корректность на листочке. А он с помощью безопасного Rust (borrow checker).

Но до этой стадии мы так и не дошли. Остановились на 0 строк кода.

Или вы никогда сами ничего не пишете и всегда берёте "production ready, проверенный годами" код для экспериментов в одном файле? Те сами ничего написать не можете?

Использовать "в production" никто не предлагал. Зато разобраться как работают мьютексы было бы очень полезно, тем более для профессиональных программистов низкого уровня.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118

139. Сообщение от Аноним (-), 03-Янв-24, 14:13   +2 +/
С одной стороны да, Benchmarks Game круче по разнообразию тестов.
А с другой стороны - было бы интересно сравнить языки "из коробки", без привязки к конкретной платформе или супер-оптимизациям.

Например fannkuch-redux для раста
// Inspired by C++ #6 SIMD implementation by Andrei Simion
// Requires SSE3 and SSE4 instruction set
уже не так интерсно если у тебя старый проц или вообще арм'ка

или mandelbrot для С++
#if defined(__AVX512BW__)
    typedef __m512d Vec;
    const uint8_t k_bit_rev[] =
    { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
Сомневаюсь, что с таким будут запариваться, кроме очень нагруженных участков программы

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #256

140. Сообщение от Витюшка (?), 03-Янв-24, 14:14   +/
Ссылки на вакансии
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #143

141. Сообщение от Аноним (4), 03-Янв-24, 14:16   +/
ICU это единственная адекватная реализация юникода. И, кроме того, универсальная. А так, на каждой проприетарной платформе свои собственные utf8/utf16.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

142. Сообщение от Аноним (142), 03-Янв-24, 14:19   +1 +/
Человек руками на mmx/sse так напишет, что никакому оптимизирующему компиллятору никогда не удастся. Много раз так делал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #166

143. Сообщение от Аноним (447), 03-Янв-24, 14:20   +/
> средняя зарплата

Ссылки на что? На средние вакансии?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

144. Сообщение от Аноним (-), 03-Янв-24, 14:29   –1 +/
А кто сказал что Советские инжинеры в нем разбираются)
Вот ты тоже про Раст комментировал, даже доку не прочитав.
А так осуждаешь, как-будто сам никогда не умничал в темах, в которых не разбираешься)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #148

145. Сообщение от YetAnotherOnanym (ok), 03-Янв-24, 14:30   +4 +/
Ага, а в реальных-то приложениях интерпретируемое недоразумение всех порвёт, канешна.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #146, #321

146. Сообщение от Аноним (4), 03-Янв-24, 14:37   +7 +/
В реальных приложениях вычисления будут на си/ассемблере/фортране и да, порвёт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #149

147. Сообщение от YetAnotherOnanym (ok), 03-Янв-24, 14:42   +/
Пффф... тоже мне проблема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

148. Сообщение от Витюшка (?), 03-Янв-24, 14:43   +/
Я как раз доку прочитал. И про borrow checker читал. И про move семантику.

Но в целом, концептуально, я его знаю, с идейной точки зрения. Хотя бы чтобы набрасывать по фактам 😀

В lifetime я конечно плыву, но я них и не говорю.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

149. Сообщение от YetAnotherOnanym (ok), 03-Янв-24, 14:49   +2 +/
Так здесь си и так всех обскакал. Мой сарказм был в адрес комментария 2.4, в котором Аноним почему-то оспорил обоснованность такого результата.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #331

150. Сообщение от Аноним (150), 03-Янв-24, 14:51   +2 +/
Преобразование между кодировками юникода и wide character string != "вообще никак не умеют в юникодные строки". В юникод C++ умеет, как ты можешь убедиться открыв эту страничку в написанном на C++ Google Chromium. Там, где нужны преобразования между кодировками, рекомендуется использовать ICU (в Chromium используется именно эта библиотека). Остальным хватит https://en.cppreference.com/w/cpp/language/character_literal

P.S. А теперь можешь попробовать рассказать, как твой любимый ЯП X поддерживает Юникод на уровне ICU.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

151. Сообщение от Аноним (150), 03-Янв-24, 14:55   +/
Забудь про эту нестандартную гадость. Либо char32_t, либо UTF-8.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

152. Сообщение от еропка (?), 03-Янв-24, 15:04   +/
И HTML
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

153. Сообщение от penetrator (?), 03-Янв-24, 15:17   +/
да кому интересна эта херабора для проприетарной arm64-darwin??? кто-то будет оптимизировать особенно из крупных вендоров? вы себе представляете чтобы например Оракл или Майкрософт инвестировала в работу своих платформ на маке??????
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #181, #244

154. Сообщение от penetrator (?), 03-Янв-24, 15:22   +/
в этом исследовании интересен только Swift, который родной для платформый, а он пролетает по тестам, что ожидаем, потому что софт у яблока как и гнуса - дэрмо
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #304, #361

155. Сообщение от Аноним (166), 03-Янв-24, 15:28   +3 +/
Тоже увидел данный коммент и аж бомбануло сперва. Но в итоге решил не отвечать, т.к. человек вообще не в курсе что из себя представляет js.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #165, #390

156. Сообщение от Аноним (166), 03-Янв-24, 15:31   +/
> За JavaScript платят значительно меньше чем за C++.

Но и вакансий C++ несравнимо меньше. Плюс часто требуют диплом технического ВУЗа. У меня вообще нет диплома, но я зарабатываю почти 65к евро в год на нелюбимом всеми тут js.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #171

157. Сообщение от Аноним (157), 03-Янв-24, 15:34   +1 +/
Минуттачку, а где имплементации на ассемблере? На гольном AMD64 и AMD64+AVX?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #243

158. Сообщение от Аноним (166), 03-Янв-24, 15:35   +1 +/
> средняя зарплата мидла на плюсах 3500, средняя мидла на джаваскрипте 4700

Справедливости ради, платят не столько за знания алгоритмов и синтаксиса js (выучить его как раз не проблема совсем), платят скорее за умение работать со стеком всей технологии. В плюсах часто даже гит знать не обязательно в 90% случаев вся работа сводится к алгоритмам и синтаксису.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #225, #363, #366

159. Сообщение от Аноним (159), 03-Янв-24, 15:36   +1 +/
> Проигрывает в matmu

Причем проигрывает лишь потому, что эти горе-сравнители используют в mathmul доступ к элементам Vec с проверкой границ. Я даже, блждад, не задумались: а почему же такая разница?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #176, #178

161. Сообщение от Аноним (166), 03-Янв-24, 15:38   –1 +/
> Сейчас компилятор так наоптимизирует

Что хеллоуврот будет весить килобайты даже со всеми отключенными дебагами и стрипами. На асме я могу написать код, который весит десятки байт.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #173

162. Сообщение от commiethebeastie (ok), 03-Янв-24, 15:39   +/
Не осилили его паршивое IDE.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

163. Сообщение от Аноним (166), 03-Янв-24, 15:39   +1 +/
Хватит повторять эти сказки. Не позорься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #193, #381

164. Сообщение от commiethebeastie (ok), 03-Янв-24, 15:41   +/
Мля, они про векторизацию что-нибудь слышали? Это задача из разряда кто быстрее заплывёт на дерево.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #179

165. Сообщение от Витюшка (?), 03-Янв-24, 15:41   +/
Да, да, я не в курсе.

ECMA-262, 14th edition, June 2023
ECMAScript® 2023 Language Specification

9.7 Agents
An agent comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an Agent Record, and an executing thread. Except for the executing thread, the constituents of an agent belong exclusively to that agent.

An agent's executing thread executes a job on the agent's execution contexts independently of other agents, except that an executing thread may be used as the executing thread by multiple agents, provided none of the agents sharing the thread have an Agent Record whose [[CanBlock]] field is true.

While an agent's executing thread executes jobs, the agent is the surrounding agent for the code in those jobs. The code uses the surrounding agent to access the specification-level execution objects held within the agent: the running execution context, the execution context stack, and the Agent Record's fields.

9.4 Execution Contexts
An execution context is a specification device that is used to track the runtime evaluation of code by an ECMAScript implementation. At any point in time, there is at most one execution context per agent that is actually executing code. This is known as the agent's running execution context. All references to the running execution context in this specification denote the running execution context of the surrounding agent.

Читать умеем или еще и JS нубам нужно на пальцах обьяснять что javascript однопоточный?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155 Ответы: #224

166. Сообщение от Аноним (166), 03-Янв-24, 15:41   +1 +/
Демосцена тому пример. Никакой си не сможет даже близко того, что делают парни на ассемблере. Причем ассемблер вопреки бытующему мнению на самом деле очень простой язык, может быть даже самый простой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #175, #186, #211, #268

167. Сообщение от Аноним (166), 03-Янв-24, 15:44   +/
> А теперь посмотрим в рейтинг зарплат, за что готовы платить, и увидим, что никаких быстрых языков там не нужно.

Так все деньги в вэбе, а в вэб узкое горлышко это сеть, поэтому там действительно нативный быстрой код не нужен, а вот читаемость кода нужна и даже очень.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

168. Сообщение от Аноним (166), 03-Янв-24, 15:45   –1 +/
Раст и не про скорость, раст про безопастность и про удобную экосистему отвечающую современным стандартам разработки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #177

169. Сообщение от Аноним (166), 03-Янв-24, 15:46   +/
vanilla js ещё приятнее
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #183

171. Сообщение от Витюшка (?), 03-Янв-24, 15:47   +/
Согласен и с этим не спорю.

Я не говорил что он не любимый. Я сам на нём писал и буду писать.
Современный программист - это как работник на заводе, по-сути птушник, 1 год курсов и в бой.

В принципе по комментариям на opennet уровень всех этих программистов мы видим.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156 Ответы: #226

173. Сообщение от Аноним (59), 03-Янв-24, 16:10   +1 +/
И только с хелловорлдом это и сработает. Килобайты — это оверхед для любой сишной программы. Но на всякий случай напомню, что страница памяти у нас — минимум 4 килобайта.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

174. Сообщение от Аноним (174), 03-Янв-24, 16:13   +1 +/
Полная фигня. В сях есть 2 путя:
1) нуль-терминировнная строка, начиная с некоторого адреса
2) адрес на начало буфера со строкой и его длина в байтах

Размер данных нужно не предсказывать, а декларировать, иначе вы что-то не так делаете.
Можно ещё работать с потоком, но это просто наворот логики над вторым случаем.

И, кстати, кодировка текста вообще иррелевантна для непосредственно передачи данных.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92

175. Сообщение от Аноним (59), 03-Янв-24, 16:20   +/
Трудоёмкость такого программирования такова, что в реальной жизни оно нигде не пригодится.
И на ассемблере пишутся в основном совсем уж маленьких демках. Тот же .kkrieger написан в основном на Си (и то авторы признавались, что ну его нафиг такой опыт).
Ассемблер — простой язык, да. Программировать только на нём сложно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #292

176. Сообщение от Аноним (-), 03-Янв-24, 16:27   +2 +/
Такое впечатление, что код писал один и тот же ч̶а̶т̶ ̶Ж̶П̶Т̶ человек просто транслируя код с одного языка на другой "в лоб".
В том же свифте можно оптимизировать судоку и сделать её быстрее.

А может цель была в "написать тесты языков без оптимизаций", чтобы посмотреть, как они работают со штатными настройками компилятора.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #489

177. Сообщение от Аноним (-), 03-Янв-24, 16:36   +/
Не согласен.

Можно глянуть Rust versus C++ на тестах benchmarksgame, они идут практически вровень (где-то один лучше, где-то другой, но разница в процентах)
   benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-gpp.html
Но там код заоптимизирован по самые помидоры, где-то тесты только под sse4, где-то используют AVX-512.

Но можно вспомнить еще старую статью (очень старую из 2019 года) opennet.ru/opennews/art.shtml?num=51475
где один сетевой драйвер писали на разных языках.

Так что при скорости сравнимой с с++, ты получаешь еще дополнительные проверки компилятора и экосистему в подарок.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168

178. Сообщение от Аноним (159), 03-Янв-24, 16:39   +/
> горе-сравнители используют в mathmul доступ к элементам Vec с проверкой границ.

Уже исправили.

https://github.com/attractivechaos/plb2/commit/643606048476e...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #197, #198

179. Сообщение от Аноним (-), 03-Янв-24, 16:39   +/
ну...
во-первых, это может для них сложно)
во-вторых, оно может по разному вести себя на разных платформах (напомню что сабж делался на яблочном М1, который арм)

а в третих, ИМХО, думаю даже такой тест может быть полезным.
В смысле "а насколько хорошо работают оптимизации компилятора, если мне оптимизировать лениво".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #382

180. Сообщение от Анонимemail (183), 03-Янв-24, 16:58   +1 +/
В цикле просто создаём временный массив и удивляемся что GC где-то заработал... https://github.com/attractivechaos/plb2/blob/master/src/csha... - это то что сразу видно. В общем код не прошёл ревью...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #185

181. Сообщение от Анонимemail (183), 03-Янв-24, 17:01   +/
Пробовали, не осилили: MS например закрыл VS для мака, а вместо переписывания офиса придумали как сделать так чтобы часть работала нативно, а часть - x86 бинарники через эмуляцию (оказалось проще чем переписать).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

182. Сообщение от fidoman (ok), 03-Янв-24, 17:06   +1 +/
C вообще "в строки" не умеет, если уж на то пошло, использовать функции стандартной C библиотеки для работы со строками - это надо быть наглухо отшибленным.
Но это не значит, что нельзя реализовать работу со строками, просто используя C как продвинутый ассемблер.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

183. Сообщение от Анонимemail (183), 03-Янв-24, 17:08   +/
Были у нас такие адепты. Не осилили проект миллионник. Новый менеджер недавно гордился что смогли переписать 92% на TS. А JS код никто нормально не может поддерживать: перепишут если и там что-то придется править.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #207

184. Сообщение от Самый умный из вас (?), 03-Янв-24, 17:18   +1 +/
Отказываются от llvm, но оставляют слой совместимости, кому нужен. Перечитай гитхаб ещё раз
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

185. Сообщение от Аноним (-), 03-Янв-24, 17:26   +1 +/
Это просто какой-то позор /_- (с)
Неужели они это пилили с 2011 года.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #196

186. Сообщение от Аноним (-), 03-Янв-24, 17:32   +1 +/
А сколько ты будешь этот идеальный код писать?
Особенно проект уровня, ну хотя бы текстовый редактор?
Думаю речь пойдет о годах, если не больше.

Есть смысл писать на ассемблере только самый горячий код, котоый нужно оптимизировать по максимуму. Благо асм вставки есть почти в каждом системном языке.
А остальное - это просто бесполезная трата времени.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

187. Сообщение от Аноним (128), 03-Янв-24, 17:38   +/
Да Васиков всяких разных
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

190. Сообщение от Советский инженер (ok), 03-Янв-24, 18:03   +1 +/
размер Vec<T> 24 байта.
так что передача в функцию не такая уж и бесплатная.
через регистпы не пролезет.


ну и сам вызов мува. это как никак а вызов функции.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #232, #499

192. Сообщение от Аноним (128), 03-Янв-24, 18:11   +/
V в GCC уже завезли, когда?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

193. Сообщение от Аноним (128), 03-Янв-24, 18:13   +/
А чё так мало желающих лабать на Асме? Неохота парится за 1% прироста производительности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #215

194. Сообщение от Аноним (61), 03-Янв-24, 18:13   –1 +/
Из всех перечисленных можно вызывать функции на С. В результате все языки будут одинаково быстрыми.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #317

195. Сообщение от Аноним (61), 03-Янв-24, 18:16   +/
Все интенсивные вычисления делать на С. Таким образом, остальные языки выполняют только роль интерфейса, и смысл рейтинга теряется.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #213

196. Сообщение от Аноним (61), 03-Янв-24, 18:18   +4 +/
Посмотрите, наконец, нормальный код*.

*На указанном ресурсе его нет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185

197. Сообщение от Аноним (-), 03-Янв-24, 18:20   +/
Ого, круто.
Очень оперативно испаравили, неужели создатель этих тестов сидит на пенькt и читает как его детище в комментариях обкладывают)?

Теперь раст на втором месте!
Ну что фанаты zig/nim/mojo, сьели?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #295

198. Сообщение от an2 (?), 03-Янв-24, 18:22   +3 +/
Разве этот код можно так же легко читать как Си?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #206, #296, #486

199. Сообщение от Аноним (-), 03-Янв-24, 18:23   +/
Как и предполагалось, после исправление косячного кода на раст, он занял заслуженное второе место.
github.com/attractivechaos/plb2/commit/643606048476eca58ac78032386b763ca146b8ac
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #227, #229, #231, #233

200. Сообщение от Аноним (-), 03-Янв-24, 18:27   +/
Кто-то из зарегистрированных может попросить автора исправить новость?
После изменений расстановка сил немного поменялась

github.com/attractivechaos/plb2
github.com/attractivechaos/plb2/blob/master/analysis/rst-m1.png

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #212, #303

201. Сообщение от Tron is Whistling (?), 03-Янв-24, 18:29   +/
arm64-darwin?
Давай, до свидания.
Ответить | Правка | Наверх | Cообщить модератору

205. Сообщение от Анонн (?), 03-Янв-24, 18:41   –1 +/
В общем, как и предполагалось, часть тестов были неоптимальны.
После минорных правок в кодах, раст занял заслуженное второе место, с минимальными расхождением с Си.
Третье место занял D, что в общем не удивительно.
А почетное четвертое - Zig.

С    2.70 0.54 1.54 0.84
Rust 2.68 0.56 1.65 ____
D    2.68 0.57 1.60 ____
Zig  2.74 0.56 ____ ____

Напомню, что подсчет ведется по сумме двух первых столбцов, т.к. для некоторых языков часть тестов просто не реализовано.
При этом явно есть еще место под оптимизации, напр. зиг отстает в первом тесте и кажется, что его можно вполне довести до уровня остальных. Тоже самое можно сказать про раст в третьем тесте.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #210, #239, #302, #315

206. Сообщение от Аноним (-), 03-Янв-24, 18:42   +/
Да, достаточно поработать недельку-две и становится привычно.
В СИ тоже есть макросы которые местами содом и гоморра, но люди как-то привыкают
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198

207. Сообщение от tty0 (?), 03-Янв-24, 18:45   +/
Может просто нанять техлида и менеджера проекта? Ну ли найти сильную команду, умеющую писать код? Миллион строчек кода на js - это средний проект. Просто 10и же большой, но наличие хорошей документации и полное покрытие тестами для js обязательно, в отличии от ts.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #255, #258, #276

209. Сообщение от Советский инженер (ok), 03-Янв-24, 18:46   +/
>Rust программисты не знают семантику перемещения в своём языке

И тем не менее  в zig версии использовались слайсы.
Не пояснишь а чего ж так?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #234

210. Сообщение от Анонн (?), 03-Янв-24, 18:50   +1 +/
UPD: пока писал это сообщение в репу прилетел фикс для V (eb9ee89) и теперь он обходит все языки, даже Си.
V 2.57 0.56
Поэтому можно запастись попкорном и смотреть как компилируемые языки приближаются к некому "идеальному времени выполнения". Как собственно и предполагалось в 1.34.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205

211. Сообщение от Ivan7 (ok), 03-Янв-24, 18:55   +/
Эффективнее всего делать ассемблерные вставки для C++, компилировать код С++, дизассемблировать и изучать дизассемблированные листинги, чтобы потом писать более эффективный код на С++ и ассемблере. Нужно грамотно сочетать С++ с ассемблером, используя преимущества обоих. Писать программы на голом ассемблере смысла нет, и даже вредно, а вот сочетать С++ и ассемблер - это действительно интересно и полезно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166 Ответы: #293

212. Сообщение от Анонин (?), 03-Янв-24, 19:00   +1 +/
Там расстановки сил меняется каждые пять минут. Так что лучше подождать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200

213. Сообщение от Анонин (?), 03-Янв-24, 19:03   +/
Скорее си выполняет роль интерфейса FFI для всех остальных языков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195

215. Сообщение от Аноним (142), 03-Янв-24, 19:38   +/
Из своей практики по обработке изображений, там не 1%, а иногда в лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #193 Ответы: #216, #269, #380

216. Сообщение от Аноним (-), 03-Янв-24, 19:44   +1 +/
> Из своей практики по обработке изображений, там не 1%, а иногда в лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то так.

Полностью согласен. Если речь идет о либе ли ядре приложения.
Но если речь идет о например вьювере или редакторе изображений, то кол-во такого кода будет невелико относительно UI, бизнеса или обвязки.

И есть смысл ускорить именно такой код, а не писать целиком окошки и кнопочки на ASMе.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

217. Сообщение от Аноним (-), 03-Янв-24, 19:54   –2 +/
Джулия вышла на 7 место, а в теме про этот ЯП спрашивали "зачем оно нужно?".
А вот зачем - она в nqueen она всего на ~30% хуже СИ (3.47 против 2.70)
И я уверен что остальные задачи тоже можно улучшить.

Зато чтобы посчитать математическую задачку достаточно простой и приятной среды расчетов. Особенно если с результатами нужно еще что-то сделать - построить графики, экспортнуть в какой-то формат данных и тд.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #301, #313, #356

219. Сообщение от anonimus (?), 03-Янв-24, 20:10   +/
Можно посмотреть на реализацию matmul с использованием вложенных циклов в стиле C-like и понять, что человек не утруждал себя использовать возможности языка для ускорения работы кода. Сравнение такое напоминает сравнение писюна с огурцом и не более.
(https://github.com/attractivechaos/plb2/blob/master/src/pyth...)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #300

221. Сообщение от Аноним (231), 03-Янв-24, 20:31   +/
Сверху подписано, как отсортировано, но и без этого заметно, что 3-4 тесты не на всех языках сделаны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

223. Сообщение от Аноним (223), 03-Янв-24, 20:40   +1 +/
Только общие тесты повлияли на рейтинг.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

224. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 20:40   +/
Они путают с web workers или вот с этим https://nodejs.org/dist/latest-v20.x/docs/api/worker_threads..., которые ни разу не треды.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165

225. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 20:41   –2 +/
> В плюсах часто даже гит знать не обязательно в 90% случаев вся работа сводится к алгоритмам и синтаксису.

Покажи мне такие вакансии.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158

226. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 20:43   +1 +/
Джей Сассман с тобой согласен https://habr.com/en/articles/282986/

>  Сейчас инженеры обычно пишут код для сложного аппаратного обеспечения, которое они не до конца понимают (причем часто это происходит по причине коммерческой тайны, а не в силу лени или недостатка времени — взять ту же Apple и ее технологии).
> Согласно Сассману, сегодня его студенты большую часть своего времени тратят на чтение мануалов к этим библиотекам, чтобы разобраться в том, как связать их вместе с простой целью — чтобы всё заработало и сделало то, что им нужно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #171 Ответы: #367

227. Сообщение от Аноним (227), 03-Янв-24, 20:43   +1 +/
Заметьте, в исправлении используют итераторы, которые делают (в идеале) ОДИН раз bounds check. А не индексы, на которые жалуются многие комментаторы тут, что, мол, медленный какой. Тупо переписали на идиоматичный Раст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199

228. Сообщение от Аноним (228), 03-Янв-24, 20:45   –1 +/
А штоб сразу — и то, и то, не? Ну так какой ты программист, ремесленник
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #259

229. Сообщение от Аноним (227), 03-Янв-24, 20:47   +/
К сожалению, этот бенч не может показать что язык лучше других в производительности исполнения. Только то, что он не хуже других, которые рядом стоят. Да и то, этому бенчу надо уделять время .. не все это делают.
Реальную производительность многих ЯПов мы не узнаем просто посмотрев этот сайт :(
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199

231. Сообщение от Аноним (231), 03-Янв-24, 20:51   +/
Если с другой стороны смотреть, это было исправление косяков компилятора, пришлось делать работу за него.

"The Clang compiler can apply this optimization ... Some C/C++ programmers say compilers often optimize better than human, but this might not be the case in other languages" - https://github.com/attractivechaos/plb2#optimizing-inner-loops

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199 Ответы: #245

232. Сообщение от Витюшка (?), 03-Янв-24, 20:54   –2 +/
Как это вызов функции?😨
А как же Zero Cost Abstractions?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

233. Сообщение от Аноним (227), 03-Янв-24, 20:54   +1 +/
Ой вей, виноват, не прочитал новость. Это не benchmarks-game. Там всего 4 задачи, не все решены!!, а результаты уже вывесили.

Например, для раста не написан bedcov тест. Это провал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199

234. Сообщение от Витюшка (?), 03-Янв-24, 20:56   +/
Поподробнее свою мысль разверни
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209

235. Сообщение от Иисус (?), 03-Янв-24, 20:56   +5 +/
Rust-погромисты вполне себе знают. Приведённый пример кода явно написан человеком, который не умеет писать на Rust. Vec внутри Vec для двумерного массива это, кринж, как сейчас модно говорить. И это будет так для любых языков без GC.

Впрочем, уверен, с остальными языками в подборке такие же проблемы. И эти проблемы нерешаемые. Если пригласить на каждый язык по специалисту, то они все напишут вусмерть оптимизированный код под конкретный ЯП, вместо следования идиоматике ЯП.

Вывод какой? Все подобные исследования не позволяют судить о том, что одни языки лучше других в чём либо. Разве только на уровне "компилируемые ЯП обычно быстрее интерпретируемых". Но мы это и так знаем.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #240, #253, #297, #309

237. Сообщение от Аноньимъ (ok), 03-Янв-24, 21:19   –2 +/
Бредово - мы сделали кривой тест с отфонарной реализацией алгоритмов, и не смутившись бредовым результатом выложили.

Потом 3 раза переделывали )))

А где Хаскель, Ада, Фортран?

Жулия с нативными матрицами где-то в конце?

C# хоть первые пару прогонов тестов не считали? Которые до отработки джита?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #242, #323

239. Сообщение от Аноньимъ (ok), 03-Янв-24, 21:21   –2 +/
Там небось на сишке код без минимальных проверок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205 Ответы: #246

240. Сообщение от Аноним (240), 03-Янв-24, 21:26   +/
Тут не бодание фишками, а сравнение что будет если тратить мало времени и делать код чтобы работало выполняя синтетическую нагрузку.
То чего можно вдальнейшем достичь достигается гуру, которым это не лень.
Работать работу это вам не выдавать нагора все лучшее и сразу показывая видишь мускул этот конкретно чуть больше? Значит я лучше тебя во всем.
Все правда давно разочаровались в кодерах. Одного тытрупа хватает с жирновебом.
Работает? Канает? Вот и не гунди.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235

242. Сообщение от Аноним (-), 03-Янв-24, 21:35   +2 +/
Не... тут еще круче
В 2011 мы сделали первую версию супер тестов.
А спустя 12-13 лет выложили вторую, причем настолько кособокую.
Возможно автору нравятся публичные унижения))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #237 Ответы: #280

243. Сообщение от Анонин (?), 03-Янв-24, 21:36   +/
И как ты его запустишь на Apple M1 на котором тестит автор?
Через трансляцию... ну это будет не слишком показательно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #249

244. Сообщение от Аноним (59), 03-Янв-24, 21:37   –2 +/
Неосиляция MS — это проблемы MS. Остальные вполне осиливают, и Oracle в том числе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #318

245. Сообщение от Анонин (?), 03-Янв-24, 21:40   +/
Это не было исправление косяка компилятора.
Раст делает проверки при обращении к элементу вектора, чтобы не выйти за границы. Но это что-то стоит.
При использовании итератора проверка делается только один раз.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231 Ответы: #254

246. Сообщение от Аноним (-), 03-Янв-24, 21:41   +/
А типа в продакшене кто-то будет беспокоиться о проверках?
СИ это же про скорость, а не про корректность работы.
Подумаешь будет CVE, ну так потомки ее найдут, лет через 10.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #239 Ответы: #274

248. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 21:45   +1 +/
> Но, только для тех, кто не читал документацию.

А кто ее читает? Серьезно спрашиваю? Пример - автор оригинального комментария. Постоянно топит за раст, а доку получется не читал. Ой, смешные.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #262

249. Сообщение от Аноним (59), 03-Янв-24, 21:46   +/
Для aarch64 нет ассемблера?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243 Ответы: #308

250. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 21:46   +/
> Rust программисты не знают семантику перемещения в своём языке 😀🥳 Почему
> это неудивительно?
> А потом будут рассказывать нам про то какие классные и безопасные программы
> эти г...кодеры пишут.
> Не удивлюсь что про перемещение сказал как раз не программист на Rust,
> а любопытствующий.

Этот "советский инженер" с пеной у рта постоянно топит за раст. Наконец-то показал свою сущность ыксперта :D

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

251. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 21:47   +1 +/
> PHP фреймворки эффективно устраняют это недоразумение.

В питон джит завезут скоро.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

253. Сообщение от Аноньимъ (ok), 03-Янв-24, 21:56   +/
Исус прав.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235

254. Сообщение от Аноним (231), 03-Янв-24, 21:58   +1 +/
Но это сделано ценой читаемости. Был наивно-простой код, как и в C. А стало:
...
for (cij, &bkj) in ci.iter_mut().zip(bk)
...
Даже если наивный код обложить ручными проверками, получится... читаемее, чем с такой оптимизацией.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #245 Ответы: #260

255. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 21:58   +/
> Миллион строчек кода на js - это средний проект.

Если код библиотек не считать, то это много. Вот, например, статистика по коду nginx

-----------------------------------------------------------------------------------
Language                         files          blank        comment           code
-----------------------------------------------------------------------------------
C                                  256          54008           6144         153701
C/C++ Header                       134           4810           1077          10040

А вот статистика по CPython

---------------------------------------------------------------------------------------
Language                             files          blank        comment           code
---------------------------------------------------------------------------------------
Python                                1977         127423         150784         587582
C                                      326          55467          52447         363671
C/C++ Header                           424          17124          10429         184057

И заметь, что в код в таких проектах обычно слабо связанный.

> и полное покрытие тестами для js обязательно, в отличии от ts.

Тесты и типизацию некорректно сравнивать. Точно также как сказать "если у тебя есть типы, то тебе не нужны тесты". Понятное дело, что с типами можно не писать тесты на принятие типов, которые нарушают контракт, но в здравом уме никто такие тесты не пишет и в языках с динамической типизацией без типов.

Тесты - это тот же код, по идее чем меньше и проще - тем луче.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #207

256. Сообщение от Аноньимъ (ok), 03-Янв-24, 22:02   +/
Вот только в llvm есть векторные инструкции.

И они есть почти во всех цп современных.

И в С# внезапно есть.

А что там компилятор под конкретную платформу сгенерит то другой вопрос совершенно.

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

А вот вставлять х86 ассемблер - нет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

258. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 22:14   +/
Ну вот еще стата для конкретно js исходников gitlab по пути app/assets/javascripts/

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Vuejs Component               1991           9946           4212         233516
JavaScript                    2253          16933          10952         106449

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #207

259. Сообщение от Аноним (-), 03-Янв-24, 22:22   +8 +/
Обычный инженер.
Вот представь что тебе скажуст спроектить ДВС. Ты спросишь "а какое топливо, мощность и тд".
А потом к тебе придут с притензией "а чего на А76 не стартует".

Или будешь делать станок, а потом от тебя захотят "а пусть работает в взрывоопасной атмосфере класса В-I, пусть работает под водой, пусть работает под управлением пьяного токаря". Думаю ты их тоже просто пошлешь... за деньгами на доп. разработку.

Предварительные оптимизации это, зачастую, выброшенное время.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #345

260. Сообщение от Анонин (?), 03-Янв-24, 22:25   –1 +/
> Был наивно-простой код, как и в C

... но раст это как бы не си и слава богу)))

Так нечитаемо потому что язык не знаешь.
Это не проблема, думаю за пару недель практики такой код тоже будет легко читаемый.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #254 Ответы: #312, #428

261. Сообщение от Аноним (261), 03-Янв-24, 22:26   –1 +/
во-первых, ты трепло, во-вторых, вон из профессии, если ты это делаешь без numpy
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #298, #421

262. Сообщение от Аноним (-), 03-Янв-24, 22:27   +1 +/
А я что говорил "автор оригинального комментария" хорошо разбирается в расте?
Тут половина пишущих в теме про него - ваще не бумбум.
Чего только витюшка стоит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #248 Ответы: #289

263. Сообщение от an2 (?), 03-Янв-24, 22:28   +/
Но из-за того, сколько процессоров вышло с тех времён, даже что-то такое тривиальное как strlen() - это уже проблема, не говоря уже о чём-то большем.

https://stackoverflow.com/questions/57650895/why-does-glibcs...

Помимо основных библиотечных функций кодеки на асме вручную ещё оптимизируют.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #265

265. Сообщение от an2 (?), 03-Янв-24, 22:31   +/
И тут ещё:
https://stackoverflow.com/questions/33480999/how-can-the-rep...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #263

266. Сообщение от Вы забыли заполнить поле Name (?), 03-Янв-24, 22:58   +/
>>Vec представляет из себя указатель
> указатель и счетчик занятого

Пытаешься свернуть с темы? Ты обгадился прелюдно. Такое не забывается.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #272

267. Сообщение от Аноним (261), 03-Янв-24, 23:13   +2 +/
потому что как мининим реализацию на питоне писал какой-то кретин (вроде тебя), питона не знающий, убедиться в этом легко, посмотрев на реализацию matmul с использованием вложенных циклов в стиле си https://github.com/attractivechaos/plb2/blob/master/src/pyth...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

268. Сообщение от Аноним (261), 03-Янв-24, 23:17   +1 +/
суть демосцены не в оптимизации производительности, а размере исполняемого файла
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

269. Сообщение от Аноним (261), 03-Янв-24, 23:21   +/
ну давай, покажи, что ты там напрактиковал, где код?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

272. Сообщение от Советский инженер (ok), 03-Янв-24, 23:35   +/
>Пытаешься свернуть с темы?

Э, с какой темы?
Или ты тоже считаешь что передача указателя на массив и вектора в функцию равнозначны с точки зрения производительности?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #266

274. Сообщение от Аноньимъ (ok), 03-Янв-24, 23:55   –6 +/
На самом деле даже не про скорость.
Разве что про скорость отрыгивания кода.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #246 Ответы: #322

276. Сообщение от Аноним (276), 04-Янв-24, 00:05   +/
> Миллион строчек кода на js

Это либо твои фантазии, либо откровенный гoвнoкод. Даже сотня строк для js — это офигеть как много. Если не согласен, докажи обратное, что ты там нагoвнoкoдил на целый миллён строк.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #207 Ответы: #324

278. Сообщение от _kp (ok), 04-Янв-24, 00:12   +2 +/
   Помню как то писал на msp430, так там код на gcc генерировал значительно более компактный код, чем написанный на ассемблере. Вручную написанный код хороший, но настолько сильно с оптимизацией вручную не заморачиваются, кроме крайне критичных мест.
   Если же взять типичный большой исходник на ассемблере, то большая его часть обычно написана шаблонами и макросами, а чудеса оптимизации только в самых важных местах.
А код на компилируемых языках оптимизируется везде. И на обычном большом проекте ассемблер совсем не выигрывает, и тем более с разгромом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

279. Сообщение от _kp (ok), 04-Янв-24, 00:17   +/
Скорее на js/python много вакансий для начинающих, с соответсвующей оплатой. А на c/c++ требуются готовые профессионалы, и тоже с соотвествующей оплатой.
Итого: вакансии и размеры зарплаты в них не совсем адекватно отображают востребованность.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #384

280. Сообщение от Аноним (231), 04-Янв-24, 00:31   +/
И все же я хочу спросить — кто написал двенадцать пулл-реквестов? Всё верно он сделал, сейчас по принципу "в интернете кто-то неправ" сагрятся и допилят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #242 Ответы: #347, #358

287. Сообщение от Igor (??), 04-Янв-24, 00:48   +/
в яблочной секте arm64-darwin нет компилятора gcc - он предан анафеме!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

289. Сообщение от Витюшка (?), 04-Янв-24, 00:57   +/
Помнят, любят))) Но обычно по факту сказать нечего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #262

292. Сообщение от Аноним (240), 04-Янв-24, 01:18   –1 +/
Человек, ты вещаешь про х86 или может армы, а вот для Эльбрусов заявлено что переписывание на ассемблере многие программы ускорит в разы.
То что Си для виртуальногь PDP-11 запилили это не значит что так работают современные или более навороченные процессорные архитектуры.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #294

293. Сообщение от Аноним (59), 04-Янв-24, 01:22   +1 +/
Дизассемблированный код C++ — это страшная вещь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211

294. Сообщение от Аноним (59), 04-Янв-24, 01:25   +1 +/
> для Эльбрусов заявлено что переписывание на ассемблере многие программы ускорит в разы

А пруфец на заявление можно? Потому что это даже для x86 звучит фантастикой, а для VLIW! Ну или у них настолько убогий компилятор.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #292

295. Сообщение от Аноним (295), 04-Янв-24, 01:27   +1 +/
Вообще-то на третьем, и то до момента, когда Zig или Nim тоже оптимизировать начнут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #197

296. Сообщение от Аноним (295), 04-Янв-24, 01:28   –1 +/
Как писал классик, можно посидеть на горячей плите - тоже привыкнешь :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198

297. Сообщение от Аноним (295), 04-Янв-24, 01:32   +/
Можно подумать код на Nim и Zig писали программисты с большим опытом на них.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235

298. Сообщение от Аноним (128), 04-Янв-24, 01:34   +/
Во-первых, я не чистый кодер в какой-либо софтверной компании. А, скажем так, работаю в области связанной с ЦОС. Во-вторых, а где ты увидел, что я написал, что без NumPy?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #261

299. Сообщение от Аноним (295), 04-Янв-24, 01:34   +/
А еще они не добавляют единицу в делитель для нерешенной задачи, но для тебя это слишком сложная математика.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

300. Сообщение от Аноним (295), 04-Янв-24, 01:38   +/
Тогда остальные программы тоже нужно ускорить оптимизациями.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219

301. Сообщение от Аноним (295), 04-Янв-24, 01:45   +/
И система типов пожалуй самая сбалансированная.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217

302. Сообщение от Аноним (295), 04-Янв-24, 01:46   +/
>После минорных правок в кодах, раст занял заслуженное второе место, с минимальными расхождением с Си.

Уже третье, остальные языки тоже оптимизировать начали :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205 Ответы: #402

303. Сообщение от Аноним (295), 04-Янв-24, 01:48   +/
Зачем исправлять новость? Результаты чем-то не устраивают?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200

304. Сообщение от Аноним (295), 04-Янв-24, 01:50   +/
Зато реклама хорошая. Помните, какой хайп был вокруг Swift?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #319

305. Сообщение от Аноним (295), 04-Янв-24, 01:51   +/
Тогда это превратится в соревнование не языков, а библиотек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

306. Сообщение от Аноним (295), 04-Янв-24, 01:54   +1 +/
Bun очень легкая и быстрая штука, нет тут ничего удивительного, читай внимательнее условия.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

307. Сообщение от Аноним (295), 04-Янв-24, 01:55   –1 +/
Давай свои тесты лучше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

308. Сообщение от Анонин (?), 04-Янв-24, 01:56   +/
Есть. Но он предлагает же "AMD64 и AMD64+AVX"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249

309. Сообщение от Sw00p aka Jerom (?), 04-Янв-24, 01:59   +/
> Вывод какой? Все подобные исследования не позволяют судить о том, что одни языки лучше других в чём либо.

лол, кек, зачем судить о "языках", если компиляторы одного и того же "языка" - выдают разный результат. Лучше бы пытаться достичь оптимальности (идеальности) того или иного алгоритма (функции) в терминах конкретной архитектуры команд, и тогда компилятор любого формального "языка" генерировал бы один единственный необходимый и достаточный (ака оптимальный) код. Отсюда - зачем тогда нужны все эти формальные "языки" и бесполезное их "сравнения"?

пс: понятие "оптимальный" пока без строгого определения, надо думать.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235 Ответы: #330

310. Сообщение от Аноним (295), 04-Янв-24, 02:05   +/
Уже 77. Малое число звезд ничего не говорит об объективности, скорее о популярности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

311. Сообщение от Аноним (295), 04-Янв-24, 02:05   +/
А если еще чуть-чуть здесь подкрутить и вон там смухлевать, вообще хорошо станет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

312. Сообщение от Аноним (295), 04-Янв-24, 02:08   +1 +/
То же самое и С++ касается, так что лучше выбрать его.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #260

313. Сообщение от Аноним (315), 04-Янв-24, 02:15   +/
кому нужны твои математические задачки без практического применения
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217

314. Сообщение от Аноним (295), 04-Янв-24, 02:16   +1 +/
>После оптимизации кода на языке V, данный язык показал лучшие результаты в рейтинге.

Вот кстати темная лошадка из новых интересных языков.

>V lang обладает простым синтаксисом, быстрой компиляцией, высокой производительностью и безопасностью. Он не имеет скрытого управления потоком, скрытых выделений памяти, препроцессора и макросов.
>V поддерживает автоматический перевод C => V.
>V может генерировать нативный код напрямую.
>V предлагает отличную производительность на уровне с C и нулевую стоимость взаимодействия с C13.
>V может использоваться для расширения существующих программ на C/C++14.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #354

315. Сообщение от Аноним (315), 04-Янв-24, 02:17   +1 +/
все эти тесты не стоят выеденого яйца. хочешь узнать реальное положение дел - всегда пиши свои
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205

317. Сообщение от Ivan7 (ok), 04-Янв-24, 02:38   +1 +/
1) В С++ (Clang, GCC, ICC) можно делать ассемблерные вставки (не вызов ассемблерной функции, хотя это тоже можно). 2) В С++ можно сделать функцию встраиваемой и полностью избежать затрат на её вызов, что для небольших и часто вызываемых функций очень актуально. 3) Нет большого смысла писать на другом языке, а потом оптимизировать производительность, переписывая часть функций на С/С++. Проще сразу писать на С++. Если только вы не поддерживаете какой-то уже готовый проект, изначально написанный на другом языке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194

318. Сообщение от _ (??), 04-Янв-24, 03:48   +1 +/
Не болтайте ерундой! (С) :D

Вот софт который Ларри хочет подо всё: https://www.oracle.com/database/technologies/instant-client/...
Есть ли там голубяшка? Есть конечно, но вот ведь нюанс: Instant Client for macOS (Intel x86)
А где же яблло-M1\M2 и иже с ними? А нетути. И не будет походу.

От М$ вообще жёсткие анонсы были, deprecated, no longer supported, EoL-ed и прочая, то что по русски звучит коротко: НАХ!

Закапывают мак. У нас заменили (почти) все на Lenovo + W11. Немного Ынтелёвых осталось у дизайнеров и всё. ARM-овые вообще _все_ изЪяли. Хотя при этом - iPhone и iPad - пожалуйста...
Правда не колятся чего вдруг так резко ... типо приказ сверху и всё. Мутно, и не понятно. Лет 10 последних голубяшки прям насильно выдавали и вдруг ВНЕЗАПНА!(С)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #244 Ответы: #328

319. Сообщение от _ (??), 04-Янв-24, 03:55   +/
А на _чём_ там писать если не на Swift?
Там тебе не форточка \ линукс - с выбором там не забалуешь :)
У меня вся команда со старой работы ушла с Objective-C на него. Кроме одного настырного китайца :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #304 Ответы: #407

321. Сообщение от GG (ok), 04-Янв-24, 04:03   +1 +/
В реальных приложениях зарплата программиста стоит гораздо дороже аренды или покупки сервера
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #370, #427

322. Сообщение от _ (??), 04-Янв-24, 04:08   +/
Чем в написании драйверов и прочей in-kernel чешуи тебя не устроил "С" ?! И чем ты его там заменишь? ( скажи ещё - растом :-) )
А понял - ты его вместо 1С решил применить и тебя за это били ногами ... ну дык эта ... поделом! :-D

C is high-level assembly language (C) ТЧК!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #274 Ответы: #327, #352

323. Сообщение от _ (??), 04-Янв-24, 04:10   +/
>Бредово

Вот полностью согласен! Даже осуждать нечего. Но ведь будут :(

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #237

324. Сообщение от Вы забыли заполнить поле Name (?), 04-Янв-24, 04:19   +2 +/
>> Миллион строчек кода на js
> Это либо твои фантазии, либо откровенный гoвнoкод. Даже сотня строк для js
> — это офигеть как много. Если не согласен, докажи обратное, что
> ты там нагoвнoкoдил на целый миллён строк.

Он node_modules просто посчитал. А сам он выводит "привет мир".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #276 Ответы: #512

325. Сообщение от Тот_ещё_аноним (ok), 04-Янв-24, 04:26   +2 +/
Понятно, что не калькулятор виндоуз
Методика в тз, "умножение матриц" похоже по сложности
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

326. Сообщение от Тот_ещё_аноним (ok), 04-Янв-24, 04:41   –1 +/
Примерно в тех временах и осталось
Компиляторы уже другие, процессоры тоже
Для конкретной однокристалки подход конечно лучший до сих пор
А вот для семейства хотя-бы интел разных поколений... Ну не подъёмно это руками, да и компилятор сделает лучше
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

327. Сообщение от Вы забыли заполнить поле Name (?), 04-Янв-24, 05:01   +/
> Чем в написании драйверов и прочей in-kernel чешуи тебя не устроил "С"
> ?! И чем ты его там заменишь? ( скажи ещё -
> растом :-) )
> А понял - ты его вместо 1С решил применить и тебя за
> это били ногами ... ну дык эта ... поделом! :-D
> C is high-level assembly language (C) ТЧК!

Что ты хочешь от человека, который пишет на c#?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #322 Ответы: #353

328. Сообщение от Вы забыли заполнить поле Name (?), 04-Янв-24, 05:03   +/
> Немного Ынтелёвых осталось у дизайнеров и всё.

Дизайнеров надо пересадить на линукс и дать им гимп.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #318 Ответы: #372

329. Сообщение от Аноним (-), 04-Янв-24, 05:04   +/
Vec -- это если что типа "умный указатель". Но даже это не важно: то, что ты называешь "передачей по значению", в расте на самом деле передача овнершипа, а вот будет ли она на уровне ассемблера реализована передачей указателя или копированием значения в регистры -- это забота компилятора.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #335

330. Сообщение от Аноним (240), 04-Янв-24, 05:17   +/
А никто не запрещает байт кодовые языки сделать компиляемыми.
Вот жабокод внутренний это и есть жаба, а то что человек пишет отличается.
Языки нужны что оперировать иначе. Подключить биюлиотеку на Си к языку высокого уровня можно, натаскать нейросетку на оптимизацию тоже есть возможность.
Тут вопрос скорее в том почему до сих пор результат отличается кроме диначимеской типизации чтоб тормознее было.
То что вагоны циклов можно смягчить кешем жо определенной степени и так понятно, а потом идет работа с данными.
Нам показывают время, а в реальности надо смотреть сколько времени шла работа, а не ожиданте данных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #309

331. Сообщение от Прохожий (??), 04-Янв-24, 07:47   +/
В некоторых реальных приложениях далеко не всегда важна скорость выполнения кода, а куда важнее скорость разработки.
Например, автоматизация какой-то рутины из области системного администрирования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #332, #371, #474

332. Сообщение от Илья (??), 04-Янв-24, 08:06   +4 +/
Скорость разработки важна в первые 2 недели.

Я хз, почему, кстати, считается, что на пайфоне высокая скорость разработки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #331

333. Сообщение от Илья (??), 04-Янв-24, 08:10   –2 +/
Чем бы дитя не решилось, лишь бы не брать c#
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92

334. Сообщение от vvm13 (ok), 04-Янв-24, 08:37   +1 +/
Какой величины разница между указанными группами. И какая разница внутри групп. Например, JS vs Ruby. Это любопытно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

335. Сообщение от Советский инженер (ok), 04-Янв-24, 08:39   +/
>в расте на самом деле передача овнершипа, а вот будет ли она на уровне ассемблера реализована передачей указателя или копированием значения в регистры -- это забота компилятора

как я писал выше, Vec<T> занимает 24 байта для 64-битной системы, т.е. в регистры он не пролезет. передача будет через стек.
Плюс, это передача в функцию. если она не заинлайнится (а она не инлайнится, я проверил) то накладные расходы будут, и будут выше, чем передача в функцию указателей (ссылок)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #329 Ответы: #403

336. Сообщение от Илья (??), 04-Янв-24, 08:41   +/
Смысл в том, что как ты пайфон не оптимизируй, он все равно медленнее на порядок чем тот же msil или clang.

Msil, к слову, давно в нативный аот умеет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

337. Сообщение от Аноним (337), 04-Янв-24, 08:43   +/
Из них Julia вторая по производительности после clang, где все задаи решены.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

343. Сообщение от Аноним (343), 04-Янв-24, 09:18   +/
Да не будет скоро никаких "20 языков" !!!  Учитывая какие изменения вводятся в КАЖДЫЙ  язык и насколько они идентичны !!!  понятно что язык скоро будет ОДИН ! тот на котором ИИ будет писать, а кожаным придётся подстраиваться под эту лапшу :(
Ответить | Правка | Наверх | Cообщить модератору

345. Сообщение от Аноним (345), 04-Янв-24, 09:36   –1 +/
Голимые отмазки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #259

346. Сообщение от Аноним (346), 04-Янв-24, 09:56   +/
>> лапша из goto

Это приведение кода на этапе препроцессинга к тождественному используя case switch и дальше по методике Jump-table-based switch в ассемблер известной аж с 1970-х и крайне актуальной в условиях Out of order execution процессоров.
Ноу хау тут не в приведении case-switch к jump-table, это делает и gcc, а в строгом доказательстве тождественности изначального кода и препроцессированного. Чтобы получить предсказуемую производительность, используй case-switch везде изначально, в чем проблема тут, я не понимаю.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

347. Сообщение от Аноним (231), 04-Янв-24, 10:03   +/
> двенадцать пулл-реквестов

Уже 23.
https://github.com/attractivechaos/plb2/pulls

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #280

348. Сообщение от Аноним (348), 04-Янв-24, 10:29   +1 +/
Ruby обогнал CPython. Поверить не могу.
Ответить | Правка | Наверх | Cообщить модератору

349. Сообщение от Аноним (349), 04-Янв-24, 11:08   +/
Fortran бы себя мог показать очень хорошо на этих задачах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

352. Сообщение от Аноньимъ (ok), 04-Янв-24, 11:37   –2 +/
> C is high-level assembly language (C) ТЧК!

Херочка.
Может когда-то так и было. Сишка ведь создавалась под конкретный процессоры, внезапно.
Процуессоров тех давно уже нет, а эту дохлую кобылу всё пинают.

> Чем в написании драйверов и прочей in-kernel чешуи тебя не устроил "С" ?!

Кроме инта неопределённого размера?

> И чем ты его там заменишь?

Да Боже Мой! С десяток отличных замен существует.

> там

Для начала хорошо бы из этого вашего "там" изгнать сишку с её интерфейсами, *void, и каллинг конвектион.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #322 Ответы: #431, #432, #436

353. Сообщение от Аноньимъ (ok), 04-Янв-24, 11:39   –4 +/
Сишарписты хотя бы освоили секретную технику проверки указателя на null перед использованием.
И на фоне сишных дидов это чуть ли не чудо цивилизации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #327

354. Сообщение от Аноньимъ (ok), 04-Янв-24, 11:42   –4 +/
>V может использоваться для расширения существующих программ на C/C++14.

Очередная нескушная сишка.

>из новых интересных языков

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314 Ответы: #357

356. Сообщение от Аноним (231), 04-Янв-24, 12:16   +/
Я тоже про неё вспомнил. Только наоборот - зачем она нужна, если она ближе к PyPy, чем к С?

Как она там создавалась? Karpinski claims it has solved the "two-language problem", "We were greedy for a language that is [s]slower than javascript and lua[/s] as fast as C++, with the high-level functionality of Python, R or Matlab".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217

357. Сообщение от Аноним (-), 04-Янв-24, 12:28   +/
> Очередная нескушная сишка.

Ты когда меняешь жигулятор на современную тачку, тоже бухтишь "очередная нескучная классика")?
Ну подумаешь ездит так же, но ломается реже, более комфортная и надежная.

> Пориджи настолько отупели, что изобретают свои ЯП вместо того чтобы Хаскель осилить.

Угу, тогда можно будеть умничать по поводу монад и функторов.
Тут недавно один малохольный предлагал учить школьников "основам лямбда-исчисления и теории категорий".

Назови хотя бы 2-3 серьезные прогрмаммы написанных на хаскеле? Например какой-нибудь редактор, прикладное ПО или ОС ?
Я знаю только House, но он выглядит как отрыжка из 90х.
Leksah был нехлох, но уже кажись помер, как и Yi (который еще раньше).

Из более менее нормального xmonad, но во-первых Хсы уже закапывают ->  ненужно,
а во-вторых "фича" типа 'Отличительной особенностью XMonad является конфигурирование путём написания программного кода на языке Haskell' - только для фанатиков ФП.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #354 Ответы: #375

358. Сообщение от Аноним (-), 04-Янв-24, 12:38   +/
> И все же я хочу спросить — кто написал двенадцать пулл-реквестов? Всё
> верно он сделал, сейчас по принципу "в интернете кто-то неправ" сагрятся и допилят.

Возможно, но идея opennet.ru/openforum/vsluhforumID3/132476.html#29 была хороша)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #280

361. Сообщение от Аноним324 (ok), 04-Янв-24, 13:07   +/
> в этом исследовании интересен только Swift, который родной для платформый, а он
> пролетает по тестам, что ожидаем, потому что софт у яблока как
> и гнуса - дэрмо

И почему же софт эпла дерьмо? Откровенно лагающего софта там нет. Плюс айфоны всегда имеют меньше оперативной памяти чем сопоставимые андроид телефоны, и один и тот же софт, на айфоне с 4 гигами оперативной памяти не тормозит, а на андроиде с 4 гигами тормозит. Как так? Ах да потому что меркам гугла, телефон в котором меньше 64 гигов оперативной памяти обязан лагать, так прям в гайдлайнах написано.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #461, #462

363. Сообщение от Аноним324 (ok), 04-Янв-24, 13:10   +/
Ну ещё две основные профессии связаные с плюсами, это геймдев, и ембеддед/linux kernel developer. В геймдеве работать, это себя не уважать, там платят мало, требуют много, работа сложная, ещё и хотят чтобы ты работал 48 часов в сутки. А в ембедед особо не плотят ибо это либо стартап в котором денег нет, либо завод/оборонка где деньги есть, но тебе их не дадут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158 Ответы: #365

365. Сообщение от Аноним (-), 04-Янв-24, 13:18   +/
> Ну ещё две основные профессии связаные с плюсами, это геймдев, и ембеддед/linux kernel developer.
> В геймдеве работать, это себя не уважать, там платят мало, требуют много, работа сложная, ещё и хотят чтобы ты работал 48 часов в сутки.

И то не везде нужны полюсы, в той же Unity скрипты пишутся на C#

> А в ембедед особо не плотят ибо это либо стартап в котором денег нет, либо завод/оборонка где деньги есть, но тебе их не дадут.

Теоретически есть всякие автомотив, дроны и робототехника - там деньги хорошие, но попасть туда весьма сложно.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #363 Ответы: #369

366. Сообщение от Аноним324 (ok), 04-Янв-24, 13:19   –1 +/
>> средняя зарплата мидла на плюсах 3500, средняя мидла на джаваскрипте 4700
> Справедливости ради, платят не столько за знания алгоритмов и синтаксиса js (выучить
> его как раз не проблема совсем), платят скорее за умение работать
> со стеком всей технологии. В плюсах часто даже гит знать не
> обязательно в 90% случаев вся работа сводится к алгоритмам и синтаксису.

Кстати да, в плюсах не нужен ни гит, пакетного менеджера у них тоже нет, либы ручками подключаешь. И это блд странно, при всей популярности языка, его никто не хочет автоматизировать. Для того же питона или джавы есть всё что угодно и в огромном количестве, разной степени тухлости и актуальнсти, а на плюсы всем насрать, кроме комитета по стандартизации.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158 Ответы: #425

367. Сообщение от Аноним324 (ok), 04-Янв-24, 13:21   +/
> Джей Сассман с тобой согласен https://habr.com/en/articles/282986/
>>  Сейчас инженеры обычно пишут код для сложного аппаратного обеспечения, которое они не до конца понимают (причем часто это происходит по причине коммерческой тайны, а не в силу лени или недостатка времени — взять ту же Apple и ее технологии).
>> Согласно Сассману, сегодня его студенты большую часть своего времени тратят на чтение мануалов к этим библиотекам, чтобы разобраться в том, как связать их вместе с простой целью — чтобы всё заработало и сделало то, что им нужно.

Чем это отличается от того что делали технари 100 лет назад, когда изобретали разные костыли, чтобы передать энергию пара в лампочку?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226 Ответы: #378

369. Сообщение от Аноним324 (ok), 04-Янв-24, 13:23   +/
Ну автомотив, дроны и робототехника, это и есть те самые заводы и оборонка. Туда же ещё автоматизацию производства, и информационно-измерительные системы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #365

370. Сообщение от YetAnotherOnanym (ok), 04-Янв-24, 13:44   +1 +/
Это пока нет по-настоящему серьёзной нагрузки. Когда она появляется - контора оказывается в том же положении, в котором когда-то оказался ФБ, которому пришлось пилить свой ПХП. А так, для стартапа, задача которого продать инвестору прототип - вполне годится, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #321 Ответы: #383, #415

371. Сообщение от YetAnotherOnanym (ok), 04-Янв-24, 13:49   +1 +/
Для автоматизации рутины из области системного администрирования десятки лет назад придуманы shell и awk.
Язык с высокой скоростью разработки нужен, чтобы быстренько накарябать подобие работающей системы, пригодной для минимальной нагрузки. Потом её можно спихнуть инвестору, и пусть сношается как хочет, а самому затеять новый стартап.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #331

372. Сообщение от Аноним (447), 04-Янв-24, 14:57   +1 +/
Вы настолько ненавидите дизайнеров?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #328 Ответы: #377

374. Сообщение от Аноним (374), 04-Янв-24, 15:34   +2 +/
В языке программирования главное то, что он язык - для людей. И только потом производительность. При этом разумеется хочется максимальную производительность, но только после удобства самого языка.

Что касается этих «типовых» тестов - они нифига не типовые. В реальном мире ваще не это нужно. В реальном мире нужно удобство подключения библиотек, удобная сборка, хорошие сообщения об ошибках, безопасность, креши, концепции упрощающие переиспользование кода - трейты, классы, енумы, аннотации, макросы, асинк/авейт и так далее; поддержка IDE, хорошая документация, друэелюбное сообщество.

А скорость перемножения матриц это не типовая задача, это офигенно нишевая задача, где если вам нужно выжать максимальный перформанс, то вы и на асме вставки сделаете.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #439, #511

375. Сообщение от Аноньимъ (ok), 04-Янв-24, 15:47   –1 +/
Монады - это банальная вещь.
Как только нужно работать с IO сложнее хеллоу ворда, их приходиться переизобретать, если их и так нету в вашем ЯП.
Сишники вот переизобретают извращенными хаками.

В расте оно по умолчанию для всего IO.

> Назови хотя бы 2-3 серьезные прогрмаммы написанных на хаскеле? Например какой-нибудь редактор

Назови хотя бы 2-3 серьезные прогрмаммы написанных на V? Например какой-нибудь редактор
Назови хотя бы 2-3 серьезные прогрмаммы написанных на Zig? Например какой-нибудь редактор
Назови хотя бы 2-3 серьезные прогрмаммы написанных на Java Script? Например какой-нибудь редактор

Ой, на ЖС то серьездных редакторов есть.

Вы суть упускаете. В Хаскеле есть всё, включая совметимость с сишкой.
Все эти изобретатели нескучной сишки делают кривое подмножества Хаскеля, зачастую не понимаяя теории ЯП, не проведя никакой анализ, а просто реализуя свои хотелки велосипедным способом. Когда всё уже много лет как придуманно и реализованно.

Раст хотя-бы что-то сделал правильно, и делает упор на инфраструктуру.
А без развитой инфраструктуры ваши D E F G V Z и прочие наколенные поделки - нафиг ненужны.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #357 Ответы: #401

377. Сообщение от Вы забыли заполнить поле Name (?), 04-Янв-24, 16:23   +/
> Вы настолько ненавидите дизайнеров?

Я думаю что это отличный вариант улучшить гимп. Также дизайнеры слишком уж стали выделяться: подавай им обязательно мак, хороший дизайнер как и погромист должен уметь решать задачу в разных условиях.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #372 Ответы: #429

378. Сообщение от Вы забыли заполнить поле Name (?), 04-Янв-24, 16:31   +/
>> Джей Сассман с тобой согласен https://habr.com/en/articles/282986/
>>>  Сейчас инженеры обычно пишут код для сложного аппаратного обеспечения, которое они не до конца понимают (причем часто это происходит по причине коммерческой тайны, а не в силу лени или недостатка времени — взять ту же Apple и ее технологии).
>>> Согласно Сассману, сегодня его студенты большую часть своего времени тратят на чтение мануалов к этим библиотекам, чтобы разобраться в том, как связать их вместе с простой целью — чтобы всё заработало и сделало то, что им нужно.
> Чем это отличается от того что делали технари 100 лет назад, когда
> изобретали разные костыли, чтобы передать энергию пара в лампочку?

Ты прочитал статью полностью? Похоже что нет. Отличается тем, что тогда систему собирали с нуля, а сейчас ты купишь на маркетплейсе систему для передачи энергии пара в лампочку и будешь собирать конструктор. И когда все заработает, то скажешь что собрал паровой электродвигатель, но объяснит принцип его работы не сможешь как и воссоздать с нуля.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #367

380. Сообщение от User (??), 04-Янв-24, 17:57   +/
> Из своей практики по обработке изображений, там не 1%, а иногда в
> лоб переписываешь на векторные инструкции - в 30 раз быстрее, неделю
> походишь, подумаешь - переписываешь и ещё в 2 раза быстрее, как-то
> так.

Не-не, не "критический участок специфического кода" на 300 сишных строк - а аналог хотя бы 5-10k чего-нибудь более высокоуровневого.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

381. Сообщение от User (??), 04-Янв-24, 18:00   +/
> Хватит повторять эти сказки. Не позорься.

Действительно. В жизни дофига примеров вида "переписал 10000 строк плюсового кода на асм, получил хN к производительности" и вас не затруднит привести хотя бы два, да?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163

382. Сообщение от commiethebeastie (ok), 04-Янв-24, 19:02   +/
> а в третих, ИМХО, думаю даже такой тест может быть полезным.
> В смысле "а насколько хорошо работают оптимизации компилятора, если мне оптимизировать
> лениво".

В итоге имеем сравнение компиляции, интерпретации и JIT оптимизации :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179

383. Сообщение от Аноним (383), 04-Янв-24, 19:06   +1 +/
Вот, кстати, да – в списке нет Hack. Интересно было бы посмотреть на результаты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #370

384. Сообщение от Аноним324 (ok), 04-Янв-24, 20:58   +/
> Скорее на js/python много вакансий для начинающих, с соответсвующей оплатой. А на
> c/c++ требуются готовые профессионалы, и тоже с соотвествующей оплатой.
> Итого: вакансии и размеры зарплаты в них не совсем адекватно отображают востребованность.

Кстати наоборот, на С++ так как дефицит кадров, с большей вероятностью возьмут полного нуля, на зарплату там в 400 долларов, и он будет себе работать. Главное чтобы он читать умел, и с первого раза в рот ложкой попадал. Всё как на хайпе программирования в 2016.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279 Ответы: #388

386. Сообщение от Аноним (386), 04-Янв-24, 23:55   +1 +/
А теперь надо посчитать реальную стоимость языков программирования для бизнеса в единицах иизмерения "доллар на час разработки".
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #424

388. Сообщение от _kp (ok), 05-Янв-24, 00:10   +/

> Кстати наоборот, на С++ так как дефицит кадров, с большей вероятностью возьмут
> полного нуля, на зарплату там в 400 долларов, и он будет
> себе работать. Главное чтобы

Да, тут приходится угадывать и перспективнось неопытного программиста, и его личный интерес к подобной работе.
У нас обычно ростят студентов/выпускников, а чтоб попался хороший специалист в небольших городах - это редкость.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #384

390. Сообщение от Вы забыли заполнить поле Name (?), 05-Янв-24, 00:39   +/
> Тоже увидел данный коммент и аж бомбануло сперва. Но в итоге решил
> не отвечать, т.к. человек вообще не в курсе что из себя
> представляет js.

Ты бы показал пример потоков в js лучше.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155

401. Сообщение от Аноним (401), 05-Янв-24, 08:18   +1 +/
А реально не нужен только Хаскель и его функциональная братия. Натурально вывих мозгов ради ачивки «мам, навука!».
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #375 Ответы: #404

402. Сообщение от Cucumber (?), 05-Янв-24, 08:51   +/
Уже первое
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #302 Ответы: #406

403. Сообщение от Аноним (-), 05-Янв-24, 10:04   +/
> передача будет через стек.

Если раст откажется проталкивать значение в функцию через регистры, то он положит в %rdi адрес этого значения. Куда он будет класть адрес на arm64 я не знаю, но спорить готов, что тоже в какой-нибудь регистр.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #335

404. Сообщение от Аноньимъ (ok), 05-Янв-24, 11:24   +/
> А реально не нужен только Хаскель и его функциональная братия. Натурально вывих
> мозгов ради ачивки «мам, навука!».
> Вот кстати темная лошадка из новых интересных языков.
> ради ачивки «мам, навука!».

Вот я иговорю, интересных языков и так навалом.

> функциональная братия

Функциональщина сейчас везде.

> Натурально вывих мозгов

И зачем нам преподают математику, блииин сложна, оно мне ненужно, я буду слесарем зачем нам математика?
Ууууу вы ви х м о з г о в очень сложнааааааа111(((((

Ну, если банальные вещи широко адаптировные индустрией для вас вывих мозгов... Как вы с указателями на войд справляетесь? Ну понятно - никак.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #401 Ответы: #405

405. Сообщение от Аноним (-), 05-Янв-24, 11:51   +1 +/
> Функциональщина сейчас везде.

Отдельные функции и подходы, типа reduce/map. И в общем-то все.
Ну назови-ка, крупные опенсорс проекты написанные на функциональных языках.

> И зачем нам преподают математику, блииин сложна, оно мне ненужно, я буду слесарем зачем нам математика?
> Ууууу вы ви х м о з г о в очень сложнааааааа111(((((

Ну, твой сраказм уже показывет уровень твоего, так сказать, интеллекта.
На бумажке все эти идеи функционального программирования выглядят отлично. Просто идеальные мат. модели, можно писать курсовые и диссертации. И с презрением, свысока смотреть на остальных.
Хвастаться наличием чистых функций и функции высших порядков (хотя что первые, что последние есть и в императивных).

А потом оказывается, что модель вычислений у тебя нестрогая. И функции могут выполняться в общем-то в любом порядке. И всё, ты обделался.
Потому что ввод-вывод в случайной порядке, ну очень порадует юзера.
И приходится в красивейший язык функционального программирования вкорячивать императивные механизмы, потому что без них он просто овно.

Ну и такие мелочи как необходимость сборщика мусора, из-за чего что-то серьезное на них не построишь.

> Ну, если банальные вещи широко адаптировные индустрией для вас вывих мозгов... Как
> вы с указателями на войд справляетесь? Ну понятно - никак.

Ты не путай "банальные вещи" типа отдельных функций и подход при котором "прочитать пользовательский ввод" ломает всю красоту функциональщины.
Мы просто возьмем удобные подходы и перенесем в свои императивки, а "вещи широко адаптировные индустрией" (где? что?) пусть себе оставят фанатики.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #404 Ответы: #409, #410, #437

406. Сообщение от Аноним (407), 05-Янв-24, 12:44   +/
Очевидно, все еще много раз поменяется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #402

407. Сообщение от Аноним (407), 05-Янв-24, 12:46   +/
Вот она вся суть яблочников - выбора тебе не дают, радуйся тому что есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #319

409. Сообщение от Аноньимъ (ok), 05-Янв-24, 13:36   +/
> Ну назови-ка, крупные опенсорс проекты написанные на функциональных языках.

Вы прикалываетесь?
Вперёд гугл крупные опенсорс проекты JS

> Хвастаться наличием чистых функций и функции

Кто хвастается, эти люди сейчас с вами в одной комнате?

> На бумажке все эти идеи функционального программирования выглядят отлично. Просто идеальные мат. модели

Они полезны практически. И применяются во всех современных ЯП.


> "прочитать пользовательский ввод" ломает всю красоту функциональщины

Не ломает.

> Ну и такие мелочи как необходимость сборщика мусора, из-за чего что-то серьезное на них не построишь.

В чём-то серьёзном и большом вам сборщик мусора мешает? Обычно, его реализуют сами в чём-то серьёзном, если его нет изначально.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #405

410. Сообщение от Аноньимъ (ok), 05-Янв-24, 13:38   +/
> Мы просто возьмем удобные подходы и перенесем в свои императивки

Вы, сейчас один, сидите запертый в комнате, в трусах, и фантазируете о некой общности которая наделила вас правом говорить от её имени.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #405

415. Сообщение от Котофалк (?), 05-Янв-24, 18:26   +1 +/
> Когда она появляется

А она всегда появляется. А вот выводы не делаются никогда.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #370

418. Сообщение от Александр (??), 05-Янв-24, 23:30   +/
Геймдев. Частенько. Правда сами функции не пишем: либо из движка, либо из библиотеки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #487

421. Сообщение от Ivan7 (ok), 06-Янв-24, 00:58   –1 +/
Python в десятки и сотни раз медленнее C/C++. Тесты это ясно показывают. Никакой numpy, который сам написан на С, радикально не поможет. Кроме того, нахрена язык, если с ним в обязательном порядке нужно использовать костыль в виде numpy, который может ограниченно помочь только в узком круге задач? Короче говоря, пиши обработку данных сразу на C++ и не теребонькай одно место. Если бы программисту на С++ сказали, что он придурок, если не использует что-то вроде numpy, - это было бы очень комично)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #261 Ответы: #517

424. Сообщение от Ivan7 (ok), 06-Янв-24, 01:51   +/
> А теперь надо посчитать реальную стоимость языков программирования для бизнеса в единицах измерения "доллар на час разработки".

Это сильно зависит от опыта и квалификации программиста на конкретном языке, от широты применения языка, качества и количества библиотек и стороннего кода на каждом языке и множества других факторов, а также, разумеется, от решаемой задачи. Например, писать логику сайтов на С++, наверно, не очень умно, так же как писать высокопроизводительный код на JavaScript, Perl, Python, Ruby и т.д.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #386 Ответы: #491

425. Сообщение от Александр (??), 06-Янв-24, 01:57   +/
Уверен, что нету? Conan, vspkg: да, пошли мы на фиг. То, что их никто не привинчивает к стандарту - это другое. Может даже лучше, что не стандартизуют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #366

426. Сообщение от Ivan7 (ok), 06-Янв-24, 02:07   +/
> Такое ощущение, что все компилируемые языки должны асимптотически сходиться к одним значения.
> У автора V и rust немного обгоняют Си в nqueen.
> А в matmul V проигрывает Си около 6 раз - 3.17 vs 0.54!
> Предположу, что там что-то неправильно реализовали.

Там, где чуть-чуть обгоняет, не догоняет - это всё ерунда, т.к. результаты тестов в большей степени зависят от компилятора, опций компиляции, архитектуры, процессора, на котором производятся тесты и т.д.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

427. Сообщение от Ivan7 (ok), 06-Янв-24, 02:17   +/
Если производительность языков отличается в десятки и сотни раз, а вы, например, занимаетесь обработкой данных, то производительность очень важна, т.к. на медленных языках вы можете просто не дождаться окончания работы программы, т.к. вместо 1 секунды вам приходится ждать сотни секунд, вместо 1 минуты - сотни минут, т.е. N часов. Запустите тесты, чтобы просто это прочувствовать, и все вопросы сами собой отпадут. Я запустил у себя данные тесты для нескольких языков. Признаюсь, окончания некоторых тестов я не дождался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #321 Ответы: #430, #434, #435, #438, #442, #443, #447, #456, #457

428. Сообщение от Александр (??), 06-Янв-24, 02:32   +/
Читаемость имхо не относится к знанию/не знанию языка. Читаемый язык -  это такой язык, листинг которого достаточно легко прочитать, не гугля документацию по языку. В этом плане си всё же более легко читаемый (но уступает ряду других).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #260

429. Сообщение от Александр (??), 06-Янв-24, 02:49   +/
В отличие от программиста, дизайнеры редко выходят за свою предметную область. По крайней мере в контексте: "Как сделать N на на вот этом". При появлении таких задач, они либо не будут делать N вообще, либо попросят заменить вот это. Так что развитие дизайнерских инструментов под какую-то новую платформу всё же должно исходить от программистов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #377

430. Сообщение от GG (ok), 06-Янв-24, 02:50   +/
А если бы у бабушки были бы колёсики...

Но в реальной жизни программирование так не работает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427 Ответы: #433

431. Сообщение от Александр (??), 06-Янв-24, 03:04   +/
Сишечка как раз и создавалась под неопределённый процессор. От сюда кстати и инт неопределённого размера, ибо в те времена крайне весёлые товарищи встречались (в смысле ОС).
Когда вопросы размерностей утряслись там вполне появились знакомые всем размерные инты. Достаточно подключить stdint.h.

> каллинг конвектион

Тут достаточно винду изгнать с её 100500 разных ABI.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #352 Ответы: #473

432. Сообщение от Александр (??), 06-Янв-24, 03:07   +/
Что касается интерфейсов, если имеется в виду POSIX, то изгоняй-не изгоняй: он сейчас везде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #352

433. Сообщение от Ivan7 (ok), 06-Янв-24, 05:07   +2 +/
> А если бы у бабушки были бы колёсики... Но в реальной жизни программирование так не работает.

В реальной жизни как раз всё именно так и работает. Пример из жизни. Как-то раз я делал программу для обработки текстовых данных (довольно большие объёмы - десятки и сотни гигабайт), и начал делать её на Perl, т.к. это было проще и быстрее, но быстро стало понятно, что Perl слишком медленный и с задачей категорически не справится. В результате полностью реализованная программа на C++ и ассемблере работала в 500-1000 раз быстрее наполовину реализованной на Perl, что коррелирует с результатами теста. Есть сферы, где производительность критически важна, и от неё зависит успешность реализации проектов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #430

434. Сообщение от Ivan7 (ok), 06-Янв-24, 05:48   +2 +/
Результаты проведённых мной тестов (последний вариант с github) для x86-64 для C (Clang, GCC), Rust, Perl, Python, Ruby (время в секундах, меньше - лучше):

              matmul   nqueen   sudoku   bedcov
c:clang (c3)    0.93     3.18     2.23     1.08
c:clang (u3)    0.92     3.20     2.20     1.08
c:clang (ca)    1.30     3.33     2.23     1.10

c:gcc (g3)      0.97     3.27     2.49     1.08
c:gcc (g3p)     0.92     3.33     2.66     1.07
c:gcc (g2)      2.22     3.27     2.83     1.05

rust (ra)       1.38     3.63     2.58     1.26
rust (rb)       1.09     3.72     2.60     1.29

perl          272.77   212.20   151.92
python        350.95   241.83    87.68    81.35
ruby          373.35   134.63   171.00

(c3)  - clang -O3  (clang64)
(u3)  - clang -O3  (ucrt64)
(ca)  - clang с изначальными опциями компиляции (clang64)

(g3)  - gcc -O3    (ucrt64)
(g3p) - gcc -O3 + PGO (Profile Guided Optimization)  (ucrt64)
(g2)  - gcc -O2    (ucrt64)

(ra)  - rust с изначальными опциями компиляции (ucrt64)
(rb)  - rust с указанием целевой архитектуры Intel Haswell (ucrt64)

Система:
Два процессора Intel Xeon E5 2678v3 (по 12 ядер Haswell в каждом процессоре, 3.3 ГГц по всем ядрам (анлок турбобуста)),  128 ГБ серверной DDR3 1866 MHz.
Windows 10 + MSYS2 (всё с последними обновлениями), при тестах устанавливалась схема управления энергопотреблением "Максимальная производительность".
Тесты запускались на RAM-диске. Время измерялось утилитой time (time -f %e). Тесты на C и Rust запускались раз по 10, для Perl, Python, Ruby - 2 раза, т.к. долго ждать.
Для каждого теста выбиралось наименьшее время по всем запускам.
Для C и Rust опции компиляции изменены, включая указание целевой архитектуры Intel Haswell, но также приведены результаты тестов с исходными опциями компиляции: (ca), (ra).
Все компиляторы и интерпретаторы из состава MSYS2.

GCC 13.2.0 (ucrt64)
Clang 17.0.6 (ucrt64 и clang64)
rustc 1.75.0 (82e1608df 2023-12-21) (Rev1, Built by MSYS2 project) (ucrt64)
perl 5.38.2 built for x86_64-msys-thread-multi (msys)
Python 3.11.6 (msys)
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x64-mingw-ucrt] (ucrt64)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

435. Сообщение от Ivan7 (ok), 06-Янв-24, 06:53   +2 +/
И ещё в догонку результаты тестирования D на x86-64:

              matmul   nqueen   sudoku
d:ldc2 (da)     1.30     3.26     2.22
d:ldc2 (db)     1.01     3.34     2.26

(da)  - D (ldc2) с изначальными опциями компиляции (ucrt64)
(db)  - D (ldc2) с указанием целевой архитектуры Intel Haswell (ucrt64)

LDC - the LLVM D compiler (1.35.0): based on DMD v2.105.2 and LLVM 16.0.6

Итого, из протестированных мной языков на x86-64 Haswell результаты следующие. На первых местах ожидаемо компилируемые языки: безоговорочное первое место - C, с небольшим отставанием следует D, с некоторым отставанием Rust, и с огромным отставанием в десятки и сотни раз следуют интерпретируемые языки: Perl, Python, Ruby. Что касается компиляторов C, то Clang в данных тестах показал себя лучше GCC. Но на моей практике GCC чаще генерирует более быстрый код, чем Clang. Однако всё сильно зависит от конкретного алгоритма, и разница бывает большой (десятки процентов). Также из моей практики Perl действительно катастрофически медленный: отставание от С++ в сотни раз - это не какая-то особенность данных тестов, а фактическое реальное положение дел.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

436. Сообщение от _ (??), 06-Янв-24, 08:06   +/
>> C is high-level assembly language (C) ТЧК!
>Херочка.

Интересное имя ... или это профессия?

>Может когда-то так и было.
>Сишка ведь создавалась под конкретный процессоры, внезапно.

Му-ха-ха :) Тогда почему оно есть подо всё что от электричества работает?!?!
Си - гениальнейшая штука! Оно с минимальным asm-лением бутстрапится на ... ВСЁМ! :)
Но если вы увидите что кто то пишет на нем "апплликейшен" - бейте его ногами! :)

>Процуессоров тех давно уже нет, а эту дохлую кобылу всё пинают.

Без неё твоё шаприЁ даже не запустится, слишком вы убогие в этой области. Пиши свои "склад\магазины" и гордись собой. Это не сарказм - просто прикинь современный "склад\магазин" на голом Си vs ну пусть видео-драйвер на голом C# ... 8-D
И сразу поймёшь что зубная щётка и веник ... хотя и одно и тоже концептуально ... но есть нюанс(С) :-)

>> Чем в написании драйверов и прочей in-kernel чешуи тебя не устроил "С" ?!
>Кроме инта неопределённого размера?

Если тебе нужен int определённого размера - то и объяви его явно, что Си что ли не даёт такого сделать или кое чья "проффЭсьЁн де фуа"? :-D


>> И чем ты его там заменишь?
>Да Боже Мой! С десяток отличных замен существует.

И толку? Все популярные оси - на сях. ТЧК.

>> там
>Для начала хорошо бы из этого вашего "там" изгнать сишку с её интерфейсами, *void, и каллинг конвектион.

Давай - изгоняй, у ваших даже успехи есть: https://learn.microsoft.com/en-us/cpp/cpp/obsolete-calling-c... правдо с __pascal и __fortran пока :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #352 Ответы: #472

437. Сообщение от _ (??), 06-Янв-24, 08:18   +/
>Ну назови-ка, крупные опенсорс проекты написанные на функциональных языках.

Конкурент этого сайта - LOR ... Scala 32.8% - считается?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #405

438. Сообщение от Ivan7 (ok), 06-Янв-24, 08:22   +1 +/
И ещё результаты тестирования Go (из MSYS2), Julia и Node.js (с их официальных сайтов) на x86-64 Haswell под Windows 10:

              matmul   nqueen   sudoku   bedcov
julia           1.37     3.87     4.87     3.94
go              6.89     4.36     3.21
js:node         4.84     5.96     7.08     8.91

julia version 1.10.0
go version go1.21.5 windows/amd64 (ucrt64)
node v21.5.0

И они уже сильно отстают от лидеров: C, D, Rust.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

439. Сообщение от _ (??), 06-Янв-24, 08:25   +/
>В языке программирования главное то, что он язык - для людей. И только потом производительность.

Знал бы ты сколько ЯП созданных под этим флагом гниёт на обочине ...
Но не все: ряба, пейстон и жЫЭс таки пока живут - видимо чего-то в них есть что народ "цепляет" :)

>В реальном мире ваще не это нужно. В реальном мире нужно [...]

розовое сено для говорящих пони. Без этого всё тобой перечисленное - "ваще не это нужно".
Ж:-D

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #374

440. Сообщение от Аноним (228), 06-Янв-24, 08:59   +/
C, Rust, Nim. Всё, расходимся

https://github.com/attractivechaos/plb2/blob/master/analysis...

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #475

441. Сообщение от GSGemail (?), 06-Янв-24, 09:53   +1 +/
Конечно, если ни Паскаль, ни Фортран не рассматривать... :-)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #490

442. Сообщение от Ivan7 (ok), 06-Янв-24, 09:56   +1 +/
И напоследок LuaJIT и PyPy на x86-64 Haswell под Win 10. LuaJIT мне пришлось скомпилировать самостоятельно с помощью GCC и Clang с оптимизациями для Haswell, т.к. готового скомпилированного варианта на официальном сайте я не нашёл. Написан он на чистом C, кому интересно.

lua:luajit      3.87    11.01    10.71    18.89
py:pypy         5.62    10.03    14.84    10.97

LuaJIT 2.1.1703358377 / JIT: ON SSE3 SSE4.1 BMI2 fold cse dce fwd dse narrow loop abc sink fuse
PyPy 7.3.14 with MSC v.1929 64 bit (AMD64) / Python 3.10.13 (Dec 25 2023, 00:55:57)

Оба похожи по производительности, и у обоих совсем всё печально с этим, но, конечно, печально не до такой ужасной степени как у Perl, CPython и Ruby.

Кто хочет, может собрать всю эту информацию воедино и построить диаграмму. C# и Java было бы интересно потестировать на x86-64, но не хочется их инсталлировать и замусоривать ими систему. Тем не менее, надеюсь, кому-то эта информация будет полезна.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427 Ответы: #444

443. Сообщение от Ivan7 (ok), 06-Янв-24, 11:35   +1 +/
Ну и для полноты картины ещё тест пачки компиляторов С от Intel и Microsoft для x86-64, хоть и не open source и не самые свежайшие версии:

              matmul   nqueen   sudoku   bedcov
c:dpc           0.91     3.37     2.28     1.07
c:icc           2.35     3.47     2.30     1.13
c:msvc-clang    0.99     3.40     2.37     1.13
c:msvc          1.87     3.43     2.54     1.60

c:msvc-clang и c:msvc:  MSVC 2019 16.11.16
c:dpc:  Intel® C++ Compiler – toolkit version: 2022.2.0, extension version 22.0.16, Package ID: w_oneAPI_2022.1.0.256
c:icc:  Intel® C++ Compiler Classic – toolkit version: 2022.2.0, extension version 19.2.10.16, Package ID: w_oneAPI_2022.1.0.256

Из них, если судить по этим тестам, интересен только c:dpc (Intel® C++ Compiler), который на базе LLVM.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

444. Сообщение от Ivan7 (ok), 06-Янв-24, 11:52   +/
Последовательность тестов здесь такая же, как и в других моих сообщениях:
              matmul   nqueen   sudoku   bedcov
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #442

447. Сообщение от Аноним (447), 06-Янв-24, 12:43   +/
Спасибо за тесты.
Дополню (потому что в сообщениях увидел только про указание целевой архитектуры), что для раста тоже можно указать уровень оптимизации -C opt-level=3
https://doc.rust-lang.org/stable/rustc/codegen-options/index...

Еще немного удивляет такой разброс по сишным компиляторам.
Неужели icc настолько плох? Или он ожидал какие-то особенных опций?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427 Ответы: #454, #455

454. Сообщение от Ivan7 (ok), 06-Янв-24, 16:38   +/
В Makefile для тестов на Расте уже были указаны опции -C debuginfo=0 -C opt-level=3
Я протестировал как с ними, так и с добавлением опции -C target-cpu=haswell, что в одном из тестов сильно увеличило производительность, но в трёх других чуть снизило.

По сишным компиляторам действительно большой разброс, и это не особенность данных тестов. Разброс в десятки процентов - это норма, тем более при компиляции маленьких программ. В больших программах сильный разброс в производительности разных участков программ в обе стороны усредняется, поэтому на них это менее заметно.

ICC не то, чтобы плох... Когда-то он был очень даже хорош, но в какой-то момент Intel его практически перестала развивать, в то время как GCC и Clang активно развивались, особенно Clang. И в какой-то момент они стали обходить ICC по всем параметрам. Из своего опыта его использования могу сказать, что после перекомпиляции одной из своих программ обработки данных с помощью GCC, которую до этого я компилировал ICC, причём использовал PGO (Profile Guided Optimization), производительность программы сходу увеличилась на 15-20%, причём для GCC была указана только опция -O2 и больше ничего (без PGO естественно). Так что сейчас ICC уже, видимо, не актуален. Да и компилирует он очень медленно, плохо поддерживает последние стандарты С++, а ассемблерные вставки, хоть и поддерживает, но очень ограниченно и с ошибками, но хорошо, что поддерживает, потому что MSVC вообще этому не научили) Поэтому не рекомендую их обоих) Ванильные GCC и Clang сейчас лучше всех коммерческих компиляторов С++.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #447

455. Сообщение от Ivan7 (ok), 06-Янв-24, 17:50   +/
Поклонникам Раста. Добавил дополнительные опции компиляции и ситуация в тесте nqueen улучшилась (время выполнения теста уменьшилось с 3.63/3.72 до 3.38 сек.). Кроме того, уменьшился размер exe всех 4 тестов более чем в 4.7 раза: с 1.3 МБ до менее 0.3 МБ. До размера exe, генерируемых для данных тестов компиляторами C (GCC и Clang), всё ещё далеко (они весят по 15-25 кБ, причём при этом не зависят от внешних dll, кроме системных), но и это уже неплохо.

              matmul   nqueen   sudoku   bedcov
rust (ra)       1.38     3.63     2.58     1.26
rust (rb)       1.09     3.72     2.60     1.29
rust (rc)       1.11     3.38     2.59     1.27

(ra)  - rust с изначальными опциями компиляции (ucrt64)
(rb)  - rust с указанием целевой архитектуры Intel Haswell (ucrt64)
(rc)  - rust с указанием целевой архитектуры Intel Haswell, LTO, strip (ucrt64)
        (-C debuginfo=0 -C opt-level=3 -C target-cpu=haswell -C lto -C strip=symbols)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #447

456. Сообщение от Ivan7 (ok), 06-Янв-24, 18:57   +/
Для тестов C (Clang) производительность 3 тестов из 4 после применения PGO (Profile Guided Optimization) слегка улучшилась:

c:clang (c3p)   0.89     3.19     2.14     1.06
Было:
c:clang (c3)    0.93     3.18     2.23     1.08
c:clang (u3)    0.92     3.20     2.20     1.08
c:clang (ca)    1.30     3.33     2.23     1.10

(c3p) - clang -O3 + PGO  (clang64)
(c3)  - clang -O3  (clang64)
(u3)  - clang -O3  (ucrt64)
(ca)  - clang с изначальными опциями компиляции (clang64)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

457. Сообщение от Ivan7 (ok), 06-Янв-24, 19:49   +/
Добавление LTO (Link Time Optimization) для D чуть улучшило ситуацию в тесте nqueen. Добавление PGO (Profile Guided Optimization) ничего не дало, поэтому здесь результаты не привожу.

              matmul   nqueen   sudoku
d:ldc2 (dc)     1.03     3.25     2.24
Было:
d:ldc2 (da)     1.30     3.26     2.22
d:ldc2 (db)     1.01     3.34     2.26

(da)  - D (ldc2) с изначальными опциями компиляции (ucrt64)
(db)  - D (ldc2) с указанием целевой архитектуры Intel Haswell (ucrt64)
(dc)  - D (ldc2) с указанием целевой архитектуры Intel Haswell, LTO (ucrt64)
        (ldc2 -O3 -release --m64 -mcpu=haswell --flto=full)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #427

461. Сообщение от penetrator (?), 07-Янв-24, 03:11   +/
>> в этом исследовании интересен только Swift, который родной для платформый, а он
>> пролетает по тестам, что ожидаем, потому что софт у яблока как
>> и гнуса - дэрмо
> И почему же софт эпла дерьмо? Откровенно лагающего софта там нет. Плюс
> айфоны всегда имеют меньше оперативной памяти чем сопоставимые андроид телефоны, и
> один и тот же софт, на айфоне с 4 гигами оперативной
> памяти не тормозит, а на андроиде с 4 гигами тормозит. Как
> так? Ах да потому что меркам гугла, телефон в котором меньше
> 64 гигов оперативной памяти обязан лагать, так прям в гайдлайнах написано.

действительно качество софта определяется какими-то мифическими лагами, которых я и на ведре не видел, если это не уепшны

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #361

462. Сообщение от penetrator (?), 07-Янв-24, 03:17   +/
>> в этом исследовании интересен только Swift, который родной для платформый, а он
>> пролетает по тестам, что ожидаем, потому что софт у яблока как
>> и гнуса - дэрмо
> И почему же софт эпла дерьмо? Откровенно лагающего софта там нет. Плюс
> айфоны всегда имеют меньше оперативной памяти чем сопоставимые андроид телефоны, и
> один и тот же софт, на айфоне с 4 гигами оперативной
> памяти не тормозит, а на андроиде с 4 гигами тормозит. Как
> так? Ах да потому что меркам гугла, телефон в котором меньше
> 64 гигов оперативной памяти обязан лагать, так прям в гайдлайнах написано.

действительно качество софта определяется какими-то мифическими лагами, которых я и на ведре не видел, если это не уепшный китаец за 100 баксов

я говорю про платформу, ось, а также, средства разработки, которые ты я так понимаю ни разу не видел изнутри, эпловое это самое говенное, что я видел по качеству реализации, если сравнивать разработку для Windows / Linux / Mac / iOS / Android

ведро тоже не сахар, но сильно лучше чем эпловый треш

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #361 Ответы: #471

470. Сообщение от Анонист (?), 07-Янв-24, 18:02   +/
Зря минусуют человека сверху. За оптимизацию кодеру может и прилететь, ибо он тратит часы (деньги) своего работодателя. Вот если у бизнеса появится задача "чтобы запускалось на ведре", то тогда оптимизация и начнётся. Но это происходит только в тех случаях когда замена железа стоит сильно дороже (см. терминалы, индустриальное оборудование, клиент на северном полюсе).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #497

471. Сообщение от Аноним324 (ok), 07-Янв-24, 19:16   +/
У эпла всё реализовано как настоящего комерческого юникса. Те это то к чему стремятся линукс-макаkи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #462 Ответы: #485

472. Сообщение от Аноньимъ (ok), 07-Янв-24, 19:24   +/
> И толку? Все популярные оси - на сях. ТЧК.

Виндовс на сях?

> Си - гениальнейшая штука! Оно с минимальным asm-лением бутстрапится на ... ВСЁМ! :)

Ох уж эти сказочки, ох уж эти сказочники.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #436

473. Сообщение от Аноньимъ (ok), 07-Янв-24, 19:45   +/
Под DEC она создавалась, и риски как таковые.

А почему куда и от куда эти риски шли, то история забавная.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #431

474. Сообщение от Аноним (474), 08-Янв-24, 06:41   +/
А потом выясняется, что скорость разработки обратно пропорциональна качеству оптимизации и количеству багов в коде. Но смузи сам себя не выпьет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #331 Ответы: #476

475. Сообщение от Аноним (475), 08-Янв-24, 14:15   +/
Еще Julia приятно удивила, пятое место для несистемного языка совсем неплохо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #440

476. Сообщение от Аноним (-), 08-Янв-24, 14:35   +/
> А потом выясняется, что скорость разработки обратно пропорциональна качеству оптимизации
> и количеству багов в коде. Но смузи сам себя не выпьет.

Конечно, мы сами его выпьем, пока будем думать над кодом.

Это только у адептов дыряшки получается не будам х-к-х-к и сразу в прод.
А потом CVEшки еще 30 лет находят.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #474

485. Сообщение от penetrator (?), 08-Янв-24, 21:03   +/
> У эпла всё реализовано как настоящего комерческого юникса. Те это то к
> чему стремятся линукс-макаkи.

ты главное не переставай верить в это )))

P.S.
в тот день когда линукс станет похож на это ковнище от эппла можно смело будет уйти в запой с горя
но этого к счастью не произойдет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #471 Ответы: #492

486. Сообщение от Пряник (?), 09-Янв-24, 10:42   +/
Скорее нельзя такое сравнивать.  Vec<Vec<f64>> - это тип данных (обощённо <T>), &mut - ссылка (прощай, указатели!), vec![0f64; n] - макрос создания пустого вектора из массива (можно и Vec::from([0f64, n])), iter() - превратить в итератор (привет питон, странно, что не as_iter),
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198

487. Сообщение от Пряник (?), 09-Янв-24, 10:44   +/
Наверное, Dwarf Fortress обновляет мир так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #418

488. Сообщение от Пряник (?), 09-Янв-24, 10:48   +/
Нет, иначе разрабы умных чатовГПТ не стали бы ныть от тормозов в Python и создавать Mojo.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

489. Сообщение от Бывалый смузихлёб (?), 09-Янв-24, 12:05   +/
Да и на ноде отчасти можно
По крайней мере, ранее можно было выставить количество вызовов конкретных функций для начала следующего уровня оптимизации

Там, получается, первые несколько раз функция исполняется тупо интерпретатором, ещё после нескольких вызовов делаются какие-то оптимизации, и в конце-концов( после кучи вызовов ) - уже JITифицируется. Но при условии что все разы функция не менялась. Каждое изменение - обнуление счётчика. Для каждого следующего этапа надо сотни-тысячи вызовов.
По умолчанию выставленные уровни - это некий компромисс для разных устройств между относительно быстрой работой и начальным запуском
В производительности - JITифицированный жс-код был быстрее интерпретируемого в десятки-сотни раз

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176

490. Сообщение от Аноним (491), 09-Янв-24, 12:55   +/
Ага, Оберон туда же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #441

491. Сообщение от Аноним (491), 09-Янв-24, 12:59   +/
> писать логику сайтов на С++, наверно, не очень умно

Смотря каких сайтов. Библиотеки на C++ для сайтов есть и некоторые весьма успешны.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #424

492. Сообщение от Аноним324 (ok), 09-Янв-24, 17:50   +/
Линукс ещё хуже. Он собрал в себе все самые плохие практики, которые только можно представить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #485 Ответы: #493

493. Сообщение от penetrator (?), 10-Янв-24, 03:10   +/
> Линукс ещё хуже. Он собрал в себе все самые плохие практики, которые
> только можно представить.

у тебя бурная фантазия, клинически бурная

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #492

497. Сообщение от zurapa (ok), 10-Янв-24, 20:07   +/
Ну, зря ли?.. Это философский вопрос. Бизнесу нужно, чтобы продукт покупался и был весь такой модный блестящий, динамичный. И молодые хипстеры это конечно же подхватывают и хавают. У кого деньги есть на новое железо. И есть добрая аудитория "маргиналов", которые либо не хотят новое железо, либо не могут себе позволить, либо его родные и близкие не могут его себе позовлить, но допекают его - Сделай, чтобы работало.

И вот тут рядовой инженер конечно же не виноват, что делает, как хочет бизнес. С позиции бизнеса это правильно. Точнее бизнес никогда не знает как правильно. Бизнес всегда конкурирует с другим бизнесом, и безразлично, сколько на этом денег потратится.

С позиции же обывателя, той "жалкой горстки маргиналов" (коих большинство на самом деле, смотри внимательно на ковычки - значит сарказм) этот вопиющее безобразие творить то, что неоправданно вынуждает его обновлять весь парк железяк, чтобы не иметь проблем.

Коли мы зацепили бизнес, то ему безразлично на производительность того, или иного языка. Главное, чтобы были в доступе специалисты на том языке, на котором они уже нагородили "говна" и теперь это продают.

Так например, 1С проиграет все тесты на производительность. Но бизнес-приложения суровые на нём пишут, потому что удобно.

Всё-таки давайте на чистоту дискорд, хренкорд, яндекс дземн, и проиче пхп, гошные поделия - это так - фастфуд для доходяг и бездельников. Когда вам нужно писать приложение считающее ваши деньги, анализирующее, организующее ваших долбанов работников, которые бухгалтеры, только по табличке на кабинете, а на самом деле тыкатели в кнопку сделать "квартальный отчёт зае..ца!", тут вам не шибко принципиально производительность вашего приложения в попугаях... Именно поэтому пишут такие приложения на фреймворках, где не нужно изобретать велосипед заново, а используется уже написанное. Да оно может быть дырявым, может быть непроизводительным совершенно - ну х.. с ним. Главное, что разрабы на этом могут сверстать быстро то, что нужно сегодня, а завтра возможно оно уже будет не нужно.

И вот подбираясь к сути происходящего мы вернёмся к решению. Кто решает, какие технологии там будут, и на чём они будут работать? Бизнес, который платит, и который не понимает, или же инженер, который не платит, но понимает? Когда можно написать по старинке, так чтобы у всех работало и летало, но при этом несколько не модно, не в современных тенденциях, или можно написать новомодно, так, чтобы бизнес был в восторге, обезьянки с деньгами на новомодном железе восторгались, ну, и всё на этом... остальная аудитория отвалилась, но она не целевая сейчас.
А завтра бизнес пришёл, и захотел эту аудиторию "маргиналов" привлечь, и тебе "анженеру Суслову" нужно сейчас ему объяснить, что он всё заново должен разработать ещё и для этих маргиналов и заплатить ещё больше денег, потому что раньше он тебе не так задачу ставил, и ты не так написал.

Резюмирую. Преждевременная оптимизация, господа, это не когда ты пишешь что-то под все платформы на все случаи жизни. Преждевременная оптимизация, это когда ты берёшь всё последнее новомодное, последних версий, вчера придуманные языки, и начинаешь на этом серьёзный проект. А можно было сделать просто, без вые...нов, так что на старом палме завелось бы.

Тебе единственному, кто дочитал до конца этот комментарий, огромная благодарность! Ты особенный! Т.к. перевелись уже читатели, способные освоить мысль больше чем в две строки по 70 знаков.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #470

499. Сообщение от qetuo (?), 11-Янв-24, 01:43   +/
Полная чушь.

> размер Vec<T> 24 байта.
> так что передача в функцию не такая уж и бесплатная.
> через регистпы не пролезет.

24 = 3 * 8 = 3 РОНа из 14 свободно доступных на x86_64. А еще есть FPU регистры, которыми тоже можно пользоваться. И даже если там будет спилл, он будет разовым и никакого абсолютно влияния на результаты не окажет.

> ну и сам вызов мува. это как никак а вызов функции.

Никакого вызова там нет, это 3 mov.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

505. Сообщение от Аноним (505), 11-Янв-24, 19:13   +/
24-я версия графиков:

C, Rust, Nim

https://i.ibb.co/9qw28cb/template.png?v24

Ответить | Правка | Наверх | Cообщить модератору

510. Сообщение от bOOster (ok), 15-Янв-24, 07:11   +/
> Дополнение 1: В реализации на языках Rust, D и Julia внесены исправления, которые позволили Rust занять второе место, D - третье, Julia - 7 (вместо 16).

Теперь на этой версии Rust не работает ничего кроме этого теста, и растоманы очередной раз планируют менять архитектуру языка :))) facepalm

Ответить | Правка | Наверх | Cообщить модератору

511. Сообщение от bOOster (ok), 15-Янв-24, 07:20   +/
> то вы и на асме вставки сделаете.

Ну да, ну да. На Асме. А ниче что это весьма проблематично с популяризацией в общем сегменте ARM64, RISC V не говоря уж и о том что и PowerPC и MIPS до сих пор живут в таких узких сегментах как принтеры, роутеры и т.п.. Забодаешься под все архитектура АСМ использовать для какой нибудь общей библиотеки - для примера.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #374

512. Сообщение от tty0 (?), 28-Янв-24, 15:22   +/
> Он node_modules просто посчитал. А сам он выводит "привет мир".

Вот вот. Если вы добавили код сторонней библиотекив проект, значит это часть кода проекта, а за код добавленной библиотеки ответственность теперь на Вас. Хотя зачем основы объяснять?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #324 Ответы: #513

513. Сообщение от Вы забыли заполнить поле Name (?), 28-Янв-24, 18:13   +/
>> Он node_modules просто посчитал. А сам он выводит "привет мир".
> Вот вот. Если вы добавили код сторонней библиотекив проект, значит это часть
> кода проекта, а за код добавленной библиотеки ответственность теперь на Вас.

Да никто даже код не читает, который добавляет. Что уж говорить если по умолчанию npm добавляет номер зависимости через ^, что предполагает, что патч и минор версии будут автоматом подтягиваться в свежей установке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #512

514. Сообщение от _kp (ok), 01-Фев-24, 15:52   +/
>>В чистых сях..

В смысле "чистых"? без библиотек, в стиле велосипедостроения? Так оно нерационально.

>> А Си плюс-плюс... в нём проблем с работой со строками вообще не существует.

И там реализация работы со строками не в языке, а в библиотеках. Ладно, в том числе в стоковых. Кстати, если не "шашечки, а ехать", то и в Си проблемы нет.

И в заключение не могу не упомянуть, про "проблемы не существует", что в С++ для контроллеров встроенные С++ библиотки вполне могут быть и наикривейшими, с мешком неочевидных проблем, в том числе со строками, что всё равно вынуждает использовать сторонние компоненты.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92

515. Сообщение от _kp (ok), 01-Фев-24, 15:56   +/
Не бывает. Выбает хреновый результат компиляции, которая аж хуже jit.
И бывают махинации с условиями тестов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

516. Сообщение от _kp (ok), 01-Фев-24, 16:01   +/
Ну php, так php. Но если речь не о интерактивном калькуляторе, где на время можно забить, то нужно использовать библиотеки, использовать avx и подобные фичи процессоров.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

517. Сообщение от KawaiiSelbstemail (?), 08-Фев-24, 07:07   +/
Ivan7
Я конечно прошу прощения, но довольно некорректно называть библиотеки к пайтону на Си костылём, ибо язык сам написан на Си, и все адекватные библиотеки так же. В связи с тем, что это прямая функция современного Python, быть двусторонним скотчем для кода написанного на производительных языках, даря возможность быстро и удобно собирать из уже готовых быстрых компонентов, как прототипы и скрипты, так и в некоторых случаях готовые программы, с малой степенью связности.

P.S. Я сам пайтон не особо люблю, и редко к нему прибегаю, но мне показалось очень несправедливым принижение заслуг этого языка, и почитав предыдущие ваши комментарии, и посчитав вас вполне адекватным человек, решил таки поправить неточность вашего суждения

P.P.S. Не знаю зачем я так "налебезел" тут ветиеватыми, длинными предложениями с ванильными любезностями, видно спать давно пора.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #421


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру