Здравствуйте, Klapaucius, Вы писали:
K>Нет, это не замена отладчику, это скорее замена всяким приседаниям с "созданием файликов".
А какие приседания? С REPL'ом меня ещё додалбывало то, что его потом сложно снова воспроизвести.
K>РЕПЛ можно использовать совместно с отладчиком — и тогда окружение на брейкпойнте можно "инспектировать" и обрабатывать результат прямо определенной на месте функцией на этом же самом языке.
Ну как бы, новые debugger'ы позволяют запускать код в контексте остановленного потока.
Здравствуйте, Klapaucius, Вы писали:
K>Nemerlish, насколько я помню, был с самыми зачаточным функционалом, так что пользы от него было немного и не удивительно, что он оказался никому не нужен. Нормальный доделанный РЕПЛ инструмент более серьезный, в нем доступен язык полностью, т.е. можно любые декларации делать, автокомплит есть, интеграция с отладчиком и т.д.
Что с этого всего толку в статически типизированном ООЯ?
Менять типы невозможно, так как куча всего зависит на раскладку памяти.
Ну, а если репл интегрирован с отладчиком, то это уже и не репл как бы.
Развивать нужно средства отладки, а не какие-то игрушки.
Оптимальный вариант когда, как в скриптовых языках, программу можно остановить, поправить и продолжить дальше. По объективным причинам для компилируемых статически-типизируемых ООЯ — это сделать крайне сложно. Но сложно не значит невозможно. Так что надо копать в эту сторону.
От репловских же функций нужно иметь возможность выполнить некий код в режиме интерпретатора. Этого более чем достаточно. Писать код в репле — это не лучшая идея. Хорошая IDE все равно будет в разы удобнее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ikemefula, Вы писали:
I>Если будет внятный GC, то это лучше C#, Джавы и С++ вместе взятых. Но судя по набору фич язык сильно близко подобрался к Scala и F#
I>И самое главное — Сишный синтаксис !
По первым описаниям — смесь бейсика с Ruby, местами вдохновлённый Питоном и Go. На C никак не похож.
Здравствуйте, D. Mon, Вы писали:
VD>>Убило использование подсчета ссылок без автоматического разруливания за зацикливаний. В 21 веке это выглядит дико. Такому языку нужен GC или хотя бы автоматический поиск зацикливаний, как в Руби. DM>Как в Питоне, наверное. В Руби испокон веков был честный mark & sweep, никакого RC.
В Питоне, если речь про CPython, generational GC в дополнение к подсчёту ссылок. GC можно отключать (я этим пользовался, заказывая его в разрешённые моменты), подсчёт ссылок — нет. В других движках может быть только GC.
DM>В свифте они целились на рантайм-совместимость с Obj-C, а там тот же самый ARC. Трудно было бы добавить честный GC в один язык, не добавив в другой. Ну и скорее всего это дело принципа: обеспечить иллюзию детерминированности и какбы отсутствие тормозов GC, шоб андроид не получился.
Отсутствие концентрированных тормозов можно обеспечить множеством способов, но если их этот устраивает — почему бы и нет...
Здравствуйте, Mamut, Вы писали:
M>Виртуальная реальность — это называть полтора проекта, которые пишут пять людей, реальностью и истиной, которая распространяется на всех.
Я не хочу спорить с твоим бредом. Мне на это жалко время тратить. Верь во что хочешь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, NeoCode, Вы писали:
NC>Странный подход, написано free, в фиг скачаешь без этого вашего тунца. Как они собираются привлекать разработчиков, не имевших до этого дела с эппл?
Здравствуйте, Klapaucius, Вы писали:
I>>90е и 2000 это Java и C#, в которых еще более примитивный switch
K>Я имел в виду, что в 70-е уже "неплоский" изобрели. А на Java и C# чего равняться — в них (языках, не реализациях) фич, изобретенных после 1968-го раз два и обчелся.
Для первой версии рабочего промышленного языка, а не экспериментального и это неплохо.
На редкость удачная первая версия такого, предназначенного для массового использования, языка.
Здравствуйте, netch80, Вы писали:
DM>>В свифте они целились на рантайм-совместимость с Obj-C, а там тот же самый ARC. Трудно было бы добавить честный GC в один язык, не добавив в другой. Ну и скорее всего это дело принципа: обеспечить иллюзию детерминированности и какбы отсутствие тормозов GC, шоб андроид не получился.
N>Отсутствие концентрированных тормозов можно обеспечить множеством способов, но если их этот устраивает — почему бы и нет...
Это дело реализации/компилятора, ИМХО.
Для системных вещей — конечно только подсчет ссылок (да и тот редкость).
А для всяких нетребовательных околоскриптовых — можно будет и ГЦ потом дать.
Здравствуйте, netch80, Вы писали:
I>>Если будет внятный GC, то это лучше C#, Джавы и С++ вместе взятых. Но судя по набору фич язык сильно близко подобрался к Scala и F# I>>И самое главное — Сишный синтаксис ! N>По первым описаниям — смесь бейсика с Ruby, местами вдохновлённый Питоном и Go. На C никак не похож.
Точно! Эдакий современный продвинутый вариант Бейсика. Безопасный и провоцирующий на эксперименты.
Веселенький, кста. ))
Изучение Rust, к примеру, навевает скуку. А описание Swift хочется читать и читать. Оч положительные эмоции. Особенно, если помнить, что это лишь первая версия языка. Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. ))
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Ikemefula, Вы писали:
I>>Если будет внятный GC, то это лучше C#, Джавы и С++ вместе взятых. Но судя по набору фич язык сильно близко подобрался к Scala и F#
I>>И самое главное — Сишный синтаксис !
N>По первым описаниям — смесь бейсика с Ruby, местами вдохновлённый Питоном и Go. На C никак не похож.
Ну давай посмотрим, а то не ясно, откуда мог взяться питон если все надо скобочками отделять
Типы указываются постфиксно, щас это модно, например тот же подход в TypeScript
struct FixedLengthRange {
var firstValue: Int
let length: Int
}
Наследование
class SomeClass: SomeSuperclass {
// class definition goes here
}
Не ясно, что здесь от бейсика и руби
Или вот
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
println("The default temperature is \(f.temperature)° Fahrenheit")
Здравствуйте, vdimas, Вы писали:
V>Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. ))
Смишно. Распространенный язык, недоступный на линуксе и винде.
Что до носа C#, то вот простейший вопрос: напиши на свифте генерик-функцию, работающую с разными линейными контейнерами (массив, два вида списков, deque). Скажем, на входе контейнер с интами, найти минимум из первых 10 положительных чисел. Второй вопрос: добавить свой контейнер и чтобы эта функция без изменений с ним заработала.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, netch80, Вы писали:
V>Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. ))
Здравствуйте, D. Mon, Вы писали:
V>>Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. )) DM>Смишно. Распространенный язык, недоступный на линуксе и винде.
А какая разница разработчикам под семейство макосей на этот довод?
Он всё-равно сходу будет более распространён как инструмент написания коробочных продуктов, чем тот же C#.
DM>Что до носа C#, то вот простейший вопрос: напиши на свифте генерик-функцию, работающую с разными линейными контейнерами (массив, два вида списков, deque). Скажем, на входе контейнер с интами, найти минимум из первых 10 положительных чисел. Второй вопрос: добавить свой контейнер и чтобы эта функция без изменений с ним заработала.
Это намек на IEnumerable<IComparable>?
Самому не смишно?
Здравствуйте, D. Mon, Вы писали:
DM>Что до носа C#, то вот простейший вопрос: напиши на свифте генерик-функцию, работающую с разными линейными контейнерами (массив, два вида списков, deque). Скажем, на входе контейнер с интами, найти минимум из первых 10 положительных чисел. Второй вопрос: добавить свой контейнер и чтобы эта функция без изменений с ним заработала.
Кароч, облом ждать очередной итерации пинг-понга в сообщениях.
Ты привел сценарий, когда дотнет генерит в рантайм код под value-type как аргументы генериков.
Теперь, если включить мозг (просто понять целевую платформу и её философию) — самому не смешно?
Ничего подобного в промышленном инструментарии под коробочные продукты под эту ось и под приложения для самой оси (и даже для написания запчастей этой оси) никогда не будет, ес-но.
Тут можно ожидать только подвижки в ту же сторону, в которую идет обобщенное программирование в С++.
Здравствуйте, Cyberax, Вы писали:
K>>Нет, это не замена отладчику, это скорее замена всяким приседаниям с "созданием файликов". C>А какие приседания? С REPL'ом меня ещё додалбывало то, что его потом сложно снова воспроизвести.
Repl сложно воспроизвести, если ты намодифицировал всего подряд и функции у тебя кругом модифицирующие.
Здравствуйте, vdimas, Вы писали:
V>Точно! Эдакий современный продвинутый вариант Бейсика. Безопасный и провоцирующий на эксперименты.
V>Веселенький, кста. )) V>Изучение Rust, к примеру, навевает скуку. А описание Swift хочется читать и читать. Оч положительные эмоции. Особенно, если помнить, что это лишь первая версия языка. Первый промышленный язык, который будет заведомо распространён, и который сходу утер нос C#. ))
Ого, у тебя, оказывается, есть информация из будущего.
Свифт предлагает очень много фич разом. Есть большой шанс, что сообщество обжективных разрабов, которое консервативное донельзя, просто не примет. Так что вполне можно ожидать сценарий "с места и в лужу".
Здравствуйте, vdimas, Вы писали:
V>А какая разница разработчикам под семейство макосей на этот довод? V>Он всё-равно сходу будет более распространён как инструмент написания коробочных продуктов, чем тот же C#.
DM>>Что до носа C#, то вот простейший вопрос: напиши на свифте генерик-функцию, работающую с разными линейными контейнерами (массив, два вида списков, deque). Скажем, на входе контейнер с интами, найти минимум из первых 10 положительных чисел. Второй вопрос: добавить свой контейнер и чтобы эта функция без изменений с ним заработала.
V>Это намек на IEnumerable<IComparable>? V>Самому не смишно?
Это намёк на экстеншны, предсказуемый полиморфизм, обобщенное программирование и особенности дизайна базовых классов. Вот скажем если в свифте контейнеры никто не задизайнит внятно, то от экстеншнов толку будет крайне мало.
Здравствуйте, vdimas, Вы писали:
V>Кароч, облом ждать очередной итерации пинг-понга в сообщениях. V>Ты привел сценарий, когда дотнет генерит в рантайм код под value-type как аргументы генериков.
А в огороде бузина.
V>Теперь, если включить мозг (просто понять целевую платформу и её философию) — самому не смешно? V>Ничего подобного в промышленном инструментарии под коробочные продукты под эту ось и под приложения для самой оси (и даже для написания запчастей этой оси) никогда не будет, ес-но.
Забудь про то, что и как делается в рантайме. Главное, что в компайл-тайм в C# у тебя есть определенные инструменты — полиморфизм, обобщенное программирование, внятный дизайн контейнеров и экстеншны. Как они работают в рантайме — никому не интересно. Вопрос не про это.
Здравствуйте, Ikemefula, Вы писали:
I>Типы указываются постфиксно, щас это модно, например тот же подход в TypeScript
Это сто лет как модно, и используется в большом количестве не Си-подобных языков: F#, OCaml, Scala, Nemerle, ActionScript, etc. Не говоря уже о теории типов и языков программирования.