Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Язык для начинающих

2959  1 2 3 4 5 все
Murr патриот21.10.19 10:06
Murr
NEW 21.10.19 10:06 
в ответ daduda 20.10.19 21:06

Если бы JS был бы интерпретируемым

------

Если бы он не был интерпретируемым - ты бы уперся в ограничения ХТТП-протокола...

#41 
Wand3rvogel завсегдатай21.10.19 11:18
NEW 21.10.19 11:18 
в ответ Murr 21.10.19 10:02
ибо браузеры никаких других языков не понимают.
------
Вполне себе понимают.

Кстати, Blazor уже практически GA.

#42 
daduda местный житель21.10.19 13:17
NEW 21.10.19 13:17 
в ответ koder 21.10.19 06:34

еще раз: современный яваскрипт проходит дважды КОМПИЛЯЦИЮ: вебпаком (с дополнительной компиляцией бабелем в браузеро-понимаемый яваскрипт) и компиляция уже в браузере движком В8 в машкод.

На входе этого тулчейна поставляется некий новый ЯваСкрипт (смесь Vanilla JS/TypeScript/flow ), который вообше говоря не понимается браузером в старом смысле этого слова

#43 
daduda местный житель21.10.19 13:18
NEW 21.10.19 13:18 
в ответ Murr 21.10.19 10:06

lolwhat?

#44 
koder патриот21.10.19 16:03
koder
NEW 21.10.19 16:03 
в ответ daduda 21.10.19 13:17, Последний раз изменено 21.10.19 16:05 (koder)
вебпаком (с дополнительной компиляцией бабелем в браузеро-понимаемый яваскрипт)

https://ru.wikipedia.org/wiki/Комп�%...

Компиля́ция — сборка программы, включающая трансляцию.......в эквивалентные программные модули на низкоуровневом языке, близком машинному коду (......) или непосредственно на машинном языке


Нa выходе вебпака действительно получается машинный код?


На входе этого тулчейна поставляется некий новый ЯваСкрипт

Нет никакого нового яваскрипта. Есть просто яваскрипт.И eсть например постскрипт и это ни разу не яваскрипт. Вообще. Именно поэтому на нем можно программировать и программируют. И именно поэтому его не понимают браузеры. И есть тулы, транслирующие этот язык в яваскрипт. А на яваскрипте писать жопа.


#45 
Murr патриот21.10.19 16:11
Murr
NEW 21.10.19 16:11 
в ответ daduda 21.10.19 13:18

Для тебя - слишком сложно...

#46 
daduda местный житель21.10.19 16:43
NEW 21.10.19 16:43 
в ответ koder 21.10.19 16:03
webpack is used to compile JavaScript modules
Babel is a JavaScript compiler


Термины заимствованны непосредственно у производителя


А теперь читаем нормальную викидипедию:

A compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).



А на яваскрипте писать жопа.

По тебе видно, раз ты его до сих пор считаешь ИНТЕРПРЕТИРУЕМЫМ.

#47 
Срыв покровов коренной житель21.10.19 18:18
NEW 21.10.19 18:18 
в ответ daduda 21.10.19 16:43
Babel is a JavaScript compiler
Babel is a free and open-source JavaScript compiler that is mainly used to convert ECMAScript 2015+ (ES6+) code into a backwards compatible version of JavaScript
webpack is used to compile JavaScript modules
Webpack is an open-source JavaScript module bundler
#48 
daduda местный житель21.10.19 20:26
NEW 21.10.19 20:26 
в ответ Срыв покровов 21.10.19 18:18

И? Бандлер вебпак компилирует, компилятор бабель компилирует. V8 компилирует наивный для браузера или сервера js в машкод. Что не так? Js давно стал компилируемым

#49 
daduda местный житель21.10.19 20:48
NEW 21.10.19 20:48 
в ответ koder 21.10.19 16:03
Нa выходе вебпака действительно получается машинный код?


Вы прочитали неверное определение компилятора. Он компилирует из одного языка в другой. Целевой язык не обязан быть машинным.


И да, v8 таки компилирует в машкод.


Кроме того, компиляция происходит и бабелем.


Нет никакого нового яваскрипта.


Есть. Это новые редакции ecmascript. Но они напрямую большинством браузеров не поддерживаются. И поэтому код должен компилироваться в тот js, который сможет исполнить браузер.


С точки зрения программиста ему будет казаться, что он пишет на новой версии javaScript.

#50 
koder патриот22.10.19 09:24
koder
NEW 22.10.19 09:24 
в ответ daduda 21.10.19 16:43, Последний раз изменено 22.10.19 09:29 (koder)
По тебе видно, раз ты его до сих пор считаешь ИНТЕРПРЕТИРУЕМЫМ.

Ну по мне не видно. Хотя бы по тому, что мне наплевать, интерпретируемый язык или компилированный. Но тут вопрос. Вы пишите НЕ на ява-скрипте. А на другом языке, который вы транслируете (упс, сорры, компилируетеулыб) в яву-скрипт. Зачем такая жопа? Почему сразу не пишете на ява-скрипте?


