Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
1951 - Telegram Web
Telegram Web
💔 Что происходит с рынком ИТ во всем мире?

Наткнулся на выходных на оч. интересный обзор с размышлением о том, что вообще происходит с рынком разработки. Почему происходит снижение числа вакансий в области программной инженерии? Все достаточно хорошо видно на графиках (zero Interest rates тут про околонулевые ставки центробанков)
🟢Количество активных объявлений о вакансиях разработчика программного обеспечения снизилось на 35% с января 2020 года.
🟢Раздел 174, вступающий в силу с 2023 года, может привести к сокращению рабочих мест разработчиков в США. Но не объясняют падение числа вакансий в Великобритании и Франции.
🟢В других отраслях, таких как банки и финансы, продажи, маркетинг, также наблюдается спад.
🟢Влияние генеративного ИИ: LLM могут заменить разработчиков, что приведет к сокращению числа вакансий.
🟢Изменения процентных ставок: конец "нулевых" процентных ставок влияет на экономику, но не объясняет полное падение числа вакансий.

Мнение о производительности и кадрах
🟢Компании, такие как Salesforce, заявляют о росте производительности за счет ИИ, но это может быть связано с увеличением продаж.
🟢Возможно, компании считают, что нанимали сотрудников слишком быстро и теперь сбавляют обороты.
🟢Linear и Bluesky нанимают сотрудников медленно и имеют небольшие инженерные команды, что показывает их эффективность.
🟢Возможно, создание продуктов будет проще для одного или двух инженеров благодаря языкам, таким как Typescript.
🟢LLM упрощают переход на разные стеки разработки.
🟢В 2023 году число инженеров-программистов сократилось впервые за 20 лет.
🟢Рост в технологической отрасли в этом году будет ниже, чем в предыдущие годы.

Оптимистичный прогноз
🟢LLM повышают индивидуальную и командную производительность.
🟢Может быть основано больше стартапов и традиционные компании могут перенести разработку внутрь.

Пессимистичный прогноз
🟢Программное обеспечение становится дешевле в производстве, но требуется меньше инженеров.
🟢Предприниматели могут не ухватиться за возможность создавать идеи более эффективно.

Влияние LLM на рынок труда
🟢LLM замедляют набор персонала в крупных компаниях.
🟢Стартапы предпочитают нанимать сотрудников медленнее.
🟢Неясно, сколько нового программного обеспечения будет создано не разработчиками.

Я больше верю в "эффект COVID" чем в эффект AI. Многие поверили в новый WFH мир, наняли слишком много кадров, а многие не относящиеся к IT резко захотели в IT. Сейчас же AI и LLM скорее это вера, а вот реальный пузырь в сфере разработки начинает сдуваться. Но я верю что все, кому это нравилось и кто шел не ради денег, найдут себе место в новом мире с AI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🆓 SharingGRDB: альтернатива SwiftData

Я достаточно подробно разбирал внутренности SwiftData в статье, ничего особенного в ней нет. Так что поиск особенного продолжается. В этот раз снова порадовали Pointfree своим решением по использованию SQL со SwiftUI и UIKit:
🟢Новая опенсорсная библиотека, объединяющая их Sharing и уже популярную GRDB.swift
🟢Предоставляет прямой доступ к SQLite, включая джоины и агрегации
🟢Может использоваться из UIKit, SwiftUI или просто @Observable
🟢Легкая замена SwiftData и @Query макроса
🟢Поддерживает сложные запросы через API построителя запросов GRDB

Чем мне нравятся решения от PointFree, так это документацией:
🟣Выборка данных
🟣Наблюдение за изменениями
🟣Подготовка SQLite
🟣Динамические запросы
🟣Сравнение с SwiftData
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Разница между Task.sleep и Task.yield

Task.sleep()
🟢Приостанавливает выполнение задачи на заданный срок
🟢Не блокирует базовый поток, позволяя выполнять задачи с более низким приоритетом
🟢Выдает ошибку CancellationError при отмене задачи
💡Примеры использования: задержка пользовательского ввода, периодический опрос API, ограничение скорости сетевых запросов, искусственные задержки при тестировании

