سوئیفت (زبان برنامهنویسی)
سویفت یک زبان برنامهنویسی چند شیوهای و از نوع کامپایلری است که برای توسعهٔ iOS، macOS، watchOS و tvOS توسط شرکت اپل ساختهشدهاست. سویفت برای کار با فریمورکهای Cocoa و Cocoa Touch اپل و تعامل با حجم عظیمی از کدهای Objective-C نوشته شده برای محصولات اپل طراحی شدهاست. سویفت میخواهد جلوی خطاهای برنامهنویسی را بیشتر بگیرد و امنیت بیشتری نسبت به Objective-C داشته باشد و در عین حال نگارش مختصرتر و کوتاهتری داشته باشد. این زبان توسط کامپایلر LLVM که درون برنامهٔ Xcode قرار دارد (و برای لینوکس به صورت برنامهٔ جدا در دسترس است) ساخته میشود و سپس از runtime زبان Objective-C بهره میبرد که اجازه میدهد کدهای سویفت کنار کدهای C، C++ و Objective-C در کنار هم در یک برنامه اجرا شود.
پارادایم برنامهنویسی | چند پارادایمی (شیءگرا، تابعی، دستوری، بلاکبندی شده) |
---|---|
طراحی شده توسط | کریس لاتنر اپل |
توسعهدهنده | اپل |
ظهوریافته در | ۲۰۱۴ |
ثابت (static)، قوی (strong)، استنباطی (inferred) | |
سیستمعامل | آیاواس, اواس ده, واچ اواس, لینوکس |
پروانه | تجاری (در حال ترجمه به متن باز. اولین نسخه متن باز از پاییز ۲۰۱۵) |
.swift | |
وبگاه | |
متأثر از | |
Objective-C, Rust, Haskell, Ruby, Python, C#, D, CLU | |
تأثیر گذاشته بر | |
Rust, Arendelle |
سویفت از مفاهیم پایهای پشتیبانی میکند که زبان Objective-C را انعطافپذیر (مخصوصا در dynamic dispath و late binding) و قابل گسترش نموده است. این امکانات به عنوان تعادل کارایی و امنیت معروف هستند و سویفت برای حل آن طراحی شدهاست. برای امنیت، سویفت یک سیستم معرفی کرده که به رفع خطاهای رایج برنامهنویسی مانند اشارهگرهای خالی، کمک میکند، همچنین نگارشهای سادهتر برای سهولت در خواندن کد نیز معرفی شدهاست. برای مشکلات کارایی، اپل تلاش قابل توجهی برای بهینهسازی انجام داده که سربار فراخوانی متدها را از بین میبرد و فرایند را سادهتر میکند. اساساً سویفت مفهوم گسترش قراردادی (protocol extensibility) را دربرمیگیرد که به تایپها، ساختارها و کلاسها میتوان افزود. اپل این قابلیت را به عنوان یک تغییر جدی در شیوهٔ برنامهنویسی میداند و به عنوان «برنامهنویسی قرارداد محور» از آن یاد میکند.
سویفت در کنفرانس جهانی توسعهدهندگان اپل (WWDC) در سال ۲۰۱۴ معرفی شد. در سال ۲۰۱۴ با یک بروزرسانی به نسخه ۱٫۲ ارتقاء پیدا کرد و با یک بروزرسانی بزرگ، در WWDC سال ۲۰۱۵ به نسخه ۲ بروز شد. در نسخهٔ ۲٫۲ متن باز شد و تحت لیسانس آپاچی ۲٫۰ در ۳ دسامبر ۲۰۱۵ برای پلتفرمهای اپل و لینوکس عرضه شد. IBM هم سایت شبیهساز سویفت خود را معرفی نمود که در آن توسعهدهندگان میتوانند در یک سمت کد سویفت بنویسند و در سمت دیگر خروجی آن را مشاهده کنند.
تاریخچه
توسعهٔ سویفت در سال ۲۰۱۰ توسط کریس لاتنر آغاز شد که با همکاری برنامهنویسان اپل ادامه پیدا کرد. سویفت از زبانهای Objective-C، Rust، Haskell، Ruby، Python، C#، CLU و بسیاری دیگر از زبانها الهام گرفتهشدهاست. در ۲ ژوئن ۲۰۱۴، برنامهٔ موبایل کنفرانس جهانی توسعهدهندگان (WWDC) به عنوان اولین برنامه به زبان سویفت نوشته و منتشر شد. نسخهٔ آزمایشی زبان سویفت برای توسعهدهندگان رسمی اپل در کنفرانس در دسترس قرار گرفت ولی اپل قولی نداد که کد نسخهٔ آزمایشی با کدهای نسخهٔ نهایی سازگاری داشته باشد، البته اپل برنامهریزی کرده بود تا مبدل کدهای آزمایشی به کدهای نهایی را در زمان عرضهٔ نسخهٔ نهایی منتشر کند.
«زبان برنامهنویسی سویفت» یک دستورالعمل ۵۰۰ صفحهای (به زبان انگلیسی) است که همزمان با معرفی زبان در WWDC بهعنوان یک کتاب در iBook Store اپل منتشر شد.
نسخهٔ نهایی (۱٫۰) سویفت در ۹ سپتامبر ۲۰۱۴ به همراه نسخهٔ Xcode 6.0 GM برای iOS عرضه شد. سویفت ۱٫۱ در ۲۲ اکتبر ۲۰۱۴ به همراه Xcode 6.1 منتشر شد. سویفت ۱٫۲ در ۸ آوریل ۲۰۱۵ با Xcode 6.3 منتشر شد. نسخهٔ ۲٫۰ سویفت نیز در WWDC 2015 معرفی شد. نقشهٔ راه سویفت ۳٫۰ هم در وبلاگ سویفت در ۳ دسامبر ۲۰۱۵ معین شد.
منابع
- ↑ "Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -". Apple Developer. Retrieved 26 September 2014.
Swift borrows a clever feature from the D language: these identifiers expand to the location of the caller when evaluated in a default argument list.
- ↑ Lattner, Chris (June 3, 2014). "Chris Lattner's Homepage". Chris Lattner. Retrieved June 3, 2014.
I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.