Re[6]: Swift
От: andyag  
Дата: 04.06.14 20:28
Оценка:
Здравствуйте, Mamut, Вы писали:

A>>>>На самом деле, это скорее ВАУ фича, чем что-либо полезное. Те примеры что есть, скорее всего масксимум возможностей и показывают, а именно простые однопоточные приложения с простой моделью данных.

M>>>Ну, на самом деле я на это дело смотрю, как на приятный расширенный REPL
C>>Мне вот всегда было интересно зачем REPL нужен...

M>Это очень удобный инструмент. Как для быстрого прототипирования и проверки некоторых идей, так и для быстрого тестирования некоторых вещей


"Для быстрого тестирования некоторых вещей" достаточно не бояться писать тесты в любых их вариациях: юнит тесты, интеграционные тесты, учебные тесты, воспроизводилки интересных сценариев. Ключевое слово — воспроизводимость.

Насчёт прототипирования вообще мысль не понял. ИМХО, единственное удачное применение REPL — это когда к запущенному приложению можно подключиться через какой-нибудь SSH и пощупать как у него дела дёргая всякие методы всяких объектов.
Re: Swift
От: andyag  
Дата: 04.06.14 20:40
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>https://itunes.apple.com/gb/book/swift-programming-language/id881256329?mt=11


I>Apple родила язык.


Я ненавижу Swift уже за то, что он у меня вчера в ньюсфиде встретился не менее 8 раз.

Ещё один язык, который работает на сильно ограниченном наборе платформ. Ещё один язык со своим уникальным и самым лучшим синтаксисом. Ещё один язык, который теперь в вакансиях сначала будет "крайне приветствуется", а потом "необходимо знать: Objective C, Objective C++, Swift". Ещё один язык, который будет иметь ненулевую популярность, просто потому что хипстеры.

1. Уродливый Objective C всё равно не запретят. Потому что это нереализуемо. Их будет два.
2. Прекрасный новый Swift идеологически не отличается от Objective C: это ЭКЗОТИКА. Прошлая экзотика была из глубоких 80-х, новая — из 2010ых.
3. Этот НОВЫЙ язык будет работать на очень старой платформе "с большой историей" — со странноватыми API и отсутствием клёвых штук типа рефлексии.
Re[2]: Swift
От: Cyberax Марс  
Дата: 04.06.14 20:51
Оценка:
Здравствуйте, andyag, Вы писали:

A>1. Уродливый Objective C всё равно не запретят. Потому что это нереализуемо. Их будет два.

Это Apple. Они могут — Carbon API они таки запретили, хотя им пользовались такие гиганты как Photoshop.

A>2. Прекрасный новый Swift идеологически не отличается от Objective C: это ЭКЗОТИКА. Прошлая экзотика была из глубоких 80-х, новая — из 2010ых.

A>3. Этот НОВЫЙ язык будет работать на очень старой платформе "с большой историей" — со странноватыми API и отсутствием клёвых штук типа рефлексии.
То есть? Рефлексию несложно добавить — это же LLVM. Аналогично, поддержка остальных платформ (в том числе Windows) скорее зависит от того, чтобы кто-то не поленился сделать сборку для них.
Sapienti sat!
Re[3]: Swift
От: Qbit86 Кипр
Дата: 04.06.14 20:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Аналогично, поддержка остальных платформ (в том числе Windows) скорее зависит от того, чтобы кто-то не поленился сделать сборку для них.


Сомневаюсь. Сборку не то, чтобы поленятся сделать, просто побоятся судебных преследований со стороны Apple. Вспомнят неприятную историю про преследование Гугла Ораклом.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Swift
От: Cyberax Марс  
Дата: 04.06.14 21:03
Оценка:
Здравствуйте, Qbit86, Вы писали:

C>>Аналогично, поддержка остальных платформ (в том числе Windows) скорее зависит от того, чтобы кто-то не поленился сделать сборку для них.

Q>Сомневаюсь. Сборку не то, чтобы поленятся сделать, просто побоятся судебных преследований со стороны Apple. Вспомнят неприятную историю про преследование Гугла Ораклом.
Ну вообще-то, в том судебном процессе победил Гугл. И всё зависит от лицензии, под которой Apple сделает доступным компилятор.
Sapienti sat!
Re[5]: Swift
От: Qbit86 Кипр
Дата: 04.06.14 21:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну вообще-то, в том судебном процессе победил Гугл.


В последнем на данный момент раунде (насколько мне известно) побеждает Оракл: «Аппеляционный суд США постановил: Oracle обладает авторским правом на части языка программирования Java, использованные Google при разработке ОС Android».
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: Swift
От: Cyberax Марс  
Дата: 04.06.14 21:08
Оценка: 9 (1)
Здравствуйте, Qbit86, Вы писали:

