The OpenNET Project / Index page

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

17.05.2018 11:29  isomorphic-git, реализация Git на JavaScript

Опубликован выпуск проекта isomorphic-git 0.13.0, в рамках которого развивается реализация Git на языке JavaScript, нацеленная на предоставление 100% переносимости с классическим Git и способная выполняться в web-браузере или в качестве модуля для платформы Node.js. Код проекта поставляется под лицензией MIT.

Проект изначально написан на чистом JavaScript (без компиляции в JavaScript при помощи Emscripten) и базируется на применении WebWorkers и ServiceWorkers. Isomorphic-git позволяет читать и записывать данные в локальные Git-репозитории, выполнять операции push и fetch с удалёнными репозиториями, например, с GitHub. Для работы с Git-репозиториями предлагается утилита isogit, поддерживающая большую часть команд git. Для встраивания отдельных возможностей Git в web-приложения предоставляется модульный API, позволяющий включать только необходимую функциональность. Как и в канонической реализации Git, в isomorphic-git все операции выполняются путём изменения файлов в каталоге ".git".

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: В рамках проекта Gitlet развивается упрощённая реализация Git на JavaScript
  3. OpenNews: git.js - реализация Git, написанная целиком на JavaScript
  4. OpenNews: Компилятор Emscripten достиг возможности собственной пересборки
  5. OpenNews: GitHub выпустил Git LFS 2.4.0
  6. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.17
