دنیای زبان های برنامه نویسی بسیار وسیع است، اگر بخواهیم به زبان هایی اشاره کنیم که در تلاش هستند تا چشم انداز رو به آینده را ترسیم کنند و در طول زمانی نسبتا طولانی برای جایگاهشان تلاش کرده اند می توانیم از زبان های C و Java و PHP نام ببریم که البته رقیب های جدید مثلScala و Dبرای آن ها پیدا شده است.
welcom to future

همیشه برای زبان های برنامه نویسی جدید کشش کمتری از طرف برنامه نویسان مشاهده می شود و برای تغییر یا سوییچ کردن به زبان دیگر شما حتما باید یک دلیل منطقی و خیلی محکم داشته باشید چرا که زمان نسبتا زیادی طول می کشد تا شما تمرین کنید و زبان جدید را یاد بگیرید و باید به زبان جدیدی که می خواهید یاد بگیرید اعتماد و تکیه کافی داشته باشید تا در دراز مدت نیز این زبان به دردتان بخورد چون هیچکس با زبان برنامه نویسی کار نخواهد کرد که احتمال دارد 5 سال آینده به کلی فراموش شود.

هدف از این مقاله نشان دادن 3 زبان برنامه نویسی جدید است که توانسته اند توجه شرکت های بزرگ را به خود جلب کنند، تقاضاهای شغلی زیادی را داشته باشند و روز به روز حمایت بیشتر برنامه نویسان را هم دریافت می کنند.

Go  

go language

سال 2007 بود که Robert Griesemer و Ken Thompson و Robert Pike طرح اولیه خود را روی white board کشیدند، Thompson همکار دنیس ریچی برای ساختن Unix و Pike از بنیانگذاران استاندارد UTF 8 و زبان های برنامه نویسی Limbo و Sawzall. این افراد دور هم جمع شدند تا زبان برنامه نویسی بسازند که ازC++ بهتر باشد این افراد امیدوار بودند که توسعه زبان برنامه نویسی Go تا سال 2008 ادامه پیدا کند و در سال 2009 به صورت عمومی عرضه شود.

در حال حاضر زبان برنامه نویسی Go توسط شرکت گوگل مورد استفاده قرار گرفته است و نسخه 1.4 آن آخرین نسخه آن می باشد، به نظر می رسد تقاضای کار برای برنامه نویس های این زبان روز به روز در حال رشد است و حمایت برنامه نویس ها از این زبان هم بیشتر می شود. در حقیقت Go تعداد 3635 Repository فعال روی GitHub دارد (تا سال 2014) که این عدد اکنون به بیش از 30 هزار هم رسیده است و این زبان را مشهورتر و بالاتر از زبان های برنامه نویسی Perl , Coffeescript ,Scala قرار داده است و جزو 15 زبان محبوب GitHub است.

شرکت های بزرگ دنیا مثل BBC و Mozila ,Dropbox ,Tumbler در حال حاضر از این زبان استفاده می کنند. در جولای سال 2014 شرکت دراپ باکس مقاله ای را انتشار داد و عنوان کرد بیشتر کدهای برنامه نویسی خود را از زبان پایتون به Go تغییر داده ایم چون زبان Go سریعتر اجرا می شود، همچنین Dropbox تعدادی کتابخانه از قبیل Caching , Error handling و اعمال پایگاه داده به صورت متن باز انتشار داد تا کمی هم به توسعه دهندگان این زبان کمک بکند. در اواسط 2013 موزیلا Heka را معرفی کرد که یک ابزار جدیدی برای جمع آوری داده ها، آنالیز و مانیتور کردن و همچنین گزارش سازی بود که به زبان Go نوشته شده است.

این حمایت از جانب برنامه نویس ها و شرکت های بزرگ تمایل مردم برای شناختن زبان Go را بیشتر کرد در Stack Overflow Careers تعداد 58 شغل برای برنامه نویسان زبان Go وجود دارد و آن ها می توانند شانس خود را در این حوزه امتحان کنند البته این تعداد شغل در مقایسه با زبانه ای PHP و C++ با 411 و 397 شغل خیلی کمتر است ولی به هر حال امید زیادی به زبان Go وجود دارد و روز به روز شرکت های بزرگ حمایت خودشان را از این زبان برنامه نویسی بیشتر می کنند.

