
MadMax
04.07.2017
09:18:43
ну на кой мне php, если хотелось ноду...

Дмитрий
04.07.2017
09:18:59

MadMax
04.07.2017
09:19:28
тем более ни фронт ни бэк не было ни заказом, ни работой. Выбрал для себя, для изучения, скажем так

KlonD90
04.07.2017
09:20:19
Рнр наше все

Google

? гриб
04.07.2017
09:20:38
Меня оч привлекает свобода в js, поэтому я не люблю тс. Это такой костыль, который из жс намеренно делает огрызок. И потом нам говорят, что это для нашей же безопасности)

Aleksandr
04.07.2017
09:20:50

Дмитрий
04.07.2017
09:21:09
Да в принципе да, я к этому же)

Anton
04.07.2017
09:21:10

Aleksandr
04.07.2017
09:21:28

KlonD90
04.07.2017
09:21:29

Сергей
04.07.2017
09:21:41

Дмитрий
04.07.2017
09:21:55
Ахахах

Maxim
04.07.2017
09:22:13

? гриб
04.07.2017
09:27:12

Yumi
04.07.2017
09:27:58

? гриб
04.07.2017
09:28:46

Aleksandr
04.07.2017
09:29:04

Google

Yumi
04.07.2017
09:29:06

? гриб
04.07.2017
09:29:18

Yumi
04.07.2017
09:30:39
У С++ тоже есть компилятор, который его только понимает.

? гриб
04.07.2017
09:31:11

Aleksandr
04.07.2017
09:31:38

? гриб
04.07.2017
09:32:17

Aleksandr
04.07.2017
09:33:38

? гриб
04.07.2017
09:34:11

Даниил
04.07.2017
09:36:40
ну на самом деле ошибочно думать что статическая типизация _только_ для типобезопасности
это ещё и подход к построению архитектуры вообще
разумеется речь не о случаях когда юзается лишь набор примитивных типов
вон те же интерфейсы например
в кложе есть протоколы (почти те же интерфейсы), которые как бы проверяются только в рантайме руками, то есть о типобезопасности речи особо не идёт, но вот в плане построения архитектуры это очень удобно

? гриб
04.07.2017
09:37:41
нхнпнл

Даниил
04.07.2017
09:37:41
а то потом как в JS, есть куча коллекций типа Array, HTMLCollection, NodeList, и вот потом вспоминай у каких реализован map/forEach/filter, у каких нет - боль, короче
а
ну думой)

Дмитрий
04.07.2017
09:38:33
Ввели протокол Iterator

? гриб
04.07.2017
09:39:40
выдёргиваешь из массива и вставляешь в нужный массивоподобный объект?
но форич всё равно не появится :(

Дмитрий
04.07.2017
09:40:10

Google

Дмитрий
04.07.2017
09:40:22
И вот тут его отсутствие становится глубоко безразличным

KlonD90
04.07.2017
09:40:25

? гриб
04.07.2017
09:40:30
а

Даниил
04.07.2017
09:41:59
Ввели протокол Iterator
ну, соль в том что нет какой-то единой абстракции вроде интерфейсов/протоколов
вот запилили аж один, как самостоятельную фичу
да и то, если мне всё-таки нужен map/reduce/filter для работы с этими итераторами, надо рамду подключать

Дмитрий
04.07.2017
09:42:49

Даниил
04.07.2017
09:43:04

Дмитрий
04.07.2017
09:43:54
Всех их объединяет одно — в них есть поле [Symbol.iterator] что позволяет их итерировать единым образом (ну, не считая рамды, конечно же)

Даниил
04.07.2017
09:44:10
это понятно
я говорю что это только для одного конкретного случая сделали
для итераторов

Дмитрий
04.07.2017
09:44:26
Ээ
Для итерируемых объектов
Всех, вообще всех

Даниил
04.07.2017
09:44:40
ну да, да
а если мне нужен протокол для чего-нибудь другого

Дмитрий
04.07.2017
09:44:56
Включая сеты, мапы, массивы, document.querySelector
В этом смысл символов

Google

Даниил
04.07.2017
09:45:25
так нет абстракции такой, это все равно всё на уровне либо ручной проверки наличия полей, либо соглашений, что не очень

Дмитрий
04.07.2017
09:46:06
Наличие в объекте [Symbol.iterator] означает что объект знает о существовании протокола и корректно его имплементирует
Все остальные случаи являются изначально ошибочными
Вместо итератора подставь любой известный или даже свой символ

Даниил
04.07.2017
09:46:56
а потом мне нужен протокол с 10 полями и руками их проверяй, такое

KlonD90
04.07.2017
09:47:00

Дмитрий
04.07.2017
09:47:20

Даниил
04.07.2017
09:47:36
да мало ли зачем, ты интерфейсы с более чем одним методом никогда не видел?

Дмитрий
04.07.2017
09:47:47
Ты не понимаешь, это не поле "моё значение"

Admin
ERROR: S client not available

Дмитрий
04.07.2017
09:47:52
Это именно метка протокола

Даниил
04.07.2017
09:47:58
да я понимаю
ещё раз

Дмитрий
04.07.2017
09:48:04
Ты либо имплементируешь его целиком, либо нет
Это не интерфейс, не думай о нем так

Даниил
04.07.2017
09:48:13
а, ну ты про это

Дмитрий
04.07.2017
09:48:33
Из чего следует, что протокол с десятью полями — это non sense

Даниил
04.07.2017
09:48:34
хм, ну ладно, да, в этом есть смысл
я понял что проверять имеет смысл только один метод

Google

Alexander
04.07.2017
09:48:58
Может кто знает. Виртуализация в биосе включена, hyper-v вырублен. А всё равно показывает отключенную виртуализацию. Что делать?

Даниил
04.07.2017
09:49:23
но остальные 10 могут нуждаться в реализации, поэтому "протокол с 10 полями - это non sense" вот это мне непонятно

Сергей
04.07.2017
09:50:05

Даниил
04.07.2017
09:50:44
а, ну тогда другой момент
если символы для методов, то не будет коллизии имён

Сергей
04.07.2017
09:51:00

Даниил
04.07.2017
09:51:05
вот, всё, я только что прозрел
именованные методы вообще не нужны
нужны только методы на символах для реализации протоколов (ad-hoc полиморфизм)
всё остальное на функциях, как в рамде

? гриб
04.07.2017
09:58:04

AP?
04.07.2017
09:58:04
привет. как правильно файл считывать?
сделал:
var fs = require('fs');
var seedC;
fs.readFile('/testdata/seed-c.json', 'utf8', function (err, data) {
if (err) throw err;
seedC = JSON.parse(data);
});
а он есть(

Даниил
04.07.2017
09:58:26
в любом случае неправильно

? гриб
04.07.2017
09:58:26

Дмитрий
04.07.2017
09:58:31

Даниил
04.07.2017
09:58:43
так нельзя делать

? гриб
04.07.2017
09:59:31
не нужно
Объяснитесь ) вот мне пришёл объект с методом-символом
Имя у него символ