Нет никакого нового яваскрипта.
Есть. Это новые редакции ecmascript. Но они

Ага. Есть такой ява-скрипт, который на самом деле не ява скрипт а ecmascript, который все таки не ява скрипт, потому что его приходится все таки переводить (сорры компилироватьулыб) в ява -скрипт.


А у вас не скучно

#51 
Murr патриот22.10.19 12:27
Murr
NEW 22.10.19 12:27 
в ответ daduda 21.10.19 20:48

таки компилирует в машкод

-----

Поясни, плс, доставку машкода в браузер.

Специально и отдельно поясни совместимость с ХТТП(С)...


Чтобы было понятно - HTTP - Hypertext Transfer Protocol - протокол передачи ТЕКСТА с разметкой.


Целевой язык не обязан быть машинным.

-----

Нее, не обязан. Но он обязан быть другим языком.

Для случая когда язык остается тем же термин компилятор/компиляция заменяется на компрессор/компрессия/сжатие/обфускация...

В случае с жабьимскриптом - используется куча компрессоров - язык остается тем же, доставляется на клиента/браузер в виде текста и интерпретируется по местu...

#52 
Simple Nothing is f*cked22.10.19 15:48
Simple
NEW 22.10.19 15:48 
в ответ koder 19.10.19 23:18

JDownloader, Audacity - отлично работают.

IntelliJ IDEA - вообще без каментов.

#53 
koder патриот22.10.19 16:45
koder
NEW 22.10.19 16:45 
в ответ Simple 22.10.19 15:48
JDownloader, Audacity - отлично работают

Но все таки довольно страшненькие. А функтионалитет он и в африке функтионалитет

IntelliJ IDEA - вообще без каментов.

А вот это я не знал. А на какой графической библиотеке написана IntelliJ IDEA?

#54 
AlexNek патриот22.10.19 17:48
AlexNek
NEW 22.10.19 17:48 
в ответ koder 22.10.19 16:45
А на какой графической библиотеке написана IntelliJ IDEA?

Ищите...


https://github.com/JetBrains/intellij-community

#55 
daduda местный житель22.10.19 18:20
NEW 22.10.19 18:20 
в ответ Murr 22.10.19 12:27

Вы знаете как работает современный веб?


По http передаётся минифицированный js bundle, который оптимизирован для передачи по сетям. И который движок v8 или аналогичные движки других браузеров смогут скомпилировать в маш код. На стороне браузера.


Без этого у вас Google Maps, Google Mail и прочие тяжелрвесные приложения вряд ли бы нормально работал бы. Скорее всего юзер бы ничего не увидел бы.

#56 
daduda местный житель22.10.19 19:40
NEW 22.10.19 19:40 
в ответ koder 22.10.19 09:24
Зачем такая жопа? Почему сразу не пишете на ява-скрипте?

Затем, что EcmaScript учитывает потребности современных программистов современного веба.


Надоела ёлочка колбеков? На вам async await. И не нужно тащить сторонние либы.


Хочешь нормального ООП с Class? Пожалуйста.


Только вот браузеры не торопятся реализовать это. Поэтому и нам приходится компилировать ESXX в поддерживаемый браузером JS

#57 
daduda местный житель22.10.19 20:56
NEW 22.10.19 20:56 
в ответ koder 20.10.19 19:31

JavaScript попал в список компилируемых языков:

https://en.m.wikipedia.org/wiki/Compiled_language


#58 
koder патриот23.10.19 08:24
koder
NEW 23.10.19 08:24 
в ответ daduda 22.10.19 19:40, Последний раз изменено 23.10.19 08:25 (koder)

Затем, что EcmaScript учитывает потребности современных программистов современного веба.
Поэтому и нам приходится компилировать ESXX в поддерживаемый браузером JS
JS это язык. С конкретным синтаксисом, с конкретными конструкциями. Библиотеки это не язык. Это сборник функций. То же самое и фрэймворк. Вы не пишете какой то функционалитет сами, а используете готовый. Но то, что вы пишите сами, вы пишете на каком то языке. Так вот нормальные классы с нормальным ООП вы на JS не пишете. Язык не поддерживает. Ну нет таких конструкций в этом языке. А броузеры поддерживают стандарты. А пишете вы на чем то, что потом будет транслировано в эти уродливые извращения JS.

Причем транслировать не обязательно. Тот же Ангулер по умолчанию использует Постскрипт. Но тонкие извращенцы могут писать прямо на JS.


Я пишу на яве. Берем ваадин. Или EXT2. Компилируем. Гм. И получаем на выходе JS. Ups. Видимо Ява это всет таки яваскриптулыб

#59 
Murr патриот23.10.19 10:30
Murr
NEW 23.10.19 10:30 
в ответ daduda 22.10.19 18:20

По http передаётся минифицированный js

------

И что еще требуется для доказательства того, что передается не компилированный код?

#60 
1 2 3 4 5 все