The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google опубликовал Closure Compiler, написанный на JavaScript

01.09.2016 10:37

Компания Google подготовила вариант инструмента Closure Compiler, оформленный на языке JavaScript и пригодный для использования с Node.js или запуска в web-браузере, без необходимости установки Java. Новый вариант получен в результате трансляции изначального кода на языке Javа. Исходные тексты открыты под лицензией Apache 2.0.

Closure Compiler представляет собой оптимизатор JavaScript, позволяющий сформировать компактный и высокопроизводительный JavaScript-код на основе имеющегося неоптимизированного JavaScript-кода web-приложения. Компилятор удаляет "мёртвый код", затем переписывает и оптимизирует оставшийся для более быстрой работы с учётом особенностей различных JavaScript-движков браузеров и упаковывает в компактное представление. Closure Compiler также можно использовать для оценки корректности JavaScript-кода, анализа типов и использования переменных, проверки синтаксиса, выявления типичных ошибок.

  1. Главная ссылка к новости (https://developers.googleblog....)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45056-closure
Ключевые слова: closure, javascript, optimization
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:44, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А оно может сканпелировать само себя?
     
     
  • 2.4, Аноним (-), 11:17, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вы можете сами себя? Хотя бы что-нибудь, но сами себя.
     
     
  • 3.10, Аноним (-), 12:03, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81

    держи статью на русском, английский у вас небось только в пятом классе будет

     
  • 3.30, Анонимко (?), 15:57, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то он может рекурсивно заниматься любовью. Ну это любой может. Уверен, все это делали)
     
  • 2.8, бедный буратино (ok), 11:57, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    - можно ли построить коммунизм в Швейцарии?
    - можно, но жалко
     

  • 1.2, Генри Форд (?), 11:04, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Из текста новости не понятно, что это за зверь такой. Написано что не надо ставить Java, так что я сначала подумал, что он конпеляет исходники на языке Closure в js - ан нет! На гитхубе гаписано что it compiles from JavaScript to better JavaScript.
     
     
  • 2.5, Аноним (-), 11:20, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это инновационный движок, основанный на темной материи. Сначала он преобразует JavaScript в вакуум, а затем из вакуума порождает новый JavaScript.
     
  • 2.11, омномномнимус (?), 12:05, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >языке Closure

    этих кложуров просто завались, но тут ты не угадал ;-)

     

  • 1.3, анонимус (??), 11:13, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    ага вместо нормального рантайма jre
    мы теперь тянем ноду и сотни тысяч модулей из npm

    пусть лучше перепишут на bash
    или Go хотябы

    а зоопарк node.js на продакте не нужен

     
     
  • 2.6, demimurych (ok), 11:23, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    ты на продакте не нужен.
    хотя тебя и так никто не берет с таким подходом к делу.
     
  • 2.7, h31 (ok), 11:35, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну дык, Java теперь не модно. Хипсторы вот даже JRE брезгуют поставить. Так что срочно переписываем на самый модненький и клевенький язычок.
     
  • 2.9, бедный буратино (ok), 11:59, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > ага вместо нормального рантайма jre
    > мы теперь тянем ноду и сотни тысяч модулей из npm
    > пусть лучше перепишут на bash
    > или Go хотябы
    > а зоопарк node.js на продакте не нужен

    e-bashь на баше,
    .......товарищ
    спасём весь мир
    .......от пожарищ

    // Маяковский. из неизданного

     
  • 2.16, derlafff (ok), 13:01, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В go лучше только тем, что количество модулей исчисляется не тысячами, а сотнями.
     
  • 2.17, Аноним (-), 13:18, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    зачем ты держишь зоопарк нодежсов?
     
  • 2.19, Аноним (-), 13:34, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Используй java версию, они разные, никто не заставляет переходить на closure-js.
    JS версию написали для тех, кто и так использует nodejs как бакенд и им не нужна jre от слова совсем.
     
     
  • 3.31, Аноним (-), 15:58, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кому ЭТО принципиально - JS решения запускает под JIT/рантаймом ихним а не в бинарь компилит, вот и вся разница.
    но в целом что бинарь что jit - масштабируются люто потенциально(хотя переписывать кода для оного - еще дофига осталось).
     
  • 2.45, сатья (?), 13:27, 03/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    самое весёлое - это постоянные переименования, несовместимости и неадекватная стандартная библиотека
     

  • 1.12, Анонище (?), 12:10, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > высокопроизводительный JavaScript-код на основе имеющегося неоптимизированного JavaScript-кода web-приложения.

    Ахинея какая-то. Зачем писать медленный код изначально?

     
     
  • 2.14, IB (?), 12:15, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    man asm.js
    и более свежие альтернативы (но размножение слоёв абстракции доставляет, да).
     
  • 2.15, КО (?), 12:16, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зато он читаемый. Эта штука выкинет пробелы, комментарии, переименует переменные в более короткие, развернет циклы и т.п. И в таком виде можно будет отправить браузеру.
     
     
  • 3.39, анон (?), 07:13, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    все кроме разворачивания циклов может сделать и какая-то uglify задача под грант/галп, а вот имеет ли смысл разворачивать циклы - вопрос. мое имхо - это экономия на спичках.
     
     
  • 4.41, Аноним (-), 12:16, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Uglify до сих пор не дружит с ES6. А closure не только полностью поддерживает, но и умеет конвертировать из ES6 в ES5 и обратно (babel становится не нужен).
     
  • 4.46, MPEG LA (ok), 13:56, 05/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    сабж еще может html, js и css вкупе соптимизировать (имена классов, id и прочее)
     

  • 1.13, IB (?), 12:14, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну я тоже не сторонник серверов га таких языках.
    Wordpress и постоянно лезущие уязвимости пример.

    Хочется странного - пишите под unikernel - Mirage OS например (OCaml).

     
  • 1.18, maxis11 (ok), 13:28, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ехал JS через JS. Видит JS, в JS JS. Сунул JS в JS JS. JS JS JS JS
     
     
  • 2.21, anonymous.js (?), 14:05, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Естественный отбор в действии. Неповоротливые и неэффективные языки отмирают, а языки, весьма пригодные для самого широкого спектра задач, наоборот, множатся. Их становится много и везде. И это здорово. (Вообще всё, что естественно -- здорово.)
     
     
  • 3.22, омномномнимус (?), 15:04, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >всё, что естественно -- здорово

    охлол

     
  • 3.23, Виталик (??), 15:22, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    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.

     
     
  • 4.24, Аноним (-), 15:32, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Занимательная статистика по твоему тексту:

    Количество символов: 1169
    Количество абзацев: 5
    Количество аргументов: 0

     
  • 4.37, Отражение луны (ok), 22:03, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Самое забавное, что в статье все сказано верно, только наоборот.
    Нода - действительно лучшее, что случалось с высокоуровневым кодингом, и именно из-за callbackов и крайне крутой масштабируемости. В тот же самый момент Питон - худшее, что вообще есть на рынке. Попросту бессмысленный iowait генератор, который не должен использоваться ни в одном реальном проекте.
     
  • 4.40, анон (?), 07:22, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > 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 то приходилось переписывать.

     
     
  • 5.43, Аноним (-), 17:59, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кофескрипт не актуален с появлением arrow functions в ES2015. Ну а само понятие каллбаков мало актуально с появлением async/await (разве что они еще нужны для EventEmitter-ов). Если уж писать на чем-то, что транслируется в JS - то на TypeScript.
     
     
  • 6.44, анон (?), 13:24, 03/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    кофискрипт актуален пока из js не выкинут все ненужные скобочки и точки с запятыми. ну а толстые стрелки - вообще не показатель.
     
  • 3.25, Аноним (-), 15:37, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Неповоротливые и неэффективные языки отмирают

    это руби с перлом чтоли?

     
     
  • 4.48, Аноним (-), 18:37, 06/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>Неповоротливые и неэффективные языки отмирают
    > это руби с перлом чтоли?

    Неэффективный Perl. Смешно.

     
  • 3.42, Аноним (-), 15:52, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а как ты определил, что этот процесс естественный? тебе в гугле или микрософте сказали?
     

  • 1.20, iLex (ok), 13:45, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно было бы сравнить производительность. Где он быстрее - на JRE или на Node.js?
     
     
  • 2.27, Аноним (-), 15:53, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На гитхабе есть обсуждение, пока чуть-чуть медленнее.
     
  • 2.28, Аноним (-), 15:54, 01/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    в node.js компилятор в бинарь есть. а в JRE -только рантайм байткода(JIT).
    угадайте - что быстрее. плюс message-passing и полная асинхронка а в жабу это - только начинают тянуть(а в Цэпэпэ в отличие от фортрана и ады - еще и думаю какими частями. пока что).
     
     
  • 3.47, MPEG LA (ok), 14:01, 05/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > в node.js компилятор в бинарь есть.

    jxcore мертв. еще варианты?

     

  • 1.29, mezoni (?), 15:55, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очень странно.
    Почему бы не так (могла бы звучать эта новость):

    Компания Google подготовила вариант инструмента Closure Compiler, оформленный на языке Dart и пригодный для использования с Dart VM или запуска в web-браузере, без необходимости установки Java.

    Похоже не удался эксперимент с Dart.
    Практически нет ему применения.

     
     
  • 2.38, Аноним (-), 04:50, 02/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Похоже не удался эксперимент с Dart.

    У тебя там дом сгорел, а ты говоришь что еще в процессе разработки.

     

  • 1.32, Аноним (-), 19:05, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С вебпаком собрал Hello World на 200 килобайт за 25 секунд. Так держать, Google, отличная оптимизация.
     
  • 1.33, Аноним (-), 19:16, 01/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Классно они открыли исходники. Файла компилятора нет в репозитории, а скачанный из npm jscomp.js - минифицирован и обсфуцирован.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру