گاهی اوقات زبان های برنامه نویسی بیشتر از چیزی که انتظار داریم عمر می کنند. با این حال برنامه نویسان نمی توانند از رویکرد های قدیمی استفاده کنند. آنها باید با آخرین روند های تکنولوژی و توسعه آشنا باشند که گاهی اوقات به معنای انتخاب هایی سخت می باشد. وقتی صحبت از توسعه برنامه های iOS می شود، یکی از بزرگترین سوالات این است که آیا باید از Swift استفاده کنیم یا Objective-C؟ در این مقاله 5 تا دلیل برای انتخاب Swift به جای Objective-C را برسی می کنیم.
کمی تاریخ
امروزه Objective-C زبانی است که برای توسعه برنامه های iPhone استفاده می شود. با این حال این زبان در دهه 80 میلادی ساخته شد و در شرکت NeXT استیو جابز به منظور توسعه چارچوب های NeXTStep استفاده می شد. Objective-C بر اساس دو زبان C و Smalltalk است. این زبان از سینتکس C برای عملیات غیر شی گرایی و از سینتکس Smalltalk برای شی گرایی استفاده می کند. یکی از مزایای اصلی زبان Objective-C این است که این زبان جدید نیست و توسط توسعه دهندگان برای سال ها آزمایش و استفاده شده.
سوئیفت توسط اپل در سال 2014 منتشر شد. به گفته تیم کوک، این زبان جدید بیش از 11 میلیون بار در ماه اول انتشار دانلود شده. در سال 2015 با استناد به شاخص TIOBE، سوئیفت به سریع ترین زبان در حال رشد تبدیل شد. این زبان رایگان و open-source است و برای همه در دسترس است. بنابراین تعجبی ندارد که به سرعت در بین توسعه دهندگان iOS محبوب شد. سوئیفت 5 در سال 2019 منتشر شد و دارای یک رابط باینری پایدار است در روی پلتفرم های مختلف اپل از جمله macOS، tvOS و غیره به خوبی کار میکند.
چارچوب Foundation که با Objective-C نوشته شده، پایه بسیاری از ویژگی های سوئیفت است. برای مثال Data در سوئیفت همان NSData در Objective-C است. با این حال، سوئیفت دارای تعدادی ویژگی منحصر به فرد است که در Objective-C وجود ندارند.
بعد از انتشار سوئیفت 5، کتابخانه های اصلی در iOS، macOS، tvOS و watchOS با یکدیگر ادغام شدند. بنابراین برنامه های ایجاد شده اکنون حجم کمتری دارند. رابط پایدار باینری به اپل اجازه میدهد که برای همه ی سیستم عامل ها پشتیبانی فراهم کند. با این وجود اپل هنوز هم از Objective-C پشتیبانی میکنند، بنابراین توسعه دهندگان بسیاری هنوز باید بین این دو زبان انتخاب کنند.
کدام زبان مقرون به صرفه تر برای کسب و کار است و کار کردن با آن آسان است؟ در اینجا چند دلیل منطقی برای انتخاب سوئیفت به جای Objective-C آورده شده.
1. خواندن کد سوئیفت راحت است
در Objective-C برای ایجاد رشته نیاز است تا از "@" در ابتدای رشته استفاده شود. به این ترتیب کامپیوتر قادر خواهد بود تا NSString را از عناصر C متمایز کند. با توجه به این که Swift بر اساس C نیست، دیگر نیازی نیست که چیزی را علامت گذاری کنید تا Swift آنها را تشخیص دهد. در اینجا کدی را که به هر دو زبان نوشته شده را میبینید:
Objective-C
const int count = 10;
double price = 23.55;
NSString *firstMessage = @"Swift is awesome. ";
NSString *secondMessage = @"What do you think?";
NSString *message = [NSString stringWithFormat: @"%@%@", firstMessage, secondMessage];
NSLog(message)
Swift
let count = 10
var price = 23.55
let firstMessage = "Swift is awesome. "
let secondMessage = "What do you think?."
let message = firstMessage + secondMessage
print(message)
همچنین در سوئیفت قرار داد های زبان های قدیمی تر وجود ندارند برای مثال دیگر نیازی به استفاده از نقطه ویرگول (;) در پایان خطوط و شروط نیست. سوئیفت از یک رویکرد استاندارد با لیست ها و پارامتر های داخل پرانتز استفاده می کند که با کاما جدا شده اند. در نتیجه سوئیفت زبانی تمیز تر و با دستور زبان و سینتکس ساده تر است.
2. سوئیفت تعاملی است
به لطف Xcode Playgrounds ، توسعه دهندگان می توانند به سرعت کد خود را بدون نیاز به کامپایل کل برنامه آزمایش کنند. Playground ها همچنین داده ها را به صورت بصری ارائه می دهند تا برنامه نویسان بتوانند کد خود را در همان محل بررسی و تغییر دهند. به لطف آخرین نسخه Xcode ، توسعه دهندگان می توانند کد را با استفاده از یک ویرایشگر ساده که شامل یک صفحه با تصاویر ، خطوط و نمای نهایی است آزمایش کنند.
3. سوئیفت امن تر است
هنگام استفاده از Objective-C ، اگر متدی را که با متغیر اشاره گر نمونه سازی نشده صدا بزنید، هیچ اتفاقی نمی افتد. در این حالت عبارت بدون عمل می شود. اگرچه باعث کرش کردن برنامه نمی شود، اما باگ های زیادی ایجاد می کند زیرا عبارت بدون عمل منجر به رفتارهای غیرقابل پیش بینی می شود.
سوئیفت دارای یک سیستم static type است. هنگامی که برنامه نویس از مقدار اختیاری nil استفاده می کند ، با ایجاد کرش زمان اجرا، رفتار قابل پیش بینی را تضمین می کند. به لطف این رویکرد، روند اشکال زدایی (debugging) بسیار ساده تر می شود زیرا توسعه دهندگان را مجبور می کند هر گونه مشکلی را فوراً برطرف کنند. کرش زمان اجرا روی خط کد که حاوی مقدار اختیاری nil است متوقف می شود تا باگ ها سریعتر شناسیایی و برطرف شوند.
4. نگهداری از کد سوئیفت آسان تر است
اگر C تکامل نیابد ، Objective-C نیز نمی تواند تکامل یابد. برنامه نویسان باید دو فایل کد را برای بهبود کارایی توسعه برنامه های اجرایی و زمان ساخت برنامه نگهداری کنند. سوئیفت نیازی به داشتن دو فایل ندارد. کامپایلر LLVM و Xcode می توانند به صورت خودکار ساخت های افزایشی را انجام دهند و وابستگی ها را درک کنند. بنابراین می توانید وظیفه تکراری جدا کردن فایل پیاده سازی (implementation) از فایل هدر (header) را فراموش کنید. سوئیفت فایل پیاده سازی .m
و هدر .h
را با یک فایل واحد .swift
جایگزین می کند. با این حال، همچنان یک فایل رابط ایجاد می کند که می توانید در Xcode مشاهده کنید.
5. یکپارچه سازی با مدیریت حافظه
Swift از شمارش مرجع خودکار (ARC) برای کد های شی گرا و رویه ای پشتیبانی می کند. اگرچه Objective-C نیز هم از ARC در کد های شی گرا و API های Cocoa پشتیبانی می کند، اما هنوز برای API های دیگر مانند Core Graphics و یا کد C در دسترس نیست. بنابراین برنامه نویس مسئول مدیریت حافظه هنگام کار با API های سطح پایین تر است.
سوئیفت مموری لیک هایی را که در Objective-C متداول است را از بین می برد و توسعه دهندگان را قادر می سازد تا بر توسعه ویژگی های جدید و منطق اصلی برنامه تمرکز کنند. در سوئیفت ، ARC بر روی کدهای شی گرا و رویه ای (procedural) کار می کند و حتی در صورت کار کردن با API های سطح پایین تر. سوئیفت اپل را قادر ساخت تا مشکل مدیریت حافظه با عملکرد بالا و خودکار را افزایش داده و بهره وری را افزایش دهد. علاوه بر این Garbage Collector حافظه بی استفاده را خالی نمی کند، که این یک فاکتور بسیار مهم در زمینه ورودی کاربر و قسمت های پاسخگو است.
سخن پایانی
اگرچه اپل هنوز از زبان Objective-C برای توسعه دهندگان قدیمی پشتیبانی می کند اما زبان سوئیفت مزایای زیادی را ارائه می دهد که نمی توان آنها را نادیده گرفت. برای مثال ایمن تر است، به کد کمتری نیاز دارد و همچنین ساده تر است. سوئیفت به برنامه نویسان اجازه می دهد تا بسیاری از مشکلات مربوط به رویکردهای قدیمی مورد استفاده در Objective-C را فراموش کنند.
توسعه دهندگانی که می خواهند در وقت و هزینه خود صرفه جویی کنند باید سوئیفت را به عنوان یک زبان کارآمدتر و موثرتر انتخاب کنند.
زبان های برنامه نویسی به آرامی می میرند ، پس منطقی است که انتظار داشته باشیم سوئیفت به طور کامل جایگزین C برای برنامه نویسی در سیستم عامل های اپل شود. سویفت نه تنها بسیاری از قابلیت های مفید را از Objective-C به ارث برده است، بلکه مجموعه ای از ویژگی های جدید را نیز ارائه کرده است که به توسعه دهندگان اجازه می دهد کد قابل اطمینان تری بنویسند و همچنین از کارهای تکراری اجتناب کنند و به جای آن بر روی کارهای مهم تر تمرکز کنند.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید