1.1, A.Stahl (ok), 09:17, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Я в своё время писал на Objective C (очень приятный язык с офигительнейшей документацией), но уже тогда было ясно что то, что писалось для Эппл, что используется в Эппл, только в Эппл и будет использовано.
Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?
| |
|
2.2, 1030гор (?), 09:23, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Любой язык бесполезен без библиотек, если Apple сделает Swift кроссплатформенной платформой (извиняюсь за тафтологию), то он будет использоваться.
| |
|
3.3, A.Stahl (ok), 09:27, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
ObjC совместим с С. Т.е. любая Си-либа слинкуется без лишних телодвижений. Вроде бы :)
| |
|
4.6, 1030гор (?), 10:00, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да, только это и будет в чистом виде С, т.к. нужна хотя бы стандартная библиотека, чтоб использовать полноценно ObjC. Есть, конечно, ее гнутый суррогат, но это все для любителей острых ощущений, а не тех, кто хочет реализовывать свои идеи.
| |
|
|
2.8, Аноним (8), 10:22, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?
Есть те, кто пишут под iOS сидя на Линухах. Кроме того, Apple имеет программы поиска уязвимостей, и без открытого кода это организовать сложнее
| |
|
3.9, A.Stahl (ok), 10:24, 26/09/2020 [^] [^^] [^^^] [ответить]
| +6 +/– |
>Есть те, кто пишут под iOS сидя на Линухах.
Это возможно? Я имею в виду не теоретическую, а практическую рациональную возможноть...
| |
|
4.41, коржик (?), 15:28, 26/09/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
нет, это невозможно.
для сборки всё равно мак нужен. Для вёрстки икскод нужен. Плюс проблемы с сертификатами. Знаю по большому опыту xamarin разработки.
В этом плане меня радует положение вещей в андроиде. Скачал андроид студию - и всё, к разработке готов
| |
4.54, Anonym_1914 (?), 17:00, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Можно, но на практике это делать чревато, ибо Apple запрещает использовать UIKit вне macOS.
А так, насколько помню, UIKit библиотеки можно найти в пользовательском репозитории Арча.
| |
|
3.23, proninyaroslav (ok), 11:39, 26/09/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
>Есть те, кто пишут под iOS сидя на Линухах
Каким образом они пишут, когда Xcode доступен только для макос? Без этого можно собрать только CLI-утилиту, не больше.
| |
|
2.12, Ю.Т. (?), 10:56, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?
GNUStep?
| |
|
3.90, IRASoldier_registered (ok), 20:26, 28/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
И где он теперь? Ну, кроме, может быть, компов нескольких фанатов? Кроссплатформенный софт на этой основе, не говоря уже о когда-то имевших место задумках Sony или хотя бы Frugalware Linux и DE Etoile - где это всё? :-)
| |
|
2.22, proninyaroslav (ok), 11:38, 26/09/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
На самом деле очень печально что Objective-C стал "актёром одной роли", хотя мог бы стать сильным конкурентом C++.
| |
|
3.68, Ключ (?), 04:35, 27/09/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
С C++ можно конкурировать только по степени упоротости, даже раст не дотягивает до фимозности крестов
| |
|
2.58, Урри (?), 18:00, 26/09/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Хуже objC только JavaScript.
Начиная с совершенно идиотской объектной модели и заканчивая не менее дурацким синтаксисом +[] -[].
| |
2.67, Animal (??), 01:27, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
В не эппл имеет смысл юзать компилятор для сборки. А на свифте писать костыли для нужд сборки. На ум больше сценариев использования не приходит. Я не иос/мак разраб и никогда им не был. Не знаю как это "добро" можно еще применить.
| |
2.70, Аноним (70), 08:20, 27/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
У меня при сборке мира в Gentoo в BDEPEND тянется Swift и им что-то компилируется.
equery d swift - даст ответ что нуждается в Swift у вашей системе.
| |
|
1.10, Аноним (10), 10:51, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> Swift также предлагает множество современных методов программирования, таких как замыкания, <…> лямбда-выражения
Скажите мне, пожалуйста, что это ошибка автора новости, а не гениальное изобретение авторов языка.
| |
|
|
3.50, Аноним (10), 16:30, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Я не вижу, я надеюсь, что это ошибка. Так ошибка или нет? По запросу "swift lambda" вылезает только какая-то AWS Lambda.
| |
|
4.61, Урри (?), 21:22, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Загугли "swift closures".
Они даже здесь не смогли обойтись без желания вендорлока - яблочный программист должен уметь программировать только под яблоки. Поэтому даже терминологию надо искалечить, чтобы не дай боже не получилось адекватно общаться с чужими программерами.
Все по заветам любых религиозных сект.
| |
|
5.63, Аноним (10), 22:39, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Загугли "swift closures".
Спасибо, я до этого и сам додумался. Вопрос в том, действительно ли помимо этих замыканий в языке есть какие-то ещё лямбды?
| |
|
4.82, Ordu (ok), 20:37, 27/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Так ошибка или нет?
Что за ошибка? Грамматически всё правильно. Или ты не о грамматике?
| |
|
|
2.74, Gogi (??), 13:14, 27/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это "ламерьё" набегает, чтобы писать что-то в области, где они вчера научились отличать термины. И как видно, всё ещё лажают.
Нет такого "метода программирования" "замыкания"! Чушь и ахинея. Есть возможность языка "лямбда".
А "метод" - это ООП, ФП, процедурное, логическое и т.п.
| |
|
1.13, Аноним (13), 10:56, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как разработчик С++ со стажем начал изучать swift некоторое время назад и по сути вижу, что swift это по сути С++ "под капотом".
Понятно, что синтаксиз переработан, идеология другая - но это тот же С++. Код становится лаконичнее, вместо std::shared_ptr<Tclass> obj видим просто T obj. Добавлены разные плюшки, что-то запрещено делать как в С++ и делать нужно по другому. Но бинарный код в итоге должен получиться по производительности такой же, как если бы мы написали его на С++.
| |
|
|
|
4.92, Аноним (-), 10:29, 29/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> 12 лет
Дайте угадаю, через описание в вакансии на мильён, вы купили себе мац за три ? Могу поздравить ,прибыло в полку ло.. этих, менятелей мира
| |
|
|
|
|
|
|
6.27, Ordu (ok), 12:23, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
А это невозможно понять не освоив функциональный язык. Теоретических объяснений недостаточно, для того, чтобы прочувствовать идею.
| |
6.77, Gogi (??), 13:34, 27/09/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
ФП - это когда надо пробежать 100 метров и в принципе есть обычный метод бега. Но апологетам ФП это скучно и они изобрели "бег вприсядку", причём боком.
| |
|
|
4.51, Аноним (51), 16:48, 26/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
ну так вперёд учить джаву и сишарп. или что там ещё вендорлокнутое осталось?
| |
|
|
2.33, Аноним (-), 13:21, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> Но бинарный код в итоге должен получиться по производительности такой же, как если бы мы написали его на С++.
сомнительно, потому что в swift используется ARC для ссылочных типов(напр. class), и чем больше создаётся объектов классов, тем чаще срабатывает ARC, а без class вряд ли получится обойтись, заменив class на struct, потому что в swift по умолчанию struct копируемые, а moveonly struct всё ещё нет, для moveonly struct нужно реализовать механизмы ownership и borrowing, а это значит, что должен быть borrow checker в компиляторе swift
| |
|
3.43, НяшМяш (ok), 15:49, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Структуры в Swift используют copy-on-write. То есть спокойно можно передавать структуру в методы и ничего копироваться не будет. А если вам нужно структуру модифицировать избежав копирования, то всегда есть inout и &
| |
|
4.45, Anonymous23554 (?), 16:05, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
есть сомнения, что вы про Array и Dictionary, которые copy-on-write, но в swift на данный момент есть только копируемые struct, а перемещаемых struct нет на данный момент.
| |
|
5.52, НяшМяш (ok), 16:53, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да, точно, только коллекции CoW. Но это не отменяет возможности структуры перемещать. Хотя и делается это немного костыльно:
func address(of data: UnsafeRawPointer) -> Int {
return Int(bitPattern: data)
}
struct MoveOnly {
var prop: Int = 0
}
func doSomething(data: inout MoveOnly) -> Void {
data.prop = 5
print(address(of: &data))
}
var base = MoveOnly()
print(address(of: &base))
base.prop = 3
print(address(of: &base))
doSomething(data: &base)
print(address(of: &base))
Такой код у меня печатает один и тот же адрес. А вот если я захочу из doSomething вернуть MoveOnly (или даже UnsafePointer<MoveOnly>), тогда результат будет копией.
| |
|
|
3.57, Аноним (13), 17:38, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Кстати хорошее замечание, этого в swift еще не проверял. Возможно тут вы правы
| |
|
4.59, Аноним (13), 18:05, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Хотя, в С++ я стараюсь получать shared_ptr везде по ссылке, так как инкрементировать счетчик ссылок в такой ситуации нет смысла. Подозреваю, что при передачи экземпляра класса в swift аргументом функции там также счетчик не инкрементируется
| |
|
|
2.44, Аноним (44), 15:57, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну если shared_ptr везде лепить, то может и получится такой же по производительности код. Только в задницу такой код, время жизни объектов потом понять невозможно.
| |
2.46, Аноним (46), 16:06, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Так ведь vasya::Tclass obj и был закостылен в плюсах, если вдруг помимо Васи этот самый Tclass напишет ещё и Гриша например. Как это так просто берёт и решается в свифте?
| |
|
3.53, НяшМяш (ok), 16:56, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Например, хотим мы свою структуру String изобрести, то потом взять библиотечную String можно вот так - Swift.String.
| |
|
|
|
2.25, Аноним (13), 12:18, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
К какая судьба у .Net Core? Он довольно активно тоже развивается
| |
|
3.75, Gogi (??), 13:28, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Core - это как если бы сегодня оживили мамонта, но разрисовали его под слона. Нарисовать-то можно, но... не выживет он!
Кору надо было делать 18 лет назад, когда какая-то идиотина предложила "а давайте переименуем Жабу в C# и попутно назовём JVM "большой платформой". ВОТ ТОГДА надо было думать о "не только виндузе"!
Время профукано, стратегия "завязывать всё на венду" СРАБОТАЛА и сейчас у нас есть:
1. .NET FW, который гвоздями прибит в Венде. Но он стабильный, достаточно шустрый, громадное количество либ на все нужды.
2. WinForms, который суть враппер над Win API. Абсолютно непереносимое ОНО.
3. WPF. Как надо было умудриться сделать ЯЗЫК ТЕГОВ непереносимым(!!!!!) до сих пор ума не приложу. Но это факт - MS официально отказалась от портирования WPF куда-либо и даже не обещает в перспективе.
4. Корпоративный код, которого за 18 лет(!!) понаписано тонны. Плюс библиотеки, FOSS и т.п.
5. Visual Studio - полнейшее говно мамонта ещё на COM-технологиях, 32-битная и абсолютно непереносимая.
6. Программеры, которые в уютных вендах наблатыкались с дотнетом до состояния дзена. Сидят в Студии и ничего лучше этого под вендой нет. Rider по сравнению со Студией - неуклюжее фуфло.
И вот теперь весь этот ГРУЗ ЛЕГАСИ кто-то решил сдвинуть с места, мол, хва сидеть на венде! Взялся за лямку и.... всего лишь порвал ширинку! :) Это невозможно. Кора без всего, что был УЖЕ написано для венды, просто не нужна. Вдвойне не нужна без такой технологии, как WPF.
Ну и какие перспективы у коры?? (это я ещё не говорю про качество кода нынешних индусячих макак, которых в MS сейчас набежало множество)
| |
|
4.78, Anonym_1914 (?), 15:54, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Спокойно себе пишу на .netcore новые сервисы для банка из под macOS на rider, а работает потом все это дело на линуксе.
Плюс так как это из семейства .net, то не вызывает страха у консервативного менеджмента, который всю свою жизнь привык видеть только .net framework, и о чем либо другом даже слышать не хочет.
Так что зря вы так, очень даже приятная для работы технология, хоть и не хватает адекватной совместимости с legacy, типа того же wdsl.
| |
|
|
|
|
2.30, Аноним (30), 12:45, 26/09/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
"Е...ся это о....но, я читал". Ты писал на нём, а ешё на другом, чтобы сравнить?
| |
2.76, Gogi (??), 13:30, 27/09/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Раст - это ярчайший пример, когда за дело берутся "космические архитекторы". Мол, мой дело - напроектировать, а как вы там будете с этим ипасса - не моё дело.
Мёртвый он, раст этот! И его еженедельные "промо-статьи" лишний раз доказывают, что его пихают во все щели, а он НЕ ЛЕЗЕТ! :)
| |
|
1.29, mos87 (ok), 12:44, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
открыл - это решил вести разработку совместно, свободно, общими усилиями
опубликовал под очередной бздя-лицензией - это выкинул, может кто баги поправит.
| |
|
2.48, НяшМяш (ok), 16:09, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Посмотрел самый последний тест regex-redux и навскидку вижу пару вещей - использование DispatchQueue.global() без приоритета (нужно было собственный queue инициализировать как в других тестах сделали, да и тонны оверхеда с async и group), входящая строка ASCII а потом везде дёргают .utf8 (тут на самом деле не уверен влияет ли это вообще) и NSRegularExpression не самая быстрая штука.
| |
|
1.34, Аноним (36), 14:47, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
>Pеализация Swift построена с задействованием технологий свободного проекта LLVM.
Apple, когда сделаете автономный компилятор, тогда приходите.
| |
|
|
3.38, Аноним (36), 14:58, 26/09/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Они и сделали. Я имею ввиду компилятор Swift неоснованный на LLVM.
| |
|
4.39, Аноним (-), 15:11, 26/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
в этом нет смысла, если есть компонент, прекрасно решающий свою задачу
| |
|
5.85, Аноним (85), 14:58, 28/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да вот и думаю, зачем всё это мне. Пусть всем этим хозяйством ябблофаги интересуются.
| |
|
4.42, Lex (??), 15:35, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Они и сделали. Я имею ввиду компилятор Swift неоснованный на LLVM.
Зачем ?
Тем более, что у них практически всё так или иначе на llvm завязано и не только в свифте
| |
4.47, Аноним (-), 16:08, 26/09/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Swift изначально проектировался с прицелом на llvm, а llvm - на в том числе подобные ЯП
| |
|
|
2.49, Аноним (46), 16:11, 26/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
"Ещё один очень нужный компилятор с ещё одними своими приколами"©®?
| |
|
|
2.65, Аноним (65), 23:56, 26/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
а с++ на си писали, а си - на асме, а асм - в кодах... В общем, изначально были счёты.
| |
|
3.69, Аноним (-), 07:11, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Помню во времена СССР продавщицы в магазинах и универмагах счётами пользовались.
| |
|
4.80, Аноним (65), 17:59, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
Потому что на счётах проще обмануть. Так-то серийно в Союзе производились электромеханические калькуляторы в 50-х годах, электронные - в 60-х, а в 70-х уже программируемые пошли. Но продавцы продолжали долбиться в счёты.
| |
|
5.87, Аноним (87), 16:30, 28/09/2020 [^] [^^] [^^^] [ответить] | –1 +/– | В 90-е был у родителей на работе, управление морским транспортом, отдел эксплуат... большой текст свёрнут, показать | |
|
6.89, Аноним (65), 17:38, 28/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> но это были единичные вещи, которые не достать. И если я не ошибаюсь то программируемый калькулятор стоил как з/п инженера, а может даже больше.
Конечно ошибаешься, у меня к началу 90-х уже был МК-61, не считая обычных карманных калькуляторов. На месячную зарплату простого рабочего можно было неск-ко таких МК купить.
| |
|
|
|
3.79, Страшный Аноним (?), 16:07, 27/09/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Все так. Но это только первые версии. Когда язык зрелый, то компилятор языка пишется на нем же самом. Например, компилятор языка С написан на С. Компиятор языка Java написан на Java.
| |
|
4.81, Аноним (65), 18:03, 27/09/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Рад за тебя, что ты выучил сказку "Репка". Как там, мышка за кошку... дедка за бабку... скросскомпилировали жабу!
| |
|
|
2.66, Аноним84701 (ok), 00:24, 27/09/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Он весь на С++ написан
https://www.gnu.org/software/mes/
> GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System.
>The Scheme interpreter is written in ~5,000 LOC of simple C, and the C compiler written in Scheme and these are mutual self-hosting.
> Mes+MesCC can compile an only lightly patched TinyCC that is self-hosting. Using this tcc and the Mes C library we now have a Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5, binutils-2.20.1, gcc-2.95.3.
Шах и мат.
| |
|
|