برنامه نویسی را از صفر شروع کنید!
مشخصات مقاله
-
0.0
-
243
-
0
-
0
ظهور زبان برنامه نویسی جولیا (Julia)
برای پاسخ به این سوال که آیا زبان julia ارزش یادگیری را دارد یا خیر، به ویژگیها، آمار رشد و نحوه عملکرد آن در برابر رقبا نگاه خواهیم کرد. وقتی به زبان های برنامه نویسی مورد استفاده در دیتاساینس نگاه می کنیم، متوجه می شویم که در این بین، پایتون برتر است. و در حالی که پایتون در بیشتر زمینه ها از R پیشی می گیرد، R جایگاه خود را در 15 زبان برنامه نویسی برتر در the May TIOBE indexکه محبوبیت زبان های برنامه نویسی را دنبال می کند، حفظ کرده است. در واقع، درصد رشد استفاده از R بسیار بیشتر از زبانهای تیتان مانند ، جاوا، C و PHP در سال گذشته بوده است. جاوا اسکریپت پایتون و R در کنار هم بر دنیای داده حکومت می کنند و بر زبان های مشابه سایه می اندازند.
اما در مورد زبان برنامه نویسی جولیا با وجود تجربه کاربری کم باید بگوییم، علاقمندان این زبان، آن را علم داده و هوش مصنوعی می نامند. برای اینکه ببینیم آیا آنها درست میگویند، بیایید به معیارهای پذیرش جولیا که از خبرنامه سالانه جولیا در مورد آمار رشد گرفته شده است؛ نگاهی بیاندازیم.
از اول ژانویه 2022، جولیا 35 میلیون بار دانلود شده است و این آمار در سال 2021 سه برابر بیشتر از مجموع سه سال گذشته بوده است. زبان اصلی و بستههای ثبتشده آن در مجموع ۲۵۰ هزار ستاره در Github جمعآوری کردهاند که ۱۳ برابر بیشتر از مجموع شش سال پیش است. مخزن GitHub جولیا به تنهایی با 39.1 هزار ستاره، 4.9 هزار فورک است.
تعدادپکیج های ثبت شده برای جولیا در ماه آوریل به بیش از 7400 پکیج رسید که ده برابر بیشتر ازشش سال پیش بود. در مورد رتبهبندی آن در میان سایر زبانها، the May TIOBE index آن را در جایگاه 25 قرار میدهد که سه رتبه پایینتر از سال گذشته می باشد، که البته باید بگوییم از رتبه 47 جهش کرده است.

