Здравствуйте, sr_dev, Вы писали:
I>>Шаблоны != дженерики. В С++ шаблоны, например, тьюринг полные. И на этой полноте основаны библиотеки. Джереники джавы обладают полнотой по тьюрингу ? I>>Далее, ты можешь на джавовских дженериках запилить __итератор__, который развернется сам собой в честный цикл for ? I>>Джава так не умеет.
_>Осталось выяснить, как это относится к переносимости джавы в js.
Непосредственно — код на С++ работает или лучше, чем чистый JS, или так же. С джавой ровно наоборот — или так же, или хуже. И все это есть следствие той самой эмуляции и оверхеду.
_>GWT без "слоя эмуляции" и "оверхеда" справляется с конвертацией дженериков и прочего в js.
Это значит, что ты сможешь скомпилировать и запустить свой код на джаве и только. Но это у тебя на ровном месте будет серьезный оверхед, что съест и перформанс, и память. Это особенность Джавы. В С++ этого нет — zero-everhead темплейтов.
То есть, ты не сможешь запустить старую софтину — её придется всерьёз переделывать. В С++ ровно наоборот, и проект Ecmascripten именно это и демонстрирует.
_>Прочитай из какого ты это выдрал контекста и объясни как себя в аналогичной ситуации должен вести int64_t в c++. Спасибо)
В С++ такой тип работает идентично обычному нативному С++. _Идентично_.
Кроме того, буде необходимость каких то оптимизаций, в С++ я могу объявить типы, идентичные джаваскриптовым, определить нужные операторы, и тд и тд, и это будет работать не хуже встроеных типов.
то есть, в с++ это будет примерно так
auto n = a + b;
И здесь имеем тот самый zero-overhead, т.е. трансляцию в js-типы, как будто пишешь на JS. Подложили либу, перекомпилировали, дело в шляпе.
Аналогичный фокус мы получаем с темплейтами.
В джаве для того же фокуса придется писать так
JsNumber n = JsNumber.sum(a, b);
И в чуть более сложных кейсах появляется осязаемый оверхед, поскольку компилер джавы заточен под Джит целиком и полностью.
Итого — придется не просто перекомпилировать, а переписывать все связаные с этим участки кода, а возможно и архитектуру менять.
I>В С++ такой тип работает идентично обычному нативному С++. _Идентично_.
Повторяю вопрос.
Прочитай из какого ты это выдрал контекста и объясни как себя в аналогичной ситуации должен вести int64_t в c++.
Выдрано вот это
Heavy use of long operations will have a performance impact due to the underlying emulation
Вот отсюда
long: JavaScript has no 64-bit integral type, so long needs special consideration. Prior to GWT 1.5, the long type was was simply mapped to the integral range of a 64-bit JavaScript floating-point value, giving long variables an actual range less than the full 64 bits. As of GWT 1.5, long primitives are emulated as a pair of 32-bit integers, and work reliably over the entire 64-bit range. Overflow is emulated to match the expected behavior. There are a couple of caveats. Heavy use of long operations will have a performance impact due to the underlying emulation. Additionally, long primitives cannot be used in JSNI code because they are not a native JavaScript numeric type.
На пальцах.
Использования джававского лонга (64 бит) неэффективно ибо в js нет подходящего типа. И требуется его эмулировать либо флоатом либо как еще. В каком месте тут c++ лучше (в котором есть int64_t)?
Здравствуйте, sr_dev, Вы писали:
_>Повторяю вопрос.
_>На пальцах. _>Использования джававского лонга (64 бит) неэффективно ибо в js нет подходящего типа. И требуется его эмулировать либо флоатом либо как еще. В каком месте тут c++ лучше (в котором есть int64_t)?
Смотри в той части, где zero-overhead. Хочешь эмуляцию — она есть, и лучше, чем в джаве. Хочешь без эмуляции — и это возможно, и снова лучше, чем в джаве.
I>Кул. UI отпадает. Значит остаётся два кейса — логика, которую тоже умеет JS, и железо, которое Джава умеет далеко не всегда, в силу ряда ограничений.
Нет такого железа. Если для устройства уже написан драйвер — то общаться с драйвером можно из любого языка, хоть из Lua. Самое обычное — байтики из/в ком-порт писать.
Здравствуйте, Слава, Вы писали:
I>>Кул. UI отпадает. Значит остаётся два кейса — логика, которую тоже умеет JS, и железо, которое Джава умеет далеко не всегда, в силу ряда ограничений.
С>Нет такого железа. Если для устройства уже написан драйвер — то общаться с драйвером можно из любого языка, хоть из Lua. Самое обычное — байтики из/в ком-порт писать.
Ты сам себе и ответил. Теперь дело за малым — кто гарантирует, что ты в джавовском коде заимплементил самые свежие и актуальные гарантии ?
Если все дело в аплете, то юзеры будут годами ждать, пока ты соизволишь аплет подфиксить. А если дело в сторонней софтине, то она обновляется независимо от твоих хотелок, а девелоперы, то есть ты, обязаны будут писать такой код, как эта софтина требует.
То есть, останется только общатся с этой софтиной. А это, как ты сам сказал, можно из любого языка. Итак — зачем здесь Джава ?
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, sr_dev, Вы писали:
_>>Повторяю вопрос.
_>>На пальцах. _>>Использования джававского лонга (64 бит) неэффективно ибо в js нет подходящего типа. И требуется его эмулировать либо флоатом либо как еще. В каком месте тут c++ лучше (в котором есть int64_t)?
I>Смотри в той части, где zero-overhead. Хочешь эмуляцию — она есть, и лучше, чем в джаве. Хочешь без эмуляции — и это возможно, и снова лучше, чем в джаве.
Задан предельно конкретный вопрос про int64_t, ответ как обычно zero overhed. Слив зачитан?
Здравствуйте, Ikemefula, Вы писали:
I>Ты на вопрос попробуй ответить. Кто гарантирует, что ты в аплете заимплементируешь все необходимые гарантии, актуальные на нынешний день ? I>И что делать юзеру, если он хочет юзать прогу, но хочет гарантии посильнее ? Кто ему специальный аплет напишет ? I>Вот JS это позволяет решить. А у тебя только общие слова, как всё классно в джаве.
Какие "гарантии"-то? Вот для явы и для апплетов есть security manager и policy-файлы. А теперь расскажи, как для некоего "веб-приложения" на JS, то есть кучки html, css, jpg и js файлов со всего интернета? не подписанных даже — как этому мутному приложению программно дать права на чтение-запись некоей конкретной папки? А как проконтролировать то, что приложение не изменилось? Может быть злой хакер функцию paddingLeft подменил (или что там за недавно драма была среди js'ников...)
Всё то, что было в яве и во многих других средах, всё что казалось излишне сложным — оно не на пустом месте возникло. Когда вася пишет скрипт на JS, чтобы у него на сайте обезьянка за курсором бегала — сложностей не надо. А потом они возникают всё равно, потом что сложные задачи решаются сложными методами. И то, что в других местах уже решено и описано в документации, в JS будет делаться десятью разными способами — по числу браузеров с учётом мобильных.
Заходит вася на сайт корпоративного Hangouts, в конференцию, а его не слышат, потому что надписи "это приложение требует доступа к микрофону" он не видит, потому что он тупой вася. Как групповой политикой для google chrome дать некоему веб-приложению доступ к микрофону, чтобы не вася кликал сам, а для него всё было настроено?
Здравствуйте, Ikemefula, Вы писали:
С>>Нет такого железа. Если для устройства уже написан драйвер — то общаться с драйвером можно из любого языка, хоть из Lua. Самое обычное — байтики из/в ком-порт писать.
I>Ты сам себе и ответил. Теперь дело за малым — кто гарантирует, что ты в джавовском коде заимплементил самые свежие и актуальные гарантии ? I>Если все дело в аплете, то юзеры будут годами ждать, пока ты соизволишь аплет подфиксить.
То же и с кодом на сайте.
I>А если дело в сторонней софтине, то она обновляется независимо от твоих хотелок, а девелоперы, то есть ты, обязаны будут писать такой код, как эта софтина требует.
"Софтина" ничего не требует. Взять например обычный фискальный регистратор — его подключили, появилось устройство на ком-порте. Поставили прогу, идущую с ним — появилась возможность создавать объект COM и через него работать с регистратором.
I>То есть, останется только общатся с этой софтиной. А это, как ты сам сказал, можно из любого языка. Итак — зачем здесь Джава ?
При том, что создание COM-объектов в яве уже есть. А вот в JS с этим могут быть проблемы. Как ты раздашь права на доступ? Работает например человек в ворде, и у него открыт сайт. Если у JS будет прямой доступ к COM, то можно просто подключиться к работающему ворду и копировать из него всё, что открывается в нём.
Здравствуйте, sr_dev, Вы писали:
I>>Смотри в той части, где zero-overhead. Хочешь эмуляцию — она есть, и лучше, чем в джаве. Хочешь без эмуляции — и это возможно, и снова лучше, чем в джаве.
_>Задан предельно конкретный вопрос про int64_t, ответ как обычно zero overhed. Слив зачитан?
Здравствуйте, Слава, Вы писали:
I>>И что делать юзеру, если он хочет юзать прогу, но хочет гарантии посильнее ? Кто ему специальный аплет напишет ? I>>Вот JS это позволяет решить. А у тебя только общие слова, как всё классно в джаве.
С>Какие "гарантии"-то? Вот для явы и для апплетов есть security manager и policy-файлы. А теперь расскажи, как для некоего "веб-приложения" на JS, то есть кучки html, css, jpg и js файлов со всего интернета? не подписанных даже — как этому мутному приложению программно дать права на чтение-запись некоей конкретной папки? А как проконтролировать то, что приложение не изменилось? Может быть злой хакер функцию paddingLeft подменил (или что там за недавно драма была среди js'ников...)
Снова 'читатель'. По клику на ссылку в браузере система открывает подписаное независимое приложение, которое просто не будет работать с корявым сайтом. Вот с этим приложением ты и заканчиваешь операцию. Это приложение апдейтится независимо от твоей хотелки.
С>Заходит вася на сайт корпоративного Hangouts, в конференцию, а его не слышат, потому что надписи "это приложение требует доступа к микрофону" он не видит, потому что он тупой вася. Как групповой политикой для google chrome дать некоему веб-приложению доступ к микрофону, чтобы не вася кликал сам, а для него всё было настроено?
Уже давно придумали — клик мыши ведет на независимое приложение, которое умеет все что надо. Очнись, уже 2017й год начался.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Слава, Вы писали:
I>Снова 'читатель'. По клику на ссылку в браузере система открывает подписаное независимое приложение, которое просто не будет работать с корявым сайтом. Вот с этим приложением ты и заканчиваешь операцию. Это приложение апдейтится независимо от твоей хотелки.
Покажи мне пример такого независимого приложения. Задача со звёздочкой — чтобы в приложении была карта, гугловая ли , яндексовая или своя — неважно.
С>>Заходит вася на сайт корпоративного Hangouts, в конференцию, а его не слышат, потому что надписи "это приложение требует доступа к микрофону" он не видит, потому что он тупой вася. Как групповой политикой для google chrome дать некоему веб-приложению доступ к микрофону, чтобы не вася кликал сам, а для него всё было настроено?
I>Уже давно придумали — клик мыши ведет на независимое приложение, которое умеет все что надо. Очнись, уже 2017й год начался.
На чём оно написано? Внутри чего работает, чьими правами пользуется? Покажи пример.
Здравствуйте, Слава, Вы писали:
I>>Ты сам себе и ответил. Теперь дело за малым — кто гарантирует, что ты в джавовском коде заимплементил самые свежие и актуальные гарантии ? I>>Если все дело в аплете, то юзеры будут годами ждать, пока ты соизволишь аплет подфиксить. С>То же и с кодом на сайте.
Я говорю про независимое приложение, а тебе мерещится код на сайте
С>"Софтина" ничего не требует. Взять например обычный фискальный регистратор — его подключили, появилось устройство на ком-порте. Поставили прогу, идущую с ним — появилась возможность создавать объект COM и через него работать с регистратором.
Вот эта часть должна быть не COM объектом, а прежде всего независимым приложением, которое обеспечит все необходимые гарантии. И не надо никакого кода ни в браузере, ни в апплете.
I>>То есть, останется только общатся с этой софтиной. А это, как ты сам сказал, можно из любого языка. Итак — зачем здесь Джава ?
С>При том, что создание COM-объектов в яве уже есть. А вот в JS с этим могут быть проблемы.
Всё что надо в браузере — по клику на ссылке открывать стороннее независимое приложение. Это даже без COM реализуется.Ты путаешь винду и браузеры вообще. В винде джава нужна всего лишь как костыль для связи через COM-объект. Это давно не нужно.
С>>"Софтина" ничего не требует. Взять например обычный фискальный регистратор — его подключили, появилось устройство на ком-порте. Поставили прогу, идущую с ним — появилась возможность создавать объект COM и через него работать с регистратором.
I>Вот эта часть должна быть не COM объектом, а прежде всего независимым приложением, которое обеспечит все необходимые гарантии. И не надо никакого кода ни в браузере, ни в апплете.
А эти свои пожелания ты в спортлото АТОЛ напиши, может и откликнутся
I>Всё что надо в браузере — по клику на ссылке открывать стороннее независимое приложение. Это даже без COM реализуется.Ты путаешь винду и браузеры вообще. В винде джава нужна всего лишь как костыль для связи через COM-объект. Это давно не нужно.
Здравствуйте, Слава, Вы писали:
I>>Снова 'читатель'. По клику на ссылку в браузере система открывает подписаное независимое приложение, которое просто не будет работать с корявым сайтом. Вот с этим приложением ты и заканчиваешь операцию. Это приложение апдейтится независимо от твоей хотелки.
С>Покажи мне пример такого независимого приложения. Задача со звёздочкой — чтобы в приложении была карта, гугловая ли , яндексовая или своя — неважно.
Господи, открой pinterst, reddit, skype и тд. Ты банкинг на мобиле юзал когда нибудь ?
I>>Уже давно придумали — клик мыши ведет на независимое приложение, которое умеет все что надо. Очнись, уже 2017й год начался.
С>На чём оно написано? Внутри чего работает, чьими правами пользуется? Покажи пример.
На чем хошь, это независимое приложение, их пишут и на С++, и на джаве, и на JS, сюрприз ! Работает внутри операционной системы. Пользуется правами которые ему дали при регистрации.
Есть, например, банкинг — по нажатию кнопки 'оплатить' открывается приложение банка, которое делает все что надо, с подписями и сертификатами. Тоже мне, рокет саенс нашел
Здравствуйте, Ikemefula, Вы писали:
С>>Покажи мне пример такого независимого приложения. Задача со звёздочкой — чтобы в приложении была карта, гугловая ли , яндексовая или своя — неважно.
I>Господи, открой pinterst, reddit, skype и тд. Ты банкинг на мобиле юзал когда нибудь?
Давай не про мобилу, это отдельная тема.
I>>>Уже давно придумали — клик мыши ведет на независимое приложение, которое умеет все что надо. Очнись, уже 2017й год начался.
А причём тут JS и замена апплетов?
С>>На чём оно написано? Внутри чего работает, чьими правами пользуется? Покажи пример.
I> На чем хошь, это независимое приложение, их пишут и на С++, и на джаве, и на JS, сюрприз ! Работает внутри операционной системы. Пользуется правами которые ему дали при регистрации.
Здравствуйте, Слава, Вы писали:
I>>Вот эта часть должна быть не COM объектом, а прежде всего независимым приложением, которое обеспечит все необходимые гарантии. И не надо никакого кода ни в браузере, ни в апплете.
С>А эти свои пожелания ты в спортлото АТОЛ напиши, может и откликнутся
Здравствуйте, Ikemefula, Вы писали:
I>>>Вот эта часть должна быть не COM объектом, а прежде всего независимым приложением, которое обеспечит все необходимые гарантии. И не надо никакого кода ни в браузере, ни в апплете.
С>>А эти свои пожелания ты в спортлото АТОЛ напиши, может и откликнутся
I>Это новость только для тебя.
Здравствуйте, Слава, Вы писали:
I>>Господи, открой pinterst, reddit, skype и тд. Ты банкинг на мобиле юзал когда нибудь? С>Давай не про мобилу, это отдельная тема.
Ты вероятно не заметил, но Винда уже давно встала на этот путь. Мы выясняем, что произошло, на секундочку. Джавы в браузере больше нет. Ха-ха.
Аналогичный кстати фокус умеет скайп для бизнеса — кликнул, запустилось новое приложение. Мы в своей софтине реализовали аналогичный фокус. Хочешь секретный документ посмотреть — кликай где хочешь, но будешь смотреть только у нас и никуда твои секреты не утекут.
I>>>>Уже давно придумали — клик мыши ведет на независимое приложение, которое умеет все что надо. Очнись, уже 2017й год начался. С>А причём тут JS и замена апплетов?
Я как раз ничего не говорю про замену аплетов. Я говорю о том, как решаются те проблемы, которые ранее решались джавой.
С>>>На чём оно написано? Внутри чего работает, чьими правами пользуется? Покажи пример.
I>> На чем хошь, это независимое приложение, их пишут и на С++, и на джаве, и на JS, сюрприз ! Работает внутри операционной системы. Пользуется правами которые ему дали при регистрации.
С>А причём тут JS и замена апплетов?
Вот бы узнать, почему тебе мерещится код в браузере ? Я как раз говорю о решении, которое не требует никакого кода в браузере.