Ситуация была примерно такая: получаю JSON, использую стандартный парсер из стандартной библиотеки, получаю на выходе объект описанного мной класса, все поля строго типизированы — красота!!! (я надеялся что оно работает примерно так же как например gson). А потом внезапно (после пары часов отладки) обнаруживаю, что оказывается в Int поле спокойно можно записать строку. А что именно получится — либо просто строка, либо число получившееся после ее парсинга, либо ошибка выполнения — зависит от таргета.
P.S. В стандартном парсере json тоже баги были, но я сейчас точно не вспомню с чем именно связанные.
Как, например, влияет платформа на типизацию на этапе компиляции?
На этапе компиляции есть какая-то проверка типов. Однако никто не запрещает присвоить например Dynamic в Int, даже явный каст не потребуется. На статических таргетах — ошибка выполнения, на динамических — как будто все хорошо. И получается что один и тот же простой код на разных таргетах может дать 3 разных результата.
В моем понимании, «строгая» типизация не должна такого позволять ни в коем случае. Если я не прав, то что же тогда понимается под словами «строго типизированный»?
дополнить это утверждение ссылками на issue c багами в стандартной библиотеке
Давно не писал на haxe ничего сложнее сотни строк, так что вспомню только например вот это — github.com/HaxeFoundation/neko/issues/167. Помню еще, что несколько раз сталкивался с тем что например поддержка ssl — согласно документации, есть, а в коде там одно большое TODO. А окончательно я разочаровался в языке, посмотрев на то как реализован HashMap.
Идея в этом конечно очень крутая, но чтобы реально использовать один код на разных платформах — надо очень хорошо понимать, где язык гарантирует одинаковую работу кода, а где нет. А он может не гарантировать этого даже в самых, на первый взгляд, простых ситуациях.
С первого взгляда мне этот язык очень понравился, даже на работе агитировал за то чтобы некоторые новые проекты на нем делать… Но потом столкнулся с тем что:
— он на самом деле не является строго типизированным, строгость типизации полностью зависит от целевой платформы
— в стандартной библиотеке мало документации и много багов
Так что я перестал стремиться его использовать для хоть сколько-то важных проектов, разве что мелкие вспомогательные инструменты иногда на нем пишу.
У меня там регулярно долг в десяток баксов образовывается, оплата идет не с основной карточки и я забываю туда деньги переводить. И да, письма у них очень вежливо составлены — «Please Send Payment, This email is a friendly reminder, there’s no need to worry!»
Запускаем оплачиваемый полет, доставляем груз на МКС, оставляем корабль на соседней орбите в качестве мишени. Следующий полет — по той же схеме, после основной программы идет тренировать стыковку. Разве что доставка грузов «обратно» в этом случае задержится.
> Я бы при -0.75 не задумываясь сделал.
Я вообще 10+ лет ношу очки с недокоррекцией в -0.5 и как-то даже нет желания очки менять, не то чтобы операцию делать.
Тут еще срабатывает эффект избирательного запоминания. Есть очень много ситуаций, в которых может произойти очень маловероятное событие. И именно это событие запомнится.
> но где электричество брать?
Там же, где и бензин 100+ лет назад. С увеличением количества электромобилей можно ожидать строительство новых электростанций, которые смогут покрыть увеличившийся спрос.
Независимо от того, в какое место в этих 2мм попадает луч — хрусталик сфокусирует его в одной точке, где сетчатка зафиксирует («увидит») изображение источника. Если источник вращается, но не движется — точка и останется.
Предположу, что решается отсутствием такой необходимости. Спутник ближе — значит не нужно точно на него нацеливаться, чтобы передать/получить сигнал используя аналогичную мощность.
> Все опубликованные статьи скрываются с сайта.
Вот это на самом деле печально и неудобно. Не раз сталкивался с тем, что переходя по ссылке из своих закладок, или из гугла, или из избранного — обнаруживал, что или пользователя заблокировали, или компания в корпоративном блоге которой была эта статья, закрыла свой блог на сайте. Зачем при этом полезные статьи то удалять??
> когда можно быть в 20 метрах от объекта, стоять спиной к нему, иметь между ним и собой дом с дорогой и всё равно его «использовать»
Ну так взаимодействие с порталом происходит не непосредственно физически, а через поля экзотической материи, при использовании стандартных антенн мобильного устройства. Так что по крайней мере в Ingress это все обосновано сюжетом.
> просто способ перемещения по ней отличается
И это значительно дополняет геймплей, так как на игру влияют объекты и события реального мира (погода, пробки и т.д).
> Просто покестопы/порталы — реальные объекты, параллельной реальностью назвать это сложно
Сам объект — реален, а вот портал/покестоп — уже дополнение к нему, существующее в рамках игры.
P.S. В стандартном парсере json тоже баги были, но я сейчас точно не вспомню с чем именно связанные.
В моем понимании, «строгая» типизация не должна такого позволять ни в коем случае. Если я не прав, то что же тогда понимается под словами «строго типизированный»?
Давно не писал на haxe ничего сложнее сотни строк, так что вспомню только например вот это — github.com/HaxeFoundation/neko/issues/167. Помню еще, что несколько раз сталкивался с тем что например поддержка ssl — согласно документации, есть, а в коде там одно большое TODO. А окончательно я разочаровался в языке, посмотрев на то как реализован HashMap.
— он на самом деле не является строго типизированным, строгость типизации полностью зависит от целевой платформы
— в стандартной библиотеке мало документации и много багов
Так что я перестал стремиться его использовать для хоть сколько-то важных проектов, разве что мелкие вспомогательные инструменты иногда на нем пишу.
Я вообще 10+ лет ношу очки с недокоррекцией в -0.5 и как-то даже нет желания очки менять, не то чтобы операцию делать.
Там же, где и бензин 100+ лет назад. С увеличением количества электромобилей можно ожидать строительство новых электростанций, которые смогут покрыть увеличившийся спрос.
Вот это на самом деле печально и неудобно. Не раз сталкивался с тем, что переходя по ссылке из своих закладок, или из гугла, или из избранного — обнаруживал, что или пользователя заблокировали, или компания в корпоративном блоге которой была эта статья, закрыла свой блог на сайте. Зачем при этом полезные статьи то удалять??
Ну так взаимодействие с порталом происходит не непосредственно физически, а через поля экзотической материи, при использовании стандартных антенн мобильного устройства. Так что по крайней мере в Ingress это все обосновано сюжетом.
И это значительно дополняет геймплей, так как на игру влияют объекты и события реального мира (погода, пробки и т.д).
> Просто покестопы/порталы — реальные объекты, параллельной реальностью назвать это сложно
Сам объект — реален, а вот портал/покестоп — уже дополнение к нему, существующее в рамках игры.
> gameplay
Вот геймплея в этом варианте то и нет.