Комментарий к говнокоду #28217 в ответ guest
-
guest
#
а давайте сравним
#include <iostream> #include <vector> class Fake { public: int id; }; int main() { std::vector<Fake*> fakes; for (auto i = 0; i < 100; i++) { fakes.push_back(new Fake{i}); //течка ну и похуй } for (auto v : fakes) { std::cout << v->id << std::endl; } }
vs
'use strict'; const fakes = []; for (let i = 0; i < 100; i++) { fakes.push({id: i}); } for (let fake of fakes) { console.log(fake.id); }
Неоптимизированный C++
Milliseconds : 7 Ticks : 78024 TotalDays : 9,03055555555556E-08 TotalHours : 2,16733333333333E-06 TotalMinutes : 0,00013004 TotalSeconds : 0,0078024 TotalMilliseconds : 7,8024
Релизный C++
Milliseconds : 4 Ticks : 48142 TotalDays : 5,57199074074074E-08 TotalHours : 1,33727777777778E-06 TotalMinutes : 8,02366666666667E-05 TotalSeconds : 0,0048142 TotalMilliseconds : 4,8142
16-я нода (джит-хуит, последняя стабильная хорошая версия)
Milliseconds : 35 Ticks : 351439 TotalDays : 4,06758101851852E-07 TotalHours : 9,76219444444444E-06 TotalMinutes : 0,000585731666666667 TotalSeconds : 0,0351439 TotalMilliseconds : 35,1439
Таким образом, наша программа на С++ быстрее в восемь раз.
Комментарий к говнокоду #28217 в ответ guest
Комментарий к говнокоду #28217 в ответ guest
Комментарий к говнокоду #28217 в ответ guest
-
guest
#
нормальная скорость есть у С++, у скриптоговна скорость не важна
Хотя в MRI уже есть JIT (а в питухоне ?)
https://k0kubun.medium.com/ruby-3-0-jit-and-beyond-4d9404ce33c
Комментарий к говнокоду #28217 в ответ guest
Комментарий к говнокоду #28217 в ответ Soul_re@ver
-
А ну ка, покажи пример Logic- или Constraint-программирования на js.
Комментарий к говнокоду #28217 в ответ guest
-
guest
#
>в прошлом веке
Я бы рекомендовал вам сходить на курсы чтения, вы явно пропускаете часть написанного.
Метод at() у Array появился в Chrome 92
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
Chrome 92 вышел в
2021-07-20 (iOS)
2021-07-20
(Linux, macOS, and Windows)
2021-07-20 (Android)
https://en.wikipedia.org/wiki/Google_Chrome_version_history
понимаете? Года еще не прошло.
Я не уверен, что без babel могу использовать этот метод
Комментарий к говнокоду #28217 в ответ guest
Комментарий к говнокоду #28217 в ответ guest
-
guest
#
Когда долго занимаешься программированием на языках высого уровня, начинаешь видеть распостранненые операции.
Получение последнего элемента массива или стека -- вполне себе такая распостраннная операция, и именно по этой причине большинство языков умеет её десятки лет.
Так умеет C++
https://cplusplus.com/reference/vector/vector/back/
Так умеет руби
https://apidock.com/ruby/Array/last
Так умеет питон через негативные индексы ([-1])
Так умеет котлин
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last.html
Так умеет Swift
https://developer.apple.com/documentation/swift/array/last
В JS такой функционал завезли совсем недавно, года еще не прошло, и потому вы о нем даже и не знаете (буткемп вот знает)
Я могу понять отсутствие такого фунционала в си (у низкоуровневых ЯП свои задачи) но JS/TS крайне высокоуровневый ЯП, и я жду от него множество сахар для _типивых_ задач