1. JavaScript / Говнокод #25187

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    коммит на гитхабе:
    https://github.com/nativescript-vue/nativescript-vue.org/commit/f964457a5e4944864485c7194b0b5d850f8edb67
    русская документация:
    https://nativescript-vue.org/ru/docs/routing/manual-routing/#navigateto
    английская документация:
    https://nativescript-vue.org/en/docs/routing/manual-routing/#passing-props-to-the-modal
    
    угадайте, какой вариант передачи пропсов рабочий ?

    #SEO документация, JS.

    Запостил: хуита, 13 Декабря 2018

    Комментарии (52) RSS

    • Анус у тебя рабочий.
      Ответить
    • Люди, делающие нативные приложения на js, заслуживают любую форму саботажа их рабочего процесса.
      Ответить
      • Расскажи на чём быстро делать приложения сразу под гейфон и ведро?
        ключевые слова тут "быстро" и "сразу".
        Ответить
        • Статья в тему https://daringfireball.net/2018/12/electron_and_the_decline_of_native_apps
          > Расскажи на чём быстро делать приложения сразу под гейфон и ведро?
          Нативные приложения разрабатываются с оглядкой на аппаратное обеспечение, общепринятые практики в UI и UX выбранной платформы. "Кроссплатформенный" UI - это компромисс, который убог на всех платформах
          > ключевые слова тут "быстро" и "сразу"
          Я слышал, что приложения разрабатывают для клиентов, которые будут их использовать, а не для программистов, которые их напишут. "Быстро" и "сразу" - принципы говнопроектов на фрилансе/говностартапов, которые по дефолту мало кому интересны. Поделки на электроне и иже с ними, которые по какому-то недоразумению стали популярны - приносят боль и пользователям, и программистам.
          А по теме - мой клиентский js по умолчанию отключен на любых мобильных платформах, поэтому не знаю. Flutter, React Native, Nativescript - разрабатывай на чем хочешь, ничего против не имею.
          My point - твои проблемы при разработке - лишь слабая моральная компенсация проблем будущих пользователей и разработчиков, которые это говно должны будут поддерживать.
          Ответить
          • >> Расскажи на чём быстро делать приложения сразу под гейфон и ведро?
            На C#
            Ответить
        • Qt же.
          >"быстро"
          У них фреймворк так и называется - "QtQuick"
          Ответить
      • >> нативные

        Зашёл на https://www.nativescript.org/
        сразу на пороге меня встретила такая картинка:
        https://d2odgkulk9w7if.cloudfront.net/images/default-source/home/header-graphic-hp-min.png

        Из картинки следует, что на Андроиде они используют V8, а на iOS — JavaScriptCore. То есть эта штука по сути не отличается от сайта в веб-браузере?
        Ответить
    • > Want to release that app you've been dreaming about without the hassle of learning new languages? NativeScript-Vue is the right choice for you!

      А что если JavaScript для меня явлется new language? Или по мнению авторов этого говна, жабаскрипт обязаны знать вообще все программисты?
      Ответить
      • тогда и апликухи для мобилочек возможно не твое
        Ответить
        • А какое отношение апликухи для мобилочек имеют к жабаскрипту? В андроидных телефонах вообще-то Java
          Ответить
          • в Symbian с++, еще гдето может быть эзотерика какаято аля Swift или Objective-C. И каждая макака будет хвалить свое болото

            Нативный джаваскрипт позволит хоть както стандартизировать эти джунгли
            Ответить
            • А разве под Symbian есть актуальные браузеры, где всё это жабаскриптовое говно с Vue заработает?
              Ответить
          • https://github.com/NativeScript/NativeScript эта пара даёт возможность юзать ЖС парашу в ведре/гейфоне
            Ответить
          • Во-первых в андроидных телефонах JVM нету. И не было никогда.
            А язык там официальный уже Kotlin, но можно писать на java.

            Во-вторых React Native (от FB) позволяет делать кросс-платформенные приложения на JS.
            Это мерзко конечно, но писать на java/kotlin один раз, а потом тоже самое на swift/objc это еще хуже.

            Можа взять Xamarin и писать всё на C#, это лучше
            Ответить
            • 1. Перечитал всю ветку. Не нашёл ни одного упоминания "JVM".

              "Java" может существовать не только на "Sun JVM" (ты ведь её имел в виду?), но и на других виртуальных машинах, а также вообще кокококонпелироваться в нативный кококод (gcj, например).

              2. "Кококококотлин" анонсировали в качестве официального языка для "Андроида" не так давно (в 2017 году).

              >> Можа взять Xamarin и писать всё на C#, это лучше

              Это лучше богомерзкого JS.

              Ещё, вероятно, можно перейти на Haxep.
              Ответить
              • >>Не нашёл ни одного упоминания "JVM".
                Это был ответ на "В андроидных телефонах вообще-то Java".

                >>"Java" может существовать не только на "Sun JVM" (ты ведь её имел в виду?),

                Нет, я имел ввиду что ART это не Java. Я постоянно слышу как ART называют джавой и у меня от этого глаз дергается.

                На андроиде джавы нет. Ни компилятора, ни виртуальной машины.

                Есть транслятор .class файлов в код под ART. И он запускается на машине разработчика.

                >> не так давно (в 2017 году).
                да.

                >>Это лучше богомерзкого JS.
                Безусловно. C# вообще няшный. А уж по сравнению с JS-то.

                Вообще я не знаю какие могут быть причины для писания на JS кроме незнания никакого другого языка.

                >>Haxep
                Вообще говоря мобильные разработки они почти как веб, такие же малоприятные.
                Так что про хер ты прав.
                Но вот Haxe я не пробовал, надо позырять

                Вербозненький конечно, но зато со стат тупизацией и нормальным синтаксисом укакаказания типа
                Ответить
                • > на андроиде джавы нет
                  Что мешает её туда поставить?
                  Ответить
                  • ну наверное нужно рутнуть сначала?
                    Ответить
                    • Нахуя джаве рут? На десктопе же как-то работает от юзера.
                      Ответить
                      • рут нужен чтобы поставить нативное приложение. Или его и так можно поставить? Скопелировать попенжыдыка под конкретный проц и версию одроид и залить по USB?
                        Ответить
                        • Тупо приложить в apk вроде можно.
                          Ответить
                          • В apk можно вложить нативную so-библиотеку.
                            Ответить
                            • Бинарь разве нельзя? Хотя на линуксе бинарь с динамической линковкой почти ничем не отличается от библиотеки...
                              Ответить
                        • В самом крайнем случае можно приложить JVM в виде so и пнуть джаву(!) через "JNI"(!). Это 100% должно прокатить.

                          З.Ы. Кстати, а как они переименовали JNI чтобы в нём не было упоминаний о джаве?
                          Ответить
                          • Гугли NDK — native development kit.

                            https://developer.android.com/ndk/guides/
                            Ответить
                            • Ну ты реально думаешь, что я про JNI не знал?

                              Вопрос в том, можно ли приложить бинарь в APK и запустить его из "джавы".

                              Собрать его само собой можно, я так себе sudo конпелял чтобы непонятные руткиты не ставить.
                              Ответить
                              • связять /bin/java с кафе бэбе в https://en.wikipedia.org/wiki/Binfmt_misc
                                Ответить
                                • Ну зачем в /bin то? Я всего лишь имел в виду написать прогу на джаве и приложить её в APK вместе с JVM и ланчером на "джаве"... А API операционки дёргать через джвойное JNI. Для этого права не нужны.
                                  Ответить
                        • Рут нужен, чтобы поставить нативное приложение в директорию /bin

                          Можно без рута через рекавери, если у тебя есть ключ разработчика для подписывания файла update.zip (фантастическое условие). Можно и без подписи, если у клиента не нормальное меню рекавери, а CWM/TWRP, в котором можно выключить проверку подписи.
                          Ответить
                          • Ноэто же какаято жопоебля
                            Зачем это нужно делать?
                            Ответить
                            • А как ещё ты обновишь busybox? Многие производители мобилок ставят урезанный, в котором половина команд отсутствует.

                              Или ты критикуешь рахитинктуру Андроида? На это тоже есть причины: если бы нативные экзешники ставились в один клик, вирусов было бы как на Винде.
                              Ответить
                              • ах, ну если ты такой крутой что тебе терминал нужен то да

                                у меня вот вротутере тоже бизябокс, там у ps два ключа примерно, и ничо. Как-то живу
                                Ответить
                • Джавы нет, но вы держитесь.
                  Ответить
                • >> Нет, я имел ввиду что ART это не Java.
                  >> Есть транслятор .class файлов в код под ART.

                  Пожалуй, придётся согласиться. На Андроиде есть какая-то своя хрень с классами и с библиотекой, а из какого языка кококонпелировать (из Java, из Кокококотлина или ещё из какого-нибудь) — это забота разработчика.

                  ART и доживающая свой век машина Dalvik — регистровые, а Sun JVM — стековая (как и CLR, кстати). То есть даже рахитинктура несовместимая.

                  Можно было бы сказать, что и на J2ME никакококой Java нет (на телефоне коконпеляторов не было, а у разработчиков кроме javac ещё были MIDlet Pascal, Canterbury Modula-2 и прочие кококонпеляторы с других языков), но не получается, потому что J2ME частично совместима с J2SE. Так?

                  >> Вообще я не знаю какие могут быть причины для писания на JS кроме незнания никакого другого языка.

                  Отсутствие кококонпеляции. Именно поэтому я за "PHP".

                  А ещё куча говна в "npm". Помнишь, как дельфятники вместо того, чтобы писать кококод, гуглили готовые кокококомпоненты?
                  Ответить
                  • >> J2ME частично совместима с J2SE
                    Вроде бы там были профили (profiles), и таки да: местами соместимы

                    Для мобилок MIDlet
                    Для браузера Applet
                    Для бекенда Servlet

                    Жаль, что ипохуй J2ME ушла безвозвратно 10 лет назад.

                    >>Отсутствие кококонпеляции
                    как что-то хорошее

                    >>Помнишь, как дельфятники
                    анекдот_про_пустыню_и_льва.txt? Конечно помню:)

                    А еще я помню как офигел когда узнал про CPAN, и был поражен тем что перловики не пишут с нуля хуйню и не гуглят нужную либу, а тупо берут ее из предтечи npm -- системы CPAN
                    Ответить
                • >> На андроиде джавы нет.

                  Полез читать документацию по NDK. Встретил там упоминание JNI:
                  https://developer.android.com/training/articles/perf-jni

                  Как же так, Марьиванна, жопа есть, а слова нет?
                  Ответить
                • > Нет, я имел ввиду что ART это не Java. Я постоянно слышу как ART называют джавой и у меня от этого глаз дергается.

                  > На андроиде джавы нет. Ни компилятора, ни виртуальной машины.

                  Речь вроде идет про язык программирования, а не про то, через какую жопу оно там выполняется на конечном устройстве. Вот есть например emscripten - там сишку и плюсы можно компилировать в жабаскрипт и запускать эту хуйню потом в браузере. Хочешь сказать, что если я пишу код на Си и потом компилирую его в жабаскрипт, то это не Си?

                  Или вот если взять какой-нибудь дохлый 8-битный микроконтроллер - в него например не выйдет запихнуть некоторую фигню, которая в стандарте Си описана (типа каких-нибудь https://en.cppreference.com/w/c/thread ) - так что теперь, это уже не Си? А если я на контроллере реализовал интерпретатор брейнфака, и реализовал компилятор из Си в брейнфак и потом в микроконтроллер с интерпретатором брейнфака заливаю откомпилированную из Си в брейнфак хуйню, то это не Си?
                  Ответить
                  • >>Речь вроде идет про язык программирования
                    Языка программирования там тоже такого нет.

                    Ты пишешь на любом языке который компилируется под JVM, а оттуда он компилируется в код под ART.

                    Стандартным языком является Kotlin, но ничто не мешает тебе написать компилятор OCaml под JVM и оттуда в ART, и сказать что на андроиде у тебя OCaml.

                    >>Хочешь сказать, что если я пишу код на Си и потом компилирую его в жабаскрипт, то это не Си?

                    Си, но никто же не говорит что в браузере у тебя си, верно?
                    Ответить
                    • Kotlin стал стандартным года полтора назад. Вряд ли основную массу приложений успели переписать на него, ибо совершенномудрый, совершая дела, предпочитает недеяние.
                      Ответить
                    • > Ты пишешь на любом языке который компилируется под JVM, а оттуда он компилируется в код под ART.

                      Но ведь и под HotSpot JVM (JVM расшифровывается как Java Virtual Machine) можно не на Java писать. Так что ж тогда получается, в официальной и основной JVM от оракла тоже нет никакой джавы? А где она вообще есть?
                      Ответить
                    • > Си, но никто же не говорит что в браузере у тебя си, верно?

                      Кстати, меня ведь и в процессоре никакого Си нет, в процессоре только машинный код исполняется.
                      Ответить
                      • Ну да, такова судьба конпеляторов. То ли дело "PHP".
                        Ответить
                    • >> Ты пишешь на любом языке который компилируется под JVM, а оттуда он компилируется в код под ART.

                      Можно получить код под ART, минуя байткод JVM?
                      Ответить
                      • > Можно получить код под ART, минуя байткод JVM?

                        https://en.wikipedia.org/wiki/Android_Runtime

                        > Android Runtime (ART) is an application runtime environment used by the Android operating system. Replacing Dalvik, the process virtual machine originally used by Android, ART performs the translation of the application's bytecode into native instructions that are later executed by the device's runtime environment

                        > Unlike Dalvik, ART introduces the use of ahead-of-time (AOT) compilation by compiling entire applications into native machine code upon their installation.

                        Ну если транслируется в native instruction, то естественно можно. Например на ассемблере каком-нибудь.
                        Ответить
                        • Хотя если верить этому https://source.android.com/devices/tech/dalvik

                          > At install time, ART compiles apps using the on-device dex2oat tool. This utility accepts DEX files as input and generates a compiled app executable for the target device. The utility should be able to compile all valid DEX files without difficulty. However, some post-processing tools produce invalid files that may be tolerated by Dalvik but cannot be compiled by ART. For more information, see Addressing Garbage Collection Issues.

                          трансляция в машинный код происходит на этапе установки в андроид, а не на этапе сборки APK. Выходит, все же надо чтоб был DEX bytecode. Ну на нем тоже можно программировать и компилировать в него, минуя байт-код Java

                          https://xakep.ru/2014/07/03/art-vm/ еще вот
                          Ответить
                          • Представляешь, какой маразм? Чтобы установить приложение на систему с ART, нужно сначала получить dex-файл для Dalvik (именно такой лежит в apk-файле).

                            Стандартный способ получения dex-файла — кросскомпиляция байткода JVM посредством утилиты dx.jar, хотя гипотетически не исключены и другие способы.

                            Кстати, существует программа dex2jar для проворачивания фарша назад и восстанавливания мяса из котлет.

                            А ещё посмотрим официальные™ примеры исходных текстов приложений Андроида:
                            https://developer.android.com/samples/

                            Немножко на Кокококотлине, остальные на Java. Ну ещё совсем немножко на C++, написанных с использованием... JNI NDK.
                            Ответить
                            • P.S. Нагуглил, что проект dot42 умел генерировать dex из кода на C#. Найти рабочий сайт этого проекта не смог. Хотя вроде это оно:
                              https://github.com/dot42/dot42
                              Ответить
                              • Тут вот что интересно: Dalvik — регистровая машина (как и LLVM). Sun JVM и Microsoft CLR — стековые машины. Логичнее было бы генерировать dex-файл каким-нибудь шлангом или gcc.
                                Ответить
                              • > dot42 умел генерировать dex из кода на C#.

                                Не из кода C# а из дотнетовского байткода Common Intermediate Language (CIL, ранее назывался Microsoft Intermediate Language - MSIL):

                                https://habr.com/post/168689/
                                > Признаюсь, я немного слукавил, сказав, что компилятор dot42 «убирает» IL-код. Это не совсем так. Вместо этого он читает IL-код и конвертирует его в новый язык Register Language или, если короче, RL. Главная разница между IL и RL в том, что IL-код работает на стековой модели выполнения (как и байт-код у Java), а RL-код на регистровой, так же как Dalvik. После получения RL-кода, dot42 производит ряд оптимизаций и наступает этап финальной компиляции. Именно после последнего этапа и получается dex-код, язык среды Dalvik. В чем отличие RL от Dex написано в самом первом посте в блоге разработчиков.
                                Ответить
                                • Значит, им можно получить dex из кода на любом языке, который компилируется в IL. Это хорошо. Интересно, как обстоят дела с библиотеками (в дотнетовских компиляторах стандартные библиотеки ссылаются на всякую мелкософтовскую питушню, так что библиотеки придётся заменять).

                                  А ещё какие-нибудь компиляторы в dex существуют?
                                  Ответить

    Добавить комментарий