C>>Ну вообще-то, в том судебном процессе победил Гугл.

Q>В последнем на данный момент раунде (насколько мне известно) побеждает Оракл: «Аппеляционный суд США постановил: Oracle обладает авторским правом на части языка программирования Java, использованные Google при разработке ОС Android».
Нет, аппеляционный суд не согласился с некоторыми интерпретациями закона в решении. Теперь дело пойдёт по второму кругу, об окончательной победе Оракла пока речи нет.
Sapienti sat!
Re[7]: Некоторые интерпретации закона
От: Qbit86 Кипр
Дата: 04.06.14 21:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Аналогично, поддержка остальных платформ (в том числе Windows) скорее зависит от того, чтобы кто-то не поленился сделать сборку для них.

C>Нет, аппеляционный суд не согласился с некоторыми интерпретациями закона в решении.

А, ну тогда ок; «кто не поленился» может спокойно брать и реализовывать компилятор языка на Windows.
Глаза у меня добрые, но рубашка — смирительная!
Re[7]: Swift
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.06.14 22:01
Оценка: +1
Здравствуйте, andyag, Вы писали:

A>"Для быстрого тестирования некоторых вещей" достаточно не бояться писать тесты в любых их вариациях: юнит тесты, интеграционные тесты, учебные тесты, воспроизводилки интересных сценариев. Ключевое слово — воспроизводимость.


И запускать эти тесты надо полагать, придется на боевой системе ?

A>Насчёт прототипирования вообще мысль не понял. ИМХО, единственное удачное применение REPL — это когда к запущенному приложению можно подключиться через какой-нибудь SSH и пощупать как у него дела дёргая всякие методы всяких объектов.


Эта хрень дает возможности сократить на прядок другой количество перезапусков приложения. Если для каждого перезапуска надо собирать пекадж или делать деплоймент, то разница просто сумасшедшая.
Re[2]: Swift
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.06.14 22:06
Оценка:
Здравствуйте, andyag, Вы писали:

A>Ещё один язык, который работает на сильно ограниченном наборе платформ. Ещё один язык со своим уникальным и самым лучшим синтаксисом. Ещё один язык, который теперь в вакансиях сначала будет "крайне приветствуется", а потом "необходимо знать: Objective C, Objective C++, Swift". Ещё один язык, который будет иметь ненулевую популярность, просто потому что хипстеры.


И что с того ?

A>1. Уродливый Objective C всё равно не запретят. Потому что это нереализуемо. Их будет два.

A>2. Прекрасный новый Swift идеологически не отличается от Objective C: это ЭКЗОТИКА. Прошлая экзотика была из глубоких 80-х, новая — из 2010ых.
A>3. Этот НОВЫЙ язык будет работать на очень старой платформе "с большой историей" — со странноватыми API и отсутствием клёвых штук типа рефлексии.

Если будет внятный перформанс и легкость интеграции с обжективси, то этот Обжектив си умрем сам собой, ибо переписать модуль заново будет много быстрее, чем фиксить старый. А где совсем туго, так и оставить обжектив.

Рефлексию легко добавить, и лучше если это будет чуть попозжа. Как вариант, всунуть компайл-тайм рефлексию, шоб сильнее отличиться от дотнета и джавы
Re[6]: Swift
От: vdimas Россия  
Дата: 04.06.14 23:18
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Это намёк на экстеншны, предсказуемый полиморфизм, обобщенное программирование и особенности дизайна базовых классов.


Если речь о принципиальной возможности запрошенного, то это всё не важно.

Система типов в дотнете нифига не предсказуемая. Все эти эффекты от "неожиданного" боксирования или наоборот, от бесполезности изменения полей составных value-объектов, возвращаемых как св-ва, т.е. разница в поведении полей и св-в, разница в поведении оператора [] у встроенных массивов и объектов/интерфейсов, это всё просто россыпь граблей на ровном месте. Причем, даже у С++ есть ср-ва этих граблей избегать, т.е. есть ср-ва приводить семантику обращения с элементами встроенных массивов и юзверских типов-коллекций к чему-то более-менее идентичному, то у дотнета — нет никаких. Нужно тупо помнить о граблях. По-настоящему смешно в либах дотнета становится внутри кода генериков, когда первой строчкой идет попытка динамического приведения аргумента-коллекции к массиву и затем ветвление алгоритма в зависимости от успешности приведения. Криво это всё до невозможности.
Re[6]: Swift
От: vdimas Россия  
Дата: 04.06.14 23:19
Оценка:
Здравствуйте, Ikemefula, Вы писали:

