URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 114342
[ Назад ]

Исходное сообщение
"isomorphic-git, реализация Git на JavaScript"

Отправлено opennews , 17-Май-18 11:34 
Опубликован (https://github.com/isomorphic-git/isomorphic-git/releases/ta...) выпуск проекта isomorphic-git 0.13.0 (https://isomorphic-git.github.io/), в рамках которого развивается реализация Git на языке JavaScript, нацеленная на предоставление 100% переносимости с классическим Git и способная выполняться в web-браузере или в качестве модуля для платформы Node.js. Код проекта поставляется (https://github.com/isomorphic-git/isomorphic-git) под лицензией MIT.

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

URL: https://news.ycombinator.com/item?id=17083807
Новость: https://www.opennet.dev/opennews/art.shtml?num=48615


Содержание

Сообщения в этом обсуждении
"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 11:34 
Но зачем?

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 11:45 
Чтобы набраться опыта, изучив тонкости JS. Всяко интереснее чем очередной калькулятор по учебнику.

"isomorphic-git, реализация Git на JavaScript"
Отправлено anonymous , 17-Май-18 20:59 
Неужели JS на столько сложен, что его тонкости можно только так изучить? А то тут фанбои совсем другое вещают...

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 22:30 
https://youtu.be/RGkIsUBfanQ?t=1m20s

Ну и дальше смотрите "why javascript is sucks".


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 12:11 
Сложен. Но входной порог при этом низкий.

"isomorphic-git, реализация Git на JavaScript"
Отправлено macfaq , 18-Май-18 12:29 
> Неужели JS на столько сложен, что его тонкости можно только так изучить?

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 11:46 
Чтобы называться так же, но быть несовместимым, очевидно же.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Bitten Apple , 17-Май-18 13:09 
Для online IDE, например

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:31 
> Для online IDE, например

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Диносуслик , 18-Май-18 11:45 
Если брать тот же с9, то там нормальный гит, т.к. ОС запускается в контейнерах, гит нормальный и все как полагается.

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 19-Май-18 16:29 
> Зачем именно в JS - не ясно.

Скоро электрон перекочует в прошивку и JS сразу станет системным языгом, а старперы с их старыми плюсами и дривнющим си будят завидовать и кусать локди! Вот!


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 18:41 
Затем, что под нормальной свободной лицензией, а не под вирусно-несвободным GPL.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 11:37 
Фронтендеры, успокойтесь уже.

"isomorphic-git, реализация Git на JavaScript"
Отправлено callbackjump , 17-Май-18 12:16 
Почему? Почему все думают, что JS медленнее нерушимого Си? Оптимизация движка JS скоро переплюнет оптимизации компилятора Си (кто в 21 веке пашет землю иголкой?), чего уже Rust ментально достиг, ускоряя свои имплементационные возможности стремительно завоёвывая умы думающих программистов.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 12:29 
Потому что тесты производительности не обманешь как и тесты на потребление памяти. Потому что си и с++ при правильной организации разработки и наличии статического анализа безопасней js-a. Потому что для С-подобных языков не нужен рантайм.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Владимир , 17-Май-18 12:45 
С-подобный это про синтаксис, javaScript как раз к ним и относится, так что вы тут некорректно выразились.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Анониммм , 17-Май-18 13:02 
Есть Си-подобный синтаксис, да. Но в данном человек имел ввиду отсутствие вспомогательных средств для обеспечения работоспособности приложение, подобно тому, как работают программы, написанные на Си, и это не является некорректным выражением. Это всё равно что при упоминании экспоненты сразу думать про экспоненциальный рост.

"isomorphic-git, реализация Git на JavaScript"
Отправлено й , 17-Май-18 18:25 
> с++
> не нужен рантайм.

ага, а libstdc++ фикция и не существует.
строго говоря, это такой же рантайм, т.е. имплементация stdlib, без наличия которой в системе ничего не запустится.


"isomorphic-git, реализация Git на JavaScript"
Отправлено Anonymus , 17-Май-18 19:05 
Статически линкуй

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:30 
> Статически линкуй

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

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено draw1 , 17-Май-18 22:45 
> Рантайм - это все что обслуживает выполнение программы, чтобы main() вывело Hello World, но не включая ядро.

Ага. Но только во время ВЫПОЛНЕНИЯ, а не во время компиляции (по секрету: поэтому и называется RUNtime).

После статической линковки можешь удалить то с чем линковал, а "hello, world" будет по прежнему выводиться. А это значит что во время выполнения не используется, то есть это не рантайм. По определению.


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 01:42 
При чём тут статическая линковка вообще? Просто рантайм будет идти вместе с прогой и последняя будет больше весить. Вон бинарники после раста или го весят по несколько мегабайт даже если это hello world. Как раз из-за рантайма.

"isomorphic-git, реализация Git на JavaScript"
Отправлено angra , 18-Май-18 03:08 
Когда ты слинковал статически либу, ты фактически сделал ее копию внутрь бинарника и эта копия используется при выполнении программы. И не играет роли, что ты там сделал с оригиналом. С тем же успехом ты можешь сделать копию интерпретатора js, удалить оригинал и запустить js в копии, после чего заявить, что у js тоже нет рантайма, ведь ты удалил оригинал.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 05:05 
> Рантайм - это все что обслуживает выполнение программы, чтобы main() вывело Hello World, но не включая ядро.

а если bare-metal запускаешь вывод Hello World в UART - что будешь считать рантаймом?


"isomorphic-git, реализация Git на JavaScript"
Отправлено Crazy Alex , 17-Май-18 21:29 
Ерунду говоришь. Без этой либы на плюсах приложение мобрать можно (она и сама на плюсах, собственно). А на джаваскрипте без рантайма жить нельзя. Потому как динамика проклятая.

"isomorphic-git, реализация Git на JavaScript"
Отправлено й , 18-Май-18 00:24 
давай зайдём с другой стороны. есть golang. у него статические линкуемые бинарики со стандартными и не очень библиотеками на выходе. так вот, вопрос: это всё прилинкованное в файл (там зелёные треды, каналы и прочее) -- это, что, не рантайм? рантайм. так вот, у c++ есть такой же. прилинкованный stdlib -- это вполне себе рантайм, т.е. 3rd party code, который выполняется во время исполнения программы. реальные приложения в c++ используют stdlib и ты отлично это знаешь.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Anonim , 18-Май-18 07:38 
stdlib это стандартная библиотека функций. после компиляции линкуется не она целиком а только те кусочки которые ты явно вызываешь. + ты можешь использовать любой другой набор функций или написать свой или не использовать вообще ничего.

"isomorphic-git, реализация Git на JavaScript"
Отправлено angra , 18-Май-18 02:54 
Собрать то конечно можно, вот только окажется, что значительная часть функционала плюсов у тебя отсутствует и практически любую программу, включая helloworld, надо переписывать.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 13:00 
Интерпретатор JS, написанный на C, станет быстрее С? Дак пусть сразу быстрее асмы делают, что мелочиться то.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 13:48 
А написанным на самом JS ещё быстрее!

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 15:21 
Внезапно: а почему бы и нет? См. пример с PyPy.
Порой чувствуешь себя умнее сишников, объясняя им такие банальные вещи.

"isomorphic-git, реализация Git на JavaScript"
Отправлено нурок , 17-Май-18 19:18 
> Внезапно: а почему бы и нет? См. пример с PyPy.
> Порой чувствуешь себя умнее сишников, объясняя им такие банальные вещи.

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено anonymous , 17-Май-18 21:03 
> Внезапно: а почему бы и нет? См. пример с PyPy.
> Порой чувствуешь себя умнее сишников, объясняя им такие банальные вещи.

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 23:36 
Ну и? Что мешает проделывать аналогичное с кодом на JS на лету? Собственно, это сейчас и делается, но все равно находятся ламеры у которых в голове не укладывается.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Доктор , 18-Май-18 15:19 
ключевое слово "emscripten"

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 15:42 
Это совсем другое направление компиляции, плюс тормозить может из-за того что движки JS не оптимизированы под код выдаваемый emscripten.

"isomorphic-git, реализация Git на JavaScript"
Отправлено нурок , 17-Май-18 19:14 
ну вот не любят люди лишних прослоек.. ощущения не те..

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:34 
> стремительно завоёвывая умы думающих программистов.

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

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 10:16 
Просто оголтелая бестолочь с жс головного мозга, кроме как на вопли о крутизне своего язычишки и переписывания всего подряд по нескольку раз, ни на что больше не способна. Это факт.

"isomorphic-git, реализация Git на JavaScript"
Отправлено qrKot , 18-Май-18 10:10 
Потому что есть такая штука: формальная (она же "математическая") логика...
Учитывая то, что сам JS вполне себе написан на C, т.е., формально является примером валидного C кода, очевидно, что C гарантированно может быть НЕ медленнее JS в 100% случаев.
При этом в обратную сторону гарантии не работают, т.к. JS- это, собственно, API к C, т.е. некоторое подмножество возможных реализаций. Т.е. JS гарантированно НЕ сможет быть производительней C во всех случаях.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 15:36 
> Потому что есть такая штука: формальная (она же "математическая") логика...

Есть, есть. Но каким она боком к вашим умозаключениям - непонятно.

> Учитывая то, что сам JS вполне себе написан на C, т.е., формально является примером валидного C кода, очевидно, что C гарантированно может быть НЕ медленнее JS в 100% случаев.

Во-первых, реализация движков разная. V8 вроде как на плюсах.
Во-вторых … хоспади, какой бред *facepalm.jpg*
С такой "аргументацией" достаточно написать интерпретатор Си на JS. Получим "гарантию", что JS может быть не медленнее сишки в 100% случаев.
Хотя вообще-то нас интересует быстрота выполнения генерируемого из ЯП X кода и там язык написания компилятора/JIT имеет куда меньше влияния, чем сам ЯП, из которого генерируют этот самый код. Динамическая типизация, виртуальные методы, излишниий ООизм, GC и проч.


"isomorphic-git, реализация Git на JavaScript"
Отправлено rshadow , 18-Май-18 11:31 
И кто только ведется на такой толстый троллинг...

"isomorphic-git, реализация Git на JavaScript"
Отправлено Лайка Ваймуле , 17-Май-18 11:55 
Это у бородатых фронтендщиков уже спорт такой, типа как Дум на тостере запилить. Ждём появления компиляторов ЦеПлюс на жабаскрипте (если не появились еще).

"isomorphic-git, реализация Git на JavaScript"
Отправлено z , 17-Май-18 17:05 
https://felixhao28.github.io/JSCPP же

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:26 
> https://felixhao28.github.io/JSCPP же

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено nongnomer , 18-Май-18 17:30 
просто no-life man

"isomorphic-git, реализация Git на JavaScript"
Отправлено Crazy Alex , 17-Май-18 21:31 
Проблема в том, что они эти тостеры потом в реальные приложения тащат... А дальше - электроны всякие вылезают.

"isomorphic-git, реализация Git на JavaScript"
Отправлено _Vitaly_ , 17-Май-18 12:42 
Был же https://github.com/creationix/js-git, на который забили из-за сетевых ограничений а браузере.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 13:36 
Нет.
Пожалуйста.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 13:52 
Не хватает интеграции с Electron

"isomorphic-git, реализация Git на JavaScript"
Отправлено Joekr , 17-Май-18 13:52 
Еще одно подтверждение закона Джеффа Этвуда - "Any application that can be written in JavaScript, will eventually be written in JavaScript".

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 17-Май-18 14:57 
Но зачем? WebAssemly решает проблемы при нулевых затратах времени!!!!

"isomorphic-git, реализация Git на JavaScript"
Отправлено Диносуслик , 17-Май-18 15:19 
Видимо писать начинали тогда, когда про васм еще не слышали ничего

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:19 
> писать начинали тогда, когда

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено КО , 18-Май-18 12:54 
Но как? WA это же кастрат - он не умеет пакеты по сети и файлы. Нет, ну хэш на нем посчитаешь, а все остальное на JS.

"isomorphic-git, реализация Git на JavaScript"
Отправлено Вареник , 17-Май-18 21:24 
> реализация Git на языке JavaScript, нацеленная на предоставление

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


"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 03:05 
Я не совсем в теме, простите за возможно глупый вопрос - значит через JS уже можно обращаться к локальной файловой системе клиента? Или это таки делает Электрон, а JS как и прежде только прокладка между клиентом и API?

"isomorphic-git, реализация Git на JavaScript"
Отправлено Аноним , 18-Май-18 12:17 
Зависит от API среды выполнения. Обычные десктопные браузеры дают API для работы с внутренним хранилищем сайта с определенной квотой на дисковое место. За пределы хранилища вылезти не могут. Другие среды дают другие возможности, та же Node - полный доступ к ФС.

"isomorphic-git, реализация Git на JavaScript"
Отправлено .. , 19-Май-18 02:41 
господа жабаскриптизёры!
вот у питона есть pypy (питон написанный на питоне)
а на когда jsjs ? слабО?

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