شاخص واقعی TIOBE(actual TIOBE index) جولیا 0.64٪ است، به این معنی که از تمام پرس و جوهای مربوط به زبان برنامه نویسی در موتورهای جستجو، نام جولیا 0.64٪ مواقع ظاهر می شود. به عبارت دیگر، 200 سوال مربوط به برنامه نویسی در مورد جولیا است. با توجه به اینکه اولین نسخه پایدار جولیا در سال 2018 بود، این ارقام چشمگیر هستند.
چه ویژگی هایی جولیا را منحصر به فرد می کند؟
ویژگی های بسیاری در مورد زبان برنامه نویسی جولیا وجود دارد که آن را به زبانی بی نظیر تبدیل می کند:
1. سرعت
محققان رصدخانه نقطه آپاچی در سال 1998 شروع به تصویربرداری از هر شی مرئی در 35 درصد از آسمان کردند. آنها این پروژه را Celeste نامیدند و مجموعه داده ای از 500 میلیون ستاره و کهکشان را به دست آوردند. برای 16 سال فهرست نویسی این تصاویر کاری خسته کننده و پرزحمت بود.
در سال 2014، تیمی از دانشمندان و برنامه نویسان 178 ترابایت داده تصویری را جمع آوری کردند و تخمین نقطه ای را برای 188 میلیون ستاره و کهکشان تنها در 14.6 دقیقه انجام دادند.
این شاهکار علمی و برنامه نویسی با اجرای جولیا در ابررایانه Cori امکان پذیر شد و به حداکثر عملکرد 1.54 پتافلاپ (1015 عملیات در ثانیه) در 1.3 میلیون رشته در 9300 گره رسید. بنابراین، جولیا به چهارمین زبانی تبدیل شد که پس از C، C++ و Fortran به اجرای پتافلاپ دست یافت.
2. Syntax
مورد دیگری که باعث شده جولیا بدرخشد، سینتکس آن است. قبل از انتشار جولیا، محاسبات علمی عمدتاً در زبانهای دیگر با تایپ پویا مانند پایتون یا R انجام میشد. از آنجایی که محاسبات توسط فیزیکدانان، زیستشناسان و کارشناسان مالی اجرا می گشت که توسعهدهندگان باتجربه نبودند، این متخصصان دستورات سادهتری را ترجیح میدادند. جولیا به صورت پویا نیز تایپ می شود و یادگیری و نوشتن آن را ساده می باشد، اما با این که یک زبان کامپایل شده است، به سرعت زبان های تایپ ایستا مانند C یا Fortran خواهد رسید.
3. Multiple Dispatch
مزیت دیگر، اگرچه در برنامه نویسی جدید نیست، ارسال چندگانه است. بدون اینکه در این زمینه خیلی فنی باشیم، باید بگوییم ارسال چندگانه به توانایی یک تابع برای رفتار متفاوت بر اساس انواع آرگومان های آن اشاره دارد.
function _add_str(str1, str2) str1 * str2 end function _add_int(int1, int2) int1 + int2 end add(item1::String, item2::String) = _add_str(item1, item2) add(item1::Int64, item2::Int64) = _add_int(item1, item2)
[OUT]: add (generic function with 2 methods)
add(4, 5)
[OUT]: 9
add("Julia ", "is awesome!")
[OUT]: "Julia is awesome!"
زیبایی مثال بالا این است که میتوانید ویژگی ارسال چندگانه جولیا را تقریباً روی هر عملکردی که میخواهید فعال کنید و از آن تحت ورودیهای مختلف رفتار متفاوتی دریافت نمایید.
مقایسه زبان برنامه نویسی جولیا و پایتون
در این بخش سعی می کنم تفاوت های جولیا و پایتون را بیان کنم. در حالی که مقایسهها عمدتاً بین جولیا و پایتون خواهد بود، اما در مورد R نیز اعمال میشود، زیرا پایتون در بسیاری از این جنبهها عملکرد بهتری یا مشابهی با زبان برنامه نویسی R دارد.
1. سرعت
بیایید ابتدا به تفاوت سرعت نگاه کنیم، چرا که عاشقان جولیا دائماً به سرعت زبان خود می بالند. زمان لازم برای یافتن مشتق یک تابع در پکیج Julia's Flux.jl را که در برابر GradientTape تنسورفلو در پایتون اندازه گیری می شود، بررسی می نماییم. با تنسورفلو شروع می کنیم:
import time import tensorflow as tf start = time.time() x = tf.Variable(5.0) with tf.GradientTape() as tape: y = 3 * x ** 3 + 4 * x ** 2 + 6 * x + 5 # dy_dx = 9x^2 + 8x + 6 dy_dx = tape.gradient(y, x) print(time.time() - start)
[OUT]: 0.003016233444213867
حدود 0.003 ثانیه طول می کشد تا مشتق x را پیدا کنید. بیایید همان عملیات را در جولیا ببینیم:

اولین باری که گرادیان را اجرا می کنیم، جولیا آن را در 0.002 ثانیه کامپایل می کند، که در حال حاضر سریعتر از تنسورفلو است. دفعه بعد که آن را اجرا می کنیم، ارزیابی 450 برابر سریعتر است.
2. Syntax
بسیاری ادعا می کنند که کد جولیا بیشتر شبیه به زبان انگلیسی خوانده می شود. به خصوص برای محاسبات علمی، گویاتر و تمیزتر از پایتون است. اولین مثال در نوشتن عبارات ریاضی است؛ شما می توانید چند جمله ای ها را درست مانند متلب بنویسید:
x = 5 3x^2 + 5x + 4
[OUT]: 104
(x + 5)x
[OUT]: 50
عبارات کوتاهی نیز وجود دارد که عبارات شرطی را بسیار ساده می کند:
x = 73; y = 37 if x > y println("$x is higher than $y") end
[OUT]: 73 is higher than 37
به این مثال ساده توجه کنید:
x > y && println("$x is higher than $y")
[OUT]: 73 is higher than 37
تفاوت های مفید دیگری نیز بین پایتون و جولیا وجود دارد. برای مثال، آرایهها در جولیا بهطور پیشفرض، بردار و ماتریس در نظر گرفته میشوند و هر تابعی که روی آنها اجرا میشود، بردار خواهد شد و نیاز به حلقههای غیر ضروری را از بین میبرد. با وجود آن، پایتون هنوز یکی از کاربرپسندترین زبان های برنامه نویسی برای یادگیری دیتاساینس است.
3. محبوبیت جولیا و پایتون
با این حال، همه برای پریدن در قطار آموزش و کار با زبان برنامه نویسی جولیا آماده نیستند.ما در مورد آمار رشد جولیا صحبت کرده ایم. ویژگیهای جولیا به تنهایی بسیار چشمگیر به نظر می رسند، اما وقتی با پایتون در تضاد قرار می گیرند، به این نتیجه میرسیم که هنوز راه زیادی در پیش است. پایتون با شاخص 12.74 درصد در صدر رتبه بندی TIOBE قرار دارد در حالی که جولیا 0.64 درصد است. پکیجهای کامل پایتون مانند TensorFlow یا PyTorch وجود دارند که کشش بسیار بیشتری نسبت به Julia به عنوان یک زبان دارند.
فضای علم داده و ماشین لرنینگ ، پایتون گسترده تر و بالغ تر است. در حالی که جولیا بیش از 7 هزار پکیج ثبت شده دارد، پایتون بیش از 110 هزار پکیج دارد. این اعداد به این معنی است که جولیا راه درازی برای تبدیل شدن به بهترین زبان همه منظوره دارد، حتی اگر ممکن است از بسیاری جهات نسبت به پایتون مزایای متمایز داشته باشد.
در حالی که پایتون از نظر اندازه آن را کوچکتر می کند، یک مزیت برای برنامه نویسان جولیا این است که فرصت بسیار بیشتری برای بهبود زبان دارند و اثر خود را در بسیاری از رشته های در حال رشد در اکوسیستم جولیا به جای می گذارند. علاوه بر این، برای شروع مشارکت در جولیا، نیازی به سالها تخصص یا استاد بودن در چندین زبان نیست. کتابخانههای نوشته شده در جولیا صرفاً به زبان جولیا نوشته شدهاند و هیچ کمکی از زبانهای دیگر ندارند. در ادامه نمونه ای از Flux.jl آمده است:

