swift

Jun. 3rd, 2014 01:11 am
metaclass: (Default)
[personal profile] metaclass
Эппл выкатило новый язык: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2
Алгебраические типы есть, паттерн-матчинг есть, иммутабельность есть, замыкания, анонимные функции есть, трейты есть, заумные ограничения на параметры генерик-типов есть.

Date: 2014-06-02 10:28 pm (UTC)
From: [identity profile] divine-assass1n.livejournal.com
https://twitter.com/erniemiller/status/473555557849108481

Date: 2014-06-02 10:58 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Сделали обратно по отношению к руби. Очень ок :)

Date: 2014-06-03 03:57 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Покарай их, святой Джобс.

Date: 2014-06-02 10:42 pm (UTC)
From: [identity profile] vissarion.livejournal.com
Кто еще не придумал свой язык с опциональной типизацией?
MS - TypeScript
Google - Dart
Facebook - Hack
Apple - Swift

Естественно компании друг друга ненавидят и оно все поддерживается только одной своей компанией
Dart никогда не будет в IE ив iOS,
Swift никогда не будет на андроиде.

Все будет работать только через кросс-компиляцию, а Js - это новый ассемблер

Date: 2014-06-03 05:01 am (UTC)
From: [identity profile] thedeemon.livejournal.com
А где в свифте опциональная?
Type inference - это не то же самое.

Date: 2014-06-04 01:00 pm (UTC)
From: [identity profile] mendor (from livejournal.com)
Свифтом в т. ч. занимается товарищ (http://www.linkedin.com/pub/joe-pamer/4/331/62), ранее пиливший в MS F# и TypeScript, кстати.

Date: 2014-06-02 10:50 pm (UTC)
From: [identity profile] gds.livejournal.com
впервые могу сказать про эппловские измышления что-то типа "пойдёт" / "не говно".

Date: 2014-06-02 10:57 pm (UTC)
From: [identity profile] victorgr.livejournal.com
Как я понимаю, swift - замена Objective-C. Так что армия разработчиков у них уже в запасе.

На первый взгляд swift очень похож на ES6, так что вторая армия разработчиков у них так же в запасе.

Ну а глядя на все плюсы языка, у них есть даже такая армия, которая никогда в сторону Эппла не смотрела.

Date: 2014-06-02 11:00 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Функциональщики уже строятся в очередь за маками, им наконец-то разрешать писать код для енд-юзеров, а не только факториалы и серверные бек-енды :)

Date: 2014-06-02 11:11 pm (UTC)
From: [identity profile] gds.livejournal.com
да ну, зачем это, если дело только в том, что код под маки стало гораздо легче генерить.

Date: 2014-06-02 11:13 pm (UTC)
From: [identity profile] swizard.livejournal.com
а ничё такой, кстати

Date: 2014-06-03 02:16 am (UTC)
From: [identity profile] sbj-ss.livejournal.com
Не могу понять, в чём подвох анального характера. Ну не может же его у яблочников не быть.
Там в EULA часом нет "программы, написанные на SWIFT, лицензированы для исполнения только по средам на освящённых макбуках после ритуального посвящения в пидорасы метросексуалы"?

Date: 2014-06-03 05:04 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Примерно так. Токмо iOS и Mac OS.

Date: 2014-06-03 11:25 am (UTC)
From: [identity profile] sbj-ss.livejournal.com
Это-то при наличии gcc можно считать временным явлением, Objective C тому примером.

Date: 2014-06-03 12:22 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Ну так без эпловских библиотек и рантайма этот Obj-C никому нафиг не сдался. Разве на нем пишут хоть что-нибудь для неяблочных систем/девайсов?

Date: 2014-06-03 12:35 pm (UTC)
From: [identity profile] dmytrish.livejournal.com
В линуксах вроде можно упороться и поставить gobjc, даже какие-то древние тулкиты вроде GNUstep есть портированные под линукс. Похоже, что проблема больше культурная, оно вроде как Mono — и можно, а писать под него особо никто не спешит.

Date: 2014-06-03 01:04 pm (UTC)
From: [identity profile] sbj-ss.livejournal.com
Есть отморозки энтузиасты, пишущие под GnuSTEP/Cocotron, местами даже успешно.
Вроде даже что-то доводилось встречать под Windows.

Date: 2014-06-03 05:50 am (UTC)
From: [identity profile] jakobz.livejournal.com
Во-первых там Reference Counting вместо GC, например.

Во-вторых оно компилируемое, а не JIT. А это скорее всего минус рефлекшн, и всякое остальное рантайм-метапрограммирование (по крайней мере я в доке про это ничего не нашел). Получил строчку из БД - извольте отмэппить руками. Для сериализаторов - тоже наверное придется генерить исходники руками.

В общем для бизнес-опердень-вебсайт-программинга - не хватит фичей. Компилить это в JS - смысла тоже не много. Писать на этом драйвера и ОС - ну уж не знаю. Остается только эппловский десктоп на OSX и видимо iOS. Короче ниша не шире той, что была у objective C.

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

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

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

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

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

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

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

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

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

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

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

Date: 2014-06-04 01:20 pm (UTC)
From: [identity profile] levgem.livejournal.com
У ObjectiveC всё в порядке с рефлекшном вроде

Date: 2014-06-04 05:57 pm (UTC)
From: [identity profile] ivanzoid.livejournal.com
не-не, с рефлекшеном в obj-c очень хорошо. Буквально в текущем проекте делал рантаймовую сериализацию из пропертей в JSON-значения и обратно.
Сам Swift детально пока не смотрел, но раз они заявляют что оно совместимо со старым рантаймом, значит всё должно быть так же.

Date: 2014-06-04 10:54 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Тогда неясно как они всю остальную скорость могут сделать.

Date: 2014-06-03 04:01 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Скучный какой-то. Выкатили бы они свою реализацию пролога, было бы круто.

Date: 2014-06-03 05:32 am (UTC)
From: [identity profile] divine-assass1n.livejournal.com
Очень смешно

Date: 2014-06-03 06:36 am (UTC)
From: [identity profile] nivanych.livejournal.com
Нужно в другую сторону — агда, но только "для всех", чтоб любая домохозяйка смогла!
Ведь они же Apple, чо б им не повысить всякую там юзабельность и интуитивную понятность?
Вот это был бы язык, вот это я понимаю! ;-)

Date: 2014-06-03 11:53 am (UTC)
From: [identity profile] dmytrish.livejournal.com
iAgda!

Думаю, для хипстеров бы прокатило. Надо просто сказать «революционный подход, смотрите, как просто зависимые типы решают насущные проблемы» + несколько презентаций в стиле Apple с харизматичным категорщиком.  

Date: 2014-06-03 12:21 pm (UTC)
From: [identity profile] nivanych.livejournal.com
Ну и компилятор iGHC тоже давно бы пора!

Date: 2014-06-03 07:15 am (UTC)
abbra: (Default)
From: [personal profile] abbra
Быстрый наброс от автора Rust: http://graydon2.dreamwidth.org/5785.html

Date: 2014-06-03 07:25 am (UTC)
From: [identity profile] potan.livejournal.com
switch - оперватор, а не выражение. return нужен.
Рано еще мак покупать...

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2025 02:33 pm
Powered by Dreamwidth Studios