Firma Apple wydała język programowania Swift 6.3.

Apple wydało Swift 6.3. Oficjalne kompilacje są dostępne dla systemów Linux, Windows i macOS. Kod źródłowy jest objęty licencją Apache 2.0.

Swift łączy najlepsze elementy C i Objective-C i zapewnia model obiektowy zgodny z Objective-C (kod Swift można mieszać z kodem C i Objective-C), ale różni się wykorzystaniem automatycznej alokacji pamięci, kontrolą przepełnienia zmiennej i tablic, zabezpieczenie przed użyciem niezainicjowanych zmiennych oraz blokowanie dostępu do pamięci po jej zwolnieniu, co znacznie zwiększa niezawodność i bezpieczeństwo kodu. Swift oferuje także wiele nowoczesnych technik programowania, takich jak domknięcia, programowanie generyczne, wyrażenia lambda, krotki i typy słownikowe, operacje szybkiego gromadzenia danych oraz elementy programowania funkcjonalnego.

Implementacja Swift zbudowana jest z wykorzystaniem technologii z darmowego projektu LLVM. Aby zapewnić wysoką wydajność, programy Swift są kompilowane do kodu maszynowego, który w testach wykazuje wydajność o 30% szybszą niż kod Objective-C. Zamiast modułu zbierającego elementy bezużyteczne, Swift używa zliczania odwołań do obiektów. Pakiet zawiera Menedżera pakietów Swift, który udostępnia narzędzia do dystrybucji modułów i pakietów z bibliotekami i aplikacjami w języku Swift, zarządzania zależnościami, automatycznego pobierania, asemblowania i łączenia komponentów.

Kluczowe zmiany w nowej wersji:

  • Została wydana pierwsza oficjalna wersja pakietu Swift SDK dla platformy Android. Umożliwia on wykorzystanie języka Swift do tworzenia aplikacji na Androida, a także osadzanie pojedynczych komponentów Swift w istniejących aplikacjach na Androida napisanych w językach Java i Kotlin.
  • Dodano atrybut „@c”, który umożliwia eksportowanie funkcji i wyliczeń napisanych w języku Swift w celu użycia ich w kodzie C (generowany jest plik nagłówkowy z odpowiednimi definicjami w języku C).
  • Zaimplementowano selektory modułów, które umożliwiają jawne określenie, z którego modułu ma zostać użyte API, gdy wiele importowanych modułów udostępnia API o tej samej nazwie. import ModuleA import ModuleB let x = ModuleA::getValue() // wywołanie 'getValue' z ModuleA let y = ModuleB::getValue() // wywołanie 'getValue' z ModuleB
  • Dodano nowe atrybuty kontrolujące optymalizację kompilatora: @specialize — specjalizuje ogólne interfejsy API dla często używanych typów; @inline — rozszerza funkcję w miejscu wywołania; @export(implementation) — eksportuje implementację funkcji do stabilnego ABI biblioteki.
  • Zaproponowano wstępną implementację systemu kompilacji Swift Build zintegrowanego z SwiftPM (Swift Package Manager).

Źródło: opennet.ru

Dodaj komentarz