Date: 2014-01-28 06:48 am (UTC)
From: [personal profile] alll
с asm.js в светлое будущее

Date: 2014-01-28 07:23 am (UTC)
From: [identity profile] mxkazan.livejournal.com
Спасибо за ссылочку! В принципе, достаточно очевидные вещи написаны. Только вот, глядя вокруг, кажется, что это никого не трогает :)
Edited Date: 2014-01-28 07:24 am (UTC)

Date: 2014-01-28 07:44 am (UTC)
From: [identity profile] nivanych.livejournal.com
;-) Теперь мы видим, как они ошибались!

Date: 2014-01-28 08:00 am (UTC)
From: [identity profile] nponeccop.livejournal.com
Надо теперь, чтобы кто-нибудь написал статью "поскольку джаваскрипт не предназначен для программирования в большом, а система модулей и скоупов Си хуже любой из инкарнаций модулей JS, Си также не предназначен для программирования в большом"

Date: 2014-01-28 08:40 am (UTC)
From: [identity profile] nivanych.livejournal.com
"Си предназначен для программирования по-большому"

Date: 2014-01-28 08:48 am (UTC)
From: [identity profile] dmytrish.livejournal.com
А джаваскрипт — по маленькому, да.

Date: 2014-01-28 01:13 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
В JS случайно забытый var приводит к использованию (созданию) глобальной переменной.

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

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

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

Система типов в JS "в непонятной ситуации - считаем всё строками". По сравнению с JS можно считать C аккуратным со строгой системой типов.

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.

Date: 2014-01-28 01:31 pm (UTC)
From: [identity profile] notaden.livejournal.com
А есть какая-нибудь типизированная замена django + js?

django можно vibe.d заменить(функциональность не дотягивает конечно, но легче самому дописывать), а с фронтендом что делать?

Date: 2014-01-28 03:18 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Тут из меня плохой советчик, я вебом не занимаюсь.
Но тот же Dart выглядит неплохо. Практичнее, чем многие компиляторы в JS из статических языков, коих сейчас туча.

Date: 2014-01-28 03:31 pm (UTC)
From: [identity profile] notaden.livejournal.com
Да, к нему сейчас как раз присматриваюсь. Сам тоже этим не особо занимался последние 4 года, но вот сейчас нужно пару вещей сделать и решил посмотреть, может что интересное придумали

Date: 2014-01-28 06:04 pm (UTC)
From: [identity profile] mpak666.livejournal.com
Go + Revel - http://robfig.github.io/revel/

Date: 2014-01-29 08:38 am (UTC)
From: [identity profile] sorhed.livejournal.com
TypeScript.

Date: 2014-02-02 05:03 pm (UTC)
From: [identity profile] Женя Павловский (from livejournal.com)
-

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. 25th, 2026 08:47 pm
Powered by Dreamwidth Studios