Task.yield()
🟢Приостанавливает выполнение текущей задачи, позволяя выполнять другие задачи
🟢Не оказывает влияния, если текущая задача имеет наивысший приоритет
💡Примеры использования: написание тестов для асинхронного кода, отслеживание хода выполнения тестируемого кода

Различия
🟢Task.sleep() приостанавливает выполнение на фиксированный срок, Task.yield() — только при наличии задач с аналогичным или более низким приоритетом
🟢Task.sleep() можно прервать с помощью отмены, Task.yield() возвращает только управление
🟢Оба метода не блокируют потоки

Вывод
🟣Task.sleep() и Task.yield() приостанавливают выполнение, но по-разному
🟣Task.sleep() подходит для большинства случаев, Task.yield() полезен при написании тестов для асинхронных методов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ Как Things Cloud переписали под Server Side Swift

🔵Things Cloud, персональный менеджер задач, перешел на Swift для улучшения производительности и надежности.
🔵Устаревший облачный сервис на Python 2 и Google App Engine страдал от медленного времени отклика и высокой загрузки памяти.
🔵Swift был выбран из-за своей производительности, предсказуемого управления памятью и совместимости с C и C++.
🔵Swift используется для разработки серверной части, используют Vapor + SwiftNIO.
🔵Развертывание на AWS с использованием Terraform и K8S.
🔵Данные хранятся в Amazon Aurora MySQL и S3, эфемерные данные — в Redis.
🔵Мониторинг осуществляется с помощью Swift и Prometheus, инциденты обрабатываются через Amazon CloudWatch.

Результаты и выводы
🟢Swift показал высокую производительность и экономичность, сократив вычислительные затраты и время отклика (напоминаю, переписывали с Python)
🟢Новая система была протестирована в реальных условиях, что подтвердило ее надежность.
🟢Swift рекомендуется для серверно-ориентированных проектов, особенно с учетом инициативы по повышению функциональной совместимости Java.

У меня только один вопрос: как они пришли к решению использовать Swift для сервера... Но опыт очень интересный
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📊 Цифровой рыночный индекс

Если кто-то вас спросит, почему стоит запускать пилот приложения сначала на iOS, можете смело ссылаться на эту аналитику:
🟡iOS остается ведущей платформой по монетизации, с доходом 27.5 миллиарда долларов.
🟡В 4 квартале 2024 года доход от покупок в приложениях (IAP) на iOS и Google Play достиг 39.4 миллиарда долларов, что на 13.5% больше, чем годом ранее.
🟡Доход от IAP в неигровых приложениях вырос на 28.2% и составил 19.2 миллиарда долларов.
🟡Доходы от мобильных игр стабилизировались после нескольких лет нестабильности, достигнув 20.2 миллиарда долларов.
🟡ИИ продолжает способствовать росту неигрового пространства, особенно в категории «Производительность».
🟡Доходы от IAP в приложениях с генеративным ИИ выросли на 179% по сравнению с прошлым годом.
🟡TikTok достиг рекордной отметки дохода в 1.9 миллиарда долларов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1️⃣2️⃣3️⃣4️⃣5️⃣ SE-0456 Добавили Span свойства в стандартныю библиотеку типов

Продолжаем разбираться с "упрощениями" в Swift. В этот раз, нас спасают от небезопасной работы с контейнерами и расширяют возможности использования новых типов Span и RawSpan в существующих контейнерах.

Мотивация
Многие типы контейнеров из стандартной библиотеки могут предоставлять прямой доступ к своему внутреннему представлению. До сих пор это можно было сделать только небезопасным способом. Стандартная библиотека предоставляет эту небезопасную функциональность с помощью функций, принимающих замыкания, таких как withUnsafeBufferPointer(), withContiguousStorageIfAvailable() и withUnsafeBytes(). У этих функций есть несколько недостатков, самый заметный из которых — использование небезопасных типов, что делает их неприемлемыми в средах с повышенными требованиями к безопасности. API, принимающие замыкания, также могут быть сложны в сочетании с новыми функциями и друг с другом. Эти проблемы решаются с помощью Span. Согласно этому предложению, совместимые типы стандартной библиотеки будут предоставлять доступ к своему внутреннему представлению через вычисляемые свойства типа Span и RawSpan.

#swift #evolution #proposals
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/07 18:15:28
Back to Top
HTML Embed Code: