Компания Google подготовила (https://developers.googleblog.com/2016/08/closure-compiler-i...) вариант инструмента Closure Compiler (https://github.com/google/closure-compiler), оформленный на языке JavaScript и пригодный для использования с Node.js или запуска в web-браузере, без необходимости установки Java. Новый вариант получен в результате трансляции изначальной кода на языке Javа. Исходные тексты открыты (https://github.com/google/closure-compiler-js) под лицензией Apache 2.0.
Closure Compiler представляет собой оптимизатор JavaScript, позволяющий сформировать компактный и высокопроизводительный JavaScript-код для имеющихся web-приложений. Компилятор удаляет "мёртвый код", затем переписывает и оптимизирует оставшийся для более быстрой работы с учётом особенностей различных JavaScript-движков браузеров и упаковывает в компактное представление. Closure Compiler также можно использовать для оценки корректности JavaScript кода, анализа типов и использования переменных, проверки синтаксиса, выявления типичных ошибок.
URL: https://developers.googleblog.com/2016/08/closure-compiler-i...
Новость: http://www.opennet.me/opennews/art.shtml?num=45056
А оно может сканпелировать само себя?
А вы можете сами себя? Хотя бы что-нибудь, но сами себя.
https://ru.wikipedia.org/wiki/%D0%A0%D0%...держи статью на русском, английский у вас небось только в пятом классе будет
Вообще-то он может рекурсивно заниматься любовью. Ну это любой может. Уверен, все это делали)
- можно ли построить коммунизм в Швейцарии?
- можно, но жалко
Из текста новости не понятно, что это за зверь такой. Написано что не надо ставить Java, так что я сначала подумал, что он конпеляет исходники на языке Closure в js - ан нет! На гитхубе гаписано что it compiles from JavaScript to better JavaScript.
Это инновационный движок, основанный на темной материи. Сначала он преобразует JavaScript в вакуум, а затем из вакуума порождает новый JavaScript.
>языке Closureэтих кложуров просто завались, но тут ты не угадал ;-)
ага вместо нормального рантайма jre
мы теперь тянем ноду и сотни тысяч модулей из npmпусть лучше перепишут на bash
или Go хотябыа зоопарк node.js на продакте не нужен
ты на продакте не нужен.
хотя тебя и так никто не берет с таким подходом к делу.
Ну дык, Java теперь не модно. Хипсторы вот даже JRE брезгуют поставить. Так что срочно переписываем на самый модненький и клевенький язычок.
> ага вместо нормального рантайма jre
> мы теперь тянем ноду и сотни тысяч модулей из npm
> пусть лучше перепишут на bash
> или Go хотябы
> а зоопарк node.js на продакте не нуженe-bashь на баше,
.......товарищ
спасём весь мир
.......от пожарищ// Маяковский. из неизданного
В go лучше только тем, что количество модулей исчисляется не тысячами, а сотнями.
зачем ты держишь зоопарк нодежсов?
Используй java версию, они разные, никто не заставляет переходить на closure-js.
JS версию написали для тех, кто и так использует nodejs как бакенд и им не нужна jre от слова совсем.
кому ЭТО принципиально - JS решения запускает под JIT/рантаймом ихним а не в бинарь компилит, вот и вся разница.
но в целом что бинарь что jit - масштабируются люто потенциально(хотя переписывать кода для оного - еще дофига осталось).
самое весёлое - это постоянные переименования, несовместимости и неадекватная стандартная библиотека
> высокопроизводительный JavaScript-код на основе имеющегося неоптимизированного JavaScript-кода web-приложения.Ахинея какая-то. Зачем писать медленный код изначально?
man asm.js
и более свежие альтернативы (но размножение слоёв абстракции доставляет, да).
Зато он читаемый. Эта штука выкинет пробелы, комментарии, переименует переменные в более короткие, развернет циклы и т.п. И в таком виде можно будет отправить браузеру.
все кроме разворачивания циклов может сделать и какая-то uglify задача под грант/галп, а вот имеет ли смысл разворачивать циклы - вопрос. мое имхо - это экономия на спичках.
Uglify до сих пор не дружит с ES6. А closure не только полностью поддерживает, но и умеет конвертировать из ES6 в ES5 и обратно (babel становится не нужен).
сабж еще может html, js и css вкупе соптимизировать (имена классов, id и прочее)
Ну я тоже не сторонник серверов га таких языках.
Wordpress и постоянно лезущие уязвимости пример.Хочется странного - пишите под unikernel - Mirage OS например (OCaml).
Ехал JS через JS. Видит JS, в JS JS. Сунул JS в JS JS. JS JS JS JS
Естественный отбор в действии. Неповоротливые и неэффективные языки отмирают, а языки, весьма пригодные для самого широкого спектра задач, наоборот, множатся. Их становится много и везде. И это здорово. (Вообще всё, что естественно -- здорово.)
>всё, что естественно -- здоровоохлол
Node.js is one of the worst things to happen to the software industry in recent times, a whole generation of programmers are being taught the worst of all ways of doing concurrency, in a system that doesn’t scale either in performance or project size and with one of the languages most plagued by pitfalls ever created.JavaScript was already painful enough in the browser, why on earth anyone ever thought it was a good idea to use it on the server boggles the mind.
We will be paying the price of this misguided hyped fad for decades to come.
Of all the ways of doing concurrency, callbacks are by far the worst, Twisted was plagued by them and is the main reason why it failed, and that was with a much more sane and reasonable language like Python (stackless Python was a much better alternative and used a model similar to Go’s CSP).
And the sad thing is that there are much better alternatives around with much more sound models and environments, Erlang and Go are the two obvious examples, and that is for the highly specialized situations where you have great concurrency needs, for any other problem anything else will be much better than Node.js, even PHP.
Занимательная статистика по твоему тексту:Количество символов: 1169
Количество абзацев: 5
Количество аргументов: 0
Самое забавное, что в статье все сказано верно, только наоборот.
Нода - действительно лучшее, что случалось с высокоуровневым кодингом, и именно из-за callbackов и крайне крутой масштабируемости. В тот же самый момент Питон - худшее, что вообще есть на рынке. Попросту бессмысленный iowait генератор, который не должен использоваться ни в одном реальном проекте.
>[оверквотинг удален]
> Of all the ways of doing concurrency, callbacks are by far the
> worst, Twisted was plagued by them and is the main reason
> why it failed, and that was with a much more sane
> and reasonable language like Python (stackless Python was a much better
> alternative and used a model similar to Go’s CSP).
> And the sad thing is that there are much better alternatives around
> with much more sound models and environments, Erlang and Go are
> the two obvious examples, and that is for the highly specialized
> situations where you have great concurrency needs, for any other problem
> anything else will be much better than Node.js, even PHP.самое забавное, что под нод вас никто не заставляет писать на js. невероятная новость?? нет. вы можете использовать кофискрипт или тайпскрипт излеченные от болячек js.
> and that was with a much more sane and reasonable language like Python
как питонист поржал. кофискрипт - аналог питона для js. только с нормальными callback-ами, switch-ами и асинхронными фукнциями. но даже если вы не хотите асинхронщины, то есть iced coffeescript.
истерией какой-то пост попахивает.
пишу на кофискрипте и серверную часть и клиентскую. одно удовольствие, код можно легко перекидывать, если надо, меж 2 частями. а когда была связка python+coffeescript/js то приходилось переписывать.
Кофескрипт не актуален с появлением arrow functions в ES2015. Ну а само понятие каллбаков мало актуально с появлением async/await (разве что они еще нужны для EventEmitter-ов). Если уж писать на чем-то, что транслируется в JS - то на TypeScript.
кофискрипт актуален пока из js не выкинут все ненужные скобочки и точки с запятыми. ну а толстые стрелки - вообще не показатель.
>Неповоротливые и неэффективные языки отмираютэто руби с перлом чтоли?
>>Неповоротливые и неэффективные языки отмирают
> это руби с перлом чтоли?Неэффективный Perl. Смешно.
а как ты определил, что этот процесс естественный? тебе в гугле или микрософте сказали?
Интересно было бы сравнить производительность. Где он быстрее - на JRE или на Node.js?
На гитхабе есть обсуждение, пока чуть-чуть медленнее.
в node.js компилятор в бинарь есть. а в JRE -только рантайм байткода(JIT).
угадайте - что быстрее. плюс message-passing и полная асинхронка а в жабу это - только начинают тянуть(а в Цэпэпэ в отличие от фортрана и ады - еще и думаю какими частями. пока что).
> в node.js компилятор в бинарь есть.jxcore мертв. еще варианты?
Очень странно.
Почему бы не так (могла бы звучать эта новость):Компания Google подготовила вариант инструмента Closure Compiler, оформленный на языке Dart и пригодный для использования с Dart VM или запуска в web-браузере, без необходимости установки Java.
Похоже не удался эксперимент с Dart.
Практически нет ему применения.
> Похоже не удался эксперимент с Dart.У тебя там дом сгорел, а ты говоришь что еще в процессе разработки.
С вебпаком собрал Hello World на 200 килобайт за 25 секунд. Так держать, Google, отличная оптимизация.
Классно они открыли исходники. Файла компилятора нет в репозитории, а скачанный из npm jscomp.js - минифицирован и обсфуцирован.