The OpenNET Project / Index page

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



"Выпуск jsii 1.31, генератора кода C#, Go, Java и Python из TypeScript"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск jsii 1.31, генератора кода C#, Go, Java и Python из TypeScript"  +/
Сообщение от opennews (??), 10-Июл-21, 21:30 
Компания Amazon опубликовала компилятор jsii 1.31, представляющий собой модификацию компилятора TypeScript, позволяющую извлечь из компилируемых модулей информацию об API  и сгенерировать универсальное представление данного API для обращения к JavaScript-классам из приложений на различных языках программирования. Код проекта написан на TypeScript и  распространяется под лицензией Apache 2.0...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=55466

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

10. Сообщение от Аноним (10), 10-Июл-21, 21:51   +1 +/
Мне бы не помешало наоборот. Из Го и Си генерить TypeScript или сразу JS, ибо в последнем вообще беспредел мозга.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #28, #33, #82, #108, #142, #145

11. Сообщение от Аноним (10), 10-Июл-21, 21:54   +/
Хотя если перевод API, то скорее их действительно никто не понимает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

24. Сообщение от Аноним (24), 10-Июл-21, 22:08   –4 +/
Не понял. Зачем транспонировать в медленный код из быстрого?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35, #114, #121

28. Сообщение от Аноним (28), 10-Июл-21, 22:25   +/
Их конструкции на ts не переводятся так просто.
С common lisp ещё попроси :)
А вот ts штука примитивная, хоть во что и без проблем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #101

33. Сообщение от лолшто (?), 10-Июл-21, 22:28   +2 +/
Я конеш хз что за кейс, но можно сгенерить WASM, а его уже дергать на [jt]s.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #120

35. Сообщение от economist (?), 10-Июл-21, 22:29   –4 +/
Быстрый - Медленный
Мутный - Ясный
Незнакомый - Знакомый
Старый - Новый
Из Top10 - из Top3

Причин может быть много, у каждого - свои.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #99, #110

82. Сообщение от Аноним (82), 10-Июл-21, 22:43   +/
есть же Emscripten. Компилятор из борщехлебной сишечки в смузихлебный typescript
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #107

99. Сообщение от Аноним (99), 11-Июл-21, 00:47   +/
свои - чужие
хорошие - плохие
добрые - злые
грязные - чистые
золотые - серебристые

А какая именно причина у создателя jsii?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #100

100. Сообщение от Аноним (101), 11-Июл-21, 01:01   +/
У них же там английским по белому написано.

Чтобы автоматически генерировать код AWS sdk на всех поддерживаемых языках из единой кодовой базы на одном языке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #102

101. Сообщение от Аноним (101), 11-Июл-21, 01:08   –5 +/
Это тс примитивный?
Посмотрю я, как ты транспилируешь зависимые типы в любой язык, кроме хаскеля.
Ну и это ещё не учитывая, что тс включает в себя ecmascript со всеми прототипами.

Там, конечно же, поддерживается только подмножество языка.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #104

102. Сообщение от Аноним (99), 11-Июл-21, 01:11   –3 +/
Просто я не восприимчив к тексту написанному на белом фоне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

103. Сообщение от Nikki Next (?), 11-Июл-21, 04:50   –1 +/
Можно перевести из Python в C++ через jsii?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #122

104. Сообщение от Аноним (28), 11-Июл-21, 05:52   +5 +/
Мы же говорим о тюринг-полных языках?
Понятно, что они эквивалентны. По большому счету.
Вопрос в сложности перевода конструкций одного в конструкции другого.
Если взять пару ts и basic, то ситуация будет обратная: basic примитивный и легко укладывается в ts.
Ts в basic будет запихать гораздо сложнее.
Возможно всё, вопрос сложности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

107. Сообщение от Lex (??), 11-Июл-21, 06:21   +1 +/
Он васм генерирует, а не тс
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

108. Сообщение от Lex (??), 11-Июл-21, 06:29   +3 +/
> или сразу JS, ибо в последнем вообще беспредел мозга

В последнем, как раз, все норм.
Беспредел - это делать на базе ЯП переусложненную кучу гомна, которая в итоге все равно превращается в что-то на исходном ЯП, решая «проблему», которой у нормальных людей нет( типизация ) и усугубляя серьезные проблемы( захламление синтаксиса усложняет поиск логических и алгоритмических ошибок и недоработок в коде. «Корректность» типов вселяет в проггеров ложную уверенность, что все дело только в правильности типизации и, если все сходится - все норм ).

По сути своей, тс - худшее, что произошло с жс.
Был ещё кофескрипт, но тот хотя бы нёс с собой новый и удобный функционал( часть которого в итоге включили в жс ) вместо откровенного замусоривания языка без внятных положительных итогов

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #111, #119, #137, #139

110. Сообщение от iv (?), 11-Июл-21, 08:25   +/
Свобода - рабство
Мир - война
Незнание - сила
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

111. Сообщение от Аноним (111), 11-Июл-21, 09:05   –3 +/
Вот вот. Настоящим программистам типизация ненужна. Она нужна только глупым вебмакакам которые не могут запомнить какие данные передают.

Мне например постоянно приходится прописывать jsdoc, javadoc, phpdoc чтобы понять как как работает чужой код, хотя настоящие программисты написали его без единого комментария, без документации и почти без тестов и уволились.
В java чуть легче так как строгая статическая типизация, но всё равно много чего передаются в виде Map<String,Object>

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

