Size: a a a

Compiler Development

2020 January 23

AT

Alexander Tchitchigin in Compiler Development
WE NEED TO GO DEEPER!!!111 😂
источник

BD

Berkus Decker in Compiler Development
Андрей
var bорщ = new Борщ
val, ведь иммутабельность by default!
источник

BD

Berkus Decker in Compiler Development
не читал, но что это?
источник

RE

Roman Elizarov in Compiler Development
Berkus Decker
val, ведь иммутабельность by default!
Ну вот этого в Java не будет никогда. Это точно. Кто хочет больше имутибельности на JVM, тому дорога только в Kotlin или Scala.
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Это incomplete гарантирует "не всё". Примерно все системы типов incomplete. А unsound гарантирует ровно "ничего".
Я не знаю, что на самом деле двигало авторами тайпскрипта, но пара идей есть.

Во-первых, они создавали новый язык не на пустом месте, а вокруг существующего языка и экосистемы, в которых многие годы царила анархия и хаос. Если бы они сделали академичный язык с soundness и аспирантками, который сходу браковал бы значительный объем существующего работающего кода, этот язык бы остался уделом полутора гиков.

Во-вторых, это в некотором смысле исследовательский проект, где можно на реальной кодовой базе обкатать уникальные подходы к типизации. Поэтому ответ на вопрос "зачем" - "потому что могут!"
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
WE NEED TO GO DEEPER!!!111 😂
WE NEED TO GO ГУЩЕ!
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
Я не знаю, что на самом деле двигало авторами тайпскрипта, но пара идей есть.

Во-первых, они создавали новый язык не на пустом месте, а вокруг существующего языка и экосистемы, в которых многие годы царила анархия и хаос. Если бы они сделали академичный язык с soundness и аспирантками, который сходу браковал бы значительный объем существующего работающего кода, этот язык бы остался уделом полутора гиков.

Во-вторых, это в некотором смысле исследовательский проект, где можно на реальной кодовой базе обкатать уникальные подходы к типизации. Поэтому ответ на вопрос "зачем" - "потому что могут!"
С одной стороны, PureScript удивительно популярен для своей академичности (Row Polymorphism даже в Haskell нет!!! 😃).

С другой стороны, мне полностью понятно почему TypeScript is unsound - к этой части вопросов нет. Вопрос: нафига наворачивать кульбит за кульбитом на систему типов, при том, что она остаётся unsound и это всё рассыпается как карточный домик при соприкосновении с "неприкрытым" JavaScript?
Видимо, да, просто потому что могут. 🤷‍♀️
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
С одной стороны, PureScript удивительно популярен для своей академичности (Row Polymorphism даже в Haskell нет!!! 😃).

С другой стороны, мне полностью понятно почему TypeScript is unsound - к этой части вопросов нет. Вопрос: нафига наворачивать кульбит за кульбитом на систему типов, при том, что она остаётся unsound и это всё рассыпается как карточный домик при соприкосновении с "неприкрытым" JavaScript?
Видимо, да, просто потому что могут. 🤷‍♀️
может, потому что каждый кульбит удовлетворяет реальные потребности живых людей? а soundness кому нужна?
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
С одной стороны, PureScript удивительно популярен для своей академичности (Row Polymorphism даже в Haskell нет!!! 😃).

С другой стороны, мне полностью понятно почему TypeScript is unsound - к этой части вопросов нет. Вопрос: нафига наворачивать кульбит за кульбитом на систему типов, при том, что она остаётся unsound и это всё рассыпается как карточный домик при соприкосновении с "неприкрытым" JavaScript?
Видимо, да, просто потому что могут. 🤷‍♀️
По части логики и синтаксиса они связаны по рукам и ногам, потому что обязуются следовать ECMAScript. А вот в части типов - полный простор для творчества
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
может, потому что каждый кульбит удовлетворяет реальные потребности живых людей? а soundness кому нужна?
И это хаскелист меня спрашивает зачем нужка soundness? Слишком толсто! 😂
источник

AK

Andrei Kurosh in Compiler Development
Учитывая отсутствие собственного рантайма и наличие type erasure другого варианта у них нет, это ограничение самого принципа языка
источник

M

MaxGraey in Compiler Development
unsound в TS периодичиски починяют. Думаю они просто дают время для обкатки или что бы знакомство было не таким болезненным)
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
И это хаскелист меня спрашивает зачем нужка soundness? Слишком толсто! 😂
мне она нужная для спокойствия. а пользователям JavaScript?
источник

AK

Andrei Kurosh in Compiler Development
Если нужно убедиться, что в рантайме ничего не посыпется - есть https://github.com/gcanti/io-ts
источник

E

Eugene in Compiler Development
вы тут не смешиваете ли TypeScript и PureScript? это радикально разные языки
источник

AT

Alexander Tchitchigin in Compiler Development
MaxGraey
unsound в TS периодичиски починяют. Думаю они просто дают время для обкатки или что бы знакомство было не таким болезненным)
Пока не выкинут any (сильно сомневаюсь, что это вообще произойдёт) - unsoundness там прямо с порога и не скрывается.
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Пока не выкинут any (сильно сомневаюсь, что это вообще произойдёт) - unsoundness там прямо с порога и не скрывается.
any никогда не выкинут)
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Пока не выкинут any (сильно сомневаюсь, что это вообще произойдёт) - unsoundness там прямо с порога и не скрывается.
учитывая что typescript подается как gradual typing system - не выкинут
источник

AT

Alexander Tchitchigin in Compiler Development
MaxGraey
any никогда не выкинут)
Аминь!
источник

AT

Alexander Tchitchigin in Compiler Development
Eugene
вы тут не смешиваете ли TypeScript и PureScript? это радикально разные языки
Нет, не смешиваем, всё OK.
источник