- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
function main() {
let user = {
firstName: "John",
sayHi() {
print(`Hello, ${this.firstName}!`);
},
};
user.sayHi();
print("done.");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
function main() {
let user = {
firstName: "John",
sayHi() {
print(`Hello, ${this.firstName}!`);
},
};
user.sayHi();
print("done.");
}
как тебе такое Илон Маск?
ASD_77 06.08.2021 14:31 # 0
ASD_77 06.08.2021 14:32 # 0
3EHuTHblu_nemyx 06.08.2021 15:25 # 0
DypHuu_niBEHb 06.08.2021 15:28 # +1
3EHuTHblu_nemyx 06.08.2021 15:43 # 0
ASD_77 06.08.2021 16:21 # +1
DypHuu_niBEHb 06.08.2021 16:47 # +1
В C++/Java/C#/Kotlin нужно фигачить интерфейсы и адаптеры, а в JS/TS не нужно.
ASD_77 06.08.2021 17:32 # 0
j123123 07.08.2021 07:08 # 0
А если язык поддерживает гомоиконность, ты сам себе можешь сделать поддержку структурной типизации, и не только структурной, а еще и хуй знает какой типизации с произвольными правилами сопоставления и автоматического преобразования типов.
Fike 06.08.2021 18:22 # +1
guest6 06.08.2021 18:31 # 0
1024-- 06.08.2021 18:41 # 0
Язык с широкими возможностями.
> апотом начнем затачивать под него компилятор
И это хорошо. Это тот подход универсальности, который планировали завезти в SQL, но до конца не осилили.
Лучше затачивать компилятор под язык, чем программистов под язык как это делают в C++.
Это будущее программирования. Мы должны прийти к чему-то вроде "Алекса, автоматизируй мне бизнес", а не пердолиться с
1. формулированием требований в ТЗ и переводом намерений на канцелярский язык
2. разработкой архитектуры и переводом канцелярского языка на язык абстракций
3. нафигачиванием этого в файлы с кодом и переводом с языка абстракций на язык программирования
4. отладкой особенностей перевода с языка программирования на машинный язык.
guest6 06.08.2021 18:43 # 0
у PHP возможности шире
>Лучше затачивать компилятор под язык, чем программистов
Предлагаю писать на бейсике
1024-- 06.08.2021 18:51 # +1
> Предлагаю писать на бейсике
Я уже изучил JS. И то не весь, т.к. он постоянно обновляется.
Зачем другие языки, когда есть божественный JS?
Fike 06.08.2021 19:32 # +2
Какой волшебный эвфемизм
Примерно как «сотрудник с большим нереализованным потенциалом»
DypHuu_niBEHb 06.08.2021 20:36 # 0
Вдруг PHP и правда такой?
Fike 06.08.2021 21:23 # +1
Desktop 06.08.2021 19:57 # 0
– ой дурак
Hacpy 06.08.2021 20:52 # 0
ASD_77 06.08.2021 18:17 # 0
DypHuu_niBEHb 06.08.2021 18:19 # 0
1024-- 06.08.2021 18:31 # 0
P.S. Видео на тему вентилятора из линолеума: https://youtu.be/CUq82yscPdA
ASD_77 06.08.2021 18:36 # 0
Fike 06.08.2021 18:36 # 0
надо бы на канал креосана заглянуть
1024-- 06.08.2021 18:47 # 0
Креосан ещё не сгнил, но близится к тому. Разбавил питушню экспериментов походами (в т.ч. в чернобыльскую зону), чтобы пришла смотреть куча школьников. Начал сотрудничать с разными поехавшими братишками, которые творят всякий бред на камеру. Всякие постановочные охи-вздохи и концовки промежуточных роликов "и вот тут раздался страшный звук, братишка упал и затих; что же случилось? смотри в следующей серии".
Fike 06.08.2021 18:58 # +1
Там с самого начала было понятно что очень быстро съедет в говноблогерство
Вот держи другое технарско-багровое залипалово, там вроде специальный термин был для поиска таких инцидентов, но я забыл
https://www.youtube.com/watch?v=h7XtOlQB6oY
Fike 06.08.2021 19:41 # +1
https://youtu.be/YgxQeCcm2dg
Какая восьмёрка )))
MAKAKA 07.08.2021 02:00 # 0
джек восьмёркин американец
guest6 06.08.2021 18:39 # 0
Hacpy 06.08.2021 20:06 # 0
guest6 06.08.2021 20:25 # 0
А это ещё что означает?
Hacpy 06.08.2021 20:37 # +1
j123123 06.08.2021 18:44 # −1
ASD_77 06.08.2021 20:02 # 0
DypHuu_niBEHb 06.08.2021 20:39 # 0
ASD_77 06.08.2021 20:43 # 0
guest6 06.08.2021 20:48 # 0
Приведи конкретный пример свободы, которая есть в JS, но которой нету в С++
Fike 06.08.2021 21:20 # +2
ASD_77 06.08.2021 21:37 # 0
guest6 06.08.2021 21:47 # +1
Ну да, совсем другое дело же
Это свобода?
1024-- 06.08.2021 21:52 # 0
ASD_77 06.08.2021 23:58 # 0
MAKAKA 07.08.2021 01:27 # 0
ASD_77 07.08.2021 01:44 # +1
guest6 07.08.2021 01:47 # +1
в JS в сорок раз медленее
покажи свой результат для компиляции
ASD_77 07.08.2021 02:10 # 0
PS C:\temp\MLIR_to_exe> Measure-Command { .\out.exe }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 41
Ticks : 415781
TotalDays : 4.81228009259259E-07
TotalHours : 1.15494722222222E-05
TotalMinutes : 0.000692968333333333
TotalSeconds : 0.0415781
TotalMilliseconds : 41.5781
PS C:\temp\MLIR_to_exe> Measure-Command { .\a.exe }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 63
Ticks : 633683
TotalDays : 7.33429398148148E-07
TotalHours : 1.76023055555556E-05
TotalMinutes : 0.00105613833333333
TotalSeconds : 0.0633683
TotalMilliseconds : 63.3683
guest6 07.08.2021 02:20 # 0
а у тебя она дает в 630 больше времени
Что у тебя за компилятор, что за процессор, и как ты собирал?
ASD_77 07.08.2021 02:57 # +1
3.14159265 11.08.2021 16:38 # +2
> -O0
MAKAKA 11.08.2021 16:47 # 0
Но я всё равно не понимаю почему у него такие результаты, когда у меня на процессоре 2012-го года они намного более быстрые.
Я собирал "release" на винде конечно, там наверное оптимизации включены
ASD_77 07.08.2021 03:08 # 0
S C:\temp\MLIR_to_exe> Measure-Command { .\out.exe }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 5
Ticks : 58725
TotalDays : 6.796875E-08
TotalHours : 1.63125E-06
TotalMinutes : 9.7875E-05
TotalSeconds : 0.0058725
TotalMilliseconds : 5.8725
PS C:\temp\MLIR_to_exe> Measure-Command { .\a.exe }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 6
Ticks : 65492
TotalDays : 7.58009259259259E-08
TotalHours : 1.81922222222222E-06
TotalMinutes : 0.000109153333333333
TotalSeconds : 0.0065492
TotalMilliseconds : 6.5492
1024-- 11.08.2021 18:39 # 0
bootcamp_dropout 06.08.2021 23:51 # 0
guest6 07.08.2021 01:28 # +1
Fike 06.08.2021 21:20 # 0
guest6 06.08.2021 21:23 # 0
1024-- 06.08.2021 21:28 # +2
Fike 06.08.2021 21:29 # +2
DypHuu_niBEHb 06.08.2021 21:48 # 0
j123123 06.08.2021 21:54 # +2
ASD_77 07.08.2021 00:00 # 0
guest6 07.08.2021 01:28 # 0
3.14159265 11.08.2021 16:42 # 0
Да. Надо много? mmap/mremap.
Move за O(1) в отличие от заедушной мрази.
А new можно вообще как угодно определить, хоть slab, хоть пул. Это абасракция.
j123123 06.08.2021 21:53 # 0
А malloc() и free() есть? А будут ли? А что насчет указателей и адресной арифметики?
ASD_77 07.08.2021 00:01 # 0
guest6 07.08.2021 01:28 # 0
ASD_77 07.08.2021 02:27 # 0
type int = 1; // сделать тип int
const arr = new int[10]; // выделить 10 int через маллок
delete arr; // удалить через free
j123123 07.08.2021 05:35 # 0
А что насчет realloc() ?
JloJle4Ka 07.08.2021 05:38 # 0
j123123 07.08.2021 05:42 # +2
Desktop 07.08.2021 06:43 # 0
3.14159265 11.08.2021 16:45 # 0
MAKAKA 11.08.2021 16:48 # 0
3.14159265 11.08.2021 16:50 # 0
А Цари пишут напрямую, чтобы 100%.
>malloc использует только для мелочи
А для мелочи есть стек и заранее преаллоцированая память вроде slab.
Смысла в malloc не остаётся.
MAKAKA 11.08.2021 17:03 # 0
Если я два раза маллокну по одному байту, он поди страничку сразу выделит, и второй раз уже не полезет
> Цари
Ну вообще сишкин API это не по царски: нужно дергать API операционки напрямую, да.
3.14159265 11.08.2021 17:12 # 0
Нет. Смысл пула компактная, сверхбыстрая аллокация однотипных объектов.
MAKAKA 11.08.2021 17:16 # 0
Ну в общем malloc sbrkнет явно не на один байт, хотя надо проверить
MAKAKA 11.08.2021 17:21 # 0
сначала быркало по страничке, потом попоболе
как я и думал
3.14159265 11.08.2021 17:27 # 0
Потом начинается фрагментация кучи, советы вазьмити другой аллокатор типа jemalloc.
Причём колупание в этом дерьме ложится именно на пользователя.
Потому либо аллоцировать на стеке, либо выделять постранично (mmap).
MAKAKA 11.08.2021 17:29 # 0
Если я выделю сразу много, то вместо sbrk будет mmap
3.14159265 11.08.2021 17:36 # 0
Обычно надо или много сразу под какой-то буфер, тогда mmap.
Часто буфер этот буфер под io, тогда профит двойной, т.к. файлы мапятся прямо на память. Или много однотипных объектиков. Тогда slab.
Цари пишут для каждой аллокации оптимально, а не полагаются на эвристики аллокатора.
А лалки везде юзают malloc, а потом ставят -O0 и кричат: «дак я же как Сишка», «йажа сливает кресты в хламину», итд. Причём аллокаторов десятки, один оптимизирован так, другой эдак.
MAKAKA 11.08.2021 17:48 # +1
1024-- 11.08.2021 18:42 # 0
MAKAKA 11.08.2021 18:45 # 0
1024-- 11.08.2021 19:01 # +1
Для старых элементов - конструктор перемещения.
Для бывших элементов - деструктор (как в delete[]).
j123123 07.08.2021 05:41 # 0
> const arr = new int[10]; // выделить 10 int через маллок
Я не понимаю, зачем тут какие-то "типы". Например, в Си я могу сделать обертку над malloc которой передают количество байт, и она возвращает void указатель, по которому такое-то количество байт доступно
И потом уже где-то там это используется под int или под float или еще под какую-то хуйню
Desktop 07.08.2021 06:45 # +1
j123123 07.08.2021 06:47 # 0
Desktop 07.08.2021 06:49 # +1
JloJle4Ka 07.08.2021 06:48 # 0
Fike 07.08.2021 06:51 # +2
Desktop 07.08.2021 06:52 # +1
Какая параша сегодня ты?
JloJle4Ka 07.08.2021 07:06 # 0
MAKAKA 11.08.2021 17:25 # +2
Рэнди развивает интерес к соседскому сараю, пукает и продолжает тем, что наносит вербальные оскорбления соседу (а также пролетавшему мимо вертолёту). Затем сосед признаёт, что он — «однорукий уткоёб» («one-armed duck-fucker»).
j123123 11.08.2021 17:26 # 0
Винтаж: Утка медицинская ранние советы новая
ASD_77 07.08.2021 02:28 # 0
ASD_77 07.08.2021 02:38 # 0
ASD_77 07.08.2021 02:41 # 0
тут одна проблема если не указать <int[10]> а только <int[]> тогда каст пойдет на runtime array в котором первое слово это размер
j123123 07.08.2021 05:50 # 0
А что насчет strict aliasing? Там вообще понятие POD есть в этом тупесрипте?
JloJle4Ka 07.08.2021 05:56 # 0
j123123 07.08.2021 06:05 # 0
JloJle4Ka 07.08.2021 06:15 # 0
j123123 07.08.2021 06:16 # 0
JloJle4Ka 07.08.2021 06:27 # 0
ASD_77 07.08.2021 12:53 # 0
bootcamp_dropout 06.08.2021 23:55 # 0
сконпеляется?
ASD_77 07.08.2021 00:02 # 0
ASD_77 07.08.2021 00:04 # 0
ASD_77 07.08.2021 01:48 # 0
guest6 07.08.2021 01:54 # +3