metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-06-03 01:11 am

swift

Эппл выкатило новый язык: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2
Алгебраические типы есть, паттерн-матчинг есть, иммутабельность есть, замыкания, анонимные функции есть, трейты есть, заумные ограничения на параметры генерик-типов есть.

[identity profile] jerom.livejournal.com 2014-06-03 07:22 am (UTC)(link)
А отказ от gc - это не шаг назад? По скорости предсказуемо, но будет же течь все!

[identity profile] lionet.livejournal.com 2014-06-03 10:09 am (UTC)(link)
Там ARC, как я понимаю. А Arc != naive refcounting. Он и сейчас-то в ObjC работает с точки зрения программиста аналогично GC (ничего не делаешь, всё работает, за исключением пары исключений).

[identity profile] jakobz.livejournal.com 2014-06-03 11:32 am (UTC)(link)
Ну reference counting даже в плюсах автоматический. Что не отменяет того, что циклически-ссылающиеся объекты сами по себе не собираются. В доке явно написано что надо один конец помечать.

Я так понимаю это apple так параноидально парится за память и отсутствие лагов на UI - даже ценой того, чтобы заставить всех прикладных разработчиков писать без GC.

[identity profile] metaclass.livejournal.com 2014-06-03 11:35 am (UTC)(link)
Мне эта идея с weak ссылками кажется разумным компромиссом.
Я готов отказаться от GC, только бы никогда не видеть как лагает мой софт в UI, не могу, у меня тормоза видимые вызывают желание все выкинуть и переписать.

[identity profile] thedeemon.livejournal.com 2014-06-03 12:24 pm (UTC)(link)
Только там что-то много видов ссылок ввели. Помимо strong и weak еще какие-то unowned, плюс таки есть просто указатели.

[identity profile] jakobz.livejournal.com 2014-06-03 12:49 pm (UTC)(link)
А что там в оперднях вообще лагать может? Там максимум - пара десятков миллисекунд же. Я так понимаю из-за GC могут заметно лагать только всякие гей-анимации на андроидах и айфонах. Если нет плавного медленного движения - хрен ты заметишь лаг от GC.

Как по мне, языки без GC - это именно что паранойя в большинстве случаев. Если только у тебя не realtime с миллисекундными допусками.

[identity profile] metaclass.livejournal.com 2014-06-03 01:06 pm (UTC)(link)
DataGridView в дотнете, глаза б его не видели. Иногда рендер тормозит так, что сдохнуть можно.
Ну и реакции на кнопки, переключения, меню, итд. Подтупливает иногда.

[identity profile] jakobz.livejournal.com 2014-06-03 01:17 pm (UTC)(link)
А ты уверен что это из-за GC?

[identity profile] dmytrish.livejournal.com 2014-06-03 11:51 am (UTC)(link)
Я люто, бешено ненавижу iOS, но когда мой андроидофон секунду мне показывает иконки на home screen, я начинаю бешено ненавидеть gc и мечтать о rc, пусть и за счет памяти.