V>>Кароч, облом ждать очередной итерации пинг-понга в сообщениях.

V>>Ты привел сценарий, когда дотнет генерит в рантайм код под value-type как аргументы генериков.
I>А в огороде бузина.

ы?


V>>Теперь, если включить мозг (просто понять целевую платформу и её философию) — самому не смешно?

V>>Ничего подобного в промышленном инструментарии под коробочные продукты под эту ось и под приложения для самой оси (и даже для написания запчастей этой оси) никогда не будет, ес-но.

I>Забудь про то, что и как делается в рантайме. Главное, что в компайл-тайм в C# у тебя есть определенные инструменты — полиморфизм, обобщенное программирование, внятный дизайн контейнеров и экстеншны. Как они работают в рантайме — никому не интересно. Вопрос не про это.


Так ты не понял прикола с исходным вопросом? А чего тогда влез? ))
Re[4]: Swift
От: vdimas Россия  
Дата: 04.06.14 23:48
Оценка:
Здравствуйте, Ikemefula, Вы писали:

V>>Веселенький, кста. ))

V>>Изучение Rust, к примеру, навевает скуку. А описание Swift хочется читать и читать. Оч положительные эмоции. Особенно, если помнить, что это лишь первая версия языка. Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. ))

I>Ого, у тебя, оказывается, есть информация из будущего.


Конечно. Бывает такое будущее, которое результат прошлого и настоящего. Например, дав нам вменяемый интероп с нейтивом, COM и ActiveX дотнет когда-то предрек своё будущее уже в первой же бете. Вашему покорному слуге стало всё понятно еще тогда, кароч, поэтому взялся за него активно с первых же бет. До сих пор популярный для меня тул, не взирая на столь медленное выполнение других, более ожидаемых обещаний от технологии. Скажем так, я еще не списал насовсем дотнет со своих счетов, но у него уже нет той форы, что 12 лет назад... время упущено, нейтив по своим фишкам и выразительности начинает ощутимо поджимать, увы и ах. ))


I>Свифт предлагает очень много фич разом. Есть большой шанс, что сообщество обжективных разрабов, которое консервативное донельзя, просто не примет. Так что вполне можно ожидать сценарий "с места и в лужу".


А твоё "будущее" Swift выглядит так, буд-то у него не было ни прошлого, ни настоящего. Или есть большой шанс, что с объектным-С ты сталкивался не ближе, чем издалека. Кароч, всё там будет хорошо, просто поверь. Слишком долго расписывать "почему" для того, кто далек от темы. Представь, что это как дотнет для старого COM и OLE-автоматизации. Причем, в лучшем его виде, как это было в VB.Net изначально или в C# только после прикручивания dynamic. Только еще удобнее, бо никакого dynamic и совместимость по типам на порядки более гладкая, чем дотнетные типы и OLE (вернее, совместимость фактически бесшовная, в отличие от ограничений дотнетного маршаллинга). Да и сам язык на порядок мощнее, чем первый C#, который был калькой с тупейшей джавы. В некоторых местах удобнее даже, чем нынешний пятый C#. Некоторые фишки языка откровенно улыбнули. Всё-таки в яблоках работают романтики... налицо эдакие реализованные "мечты детства" в промышленном языке. Игрища вокруг for и swit/case доставляют. Но вышло всё-таки симпатично. Посмотрим на развитие языка, кароч. Повторюсь, для первой версии настоящего промышленного языка, который сходу начнут использовать сотни тыщ разрабов — это мега-круто, что бы тут кто ни говорил и не пытался замечать недостатки или тем более сравнивать с некими "чистыми"/маргинальными языками.

По-сути, на сегодня Swift должно сравнивать только с последней джавой, последним C# и последними С/С++, с натяжкой еще можно попробовать сравнить с семейством JavaScript (всё-таки там еще серьезнейшие бока даже в статически-компилируемых расширениях). Все остальные языки идут в сад не задерживаясь, бо не дотягивают до мейнстрима, т.е. сравнение с любым другим языком будет чистой воды спекуляцией ни о чем.
Re[13]: Разовью мысль
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.06.14 23:48
Оценка: 15 (1)
Здравствуйте, Mamut, Вы писали:

M>Действительно, ведь все абсолютно упирается в юнит тесты, и все можно решить юнит-тестами


Включай уже голову наконец вместо флеймогенератора. Тест-раннеры могут быть использованы и используются в том числе "как для быстрого прототипирования и проверки некоторых идей, так и для быстрого тестирования некоторых вещей".
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[5]: Swift
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.06.14 02:44
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Это намек на IEnumerable<IComparable>?