شما باید نه تنها به پایتون، بلکه با زبان های دیگر مانند C++، C، GO و ... و نحوه تعامل همه آنها برای شروع درک کد پکیج های حیاتی پایتون آشنایی داشته باشید.

اگر می خواهید با زبان های دیگری مانند پایتون در جولیا ارتباط بگیرید، پکیجهایی مانند Pycall این کار را آسان می کند:
using Pkg Pkg.add(PackageSpec(name="PyCall", rev="master")) Pkg.build("PyCall") using PyCall plt = pyimport("matplotlib.pyplot") x = range(0; stop=2*pi, length=1000) y = sin.(3*x + 4*cos.(2*x)); plt.plot(x, y, color="red", linewidth=2.0, linestyle="--") plt.show()

پکیج های جولیا مشابهی برای ارتباط با زبانهای دیگر مانند RCall، MATLAB.jl و ... وجود دارد.
4. منابع یادگیری زبان برنامه نویسی جولیا
متأسفانه، در حالی که پایتون و R دارای انبوهی از منابع آموزشی مناسب برای مبتدیان هستند، کمبود منابع مشابه برای یادگیری جولیا وجود دارد. فقدان راهنماها، دورهها و کتابهای رایگان و پولی درباره جولیا یکی از دلایلی است که این زبان هنوز به طور گسترده مورد استفاده قرار نمیگیرد، زیرا توسعهدهندگان از یادگیری زبان جدید از خواندن کتب متنفرند.
از آنجایی که تعداد منابع آموزشی در مورد یک موضوع معین معمولاً با تقاضای جستجوی آن مرتبط است، میتوانیم به Google Trends برای دادههایی در این مورد نگاهی بیاندازیم:

این نمودار نشان می دهد که محبوبیت پایتون به طور قابل توجهی بیشتر از جولیا است. همچنین حمایت جامعه بسیار بیشتری از پایتون و R نسبت به جولیا وجود دارد. میتوانیم این موضوع را با مشاهده تعداد سؤالات در StackOverflow برای هر زبان تأیید کنیم:



پایتون قطعاً از هر دو زبان جلوتر است، اما دسترسی به مواد آموزشی و پشتیبانی جامعه برای جولیا همراه با پذیرش آن در حال افزایش است.
آیا جولیا ارزش یادگیری دارد؟
با سنجیدن جوانب مثبت و منفی این زبان، پاسخ به "بله!" متمایل می شود. اکثر دانشمندان دیتاساینس می گویند که شما نباید جولیا را در مراحل اولیه یادگیری ماشین خود یاد بگیرید. تقریباً 100٪ از تمام نقش های داده پایتون یا R را به عنوان الزامات ذکر می کنند و انتخاب یادگیری جولیا به جای آنها در ابتدای کار می تواند یک اشتباه جدی باشد.
این روزها، مهارتها و ابزارهای مورد نیاز برای یک شغل در زمینه دیتاساینس به قدری گسترده است که برای تبدیل شدن به یک دارایی در یک نقش، زمان زیادی صرف میشود. پرت کردن حواس خود با یادگیری جولیا می تواند شما را از یک شغل با درآمد دور نگه دارد و باعث کندی پیشرفتتان شود.
زمان عالی برای شروع یادگیری جولیا زمانی است که احساس می کنید به R یا Python تسلط دارید و می توانید مشکلات تجاری را با کتابخانه های آنها حل کنید. جولیا در آن مرحله افزودنی عالی به جعبه ابزار شما خواهد بود، زیرا به استفاده از تمام مزایا و قدرتهایی که یک زبان میتواند به ارمغان بیاورد، مجهز خواهید بود. با این حال، برخی از کارشناسان برداشت کاملاً افراطی در مورد یادگیری جولیا دارند. همانطور که Ari Joury در پست خود ادعا می کند، جولیا می تواند بلیط طلایی شما برای آینده باشد اگر آن را به خوبی یاد بگیرید.