Pull to refresh
1
0
Send message
Насколько я помню, статически линковать не обязательно, а пересобрать — да. Смотрите на это как на веб-аналог андроидского NDK — т.е. нативный код, ориентированный прежде всего на оптимизацию быстродействия. Хотя, вероятно, позже появятся и поддерживающие его библиотеки.
Прочтите родные доки — там очень простой и остроумный верификатор. А PNaCl — интересен, конечно, но возникают вопросы: 1) скорость компиляции; 2) LLVM-байт-код, насколько я помню, не кроссплатформеный
К примеру, для шифрования скорость непотребная совершенно. Хочешь видео — приходится использовать кодеки, понимаемые плеером. И так далее, и тому подобное. Нет уж, NaCl интереснее, да ещё и не привязан к конкретному языку программирования.
Писать там можно на чём угодно. К примеру — вполне реально прикрутить Cython.
Гугл активно занимается реализацией NaCl на база llvm — там вроде как с кроссплатформенностью нормально. Впрочем, и сейчас можно скомпилировать несколько бинарников (x86, amd64, arm) — от операционной системы код не зависит, только от архитектуры процессора.
Там нечего хитрого. Предоставляется доступ к ограниченному API (как для JS, грубо говоря) для обычного кода, созданного слегка модифицированным кодогенератором, который использует ограниченный набор инструкцийи выравнивает jmp по границе в 16, кажется, байт — чтобы сделать невозможными фокуусы вроде «джамп на адрес». Соответственно, клиент проверяет корректность набора опкодов и выравнивания — и всё.
Наоборот — там не про «стать гуру», а про «попробовать и понять основные моменты». Ну и за всё не поручусь — но книгу автор таки написал :-)
Оно приносит пользу именно в области специализации. По многим причинам — начиная с освоения различных стратегий мышления и заканчивая возможностью увиденное использовать в своей сфере.
Согласен, формально говоря — да, не подход. Но, с другой стороны — отличия от высокоуровнеывх языков всё же разительны и, думаю, выделение в отдельную категорию ассемблер заслужил.
Ассемблер — сейчас уже это особый мир. После него может сильно поменяться отношение к программированию, когда видишь, что софтинка, деляющая что-то осмысленное, занимает единицы килобайт и при этом «летает».
Плюс к тому — начинаешь очень хорошо осознавать, во что в итоге превращается код. В результате получается эдакая фоновая оценка — насколько эффективна та или иная фича, как она может быть реализована. Хотя это не после одной программы, конечно.

As for me — через низкоуровневое программирование должен пройти каждый приличный программист. Очень помогает от code bloat и нагромождени абстракций.
Чего там не хватает — так это полноценного API для работы с телефонным трактом — а то Андроид не умеет даже DTMF программно в течение разговора отправлять, а только то, что задавалось при наборе номера. Ещё — доступ к звуковому тракту полноценный или умение расопзнавать DTMF. А также — нормальную сигнализацию бы (в частности, Answer удалённой стороны), возможность без хаков управлять звонком (и соответственно — свой Call Screen сделать, к примеру). А то сейчас продвинутое голосовое приложение на него сделать — целое приключение, если вообще получается.
Курить в сторону asterisk, chan_datacard и модемов huawei (1550 обычно используют). Оно вполне рабочее, есть уже много опыта с таким набором, и в сети информации хватает.

Information

Rating
Does not participate
Registered
Activity