برنامه نویسی -
29 شهریور 1401
سوئیفت (SWIFT) چیست؟
سویفت یک زبان برنامهنویسی چند شیوهای و از نوع کامپایلری است که برای توسعهٔ iOS، macOS، watchOS و tvOS توسط شرکت اپل ساختهشدهاست. سویفت برای کار با فریمورکهای Cocoa و Cocoa Touch اپل و تعامل با حجم عظیمی از کدهای Objective-C نوشته شده برای محصولات اپل طراحی شدهاست. سویفت میخواهد جلوی خطاهای برنامهنویسی را بیشتر بگیرد و امنیت بیشتری نسبت به Objective-C داشته باشد و در عین حال نگارش مختصرتر و کوتاهتری داشته باشد. این زبان توسط کامپایلر LLVM که درون برنامهٔ Xcode قرار دارد (و برای لینوکس به صورت برنامهٔ جدا در دسترس است) ساخته میشود و سپس از runtime زبان Objective-C بهره میبرد که اجازه میدهد کدهای سویفت کنار کدهای C، C++ و Objective-C در کنار هم در یک برنامه اجرا شود.
تاریخچه زبان swift
در سال 2010 فردی به نام کریس لتنر برای اولینبار شروع به توسعه زبان برنامهنویسی swift کرد. همانطور که اشاره کردیم، زبان سوئیفت ایدههای خودش را از زبانهای برنامهنویسی دیگری همچون سی شارپ، پایتون، رابی، راست و… گرفته است. اما نسخه نهایی این زبان برنامهنویسی در سال 2014 در یک کنفرانس جهانی بهصورت عمومی عرضه شد. در همین کنفرانس شرکت اپل یک نسخه بتا از این زبان برنامهنویسی را در اختیار توسعه دهندگان قرارداد، اما هیچ سخنی در مورد سازگاری نسخه نهایی با نسخه ارائه شده به میان نیامد.
در نهایت اولین نسخه زبان سوئیفت در سپتامبر سال 2016 برای ios ارائه شد و چند ماه بعد در ماه اکتبر، نسخه دیگری از این زبان به جهانیان عرصه شد. جالب است بدانید که طی نظرسنجی که توسط وبسایت Stack Overflow انجام شده بود، توانست بهعنوان محبوبترین زبان برنامهنویسی در سال 2015 و دومین زبان محبوب برنامهنویسی در سال 2016 انتخاب شود. در نهایت در ژانویه 2017، کریس لتنر از شرکت اپل جدا شد و جای او را فردی به نام تد کرمنک گرفت.پ
ویژگی های زبان برنامه نویسی سوئفیت (Swift)
سوئیفت جایگزینی برای زبان Objective-C است که از مفاهیم تئوری زبان برنامه نویسی مدرن استفاده می کند و تلاش می کند تا یک اصطلاح ساده تر را ارائه دهد. به طور پیش فرض، Swift برخلاف Objective-C، نشانگرها و سایر دسترسی های ناایمن را در معرض نمایش قرار نمی دهد، بلکه از اشاره گرها به طور گسترده برای اشاره به نمونه های شی استفاده می کند. Swift پارامترهای نامگذاری شده واقعی را معرفی می کند و مفاهیم کلیدی Objective-C را شامل می شود، از جمله پروتکل ها، بسته ها، که اغلب جایگزین سینتکس قبلی با نسخه های جدید اجازه می دهد این مفاهیم در ساختارهای دیگر زبان ها اعمال شود.
ویژگیهای زبان برنامه نویسی سوئیفت
ژنریکهای قوی: ژنریکها این امکان را به شما می دهند تا بتوانید انواع داده ها و توابع انعطاف پذیر و قابل استفاده مجدد که با هر نوع داده ای کار می کنند را بنویسید.
مدیریت خطاهای بومی: زبان سوئیفت قابلیت مدیریت، انتشار و دستکاری خطاها در زمان اجرا را دارد.
ساختارها و کلاسها: زبان برنامه نویسی سوئیفت این امکان را در اختیارتان می گذارد که در یک فایل واحد کلاس یا ساختاری را تعیین کنید و برای استفاده از کدهای دیگر نیز رابط خارجی در دسترستان می گذارد.
برخورداری از الگوی برنامه نویسی پروتکل محور: پروتکلها در مقایسه با کلاسها عملکرد بهتری دارند و همین مساله باعث می شود عملیات مختلفی مثل ارث بری (Inherit) در زبان سوئیفت به خوبی انجام شود.
ایمنی حافظه: زبان سوئیفت قادر است به طور خودکار حافظه را مدیریت و از بروز رفتارهای ناامن در کد شما جلوگیری کند.
مدیریت حافظه: سوئیفت با استفاده از فناوری به روز شمارش خودکار ارجاع (ARC)، میزان استفاده از حافظه برنامه شما را ردیابی و مدیریت می کند. این مساله باعث می شود نگرانیهایتان درباره مدیریت حافظه از بین بروند.
متغیرهای شمارشی انعطاف پذیر: enum ها یا همان متغیرهای شمارشی در زبان برنامه نویسی سوئیفت قابلیت تطبیق الگو دارند و می توانند بارهای قابل حمل داشته باشند.
مدیریت پکیج (Package Manager): Swift package manager یک ابزار بین پلتفرمی است که می توان از آن برای ساخت، اجرا، آزمایش و بسته بندی کتابخانه ها و فایل های اجرایی سوئیفت استفاده نمود.
اشکال زدایی: زبان برنامه نویسی سوئیفت از اشکال زدای LLDB استفاده می کند. این قابلیت به شما امکان اشکال زدایی یکپارچه، قالب بندی سازگار، بازیابی شکست و موارد دیگر را می دهد.
سازگاری منبع و کد باینری: آخرین نسخه نرم افزار سوئیفت از قابلیت سازگاری برنامه با کد باینری برخوردار است. کتابخانه های سوئیفت در تمام نسخه های سیستم عامل گنجانده شده اند؛ بنابراین برنامه های شما از آخرین نسخه کتابخانه در سیستم عامل استفاده می کنند و کدتان هم می تواند بدون نیاز به کامپایل مجدد اجرا شود.
تاپل ها (Tuples): نوع داده تاپل به شما امکان گروه بندی چندین مقدار در یک مقدار واحد را می دهد. همچنین می توانیم از تاپلها برای بازگرداندن چند مقدار به یک مقدار استفاده کنیم.
سینتکس بستار (Closure syntax): سوئیفت از سینتکس سبکی برخوردار است و همین مساله باعث کاهش درهم و برهمی و جلوگیری از ناواضح بودن آن می شود.