زبان برنامه نویسی Swift اپل: از سیر تا پیاز

زبان برنامه نویسی سوئیفت تأثیر بسیار گسترده ای بر پلتفرم های مختلف گذاشته و این تنها محدود به سیستم عامل های iOS، OS، watchOS و tvOS نمی شود. به طور مثال، این احتمال وجود دارد که گوگل در آینده یی نه چندان دور، به جای زبان جاوا، از زبان برنامه نویسی سوئیفت برای توسعه اپ های اندرویدی استفاده کند. در ادامه با سکان آکادمی همراه باشید تا به اهمیت سوئیفت، طریقه استفاده از آن و تفاوت های آن با آبجکتیو سی (Objective-C) بپردازیم. 

آبجکتیو سی زبان با شباهت هایی که با زبان برنامه نویسی C داشت از یک سو و همچنین برخورداری از مفهوم شیء گرایی از سوی دیگر، زبانی است که توانست محبوبیت بسیاری میان توسعه دهندگان سیستم عامل های اپل کسب کند به طوری که آبجکتیو سی، به زبان برنامه نویسی پیش فرض برای NeXTSTEP، OS X و iOS در شرکت های NEXT و Apple تبدیل شد.

در سال 2010، اپل توسعه ی سوئیفت را شروع کرد. سوئیفت زبان برنامه نویسی جدیدی بود که در برخی زمینه ها رقیبی برای آبجکتیو سی محسوب می شد. از جمله این زمینه ها می توان به امنیت، ایمنی و عملکرد بهتر از دید سخت افزاری اشاره کرد. سوئیفت 2.6 برابر سریع تر از آبجکتیو سی است و 8.4 برابر نسبت به پایتون (Python) سریع تر عمل می کند. در نهایت در ماه سپتامبر سال 2014، زبان برنامه نویسی سوئیفت نسخه ی 1 منتشر شد.

در مورد سوئیفت کمی بیشتر بدانیم
سوئیفت چیست؟
سوئیفت جدیدترین زبان برنامه نویسی شرکت اپل است. این زبان برنامه نویسی ایمنی تایپ بالاتر، امنیت و عملکرد بهتری دارد. امروزه از زبان برنامه نویسی سوئیفت برای توسعه اپلیکیشن های iOS، OS X، watchOS و tvOS استفاده می شود.

اهمیت سوئیفت در چیست؟
یادگیری این زبان برنامه نویسی بسیار ساده است. به همین علت است که بیشتر دانشجویان توسعه دهنده ی نرم افزار تازه وارد و توسعه دهندگان قدیمی تر Mac و iOS، مهارت های توسعه دهندگی خود را بر روی سوئیفت متمرکز می کنند. به علاوه آن که سورس اپن سورس سوئیفت اپل برای توسعه دهندگان دیگر پلتفرم ها، و حتی آن هایی که توسط اپل طراحی نشده اند نیز در دسترس است.

این زبان چه کاربردهایی دارد؟ 
اپلیکیشن هایی که با زبان سوئیفت نوشته می شوند می توانند بر روی دستگاه های iOS از نسخه 7 به بالا اجرا شوند. همچنین دستگاه هایی که از سیستم عامل OS X نسخه 10.9 به بالا استفاده می کنند نیز می توانند از این اپلیکیشن ها استفاده کنند.

چه زمانی این زبان برنامه نویسی در دسترس عموم قرار می گیرد؟
سوئیفت در حال حاضر در آخرین نسخه Xcode در دسترس است.

چطور می توان به آن دسترسی پیدا کرد؟
کافی است Xcode را از Mac App Store یا Apple Developer Center دانلود کنید تا آخرین نسخه سوئیفت را در اختیار داشته باشید. زمانی که Xcode نصب شد، سوئیفت و آبجکتیو سی کامپایلر (LLVM) بر روی سیستم شما نصب خواهد شد.

