swift - с англ. "быстрый"
Еще писатель такой был.
и певица
и мой хуй
ты путаешь свифт с шорт
Возможно он Свифт Гонзалес.
Почему у него не может быть сразу оба качества?
на словах ты фронт-сеньор
а на деле swift простой
а на деле swift простой
Мало кто гордится тем, что он скорострел. Но ты молодец
Видимо подразумевается, статическая типизация языка...
Статическая типизация не позволить даже скомпилить невалидное приложение (ну почти).
Как говорится, есть 2 стула: на динамическом заебешься проверки типа писать, а на статическом заебешься протекшую память чинить)
Как утечки памяти связаны с типизацией?
Напрямую вроде бы никак. Но статистически это почему то очень часто совпадает
Хотелось бы пруф на статистику.
так какая связь бд с фронтом, написанного на любом языке, и забирающего данные с бека через апи?
Мобильный фронт-енд, видимо, имеют ввиду SwiftUI, где любая попытка создать что-то сложнее дефолтного списка карается наймом сеньёра с 300к+ зарплатой.
не, кто-то не может нормально настроить парсер или маппер
и ноет на джое, вместо того, чтобы порыться на стековерфлоу
и ноет на джое, вместо того, чтобы порыться на стековерфлоу
Статическая типизация VS динамическая. Срач в программировании уровня цска против спартака и примерно того же возраста
Динамическая типизация рулит на мусорку
и сцыт себе в рот
Она перепутала и насцала в твой
перепутала - это все что нужно знать о динамической типизации
Это же как круто придумать JS а потом такие "Чего-то не хватает" и придумать TypeScript
ровно до момента когда тебе прилетает код, в котором ты нихуя не понимаешь, но тебе нужно исправить вон ту хуйню
сидишь вдупляешь в метод который принимает хуй знает что
рулит в ногу себе
сидишь вдупляешь в метод который принимает хуй знает что
рулит в ногу себе
окей, нормальная иде от джетбрейнса есть.
но даже она не может вывести содержимое переменных data, params, options и context, если на всём стеке они ни разу не были подписаны.
ах да, иногда может. и там сука тип mixed.
сидишь, штаны протираешь часами за таким дебагом. бесполезно проживаешь жизнь.
но даже она не может вывести содержимое переменных data, params, options и context, если на всём стеке они ни разу не были подписаны.
ах да, иногда может. и там сука тип mixed.
сидишь, штаны протираешь часами за таким дебагом. бесполезно проживаешь жизнь.
Слава Unity я на С# работаю.
Сочувствую чувак.
Сочувствую чувак.
Ты в геймдеве работаешь и сочувствуешь? Где спальное место за компом и там же обеденный стол с Дошираком?
Ты щас троллишь, да?
Мне прилетал код на ActionScript "в котором ты нихуя не понимаешь, но тебе нужно исправить вон ту хуйню", и я "вдуплял в метод который принимает хуй знает что", потому что хуй знает что - это объект класса в тысячу строк со ссылками на несколько объектов классов в еще пару тысяч строк
ты думаешь, я не ожидал такой реакции? я просто люблю ссать против ветра.
Я обосрался
Не не, вы не поняли, всё так и планировалось!
Не не, вы не поняли, всё так и планировалось!
да хуле там думать. статическая хороша для работы с данными, а динамическая (только не слишком выебистая) - для ui. Жалко только что нет такого языка, который бы хорошо поддерживал и то и другое (TypeScript не в счет). И еще и быстро работал.
привет от шарпа и его проекта маю
Не трогал, не знаю)
я в последнее время больше по c++/Qt/qml
я в последнее время больше по c++/Qt/qml
Быстро работал это типа так же быстро, как плюсы?
Любой статически типизированный язык можно превратить в динамический.
Просто используй или надтип (Object, Any, etc), или аналог void* вообще везде, и будет тебе динамическая типизация. И это даже будет быстро. Но риск получить пизды за такой код, если его кто-то адекватный увидит.
Просто используй или надтип (Object, Any, etc), или аналог void* вообще везде, и будет тебе динамическая типизация. И это даже будет быстро. Но риск получить пизды за такой код, если его кто-то адекватный увидит.
это не вполне так.
Смотри: в js можно создавать новый "тип" вообще нигде никак не описывая его структуру, а прямо на месте написав что-то вроде {"a": 1, "b": 2}
В более строго типизированных языках действительно есть всякие Object, Any и т.п. Но для того чтобы в них положить произвольный пользовательский тип, этот тип обычно должен удовлетворять некоторым критериям, как то: должен быть явно описан как структура/класс, предоставлять метод хеширования. или например пару методов сериализации/десериализации.
Т.е. в строготипизированных языках ты получаешь как бы динамическую типизацию не за счет синтаксиса самого языка, а за счет складывания всего в хитрый union, который писать вручную надо. А вариант с void* не уверен что это можно в принципе сравнивать с динамической типизацией. С точки зрения теории это вообще звери из разных вселенных: абстрактная теория типов не очень заботится о том, что должна помещаться в реальную физическую память
Смотри: в js можно создавать новый "тип" вообще нигде никак не описывая его структуру, а прямо на месте написав что-то вроде {"a": 1, "b": 2}
В более строго типизированных языках действительно есть всякие Object, Any и т.п. Но для того чтобы в них положить произвольный пользовательский тип, этот тип обычно должен удовлетворять некоторым критериям, как то: должен быть явно описан как структура/класс, предоставлять метод хеширования. или например пару методов сериализации/десериализации.
Т.е. в строготипизированных языках ты получаешь как бы динамическую типизацию не за счет синтаксиса самого языка, а за счет складывания всего в хитрый union, который писать вручную надо. А вариант с void* не уверен что это можно в принципе сравнивать с динамической типизацией. С точки зрения теории это вообще звери из разных вселенных: абстрактная теория типов не очень заботится о том, что должна помещаться в реальную физическую память
Ну, это прототипирование.
При желании легко делается через любой map, где ключ - имя свойства, а значение - значение. Тащемта, в нутрях нетипизированных языков оно так и сделано. И даже обращаться к свойствам часто можно через нотацию мапов.
Вопрос только, нахуя.
И да, это чуть перпендикулярно статике/динамике. В некоторых языках со статик типизацией можно создавать типы на лету, но они остаются статическими.
При желании легко делается через любой map, где ключ - имя свойства, а значение - значение. Тащемта, в нутрях нетипизированных языков оно так и сделано. И даже обращаться к свойствам часто можно через нотацию мапов.
Вопрос только, нахуя.
И да, это чуть перпендикулярно статике/динамике. В некоторых языках со статик типизацией можно создавать типы на лету, но они остаются статическими.
Ой, да справа небось просто optional construction не осилили.
Уж в плане отсутствующих полей, со swift все в порядке.
А вот время компиляции - говно, да и динамическое выделение памяти - тоже (ибо медленно).
*последний раз 3 года назад его трогал
Уж в плане отсутствующих полей, со swift все в порядке.
А вот время компиляции - говно, да и динамическое выделение памяти - тоже (ибо медленно).
*последний раз 3 года назад его трогал
Но в итоге он насрет тебе на ковер с довольным видом
И сблевнет на подушку
Дада, приму что попало, и обработаю как получится. В этом весь js и вся динамическая типизация. И приведение типов по ебанутым правилам.
То, что в результате получится совсем не то, что нужно, а случайная непредсказуемая хуйня, программистов js не ебёт. Не упало, ошибку не выдало, значит и заебись.
А то, что оно исполнило какую-то хуйню на логическом уровне, и от этого пользователи в ахуе и не могут что-то сделать - ну и что, да? Главное же, что не упало.
Погроммисты, блядь.
То, что в результате получится совсем не то, что нужно, а случайная непредсказуемая хуйня, программистов js не ебёт. Не упало, ошибку не выдало, значит и заебись.
А то, что оно исполнило какую-то хуйню на логическом уровне, и от этого пользователи в ахуе и не могут что-то сделать - ну и что, да? Главное же, что не упало.
Погроммисты, блядь.
ну вообще для недопрограммиста который учит язык все-таки морально приятнее когда программа работает хоть как-то, чем вообще не работает.
понятно что для профи, особенно если код пишется не в одиночку, это неприемлемо.
на практике мне пришлось летом изучить js чтобы полноценно исполнять dba-шные функции в таблицах на "zero-code/low-code" (я столько кода как за последние 3 месяца, не писал в предыдущие 15 лет работы в сфере IT) - поскольку уже заранее предупрежден мемами с js sort и "5"+2="52", таких ситуаций практически не случалось, да и математики в итоге применяется совсем мизер. тем более пишется в интерфейсе с оберткой typescript, он всегда гавкает если что-то не так, иногда даже когда все так.
понятно что для профи, особенно если код пишется не в одиночку, это неприемлемо.
на практике мне пришлось летом изучить js чтобы полноценно исполнять dba-шные функции в таблицах на "zero-code/low-code" (я столько кода как за последние 3 месяца, не писал в предыдущие 15 лет работы в сфере IT) - поскольку уже заранее предупрежден мемами с js sort и "5"+2="52", таких ситуаций практически не случалось, да и математики в итоге применяется совсем мизер. тем более пишется в интерфейсе с оберткой typescript, он всегда гавкает если что-то не так, иногда даже когда все так.
Поддерживаю. Лишь бы работало - это удел мамкиных кодерков, которые последствия такой "отработавшей" программы не разгребали. Из-за которой бизнес терял сотни нефти, а вместо 13-й зряплаты все получали шершавым по губам.
Это как если когда тебе в ресторане принесли вместо пасты карбонара говно с битым стеклом. Нормальный человек сразу увидит это, и откажется жрать, заодно и отказавшись платить(отменив транзакцию), и свалив нахуй из этого реаторана. И напишет отзыв с фото, а возможно и в ментовку(напишет лог, и примет меры, чтобы говно со стеклом вместо карбонары не подавали).
Программисты JS предлагают сожрать говно со стеклом, насладиться тем, что всё получилось, заплатить, и похуй на кровавый понос и прочие последствия поедания.
Программисты JS предлагают сожрать говно со стеклом, насладиться тем, что всё получилось, заплатить, и похуй на кровавый понос и прочие последствия поедания.
Какое то идиотское сравнение. Жрут пользователи, фронты готовят, а вот готовят они из того что пришло с бэка, и если там говна прислали, под видом конфет, то уже что подали то и получите. А если ингредиенты хорошие, то и блюдо будет вполне себе стабильного качества.
Ну так вот говно не надо выдавать в зал. Говно надр возвращать тем, кто его сделал, фиксируя этот факт. Или хотя-бы выкидывать, и фиксировать.
Неопределенное поведение - это наихудший результат работы любой программы. Хуже, чем полная неработоспособность и отказ.
Неопределенное поведение - это наихудший результат работы любой программы. Хуже, чем полная неработоспособность и отказ.
Нехуй работать с поставщиком, который выдает говно под видом товара. Если бэк меняет что-то втихаря без синхры с фронтом, это косяк долбаеба писавшего бэк. Если задача идет вместе, все спокойно отрабатывается, и никаких проблем не будет. С какого перепуга фронт должен считать данные бэка не валидными? Ты когда из таблицы данные забираешь, тоже проверяешь что там Фамилия, а не набор букв?
Разумеется, это проблема, скорее всего бека(или вообще третьей стороны - данные могут из разных мест идти).
Но, тем не менее, проверять структурную целосность пришедших данных нужно всегда.
Как, кстати, и критические ключевые моменты.
При статической типизации структурная целостность проверяется автоматически всегда, без усилий. И если пришло что-то не то, а это не такая и редкость, то выдаётся ошибка.
Жаваскрипт не проверяет нихуя. Хуже того, в данном посте это преподносится как преимущество, хотя это скорее пиздец.
Но, тем не менее, проверять структурную целосность пришедших данных нужно всегда.
Как, кстати, и критические ключевые моменты.
При статической типизации структурная целостность проверяется автоматически всегда, без усилий. И если пришло что-то не то, а это не такая и редкость, то выдаётся ошибка.
Жаваскрипт не проверяет нихуя. Хуже того, в данном посте это преподносится как преимущество, хотя это скорее пиздец.
Вот бы кто-нибудь придумал что-то, чтобы типы в JS проверялись. Как жаль, что девять лет назад ничего такого не случилось, и все фреймворки поддерживают только чистый JS...
В исходном посте именно динамическая типизация восхваляется.
То, что умные люди, охуевая с этого пиздеца, поставили костыли к js, которые позволяют лучше работать с типами, только подтверждают то, что динамика - полная хуета.
То, что умные люди, охуевая с этого пиздеца, поставили костыли к js, которые позволяют лучше работать с типами, только подтверждают то, что динамика - полная хуета.
Ичсх с типами оно всё рано работает хуёво
Ну потому что костыль всегда хуже здоровой ноги.
Kokoko<Kukarek> kokoko = new Kokoko <Kukarek&rt;();
Kukareku kukarek = new Kukareku()
kokoko.setKukarek(kukarek);
Kukareku kukarek = new Kukareku()
kokoko.setKukarek(kukarek);
Я очень надеюсь что Kukareku extends Kukarek иначе это будет полностью обосравшийся комментарий
Как раз нет. Если бы ты писал на ts, то был бы в курсе, что это просто способ аннотирования твоего кода, а не строгая система типов. Более того это норма писать
function sitDown(bar: Spike[] | Dick[]): Void {
….
}
function sitDown(bar: Spike[] | Dick[]): Void {
….
}
Это я и назвал "костыль, который помогает лучше работать с типами". Аннотирование уже лучше, чем нихуя. Но хуже, чем строгая типизация в полноценной реализации.
Строгая типизация без костылей вроде выведения типа из выражения, является массивным гемороем, одна лишь проблема наследования типов чего стоит.
Выведение и просчёт типов всех выражений - неотъемлимая часть строгой типизации, так что неясно, что ты имеешь ввиду, и схуяли это костыль.
И какая проблема с наследованием?
И какая проблема с наследованием?
А, ну тогда С - это костыли к ассемблеру, в котором нет типизации.
Кстати, как там поживает типизация в похапе и перле?
Кстати, как там поживает типизация в похапе и перле?
Никак. Потому похопе и перл - говнецо.
Ну охуеть, а что тогда не говнецо? Ява, которая уже в девяностых была громоздким устаревшим уебищем? Или, быть может, майкрософтовская ява, удачно сохранившая все минусы оригинала и добавившая туда зоопарк глючных фреймворков, построенных вокруг мега-уебищной ОРМ? А может питон с его чудо-производительностью, заставляющей замереть в восхищении даже самые мощные серваки?
Java, которая со времён девяностых научилась в JIT, засчёт чего обгоняет опримизированный С++. Ну и собственно С++.
Дотнет неплох, но я не следил.
Все языки поверх этих ВМ(дотнет, джава).
Есть ещё всяческоя экзотика типа GoLang, и ещё нескольких.
Все эти технологии объединяет быстрая скорость и удобство программирования, и быстрая работа. И статическая типизация.
Дотнет неплох, но я не следил.
Все языки поверх этих ВМ(дотнет, джава).
Есть ещё всяческоя экзотика типа GoLang, и ещё нескольких.
Все эти технологии объединяет быстрая скорость и удобство программирования, и быстрая работа. И статическая типизация.
Дядя, никто не вернёт 2008. В 2021 у js-разработчиков есть линтеры, тайпскрипт, юнит тесты, автотесты, интеграционные тесты и ещё куча всего. Не знаю как там дела у пайтона, но догадываюсь, что тоже норм.
"React Native" же вроде на все платформах работает, не?
ну как на всех... всегда найдется микроволновка с 2кб памяти)
Реакт везде хуево работает. Это похапе в мире фронтэнда.
Ну, ПХП всё время ругают, а сколько уж лет на нём сайты делают. Всякие "вордпрессы" там, "лэравал". И язык постоянно обновляется и вакансий разработчиков вроде полно
пхп обновляется фичами, которые 15 лет были везде. забавно наблюдать, как дауны радуются "ну вот, развивается, а вы говорили, говно"
имхо, то, что у тебя прилетела херота, должно явно тебе говорить о том, что у тебя в коде бека и фронта какой-то рассинхрон - иди и фикси.
но нет, в динамической типизации оно будет втихаря корраптить данные, пока вы это случайно не обнаружите через полгода.
но нет, в динамической типизации оно будет втихаря корраптить данные, пока вы это случайно не обнаружите через полгода.
А добавить проверку на соблюдение интерфейса религия не даёт? Так то и в статически типизированных языках можно десериализировать данные, полученные из другой системы через очко проебав половину полей
так в этом же и прикол динамической типизации: ты можешь до посинения указывать типы, но например в том же пхп если не врубить declare(strict_types=1), то ему будет похуй на то, что ты явно указал, что сделал функцию, принимающую число - он может в неё запихать хоть строку, хоть массив, хоть объект.
особенно прекрасно живёт сравнение переменных разных типов.
одно лишь существование этого в официальной документации показывает, что динамическая типизация не имеет права на жизнь
https://www.php.net/manual/ru/types.comparisons.php
особенно прекрасно живёт сравнение переменных разных типов.
одно лишь существование этого в официальной документации показывает, что динамическая типизация не имеет права на жизнь
https://www.php.net/manual/ru/types.comparisons.php
Так в чем проблема в слое интеграции добавить проверку на типы полей, которые ты получаешь в ответе?
void *p;
А теперь представь, что тебе нельзя использовать ничего, кроме void* в своей программе. Только этот тип для всех переменных, полей, параметров, и результатов функций.
Когда кто-то начинает рассказывать мне о "крутости, гибкости и простоте" динамической типизации js - я вспоминаю этот отрывок из фильма "Идиократия". Как видите, объект "Цилиндр" он уже передал в аргументы метода)))
"Мы твой позорный недуг в доблесть превратим..."
Чтобы написать коммент, необходимо залогиниться
я нихуя не понимат про свифт