Rust                      
rust

زبان برنامه نویسی Rust ابتدا یک پروژه شخصی بود که توسط کارمند موزیلا Graydon Hoare شروع شد که او هم مثل بنیانگذار Go از ++C دل خوشی نداشت و از پیچیدگی های آن گریزان بود. ++C زبانی است که موزیلا با آن نوشته شده است و مشکلات امنیتی آن موزیلا را دچار سردرگمی کرده است. در سال 2009 موزیلا روی زبان Rust سرمایه گذاری کرد و 6 نفر را برای توسعه این زبان اختصاص داد.

نگرانی اصلی موزیلا ++C بود و توانایی این زبان برای مدیریت پردازشگر های چند هسته ای و امنیت این زبان در جهان امروز از جانب کارشناسان مورد نقد بود. زبان برنامه نویسی Rust تلاش کرد که امنیت برنامه ها را با چک کردن موازی زمان انجام دهد طوری که بازخوردهایی مبنی بر داشتن حفره یا باگ سریعا گزارش شود، همچنین Rust برنامه نویسی برای سخت افزارهای چند هسته ای را با فراهم کردن language primitives بهبود بخشید و از این نظر برتری نسبت به ++C پیدا کرد.

توسعه زبان Rust نسبت به Go زیاد سریع نبود و در حال حاضر نسخه 1.0.0 بتا وجود دارد و هنوز در مراحل آزمایشی است پس نمی توان برای تولید برنامه های تجاری فعلا از آن استفاده کرد یا حداقل کارشناسان آن را توصیه نمیکنند اما نسخه بتای آن خیلی نزدیک به نسخه نهایی و در حال تمام شدن است، تمرکز اصلی زبان Rust کمک به اجرای برنامه ا روی سخت افزارهای چند هسته ای است طوری که با توجه به سرعت توسعه این زبان باید اضافه دلیل اصلی آن عدم حمایت برنامه نویسان Open Source از این زبان است .  

جالب اینجاست که بعد از موزیلا که توسعه این زبان را شروع کرد شرکت سامسونگ حمایت زیادی از این زبان برنامه نویسی کرده است و 20 نفر را برای کار روی این زبان اختصاص داده است تا به کارمندان موزیلا هم کمکی کرده باشد، چون زبان Rust از عهده امنیت و سرعت برنامه ها برآمده است سامسونگ نیز بر پایه این موفقیت برای آینده نقشه هایی دارد و تلاش سامسونگ استفاده از نرم افزار در همه دستگاه ها و وسایل مختلف است که شاید Rust برای انجام این هدف به درد سامسونگ بخورد.

موقعیت های شغلی برای این زبان زیاد جالب نیست مثلا در Stack over flow career تنها 2 شغل برای برنامه نویسان Rust وجود دارد که زیاد خوشایند نیست ولی شاید بعد از نسخه نهایی 1.0.0 و انتشار آن به غیر از موزیلا و سامسونگ بقیه هم از این زبان حمایت کنند.

Swift
swift

آیا شرکت Apple مالک این زبان برنامه نویسی است؟ توسعه زبان Swift در سال 2010 توسط مهندس شرکت Apple یعنی Chris Lattner شروع شد. Lattner کسی است که در سال 2005 به شرکت Apple پیوست و روی LLVM کار کرد (ابزاری که کارش تولید و اجرای برنامه های جدید است یعنی یک نوع سیستم که App تولید می کند!) از آنجایی که کار این برنامه هم کامپایل نرم افزار بود، Lattner به آن علاقه داشت و حتی یک سال قبل از اینکه این ایده را به اپل ببرید خودش روی آن کار می کرد به هر حال Swift بر خلاف Rust و Go به این خاطر درست نشد که برنامه نویسان از C++ خوششان نمی آید.

شاید دلیل اصلی آن نارضایتی برنامه نویسان از Objective-C بوده است یعنی همان برنامه ای که در حال حاضر برای تولید App در IOS و دستگاه های Mac از آن استفاده می شود.