تفاوت سوئیفت با آبجکتیو سی در چیست؟
اگرچه اپل هنوز در مورد از رده خارج کردن زبان برنامه نویسی آبجکتیو سی چیزی نگفته است (در واقع اپل هنوز آن را به روز رسانی هم می کند)، ولی حقیقت آن است که سوئیفت به سرعت در حال پیشی گرفتن از آبجکتیو سی بوده و در پلتفرم های اپل محبوبیت بسیار بیشتری پیدا کرده است.

از آن جا که اپل هنوز باید تمام فریم ورک هایش را به زبان سوئیفت آپدیت کند، می توان انتظار داشت که زبان برنامه نویسی آبجکتیو سی همچنان تا مدت زیادی در دسترس باشد. تا پیش از سوئیفت 3، اپل این زبان برنامه نویسی را بر روی iOS و OS X اجرا نخواهد کرد. یعنی سوئیفت و Xcode در کنار یک دیگر در اپلیکیشن های iOS و OS X اجرا خواهند شد تا از سازگاری دو گانه آن ها اطمینان حاصل شود.

سوئیفت برخی از ظرافت ها و جزئیات مهم برنامه نویسی زیادی را برای پلتفرم های اپل به ارمغان آورده است. در ادامه نگاهی به آن ها انداخته و تفاوت های میان آبجکتیو سی و سوئیفت را بهتر بررسی می کنیم.

فایل های هدر
آبجکتیو سی بر پایه زبان C بود و الگوی OOP یا شیء گرایی را به این زبان برنامه نویسی اضافه کرد. به همین دلیل، آبجکتیو سی از فایل های هدر که توابع و تعاریف خود را به صورت عمومی مشخص کرده بود، استفاده کرد. ولی سوئیفت این شیوه را کنار گذاشت و به توسعه دهندگان اجازه داد که یک فایل swift. بنویسند. فایل سوئیفت حاوی اطلاعات معمول هدر و پراپرتی ها است و تمام کلاس ها در یک فایل واحد تعریف شده اند. به این صورت فایل هدر کنار گذاشته شده و کدهای تمیزتر و قابل فهم تری مورد استفاده قرار می گیرد.

REPL 
آبجکتیو سی و سوئیفت جزو زبان های برنامه نویسی کامپایلی هستند، هر چند که سوئیفت دارای مفهومی تحت عنوان REPL برای تست است که معمولاً فقط از زبان های تفسیری پشتیبانی می کند.

REPL هم از طریق کامند لاین و هم محیط توسعه ی یکپارچه ی نرم افزار Xcode در دسترس است. REPL در داخل Xcode با نام Playgrounds شناخته می شود که به توسعه دهندگان اجازه می دهد تا با زبان برنامه نویسی Swift کدنویسی کنند، سورس کد را بلافاصله ارزیابی کرده و نتیجه آن را در یک کنسول چاپ کند. برای ایجاد یک Swift Playground در Xcode، کافی است Xcode را باز کرده و به ترتیب File>New>Playground را انتخاب کنید. با این کار یک پنجره جدید باز شده و شما می توانید کدهای سوئیفت را برای تست کردن در آن وارد کنید (Playground ها مکان هایی برای ارزیابی و آزمودن کد ها بدون نیاز به ایجاد یک پروژه iOS یا OS X کامل، هستند.)

تایپ اینترفیس
در آبجکتیو سی و سوئیفت، آبجکت تایپ ها به معنای واقعی کلمه Typed هستند و کامپایلر دقیقاً باید بداند کدام آبجکت تایپ (رشته ای، آرایه، دیکشنری، آبجکت سفارشی و ...) برای یک متغیر مشخص باید در حافظه ذخیره شود. اپل تصمیم گرفت در سوئیفت وابستگی زیاد به تایپت را هم چنان حفظ کند ولی به کامپایلر اجازه داد که به صورت خودکار تایپ را بر اساس آبجکتی که به یک متغیر تخصیص داده می شود، استنباط کرده و تشخیص دهد. این بدان معنی است که شما می توانید کدهایی همانند آن چه پایین تر نشان داده شده است را بنویسید و سوئیفت هم بدون هیچ مشکلی تشخیص دهد «myVariable» از نوع رشته ای است، چرا که یک رشته به آن تخصیص داده شده است.

let myVariable = "some string here"

توسعه دهندگان همچنان می توانند برای تشخیص دقیق تر، برنامه خود را به صورت Strongly Typed بنویسند ولی این کار ضرورتی ندارد. به هر حال مشخص کردن تایپ به شفافیت بیشتر سورس کد کمک می کند و به خصوص برای توسعه دهندگانی که سورس کد را پس از اتمام کار شما، تغییر می دهند بسیار کارآمد است.

let myVariable: String = "some string here"

پلتفرم های اپل 
زمانی که اپل عرضه سوئیفت را در نمایشگاه سالیانه WWDC در سال 2014 اعلام کرد، این شرکت گزارش کرد که حاضرین در آن کنفرانس در حال استفاده از یکی از اولین نسخه های اپلیکیشن های سوئیفت یعنی WWDC app بودند. بخشی از این اپلیکیشن در سوئیفت توسعه یافته بود و به حاضرین در کنفرانس اجازه می داد زمان بندی جلسات، نقشه و موارد دیگر را مشاهده کنند.

سیستم عامل های iOS 7 و بالاتر رسماً از سوئیفت پشتیبانی می کنند. OS X 10.9 و بالاتر هم قابلیت پشتیبانی از آن را دارند. تمام نسخه های watchOS و tvOS نیز از اپلیکیشن های ساخته شده با زبان برنامه نویسی Swift پشتیبانی می کنند.

چطور از سوئیفت استفاده کنیم؟
اول از همه آن که شما باید از یک سیستم مکینتاش استفاده کنید و اگر بخواهید برنامه ای را برای iOS، watchOS یا tvOS توسعه دهید، باید حتماً یکی از آن دستگاه ها را هم داشته باشید. پس از دانلود و نصب Xcode، آبجکتیو سی و سوئیفت بر روی سیستم عامل شما نصب خواهند شد.

اولین جایی که باید کار خود را از آن شروع کنید، Playground و Swift REPL است که در آن می توانید کار کردن با ویژگی های سوئیفت در یک محیط آزمایشی، را تجربه کنید. در این محیط آزمایشی شما هیچ تغییری در اپلیکیشن های در حال اجرا نمی توانید بدهید و نیازی هم به تست کامل پروژه iOS یا OS X ندارید.

سوئیفت برای توسعه دهندگان و شرکت ها به چه معناست؟ 
سوئیفت یک زبان برنامه نویسی متن باز است که خیلی سریع محبوبیت و گسترش پیدا کرد. این زبان برنامه نویسی به توسعه دهندگان امکان ایجاد نمونه ی اولیه یا پروتوتایپ و نوشتن اپلیکیشن های iOS، OS X و دیگر اپلیکیشن های پلتفرم اپل با سرعتی بیشتر را فراهم می کند و در کنار آن باگ ها و عیوب برنامه را هم کاهش می دهد.

سوئیفت به خصوص برای شرکت ها و کسب و کارهایی که در پلتفرم های اپل سرمایه گذاری کرده اند بسیار مفید خواهد بود چرا که با استفاده از آن می توانند اپلیکیشن های شرکتی (B2B) خود را توسعه دهند. در واقع به کمک سوئیفت، اکنون آپدیت نگاه داشتن این اپلیکیشن ها از همیشه آسان تر شده است.

علاوه بر تمام این ها، باید اضافه کرد که سوئیفت یک زبان برنامه نویسی متن باز است، یعنی آن که این زبان برنامه نویسی برای پلتفرم های دیگر هم توسعه پیدا خواهد کرد و فرای آن چه اپل تولید کرده خواهد رفت. می توان اطمینان داشت که به زودی شاهد حضور سوئیفت در لینوکس و دیگر پلتفرم ها نیز باشیم.

یکی از بخش هایی که انتظارمی رود سوئیفت در آن جا شکوفا شود، اپلیکیشن های تحت وب است. با حضور سوئیفت در لینوکس می توان گفت که اجرای کم هزینه اپلیکیشن های سوئیفت به کمک سرورهای کم هزینه ی لینوکسی (هزینه نگهداری پایین)، که هم اکنون سنگ زیر بنای سرویس های و API ها به حساب می آید، ممکن می شود. در حال حاضر فریم ورک هایی برای سوئیفت وجود دارد که امکان ایجاد اپلیکیشن سرورهایی بر پایه لینوکس را در Xcode فراهم کرده است و به کسب و کار ها اجازه می دهد از توسعه دهندگان موجود سوئیفت برای ساخت API ها و سرویس هایی که اپلیکیشن های iOS و OS X از آن استفاده می کنند، بهره گیرند.

ویژگی های سوئیفت 2 چیست؟ 
اپل سوئیفت 2 را در WWDC سال 2015 معرفی کرد و در آن از ویژگی های جدید و تصحیحات زیادی رو نمایی کرد. برخی از ویژگی های جدید در سوئیفت 2 عبارتند از:

- سوئیفت 2 به صورت متن باز بوده و به یک پورت جدید لینوکس دسترسی دارد.
- مدل جدید کنترل خطا که از  try, throw, catch استفاده می کند.
- نسخه های قدیمی تر iOS و OS X را هدف می گیرد. به علاوه امنیت سوئیفت 2 بالاتر هم هست.
- به دلیل اضافه کردن جنریک ها و ... به فریم ورک های آبجکتیو سی، به مراتب راحت تر از زبان برنامه نویسی سوئیفت می توان در این بسترها استفاده کرد.

به احتمال زیاد در WWDC 16 شاهد عرضه ی سوئیفت 3 خواهیم بود. Swift 3 roadmap on GitHub شامل ویژگی هایی خواهد بود که ممکن است این نسخه را هم شامل شود.

تاریخچه نسخه های مختلف زبان برنامه نویسی سوئیفت 
- اواسط 2010: شروع توسعه
- 17 ژوئیه سال 2010: اولین تحویل سوئیفت به ریپازیتوری Swift در گیت هاب
- 2 ژوئن 2014: اپل سوئیفت را در WWDC 2014 اعلام کرد و نسخه پیش از انتشار سوئیفت و Xcode 6 را در اختیار توسعه دهندگان قرار داد.
- 15 سپتامبر 2014: اپل سوئیفت نسخه ی 1 را با Gold Master Xcode 6 منتشر کرد.
- 15 اکتبر 2014: سوئیفت نسخه ی 1.1 با Xcode 6.1 منتشر شد.
- 8 آوریل 2015: سوئیفت نسخه ی 1.2 با Xcode 6.3 منتشر شد.
- 8 ژوئن 2015: اپل سوئیفت نسخه ی 2 را در WWDC 2015 اعلام کرد و به توسعه دهندگان نسخه پیش از انتشار سوئیفت 2 و Xcode7 ارائه کرد.
- 15 سپتامبر 2015: اپل سوئیفت نسخه ی 2.1 را با Xcode 7.1 منتشر کرد.
- 3 دسامبر 2015: اپل نقشه ی راه انتشار نسخه ی 3 زبان برنامه نویسی سوئیفت را بر روی گیت هاب اعلام کرد.
- 21 مارچ سال 2016: اپل سوئیفت نسخه ی 2.2 را با Xcode 7.3 منتشر کرد.

نظر شما چیست؟ به نظر شما آیا این زبان می تواند گوی سبقت را از زبان هایی همچون جاوا و جاوا اسکریپت که از دید مراجع مختلف به عنوان «محبوب ترین زبان برنامه نویسی» شناخته می شوند برباید؟ نظرات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.

Apple's Swift programming language: The smart person's guide

0







  • عیسی پور در تاریخ: 1395/01/31

    عالی بود مرسی
    در مورد آموزش و یادگیری سوئیفت مطلب بذارید ممنون میشم

  • Emad در تاریخ: 1395/04/30

    کاش آموزش برنامه نویسی به این زبان را هم توی ساییتون قرار می دادید

  • َAmir در تاریخ: 1395/06/22

    این که میگید Swift برای لینوکس هم ارایه شده یعنی چی؟ یعنی میتونیم در لینوکس و بدون مکینتاش برای سیستم عامل های اپل اپلیکیشن نوشت؟

از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)