Лицензия: CC-BY
Тип: Программы
Ключевые слова: git, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, Аноним, 11:34, 17/05/2018 [ответить] [смотреть все]    [к модератору]
  • +21 +/
    Но зачем?
     
     
  • 2.3, Аноним, 11:45, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +11 +/
    Чтобы набраться опыта, изучив тонкости JS. Всяко интереснее чем очередной калькулятор по учебнику.
     
     
  • 3.32, anonymous, 20:59, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]
  • +/
    Неужели JS на столько сложен, что его тонкости можно только так изучить? А то тут фанбои совсем другое вещают...
     
     
  • 4.42, Аноним, 22:30, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]
  • –1 +/
    https youtu be RGkIsUBfanQ t 1m20s Ну и дальше смотрите why javascript is suc... весь текст скрыт [показать]
     
  • 4.56, Аноним, 12:11, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Сложен. Но входной порог при этом низкий.
     
  • 4.58, macfaq, 12:29, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Неужели JS на столько сложен, что его тонкости можно только так изучить?

    Наверное достаточно наличия книжки с названием "Javascript: The Good Parts" чтобы что-то заподозрить (:

     
  • 2.4, Аноним, 11:46, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Чтобы называться так же, но быть несовместимым, очевидно же.
     
  • 2.14, Bitten Apple, 13:09, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Для online IDE, например
     
     
  • 3.40, Вареник, 21:31, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Для online IDE, например

    Непременно в телефоне, а лучше в "умных часах" :)

     
     
  • 4.55, Диносуслик, 11:45, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Если брать тот же с9, то там нормальный гит, т.к. ОС запускается в контейнерах, гит нормальный и все как полагается.

    Зачем именно в JS - не ясно.

     
     
  • 5.65, Аноним, 16:29, 19/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Скоро электрон перекочует в прошивку и JS сразу станет системным языгом, а старп... весь текст скрыт [показать]
     
  • 2.28, Аноним, 18:41, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –4 +/
    Затем, что под нормальной свободной лицензией, а не под вирусно-несвободным GPL ... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Аноним, 11:37, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +13 +/
    Фронтендеры, успокойтесь уже.
     
     
  • 2.7, callbackjump, 12:16, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –21 +/
    Почему Почему все думают, что JS медленнее нерушимого Си Оптимизация движка JS... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.9, Аноним, 12:29, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +6 +/
    Потому что тесты производительности не обманешь как и тесты на потребление памяти. Потому что си и с++ при правильной организации разработки и наличии статического анализа безопасней js-a. Потому что для С-подобных языков не нужен рантайм.
     
     
  • 4.11, Владимир, 12:45, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    С-подобный это про синтаксис, javaScript как раз к ним и относится, так что вы т... весь текст скрыт [показать]
     
     
  • 5.13, Анониммм, 13:02, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Есть Си-подобный синтаксис, да Но в данном человек имел ввиду отсутствие вспомо... весь текст скрыт [показать]
     
  • 4.27, й, 18:25, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    ага, а libstdc фикция и не существует строго говоря, это такой же рантайм, т ... весь текст скрыт [показать]
     
     
  • 5.29, Anonymus, 19:05, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Статически линкуй
     
     
  • 6.38, Вареник, 21:30, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > Статически линкуй

    Рантайм - это все что обслуживает выполнение программы, чтобы main() вывело Hello World, но не включая ядро.

    Например: libc - рантайм С. Без разницы, статически или динамически прилинковать - это все равно будет рантайм для С программы.

     
     
  • 7.43, draw1, 22:45, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Ага Но только во время ВЫПОЛНЕНИЯ, а не во время компиляции по секрету поэтом... весь текст скрыт [показать]
     
     
  • 8.46, Аноним, 01:42, 18/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    При чём тут статическая линковка вообще Просто рантайм будет идти вместе с прог... весь текст скрыт [показать]
     
  • 8.49, angra, 03:08, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Когда ты слинковал статически либу, ты фактически сделал ее копию внутрь бинарника и эта копия используется при выполнении программы. И не играет роли, что ты там сделал с оригиналом. С тем же успехом ты можешь сделать копию интерпретатора js, удалить оригинал и запустить js в копии, после чего заявить, что у js тоже нет рантайма, ведь ты удалил оригинал.
     
  • 7.50, Аноним, 05:05, 18/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    а если bare-metal запускаешь вывод Hello World в UART - что будешь считать ранта... весь текст скрыт [показать]
     
  • 5.37, Crazy Alex, 21:29, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Ерунду говоришь. Без этой либы на плюсах приложение мобрать можно (она и сама на плюсах, собственно). А на джаваскрипте без рантайма жить нельзя. Потому как динамика проклятая.
     
     
  • 6.45, й, 00:24, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    давай зайдём с другой стороны. есть golang. у него статические линкуемые бинарики со стандартными и не очень библиотеками на выходе. так вот, вопрос: это всё прилинкованное в файл (там зелёные треды, каналы и прочее) -- это, что, не рантайм? рантайм. так вот, у c++ есть такой же. прилинкованный stdlib -- это вполне себе рантайм, т.е. 3rd party code, который выполняется во время исполнения программы. реальные приложения в c++ используют stdlib и ты отлично это знаешь.
     
     
  • 7.51, Anonim, 07:38, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    stdlib это стандартная библиотека функций. после компиляции линкуется не она целиком а только те кусочки которые ты явно вызываешь. + ты можешь использовать любой другой набор функций или написать свой или не использовать вообще ничего.
     
  • 6.47, angra, 02:54, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Собрать то конечно можно, вот только окажется, что значительная часть функционала плюсов у тебя отсутствует и практически любую программу, включая helloworld, надо переписывать.
     
  • 3.12, Аноним, 13:00, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Интерпретатор JS, написанный на C, станет быстрее С Дак пусть сразу быстрее асм... весь текст скрыт [показать]
     
     
  • 4.17, Аноним, 13:48, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    А написанным на самом JS ещё быстрее!
     
  • 4.22, Аноним, 15:21, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Внезапно а почему бы и нет См пример с PyPy Порой чувствуешь себя умнее сишн... весь текст скрыт [показать]
     
     
  • 5.31, нурок, 19:18, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    > Внезапно: а почему бы и нет? См. пример с PyPy.
    > Порой чувствуешь себя умнее сишников, объясняя им такие банальные вещи.

    просто трудновато принять что компилятор нынче способен делать больше оптимизаций, делать их лучше и быстрее прямо во время исполнения программы.. по какой-то причине это контрпродуктивно..

     
  • 5.33, anonymous, 21:03, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > Внезапно: а почему бы и нет? См. пример с PyPy.
    > Порой чувствуешь себя умнее сишников, объясняя им такие банальные вещи.

    Текущие версии PyPy транслируются из RPython в Си и компилируются (c) википедия

     
     
  • 6.44, Аноним, 23:36, 17/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ну и Что мешает проделывать аналогичное с кодом на JS на лету Собственно, это ... весь текст скрыт [показать]
     
     
  • 7.60, Доктор, 15:19, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ключевое слово "emscripten"

    Но все равно работает существенно медленнее. Проверено и не раз, так как вот уже третий год разрабатываю и использую.

     
     
  • 8.62, Аноним, 15:42, 18/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Это совсем другое направление компиляции, плюс тормозить может из-за того что дв... весь текст скрыт [показать]
     
  • 3.30, нурок, 19:14, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ну вот не любят люди лишних прослоек.. ощущения не те..
     
  • 3.41, Вареник, 21:34, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > стремительно завоёвывая умы думающих программистов.

    Это типа определять творческость креаклов по принципу заднепроходности.

    А "думание программиста" - по переписыванию чужого готового на языке-изврате.

     
     
  • 4.53, Аноним, 10:16, 18/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Просто оголтелая бестолочь с жс головного мозга, кроме как на вопли о крутизне с... весь текст скрыт [показать]
     
  • 3.52, qrKot, 10:10, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Потому что есть такая штука: формальная (она же "математическая") логика...
    Учитывая то, что сам JS вполне себе написан на C, т.е., формально является примером валидного C кода, очевидно, что C гарантированно может быть НЕ медленнее JS в 100% случаев.
    При этом в обратную сторону гарантии не работают, т.к. JS- это, собственно, API к C, т.е. некоторое подмножество возможных реализаций. Т.е. JS гарантированно НЕ сможет быть производительней C во всех случаях.
     
     
  • 4.61, Аноним, 15:36, 18/05/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Есть, есть Но каким она боком к вашим умозаключениям - непонятно Во-первых, ре... весь текст скрыт [показать]
     
  • 3.54, rshadow, 11:31, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    И кто только ведется на такой толстый троллинг...
     
  • 1.5, Лайка Ваймуле, 11:55, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Это у бородатых фронтендщиков уже спорт такой, типа как Дум на тостере запилить. Ждём появления компиляторов ЦеПлюс на жабаскрипте (если не появились еще).
     
     
  • 2.26, z, 17:05, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    https://felixhao28.github.io/JSCPP же
     
     
  • 3.36, Вареник, 21:26, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > https://felixhao28.github.io/JSCPP же

    JS головного мозга...

     
     
  • 4.63, nongnomer, 17:30, 18/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    просто no-life man
     
  • 2.39, Crazy Alex, 21:31, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +3 +/
    Проблема в том, что они эти тостеры потом в реальные приложения тащат... А дальше - электроны всякие вылезают.
     
  • 1.10, _Vitaly_, 12:42, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Был же https://github.com/creationix/js-git, на который забили из-за сетевых ограничений а браузере.
     
  • 1.15, Аноним, 13:36, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    Нет.
    Пожалуйста.
     
  • 1.18, Аноним, 13:52, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    Не хватает интеграции с Electron
     
  • 1.19, Joekr, 13:52, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Еще одно подтверждение закона Джеффа Этвуда - "Any application that can be written in JavaScript, will eventually be written in JavaScript".
     
  • 1.20, Аноним, 14:57, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +/
    Но зачем? WebAssemly решает проблемы при нулевых затратах времени!!!!
     
     
  • 2.21, Диносуслик, 15:19, 17/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Видимо писать начинали тогда, когда про васм еще не слышали ничего
     
     
  • 3.34, Вареник, 21:19, 17/05/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    > писать начинали тогда, когда

    А дописывали зачем?

     
  • 2.59, КО, 12:54, 18/05/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Но как? WA это же кастрат - он не умеет пакеты по сети и файлы. Нет, ну хэш на нем посчитаешь, а все остальное на JS.
     
  • 1.35, Вареник, 21:24, 17/05/2018 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    > реализация Git на языке JavaScript, нацеленная на предоставление

    Надо еще переписать на хРусте, на Скале, на голанге, на Лиспе, Эрлагне и Хаскелле, потом на Руби, Перле и Пыхе. Фанатиков обижать нельзя!

     
  • 1.48, Аноним, 03:05, 18/05/2018 [ответить] [смотреть все]     [к модератору]  
  • +/
    Я не совсем в теме, простите за возможно глупый вопрос - значит через JS уже мож... весь текст скрыт [показать]
     
     
  • 2.57, Аноним, 12:17, 18/05/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Зависит от API среды выполнения Обычные десктопные браузеры дают API для работы... весь текст скрыт [показать] [показать ветку]
     
  • 1.64, .., 02:41, 19/05/2018 [ответить] [смотреть все]    [к модератору]  
  • +/
    господа жабаскриптизёры!
    вот у питона есть pypy (питон написанный на питоне)
    а на когда jsjs ? слабО?

    (надеюсь это их займёт на пару лет и мы перестанем видеть новости типа:
    "очередной хипстер-н0ркоман написал очередную ненужную хрень на жабаскрипте")

     

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


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