Date: 2014-01-28 09:00 am (UTC)
From: [identity profile] dmytrish.livejournal.com
Есть впечатление, что чем более повышается уровень программирования, тем больше самоограничений мы на себя накладываем. В 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.
— снова фигня: замыкания обеспечивают нужную инкапсуляцию, а зачем ограничивать доступ к полям структур, неясно.

Date: 2014-01-28 09:31 am (UTC)
From: [identity profile] sassa-nf.livejournal.com
"зачем ограничивать доступ к полям"

чтобы не появилась зависимость от детали реализации.

Date: 2014-01-28 12:32 pm (UTC)
From: [identity profile] dmytrish.livejournal.com
Я о том, что странно, когда в структуре одни данные закрыты, а другие нет. Контекст в JS все-таки замыканиями структурируется, а не зависимостью от классов.

Date: 2014-01-28 09:36 am (UTC)
From: [identity profile] belezbar.livejournal.com
>а зачем ограничивать доступ к полям структур, неясно.

Скорее всего, имеется в виду доступ к полям прототипа, там, где это не нужно. Например, при обходе циклом for in. Признаться, на практике никогда не имел с этим проблем, хотя книжки советуют проверять hasOwnProperty.

Profile

thedeemon: (Default)
Dmitry Popov

April 2026

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 26th, 2026 05:34 am
Powered by Dreamwidth Studios