یکی از موانع و ایرادات به حق به Objective-C که برنامه نویسان را آزار داده است Syntax گیج کننده آن است یعنی در زبان های جدید و سطح بالایی مثل Python و Rubby شما وقتی برنامه نویسی می کنید انگار مشغول چت کردن به زبان انگلیسی هستید و همه چیز راحت تر شده است، Swift به منظور راحت کردن این Syntax طراحی شده است و می خواهد با سایر زبان های برنامه نویسی مدرن که Syntax ساده ای دارند در یک خط قرار گیرد.

Swift همچنین دارای Type interface است و از این امکان برخوردار است، اما Type Interface چیست؟ یک نوع امکان در زبان های برنامه نویسی که دیگر شما نیازی نیست نوع متغیر را تعریف کنید و کامپایلر خودش این موضوع را خواهد فهمید!

سوال دیگر این است که آیا فقط Swift چنین قابلیتی دارد؟ خیر زبانهایML Ocaml,F#,Haskell,Scala,D,Clean,Opa,Rust و ویژوال بیسک (از نسخه 9 به بعد) و سی شارپ (از نسخه 3 به بعد) و C++ نسخه 11 همگی این قابلیت را دارند.

این دو دلیل یعنی Type Interface بودن و سادگی Syntax در مقایسه با Objective-C به خودی خود کافی است تا زبان Swift را مطرح کند. اولین نسخه از Swift در سال 2014 و در ماه سپتامبر انتشار داده شد و حمایت عظیمی از طرف برنامه نویسان از این زبان شد و از 1989 پروژه درGitHub به 11183 پروژه رسید اگرچه این زبان هنوز از لحاظ شهرت پشت سر زبان Go،Perl، Coffee Script قرار دارد اما در عرض 7 ماه توانست در جمع 20 زبان برنامه نویسی محبوب قرار گیرد که رکورد حیرت انگیزی است.

افزایش موفقیت زبان برنامه نویسی Swift برای تعدادی از مردم یک سورپرایز است اما به هر حال باید به این نکته توجه کرد که در حال حاضر ده ها هزار برنامه نویس از زبان Objective-C برای درست کردن App در IOS استفاده می کنند و اگر آن ها گزینه ی دیگری برای انتخاب داشته باشند که این گزینه سریعتر، امنیت بالاتر و سادگی و پایداری را هم داشته باشد دیگر انتخاب کردن مشکل نیست و بدون شک همه swift را انتخاب می کنند، Apple یک محیط زیبا و خوب برای توسعه Swift اختصاص داده است که برنامه نویسان می توانند به راحتی در آن کدنویسی کنند.   

در مورد موقعیت های شغلی هم باید بگویم در stack overflow career 56 شغل وجود دارد و وب سایت رسمی شرکت اپل هم تعداد زیادی شغل برای برنامه نویسان swift دارد در آینده نیز این موقعیت های شغلی بدون شک بیشتر خواهد شد اما به این معنی نیست که در حال حاضر هیچ شرکتی از swift استفاده نمی کند برای نمونه Getty Images Doulingo , Linkedin , American Airline از swift استفاده می کنند.

در کنار موفقیت های Swift که ناشی از Open Source بودن آن است و ازدیاد درخواست برنامه نویس برای Swift تعداد زیادی راهنما و مطالب آموزشی برای برنامه نویسان در اینترنت وجود دارد که می توانیم به learn swift programming language اشاره کنیم.

سخن نهایی

 

در پایان باید بگوییم تعدا زیادی زبان های برنامه نویسی وجود دارد که می توانیم انتخاب کنیم هم زبان های جدید منظورمان است و هم زبان های قدیمی و هر زبان برنامه نویسی مزایا و معایب خودش را دارد که هر کدام برای شرایط خاص خود طراحی شده اند.

به عنوان مثال اگر شما توسعه دهنده IOS هستید و در حال حاضر با Objective-C برنامه نویسی می کنید ارزش دارد که برای یادگیری Swift اقدام کنید، اگر بر روی نرم افزارهایی کار می کنید که پشتیبانی از همزمانی در آن نقش کلیدی دارد یادگیری زبان Goبهترین گزینه است و اگر می خواهید با نگاهی به آینده برنامه ای چند وظیفه ای را برای معماری های چند هسته ای به کار ببرید ممکن است یادگیری Rust بسیار برایتان مفید واقع شود و حتی اگر هیچکدام از این ها را استفاده نمی کنید بد نیست که بروز باشید و بدانید این زبان ها چطور هستند و چگونه کار می کنند.