Created
October 3, 2016 11:21
-
-
Save Minoru/1f20725edc35da1aa5cb55d5f89ff756 to your computer and use it in GitHub Desktop.
У каждой платформы есть дно
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Это логи чата, а не протокол какого-то собрания, так что просьба шуточки про JS | |
близко к сердцу не принимать. Кроме того, речь идёт о JVM, Erlang VM, браузерах, | |
native, поэтому слово «абстракция» следует понимать как «платформа». —Minoru | |
Из [email protected]: | |
<ForNeVeR> ɹǝɟılʍǝu: смотри что. У JS есть своя семантика (модель памяти, | |
выполнения, и проч.). Прямых маппингов на машинную модель у неё нету. | |
JS не зависит от машины. Поэтому, чтобы писать на JS, тебе нужно | |
знать только JS. Нету слоя ниже. | |
<ForNeVeR> ɹǝɟılʍǝu: а вот если ты пишешь на Elixir, то у него своей модели нет. | |
Он делегирует всё машине Erlang. Чтобы писать на Elixir — ты вынужден | |
знать и учитывать квирксы Erlang. | |
<ForNeVeR> ɹǝɟılʍǝu: точно так же и C/C++. На самом деле C определяет модель | |
поведения программы полностью (за пределами UB, конечно; но в случае | |
UB знание низлежащей модели тебе не поможет). Поэтому можно писать на | |
C, не зная машинной модели, ассемблера, и т.п. Что мы и наблюдаем. | |
<ForNeVeR> ɹǝɟılʍǝu: а вот, например, Scala в большой степени полагается на | |
поведение Java (и её модель памяти, перегрузок, да даже именование | |
вложенных классов). Поэтому ты не найдёшь эффективных | |
Scala-программистов, которые Java не знают досконально. | |
<ForNeVeR> Мой поинт в том, что у каждой современной абстракции есть некое дно, | |
на котором она самодостаточна в большей степени. И вот до этого дна | |
тебе нужно доставать ногами, чтобы твёрдо на них стоять. | |
<ForNeVeR> В случае с TypeScript дном является JS :) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment