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

    +8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Для кульминации ебаных тендеций ебаных информационных технологий,
    предлагаю выпустить новые процессоры интел со встроенным джаваскриптом.
    Никакого больше ассемблера, никаких ядер, драйверов, ничего не нужно, на
    каждом процессоре будет встроенный хардварный веб-сервер с нодежс,
    общение с видеокартой, памятью, периферией будет только с помощью
    API-вызовов, теперь каждый альтернативно интеллектуальный 
    жаваскрипт-разработчик сможет почувствовать себя системным программистом

    Запостил: j123123, 22 Октября 2017

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

    • http://amperka.ru/product/iskra-js
      Ответить
      • Интересно, как быстро JS сжирает 192КБ оперативки?
        Ответить
        • А как замерить, давайте замерим, сколько надо памяти, чтобы на жс консоле.лог хело ворлд.
          Сам движок считается? Тогда наверное и хело ворлд больше 192кб поест. Или как. Как это вообще от браузера отдельно посчитать?
          Ответить
      • Там же кастрированный ЖС, синтаксический сахар к кастрированной же няшной. Не шить же контроллер жсом.
        Ответить
        • Судя по доке - шьёт жс на флешку прямо текстом (после склеивания модулей в один и минификации, само собой) и даже js консольку даёт.
          Ответить
          • Программист убежал от вездесущенго джаваскрипта в бекенд, но там его настиг nodejs.

            программист убежал в десктоп, но там его настиг atom и react native.

            Программист убежал в лоулевел и хочет писать фирмвари, но и оттуда торчат мерзкие function(function()){} и говорят: "я до тебя доберусь"
            Ответить
            • Консервы, однако, боюсь открывать. (из анекдота)
              Ответить
            • Наткнулся на такое видео, и вспомнил этот тред.
              https://youtu.be/Bl0mH8Jxh0M
              Похоже, стараниями мелкомягких, js с самого начала был не веб-языком, а всем, чем угодно.
              Ответить
          • > текстом
            Я думал всё-таки компилируется, это ты где прочитал?

            А кто выполняет? Типа на процессоре крутится маленький интерпретатор, а ты ему только файл на вход даешь?
            Ответить
            • Да, там в начале флешки интерпретатор шьется, а потом код. Погугли espruino.
              Ответить
              • А в самом процессоре небось тоже интерпретатор его ISA, написанный на микрокодах, как в x86?;)
                Ответить
                • А вот х.з... С одной стороны у ARM'ов есть подозрительные инструкции STM и LDM, которые 15(!) регистров могут поюзать. Но остальные вроде все простые, так что может быть только для тех джвух костыль воткнули.
                  Ответить
                  • да бля -_______-
                    Ответить
                    • Я люблю обмазаться лоу-левел трепом просто:)

                      Когда у тебя на работе webpack то так хочется поговорить про то, что хранится в регистре GS в защищенном режиме
                      Ответить
                      • А у тебя всётаки на работе webpack или регистры?
                        Ответить
        • А вообще, там 32-битный проц на 168МГц с полноценным DMA почти для всего обвеса. Походу оно и с js на борту порвёт ардуину в клочья. Даже по времени отклика.
          Ответить
          • >>с полноценным DMA
            Разве современные "шины" бывают без DMA (ну кроме всякой мелочи типа LPC)?

            DMA же это фича устройства иниццировать транзакции в память и к другим устройствам без помощи CPU, верно?
            Ответить
            • > бывают без DMA
              Ну вот та же ATMega, на которой сделана ардуинка, не умеет в DMA. Там всё процом по прерываниям перекладывать надо. И i/o буфера на 1-2 байта, чтобы жизнь мёдом не казалась.

              > иниццировать транзакции
              Инициирование транзакций - это уже bus mastering. У этой STM'ки настоящий bus master разве что у USB, ETH, видюхи да контроллера DMA (см. ниже).

              А для остальной периферии, которой сильно большая полоса не нужна (DAC, ADC, UART'ы и т.п.) схема попроще - контроллер DMA ловит сигналы от неё и перекладывает байтики куда нужно.
              Ответить
              • а что значит "ловит сигналы"?

                Я помню что в x86 был DMA который надо было программировать, и устройство тоже надо было программировать. Оно выставляло данные на шину, а DMA клал их в память, а по завершении дергал прерывание.

                Тут так же?
                Ответить
                • Да, примерно так же, только круче. Настраиваешь канал у DMA (откуда брать, куда кидать, размер, приоритет на шине, по какому ивенту надо кидать и т.п.). И дальше он сам будет ждать ивента от устройства (или таймера), кидать запросы к устройству/памяти и дёргать процу прерывание когда закончит (или когда до середины буфера дойдёт, чтобы проц успел не торопясь досыпать данных в буфер).

                  А проц в это время лениво крутит свою прошивку на js :)
                  Ответить
                  • Да, в ISA тоже был DMA с каналом (несколько их было вроде), только вот приоритета там вроде бы не было..
                    Ответить
                    • Ну дык IBM PC и не позиционировали как систему для реалтайма...
                      Ответить
                      • Да понятно. Там же изначально вообще одна шына была на всё про всё: и на ней сидели и CPU и DRAM Controller и FDC и всё остальное. И вроде бы даже ISA она не называлась, а просто "system bus"
                        Ответить
                        • К слову, у STM'ки, которую въебали на эту платку для любителей js, вместо единой шины стоит коммутатор ("bus matrix"), через который несколько мастеров одновременно могут юзать слейвов на разных шинах (к примеру, проц читает код с флешки, пишет данные в один блок памяти, USB отправляет пакет из другого блока памяти, а DMA читает данные с какого-нибудь акселерометра).
                          Ответить
                          • Не понял про блоки памяти. Как можно ОДНОВРЕМЕННО что-то писать или читать в память? Контроллер памяти там один (ну не numa же)?

                            Я понимаю как CPU может писать в память, а одна карта по PCI-Express может слать что-то в другую карту, или как расположенный в ICH USB может слать что-то процу в регистр по DMI.

                            А в память как?
                            Ответить
                            • Там просто эти 192Кб разбиты на несколько независимых блоков (2 или 3, не помню). Ну и на каждый от bus matrix идёт своя шина.

                              Плюс ещё одна уходит на FSMC (контроллер внешней памяти, если встроенной не хватило).
                              Ответить
                              • Ох, блин, а я думал у x86 сложная архитектура.

                                А как программист выбирает куда писать? Там номер блока как-то выводится из адреса?

                                Воображаю какие там бывают оптимизации в духе покойного Криса, когда последовательная запись работает медленее, чем запись с дырками потому что надо попасть в разные блоки
                                Ответить
                            • З.Ы. Вообще говоря есть и джвухпортовая память, которую реально 2 мастера одновременно могут юзать, но для таких контроллеров она дороговата, да и не нужна.

                              А вот в той же циклоняшке вся встроенная память как true dual port может работать...
                              Ответить
                              • Двухпортовая память это как Саша Грей?

                                Я знаю что есть такая статическая память (вроде бы кеш бывает такой), а как это доджно выглядеть для SDRAM я не знаю.

                                Хотя в таких крохах наверное динамики и нет
                                Ответить
                                • Статика, конечно. На такие объемы динамика ещё невыгодна.

                                  > Саша Грей
                                  Ага, причём каждый порт может работать на своей частоте и тогда есть аппаратный UB если запросы к одному адресу пересекутся...
                                  Ответить
                                  • Кстати, когда уже совсем избавятся от динамики?
                                    Она же самое медленное звено сейчас. Есть даже такое выржение "RAM is the new disk"
                                    Ответить
                                    • > самое медленное
                                      И при этом очень дешёвое и масштабируемое. Что-то компактнее сеточки из одного транзистора-кондёра ещё не скоро придумают... А требования софта к памяти останавливаться пока не собираются.
                                      Ответить
    • Даёшь написание дров исключительно на джаваскрипте!

      Не, ну а чо питонистам на этих ваших линухах можно, а жабаскриптерам - низзя в системное
      Ответить
    • был бы язык а компилятор в машинный код найдется
      Ответить
    • "Для кульминации ебаных тендеций ебаных информационных технологий, предлагаю выпустить новые процессоры интел со встроенным джаваскриптом."

      пых популярней, и число потенциальных приложений больше. "шутка."

      ЗЫ а вы в курсе что есть процы с поддержкой "Java acceleration": они умеют суб-сет жабного байткода исполнять нативно в проце.
      Ответить
      • Да, мы в курсе.
        Ответить
        • https://gergo.erdi.hu/blog/2013-01-19-a_brainfuck_cpu_in_fpga/

          https://github.com/Ttl/bf_cpu
          Ответить
      • А я еще знаю слово PicoJava
        Ответить
        • давно этого слова не слышал. как и сановского MAJC.

          про Jazelle только недавно услышал - давно после того как его поддержку ARM убил. (ARM всех теперь пересаживает на ThumbEE - спец расширение для глупого, JIT-генереного кода.)
          Ответить
    • Да ну, нормальный язык. Туда уже почти что завезли модульность и депенденсы, скоро завезут нормальный ООП, лет через пять прикрутят статическую типизацию, лет через двадцать станет не хуже чем c# 2.0
      Ответить
      • # модульность

        Почему меня тошнит от этого слова?
        Ответить
        • Наверное потому что ты не любишь переиспользовать готовые компоненты.
          Это же скучно и уныло. Лучше всё всегда писать с ноля.
          Ответить
          • # Лучше всё всегда писать с ноля

            Если нет библиотеки от Майкрософт, то лучше написать с нуля
            Ответить
        • Потому что ты пишешь хеловорлды на дельфи.
          Ответить
          • Как в дельфи с модульностью, кстати?
            там можно как в поскале
            uses [mymodule]?
            Ответить
            • В Standard Pascal, кстати, модулей не было. Они появились в Турбо Паскале (начиная с версии 4.0). Идея позаимствована у Модулы-2 (только там вместо unit и uses были слова module и import).

              ООП в Standard Pascal тоже не было, оно появилось в Turbo Pascal 5.5. Идея ООП позаимствована у... Apple Object Pascal (который, в свою очередь мог позаимствовать её у Модулы-3, у Оберона или у языка Ада).

              Теперь угадайте с одного раза, на что похож синтаксис Delphi, если внутреннее название ЯП — Object Pascal.
              Ответить
              • внутреннее название ЯП — Object Pascal, а вендор его был Борланд) Да понятно что там тоже самое всё.

                Кстати, на счет названия там были терки. Кто-то гвоорил что дельфи это IDE, а ЯП Object Pascal.
                А кто-то что и языке уже тоже delphi.
                Ответить
                • Консольный компилятор Delphi 1.0 выводил шапку: «Turbo Pascal 8.0». Возможно выглядит смешно, но этот компилятор определял макрос VER80, Delphi 2.0 — макрос VER90, Delphi 3.0 — макрос VER100 и т. д. Т. е. внутренняя нумерация версий продолжила нумерацию Турбо Паскаля.

                  Почти как в MS Visual Studio, где есть внутренняя версия SDK, внутренняя версия студии и внутренняя версия компилятора, продолжающая нумерацию Visual C/C++.
                  Ответить
                • Идея для научной фантастики: описать, как выглядит альтернативная вселенная, в которой компания Apple не отказалась от Object Pascal в пользу Objective-C.
                  Ответить
                  • Не так уж и плоха была бы вселенная где паскаль победил си.
                    И где скриптовые ЯПы не вышли за пределы небольших (на один экран) скриптиков которые пишут сис-админы чтобы парсить логи.
                    И где все операционки имеют огромный кусок одинакового функционала (как posix).
                    И где в продакшене многие люди пишут на хаскеле
                    Ответить
                    • И на чем мне тогда писать убийцу фейсбука? На фортране?
                      Ответить
                      • Если выбирать между всеми существующими ныне языками для написания гигантской вебхуйни я бы выбрал, вероятно, языки под JVM.
                        Жабу или котлин, и скрипты на groovy.

                        Тяжелые части написал бы на сях конечно и соединил бы через IPC
                        Ответить
                        • А я бы сиплюплюс. При всей своей уебищности это самый совершенный язык на данный момент.
                          Ответить
                          • Всё-всё-всё, включая веб морду? Ну там обработку и валидацию форм, например?

                            Тяжелые вещи точно надо на сях (или крестах) писать, это вроде бы везде так делают.

                            Ну кроме того я в крестах не очень копенгаген, а на обычной сишечке может получиться много буков очень, если всё на ней писать.

                            С другой стороны можно взять сишечку плюс шаблонизатор типа php, гг)
                            Ответить
    • JS будет нативным, html будет командами графического терминала, то есть языком для общения с аппаратурой, много аппаратных ускорителей/asic для всего в вебе, включая CSS и DOM. Web asm будет компилироваться в понятный процессору вид, JS.
      Http станет уровнем сети osi, маршрутизаторы будут работать на уровне http. Все соединения будут через http.
      Html тоже станет уровнем osi, но я не пытаюсь особенно объяснить, каким образом язык разметки может оказаться в таком качестве. Потому что сам не слишком понимаю. Придётся принять это.
      Самой популярной ОС будет электрон.
      Устройства будут иметь url, драйвера будут общаться с ними довольно часто тоже по http. Адресация глобальная, при ошибке возможно обращение к устройству другого компьютера, но грань между pci/usb и сетью почти сотрется.
      Впрочем, обычно умные устройства, такие как жесткий диск, будут иметь свой веб-сервер. Диски будут выбирать в том числе по файловому менеджеру, который крутится на нем и доступен по веб. Обычно для доступа к файлам будет использоваться именно он.
      Компьютер будут называть браузером.
      Visual studio code будет самым популярным языком программирования.
      Ответить
      • Пожалуйста, помечайте вореции тегом #вореции.
        Ответить
        • Но это не вореции...

          Диски с веб-интерфейсом уже есть. Софта под ОС Электрон всё больше и больше с каждым годом.
          Ответить
        • Он здесь write-only.
          Ответить
      • Ура!
        Ответить
        • на всякий случай напомню, что джава скрипт самый кривой и самый нелогичный язык не считая ПХП
          Ответить
      • я тогда изучу макраме, и буду им зарабатывать на жизнь, пушо в пизду такое програрммирование
        Ответить

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