?

Log in

No account? Create an account

Previous Entry | Next Entry

Comments

( 17 comments — Leave a comment )
alll
Jan. 28th, 2014 06:48 am (UTC)
с asm.js в светлое будущее
mxkazan
Jan. 28th, 2014 07:23 am (UTC)
Спасибо за ссылочку! В принципе, достаточно очевидные вещи написаны. Только вот, глядя вокруг, кажется, что это никого не трогает :)

Edited at 2014-01-28 07:24 am (UTC)
nivanych
Jan. 28th, 2014 07:44 am (UTC)
;-) Теперь мы видим, как они ошибались!
nponeccop
Jan. 28th, 2014 08:00 am (UTC)
Надо теперь, чтобы кто-нибудь написал статью "поскольку джаваскрипт не предназначен для программирования в большом, а система модулей и скоупов Си хуже любой из инкарнаций модулей JS, Си также не предназначен для программирования в большом"
nivanych
Jan. 28th, 2014 08:40 am (UTC)
"Си предназначен для программирования по-большому"
dmytrish
Jan. 28th, 2014 08:48 am (UTC)
А джаваскрипт — по маленькому, да.
_winnie
Jan. 28th, 2014 01:13 pm (UTC)
В JS случайно забытый var приводит к использованию (созданию) глобальной переменной.

В C при опечатке в имени поля структуры - будет ошибка при компиляции. В Python - будет ошибка при работе программы.
В JavaScript - это не ошибка, будет "значение по-умолчанию".

В C проверяется количество и тип параметров. В Python - хотя бы количество хотя бы в runtime.

В JavaScript - можно позвать функцию с любым количеством параметров, ошибки не будет даже в runtime.

Система типов в JS "в непонятной ситуации - считаем всё строками". По сравнению с JS можно считать C аккуратным со строгой системой типов.
dmytrish
Jan. 28th, 2014 09:00 am (UTC)
Есть впечатление, что чем более повышается уровень программирования, тем больше самоограничений мы на себя накладываем. В Agda, вроде, вообще ограничение уже математическое (она же Тьюринг-неполная?).

Но вот есть ли за корреляцией уровня абстрагирования программирования и его scale причинно-следственная связь, неясно.

Наиболее популярный ответ немного хромает, например:

> There is no modularization system; there are no classes, interfaces, or even namespaces. These elements are in other languages to help organize large codebases.

> The inheritance system -- prototype inheritance -- is both weak and poorly understood. It is by no means obvious how to correctly build prototypes for deep hierarchies (a captain is a kind of pirate, a pirate is a kind of person, a person is a kind of thing...) in out-of-the-box JavaScript.
— даже хардкорные ООПшники какбы уже давно согласились, что при любом сомнении лучше предпочитать агрегацию наследованию.

> There is no encapsulation whatsoever; every property of every object is yielded up to the for-in construct, and is modifiable at will by any part of the program.
— снова фигня: замыкания обеспечивают нужную инкапсуляцию, а зачем ограничивать доступ к полям структур, неясно.

sassa_nf
Jan. 28th, 2014 09:31 am (UTC)
"зачем ограничивать доступ к полям"

чтобы не появилась зависимость от детали реализации.
dmytrish
Jan. 28th, 2014 12:32 pm (UTC)
Я о том, что странно, когда в структуре одни данные закрыты, а другие нет. Контекст в JS все-таки замыканиями структурируется, а не зависимостью от классов.
belezbar
Jan. 28th, 2014 09:36 am (UTC)
>а зачем ограничивать доступ к полям структур, неясно.

Скорее всего, имеется в виду доступ к полям прототипа, там, где это не нужно. Например, при обходе циклом for in. Признаться, на практике никогда не имел с этим проблем, хотя книжки советуют проверять hasOwnProperty.
notaden
Jan. 28th, 2014 01:31 pm (UTC)
А есть какая-нибудь типизированная замена django + js?

django можно vibe.d заменить(функциональность не дотягивает конечно, но легче самому дописывать), а с фронтендом что делать?
thedeemon
Jan. 28th, 2014 03:18 pm (UTC)
Тут из меня плохой советчик, я вебом не занимаюсь.
Но тот же Dart выглядит неплохо. Практичнее, чем многие компиляторы в JS из статических языков, коих сейчас туча.
notaden
Jan. 28th, 2014 03:31 pm (UTC)
Да, к нему сейчас как раз присматриваюсь. Сам тоже этим не особо занимался последние 4 года, но вот сейчас нужно пару вещей сделать и решил посмотреть, может что интересное придумали
mpak666
Jan. 28th, 2014 06:04 pm (UTC)
sorhed
Jan. 29th, 2014 08:38 am (UTC)
TypeScript.
Женя Павловский
Feb. 2nd, 2014 05:03 pm (UTC)
-
( 17 comments — Leave a comment )