113. Сообщение от n00by (ok), 11-Июл-21, 10:23   +5 +/
array.push(array[i - 2] + array[i - 1]);

А зачем они хранят предыдущие значения? Сайты слишком быстро работают?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #140, #141

114. Сообщение от anonymous (??), 11-Июл-21, 11:33   +1 +/
Go сильно быстрее TypeScript.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #115, #118

115. Сообщение от Аноним (24), 11-Июл-21, 11:41   –1 +/
> Go сильно быстрее TypeScript.

Значит ли это, что го ощутимо быстрее додиеза с жабой? А раз нет, то как это работает? Не в синтетике?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114

118. Сообщение от Аноним (118), 11-Июл-21, 12:08   +/
Простите, а как вы измерили скорость выполнения TypeScript?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114

119. Сообщение от Аноним (120), 11-Июл-21, 12:20   +/
Дело не столько в типизации, ибо всегда можно на JS проверить или сделать Number() и т.п. Просто JS позволяет столько всего, что трудно разобраться мыслящему на классических языках. Вот эти пробросы объектов через =>, код функций внутри кода функций и прочие эксклюзивные вещи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

120. Сообщение от Аноним (120), 11-Июл-21, 12:23   +1 +/
Трудно кодить сразу на нескольких языках, особенно, когда в JS альтернативное мышление. Я вот не считаю шарящих в JS слабоумными, т.к. там наоборот надо сосредотачиваться и врубаться в конструкции конкретно, мне после Си и Го трудно осилить, да хоть даже после Java/C++ с учетом ООП.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

121. Сообщение от Аноним (121), 11-Июл-21, 12:47   +/
>Зачем транспонировать в медленный код из быстрого?

Чтоб в страничку влепить и в бровсере исполнять.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

122. Сообщение от Аноним (121), 11-Июл-21, 12:51   +/
Для этого отдельный инструмент разарбатывается:
https://ru.wikipedia.org/wiki/Nuitka
https://nuitka.net/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

124. Сообщение от Sw00p aka Jerom (?), 11-Июл-21, 14:23   +1 +/
как там у них с оптимальностью или гамнокод с одного ЯП в гамнокод на другом ЯП переводит?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #125

125. Сообщение от Аноним (125), 11-Июл-21, 14:47   +2 +/
> гамнокод с одного ЯП в гамнокод на другом ЯП переводит?

ещё и с преумножением оного.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

137. Сообщение от лолшто (?), 12-Июл-21, 00:33   +2 +/
TS тоже стал жертвой беспредела. С появлением реакта и хайпа в веб среде вокруг ФП, куча паттернов пустила корни. Currying, partial application, higher order functions, мутировавшие в higher order components и куча прочего говна. TS отреагировал появлением utility types, которые проблему то мб и решают, но еще больше добавляют сложности и синтаксического шума. А бизнес на эти типы срать хотел, поэтому касты и any.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

139. Сообщение от Bx (ok), 12-Июл-21, 21:09   –1 +/
Ну надо же, типы данных виноваты.
Как там посдедний пишет при смешивании пробелов с табами?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

140. Сообщение от Bx (ok), 12-Июл-21, 21:16   +/
Бобер, выдыхай! В массиве все значения хранятся, че бы и не запушить в массив последнее и предпоследнее значения?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #143

141. Сообщение от Аноним (111), 13-Июл-21, 00:16   +/
А как надо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #144

142. Сообщение от Аноним (142), 13-Июл-21, 00:48   +/
Используй wasm
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

143. Сообщение от n00by (ok), 13-Июл-21, 05:12   +1 +/
return array[num];

Возвращают не всю последовательность Фибоначи, а только искомое.

При больших n пример не работает, или сборщик мусора догадается, что массив не используется и подчистит?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

144. Сообщение от n00by (ok), 13-Июл-21, 05:18   +/
В последовательности Фибоначчи первые два числа равны 0 и 1, а каждое последующее число равно сумме двух предыдущих чисел. То есть достаточно хранить 2 последних числа, соответственно и массива на 2 элемента. То есть как-то так, но лучше вообще без массива:

array[0] = array[1];
array[1] = array[0] + array[1];

Ну и возвращать array[1] а не array[num].

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #146

145. Сообщение от softkot (?), 14-Июл-21, 18:44   +/
Go -> JS

На https://github.com/gopherjs/gopherjs прекрасно пишутся либы на go и потом подгружаются в любой js/html

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

146. Сообщение от Аноним (146), 17-Июл-21, 21:48   –1 +/
Исправлю ваш баг.

> array[0] = array[1];

Здесь затирается array[0].

> array[1] = array[0] + array[1];

А здесь затёртый array[0] используется как ни в чём не бывало.


Лучше вот так, если хочется переменную сэкономить:

array[1] = array[1] + array[0];
array[0] = array[1] - array[0];


А ещё лучше не экономить, чтоб понятней было:

current  = array[0] + array[1];
array[0] = array[1];
array[1] = current;

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144 Ответы: #147

147. Сообщение от n00by (ok), 18-Июл-21, 09:06   +/
Спасибо! Это не баг, это лажа. :) Если без массива, то последний вариант должен был получиться сам собой. А до предпоследнего я бы сам не додумался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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