Да.

V>Самому не смишно?


Очень, потому что в свифте этого нет! Нет общего протокола у контейнеров, у массива только map/reduce/filter и все. Посему до C# уже не дотягивает, а если вспомнить уникальное(?) умение C# превращать внутренние итераторы во внешние, то свифт и вовсе рядом не валялся. Ни о чем похожем на LINQ iРазработчики могут и не мечтать. Так что расскажи еще раз, чем же он утер нос C#.
Re[5]: Swift
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.06.14 02:48
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Кароч, облом ждать очередной итерации пинг-понга в сообщениях.

V>Ты привел сценарий, когда дотнет генерит в рантайм код под value-type как аргументы генериков.
V>Теперь, если включить мозг (просто понять целевую платформу и её философию) — самому не смешно?
V>Ничего подобного в промышленном инструментарии под коробочные продукты под эту ось и под приложения для самой оси (и даже для написания запчастей этой оси) никогда не будет, ес-но.

Ээ. Что, банально работающего полиморфизма и генериков нельзя ждать в "в промышленном инструментарии под коробочные продукты"? Почему?

V>Тут можно ожидать только подвижки в ту же сторону, в которую идет обобщенное программирование в С++.


То, что я спросил, не имеет отношения к value типам и С++. Элементарно решается на куче языков же.
Re[5]: Swift
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.06.14 02:54
Оценка: +4 :)
Здравствуйте, vdimas, Вы писали:

V>Ничего подобного в промышленном инструментарии под коробочные продукты под эту ось и под приложения для самой оси (и даже для написания запчастей этой оси) никогда не будет, ес-но.


Хе, да свифт даже "for x in .." для произвольных контейнеров не умеет, лишь для парочки встроенных. Супер язык, чо. Промышленный. Утер. Да.
Re[6]: Swift
От: vdimas Россия  
Дата: 05.06.14 05:33
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Ээ. Что, банально работающего полиморфизма и генериков нельзя ждать в "в промышленном инструментарии под коробочные продукты"? Почему?


Можно, конечно. Но не в том виде, как в C#. У дотнета серьезные ограничения насчет семантики value-type (из-за невозможности обойтись без пина при получении адреса структуры в памяти), куча граблей вокруг всего этого. Вот даже для value-type надо генерить УНИКАЛЬНУЮ реализацию генерика в РАНТАЙМ.... брррр... Это всё далеко за пределами "банально работающего полиморфизма".

Развитие генериков будет идти, конечно, но лишь по пути максимально-эффективного рантайм решения. Думаю, будет помощнее на этапе компиляции. Собсно, повторяюсь.


V>>Тут можно ожидать только подвижки в ту же сторону, в которую идет обобщенное программирование в С++.

DM>То, что я спросил, не имеет отношения к value типам и С++. Элементарно решается на куче языков же.

Еще как имеет. Бо для ссылочных типов этот сценарий покрывается свифтом достаточно хорошо.
Re[6]: Swift
От: vdimas Россия  
Дата: 05.06.14 05:35
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Очень, потому что в свифте этого нет! Нет общего протокола у контейнеров, у массива только map/reduce/filter и все.


Ну тогда мне теперь смешно. Потому что для любой коллекции достаточно некоего foreach c ф-ным типом-аргументом.


DM>Посему до C# уже не дотягивает


У многих языков никаких итераторов в базовой либе нет и даже не требуется: map/fold и усё. ))


DM>а если вспомнить уникальное(?) умение C# превращать внутренние итераторы во внешние, то свифт и вовсе рядом не валялся. Ни о чем похожем на LINQ iРазработчики могут и не мечтать.


Так говоришь, будто с первой версии дотнета могли мечтать.


DM>Так что расскажи еще раз, чем же он утер нос C#.


Фактически всем тем, что есть в нем и нет в C#. Каждая из таких конструкций языка — сугубо утилитарная, сугубо для удобства.
Re[6]: Swift
От: AlexRK  
Дата: 05.06.14 05:59
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Хе, да свифт даже "for x in .." для произвольных контейнеров не умеет, лишь для парочки встроенных. Супер язык, чо. Промышленный. Утер. Да.


Это весьма странно, но ваще в свифте много всяких прикольных фич, он явно принадлежит к новой волне гибридных языков типа Rust, Ceylon, Kotlin, Xtend, а не к уже "старым" C#/Java/etc.
Думаю, с контейнерами все добавят, это же самая первая версия. В дотнете первой версии тоже много чего не было.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.