{"id":119309,"date":"2024-08-10T21:43:00","date_gmt":"2024-08-10T19:43:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift"},"modified":"2024-08-10T21:43:00","modified_gmt":"2024-08-10T19:43:00","slug":"dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift","title":{"rendered":"To continue the development of the Ladybird browser, it has been decided to use the Swift language.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Developers of the experimental Ladybird browser have announced their intention to use the Swift programming language as the primary one for their project. The integration of Swift code is planned to begin in the fall, following the release of Swift 6 (using the Swift 5 branch is hampered by dependencies on an older version of Clang, which is incompatible with the current C++ codebase of Ladybird). Thanks to the ability to combine C++ and Swift code, the implementation of Swift will be gradual without rewriting the existing code.      <\/p>\n<p>The choice of Swift is driven by several advantages, including safe memory management practices, protection against race conditions, modern syntax, and ergonomics. The object-oriented nature of Swift is particularly significant for the Ladybird team as it allows for more accurate modeling of web specifications and the internal components of the browser. Developers also note the improving support for Swift on non-Apple platforms and active efforts towards compatibility with C++, paving the way for the gradual integration of the language into the project. Despite Swift's historical ties to Apple, the language is becoming increasingly independent, as evidenced by the relocation of its repository to a separate organization on GitHub.    <\/p>\n<p>Andreas Kling, the founder of the Ladybird project, shared his thoughts on Rust. According to Kling, while Rust has an impressive ecosystem, it is less convenient for developing long-lived programs with large complex object graphs. Additionally, Kling described the Rust community as \"toxic.\"      <\/p>\n<p>It is worth noting that the Ladybird browser was originally developed within the framework of the SerenityOS project. In June 2024, Andreas Kling, who previously worked at Nokia and was involved in the development of Safari, decided to separate the browser project from the operating system project and fully dedicate his time to its development. In July, the project received a donation of $1 million and began forming the non-profit Ladybird Browser Initiative.     <\/p>\n<p>The browser is written in C++ and is distributed under the BSD license. The project develops its own engine LibWeb, a JavaScript interpreter LibJS, a text and 2D graphics rendering library LibGfx, a regular expression engine LibRegex, an XML parser LibXML, an intermediate code interpreter for WebAssembly (LibWasm), a library for working with Unicode LibUnicode, a library for converting text encodings LibTextCodec, a parser for Markdown formatting (LibMarkdown), libraries with cryptographic primitives (LibCrypto, LibTLS), a library for working with archives LibArchive, libraries for audio and video playback (LibAudio, LibVideo), and the LibCore library with a common set of useful functions such as time conversion, input\/output, and MIME-type handling.     <\/p>\n<p>Ladybird employs a multi-process architecture, where the process responsible for rendering the interface is separated from processes handling web content, making network requests, decoding images, and managing Cookies. Image decoding and network interaction handlers are isolated in separate processes for enhanced security and isolation. Each tab uses a separate web content processing process, isolated from the rest of the system. For building the interface on macOS, AppKit is used, while on Android, the native platform-specific GUI API is utilized, and on other platforms, Qt is used. Major web standards are supported (the browser passes Acid3 tests), including HTTP\/1.1 and HTTPS. The graphical interface is styled in a classic manner and supports tabs.            <\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61685\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u0434\u0430 \u043d\u0430 Swift \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0441\u0435\u043d\u044c\u044e, \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0440\u0435\u043b\u0438\u0437\u0430 Swift 6 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0442\u043a\u0443 Swift 5 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Clang, \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u043e\u0439 Ladybird \u043d\u0430 \u0421++). \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430 \u0421++ [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-119309","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a Swift | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-08-10T19:43:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-08-10T19:43:00+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83c\udfc6To continue the development of the Ladybird browser, it has been decided to use the Swift language | ProHoster","description":"The developers of the experimental Ladybird browser announced their intention to use the Swift programming language as the primary language for their project.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a Swift | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 Ladybird \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/dlya-prodolzheniya-razrabotki-brauzera-ladybird-resheno-ispolzovat-yazyk-swift","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-08-10T19:43:00+00:00","article:modified_time":"2024-08-10T19:43:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"119309","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 05:44:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 05:44:19","updated":"2026-01-23 05:44:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/119309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=119309"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/119309\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=119309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=119309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=119309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}