Bogdan
Сидредин
Bogdan
сейчас Ява уже не о чем, её нужно знать но большую часть мобилок делают на котлине или JS
Сидредин
Дискриминация по финансовому признаку
Bogdan
Сидредин
Kirill
Для айос только на свифте пишут?
Bogdan
нет
Сидредин
Никита
Bogdan
JS ещё, он кроссплатформенный
Bogdan
так как сейчас почти в любую затычку встроен веб браузер
Сидредин
Да
Ааа, там ещё мультиплатформы
Сидредин
Kirill
Спасибо за ответы (:
Bogdan
в основном SWIFT, JS, TS, Objective-C, может ещё что-то есть
Βαναντού
На swift же можно не только под ios писать? Вроде телеграм Х на свифте написан я где-то читал.
Сидредин
Bogdan
Никита
Никита
Как гугл решает, когда хоронить проект?
Сидредин
Хотя, на чистом Дарте не напишешь мобилки, наверное
Bogdan
https://github.com/TGX-Android, java + c++
Andrii
но можно будет попробовать, просто на основе тех команд что-то написать
Ну... например, пишем что-то не сильно заумное, и даже напоминающее ассемблер
void test(char * restrict buf)
{
begin:
while(*buf == ' ') ++buf;
char * word = buf;
while(*buf != ' ' && *buf != '\0') ++buf;
int len = buf - word;
if (len < 4) {
for (int i=0; i<len; ++i) {
*word++ = ' ';
}
}
if (*buf != '\0') goto begin;
}
Никита
Не случится ли так, что Google внезапно откажется от поддержки мультиплата и похоронит Flutter?
Bogdan
Andrii
Компилируем $ gcc -S -O0 -ggdb -g demo.c -o demo.asm
Bogdan
Bogdan
ибо Дарт не о чем как и фреймворк к нему
Bogdan
Никита
https://killedbygoogle.com/
Сидредин
Andrii
Чуть подредактировав полученный листинг, получаем
test:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -24(%rbp)
.L2:
jmp .L3
.L4:
addq $1, -24(%rbp)
.L3:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L4
movq -24(%rbp), %rax
movq %rax, -8(%rbp)
jmp .L5
.L7:
addq $1, -24(%rbp)
.L5:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L6
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
jne .L7
.L6:
movq -24(%rbp), %rax
subq -8(%rbp), %rax
movl %eax, -12(%rbp)
cmpl $3, -12(%rbp)
jg .L8
movl $0, -16(%rbp)
jmp .L9
.L10:
movq -8(%rbp), %rax
leaq 1(%rax), %rdx
movq %rdx, -8(%rbp)
movb $32, (%rax)
addl $1, -16(%rbp)
.L9:
movl -16(%rbp), %eax
cmpl -12(%rbp), %eax
jl .L10
.L8:
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
je .L12
jmp .L2
.L12:
popq %rbp
ret
Сидредин
Bogdan
Чуть подредактировав полученный листинг, получаем
test:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -24(%rbp)
.L2:
jmp .L3
.L4:
addq $1, -24(%rbp)
.L3:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L4
movq -24(%rbp), %rax
movq %rax, -8(%rbp)
jmp .L5
.L7:
addq $1, -24(%rbp)
.L5:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L6
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
jne .L7
.L6:
movq -24(%rbp), %rax
subq -8(%rbp), %rax
movl %eax, -12(%rbp)
cmpl $3, -12(%rbp)
jg .L8
movl $0, -16(%rbp)
jmp .L9
.L10:
movq -8(%rbp), %rax
leaq 1(%rax), %rdx
movq %rdx, -8(%rbp)
movb $32, (%rax)
addl $1, -16(%rbp)
.L9:
movl -16(%rbp), %eax
cmpl -12(%rbp), %eax
jl .L10
.L8:
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
je .L12
jmp .L2
.L12:
popq %rbp
ret
читер
Bogdan
можно тогда любой код который декомпилируется сразу в ассемблер таким образом через ту же иду вытащить
Andrii
Sasha Tsikhun
Чуть подредактировав полученный листинг, получаем
test:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -24(%rbp)
.L2:
jmp .L3
.L4:
addq $1, -24(%rbp)
.L3:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L4
movq -24(%rbp), %rax
movq %rax, -8(%rbp)
jmp .L5
.L7:
addq $1, -24(%rbp)
.L5:
movq -24(%rbp), %rax
movzbl (%rax), %eax
cmpb $32, %al
je .L6
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
jne .L7
.L6:
movq -24(%rbp), %rax
subq -8(%rbp), %rax
movl %eax, -12(%rbp)
cmpl $3, -12(%rbp)
jg .L8
movl $0, -16(%rbp)
jmp .L9
.L10:
movq -8(%rbp), %rax
leaq 1(%rax), %rdx
movq %rdx, -8(%rbp)
movb $32, (%rax)
addl $1, -16(%rbp)
.L9:
movl -16(%rbp), %eax
cmpl -12(%rbp), %eax
jl .L10
.L8:
movq -24(%rbp), %rax
movzbl (%rax), %eax
testb %al, %al
je .L12
jmp .L2
.L12:
popq %rbp
ret
это очень сильно и ооочень оперативно😍😁
Impact
Надеюсь Flutter будет жить и активно использоваться
Sasha Tsikhun
бооольшое спасибо - буду разбираться. Я в шоке, как Вы легко и быстро это сделали - мотивация для меня)
Bogdan
Дарт кстати по прежнему в антитопах
Bogdan
таких как худшие языки программирования
Bogdan
его ждет мне кажется та же участь что и кофискрипт в своё время
Bogdan
хотя если гугл когда-то решит заменить Андроид своей новой ОС то может тогда дарт и оживёт
Andrii
А если попросить оптимизировать,
gcc -S -O3 demo.c -o demo2.asm
то чуток короче
test:
jmp .L20
.L4:
addq $1, %rdi
.L20:
movzbl (%rdi), %eax
.L19:
cmpb $32, %al
je .L4
testb $-33, %al
je .L5
movq %rdi, %rdx
.L6:
movzbl 1(%rdx), %eax
addq $1, %rdx
testb $-33, %al
jne .L6
movq %rdx, %rcx
subq %rdi, %rcx
cmpl $3, %ecx
jle .L22
movq %rdx, %rdi
.L5:
testb %al, %al
jne .L19
ret
Impact
Bogdan
Impact
Вообще React Native популярнее будет чем Flutter?
Bogdan
так как вся фуксия написана на флаттере то может когда-то появится в этом потребность
Bogdan
Шаман Каган
Bogdan
Bogdan
тем что непонятная лапша в виде языка?
Impact
Уникальность
Сидредин
Шаман Каган
чем?
порог вхождения низкий
Сидредин
Bogdan
гугл в помощь
Сидредин
giorgio
Шаман Каган
популярность и реальная "хорошесть" это разные вещи
Bogdan
но так как фронт кому-то надо писать то тут непонятно даже что лучше js, ts, dart, у всех много недостатков
Сидредин
намного при чем
Только из-за популярности JS. А так, не слышал восторгов по поводу RN
giorgio
Сидредин
Bogdan
я вообще не оценил Реакт, не понимаю популярности его такой дикой
giorgio
Bogdan
Ладно поживем увидим
Bogdan
Golang тоже когда-то был никому не нужен, а потом резко бустанул
Bogdan
особенно после популярности микросервисной архитектуры
Сидредин