جولیا چیست ؟ جولیا یا پایتون ؟ مساله این است ؟ آیا با آمدن زبان جولیا باید با پایتون خداحافظی کنیم ؟ با این مقاله در هم رویش همراه باشید تا به مقایسه زبان Julia و Python بپردازیم.

فهرست مطالب

پایتون چیست ؟

ابداع و پیاده سازی زبان برنامه نویسی پایتون همزمان با ظهور شبکه جهانی وب توسط تیم برنرزلی (Tim Berners Lee) در سال ۱۹۸۹ به ثبت رسید. فلسفه اساسی این زبان مشتمل بر ۱۹ قانون راهنما منتسب به «آیین ذن پایتونی» است:

زیبایی بهتر از زشتی است.
صراحت بهتر از بیان ضمنی است.
سادگی بهتر از پیچیدگی است.
پیچیدگی بهتر از بغرنج است.
یکدستی بهتر از تو در تو بودن است.
خوانایی مهم است.
موارد ویژه به اندازه ای ویژه نیستند که به خاطر آن ها قوانین را نقض کرد_
اگرچه عملی بودن از خلوص مهم تر است.
خطاها هرگز نباید نادیده گرفته شوند_
تا اینکه کاملا رفع شوند.
در مواجهه با ابهام ،از حدس زدن خودداری کنید.
برای انجام هر کاری باید یک(و ترجیحا فقط یک)راه آشکار وجود داشته باشد _
اگرچه ممکن است این راه در آغاز واضح نباشد ؛مگر اینکه شما یک هلندی باشید.
حال بهتر از هرگز است_
گرچه اغلب هرگز بهتر از همین حالا است.
اگر توضیح دادن پیاده سازی مشکل است، پس این ایده ی بدی است.
اگر توضیح دادن پیاده سازی آسان است ،این ایده ممکن است ایده ی خوبی باشد.
“فضای نام‌” یک ایده ی عالی است . هر چه بیش تر آن را بکار خواهیم گرفت.

پایتون بستری برای برنامه نویسی، با اهداف عمومی، خلاصه شده، یادگیری آسان، ساده گرا و در عین حال به‌شدت توسعه پذیر است. این ویژگی ها زبان پایتون را زبانی ایده آل برای استفاده برنامه نویسان مبتدی می سازد.

 

 

هم رویش منتشر کرده است:

آموزش پایتون Python (برنامه نویسی پایتون مقدماتی تا پیشرفته )

 

جولیا چیست ؟

در سمت مقابل جولیا ،که سازندگانش آن را “جاه طلب” توصیف می کنند؛ در بیانیه پدید آوردنگان خود در فوریه ۲۰۱۲ اینگونه تعریف شده است:

 

“ما زبان برنامه نویسی متن باز ،با جواز آزاد برای استفاده عموم می‌خواهیم. ما به دنبال سرعت C و پویایی Rubi هستیم. زبانی نزدیک به زبان محاوره ای افراد با دستورات از پیش ذخیره شده همچون Lisp و نشانه گذاری آشکار و واضح همچون Matlab .
ما برای توسعه زبانی با عملکرد مطلوب در بکارگیری در برنامه نویسی های عمومی همچون پایتون،کاربرد آسان در مسائل آماری همچون R و معمول در پردازش های رشته ای همچون Perl ، با قدرتی معادل Matlab در جبر خطی و کارآمد در یکپارچه سازی برنامه ها همچون Shell تلاش می کنیم.
زبانی ساده جهت یادگیری که همچنان بهترین هکرها و برنامه نویسان را راضی نگاه خواهد داشت. جولیا زبان برنامه نویسی تعاملی ،همراه با خروجی کامپایلی خواهد بود”

جولیا توسعه خود را در سال ۲۰۰۹ آغاز و برای اولین بار در سال ۲۰۱۲ به صورت عمومی منتشر شد.

بر اساس مرجع Tiobe Index،در حالی که پایتون از نظر محبوبیت در رده سوم پس از C و Java قرار دارد،جولیا در جایگاهی بین رده های ۴۰ تا ۵۰ قرار می گیرد. بر همین اساس جولیا اگرچه تا کسب جامعه ی آماری بالای کاربران فاصله دارد ،اما استفاده از آن خالی از لطف نخواهد بود.

 

 

هم رویش منتشر کرده است:

آموزش جولیا - فصل اول: اصول برنامه نویسی Julia

 

 

حالا به سوال نخست بازگردیم: حولیا یا پایتون ؟ بیایید به مقایسه این دو زبان و تشریح قانونی کلی برای گزینش هر کدام در موارد مختلف ،بپردازیم:

معیارهای مقایسه پایتون با جولیا

1- سرعت

مقایسه سرعت زبان های C++، پایتون و جولیا

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

2- کتابخانه ها

یکی از معایب اصلی جولیا تعداد نسبتا کم کتابخانه هایی است که در اختیار برنامه نویسان قرار می دهد.البته سازندگان تلاش کرده اند این ضعف را با تطبیق پذیری جولیا با کتابخانه های C و پایتون از طریق کتابخانه PyCall جبران نمایند. با این وجود همچنان می توان گفت پایتون در این زمینه با اختلافی قابل توجه نسبت به رقیب خود پیش است.
پایتون به عنوان زبان برنامه نویسی با اهداف عمومی و رویکرد توسعه پذیری بالا،انجمن ها و منابع فراوانی برای رفع ابهامات و اشکالات احتمالی در اختیار کاربران خود قرار می دهد؛که این ویژگی همراه با تعداد زیاد کتابخانه های متن باز ،قابلیت پیاده سازی موارد مختلف اعم از توسعه وب (همچون Flask و Django) و یا برنامه نویسی ریاضی (همچون Skipy و Numpy)را فراهم می سازد.

 

 

هم رویش منتشر کرده است:

آموزش جنگو Django - طراحی وب سایت با پایتون

 

3- رایانش موازی

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

تبدیل پذیری کد

تبدیل کدها از پایتون و C به جولیا، کار خیلی دشواری نیست. تبدیل کدها از پایتون به C و C به پایتون امری به مراتب سخت تر است. کتابخانه هایی همچون PyCall این تبدیلات و استفاده از کدهای پایتون در جولیا را ساده تر می سازند.

module MyModule

using PyCall

function __init__()
  py """
  import numpy as np
  
  def one(x):
    return np.sin(x) ** 2 + np.cos(x) ** 2
  """
end

two(x) = py"one"(x) + py"one"(x)

end

نمونه استفاده pycall در جولیا

4- نوع داده و شماره گذاری

هر دو زبان پایتون و جولیا از سیستم تعیین نوع داده پویا یا dynamic استفاده می‌کنند. در این سیستم برنامه نویس ملزم به تعیین نوع متغیر ها نیست. با این حال در جولیا امکان استفاده از سیستم تعیین نوع داده ایستا(static) هم در نظر گرفته شده است.
شماره گذاری(اندیس ها) در پایتون از صفر آغاز می شود که به طور معمول مورد استفاده اکثر برنامه نویسان بوده و آشنایی بیشتری با آن دارند. همین مسئله ممکن است کار با جولیا – که شماره گذاری از یک را اساس قرار داده است-سخت کند. اگرچه برخی برنامه نویسان همچون کاربران Mathematica کاملا با این سیستم (مبنای یک)آشنا هستند.

5- انجمن ها

جولیا انجمن رو به رشدی دارد که نسبتا جدید و به تبع محدود تر است. در همین حال پایتون خود را مفتخر به داشتن انجمنی بزرگ می داند که دسترسی به آموزش ها در سایت های مختلف ،مثل بخش مستندات پایتون (Python Documentation) و سایت overflow Stack را آسان می سازد و این مطلب مشخصا به دلیل استفاده بیش تر کاربران از پایتون بر خلاف جولیا است.
به عنوان یک برنامه نویس تازه کار که در ابتدای راه برنامه نویسی قرار دارد ،بهره مندی از جامعه بزرگ توسعه دهندگان با تجربه که به شما در مواجهه با مشکلات و‌خطاها کمک کنند ،نقطه قوت بزرگی به حساب می آید. به همین دلیل است که برنامه نویسان معمولا کار خود را با برنامه نویسی به زبان های معمول و محبوب تر آغاز می کنند.

6- تطبیق پذیری

وقتی صحبت از محاسبات ریاضی به میان بیاید ،جولیا به طور مشخص عملکردی بهتر و سریع تری دارد. شاید این به آن دلیل باشد که جولیا عملا توسط دانشجویان دانشگاه ام آی تی توسعه یافته و به عنوان زبان ویژه ی امور تحصیلی و آکادمیک شناخته می شود که از این نظر می توان آن را همتای Matlab یا Statisca دانست.
به طور خلاصه می توان گفت کتابخانه ها و توسعه دهنگان محدود جولیا ،کاربرد این زبان برای مصارف دیگر را با مشکل مواجه خواهند کرد. در سمت دیگر پایتون از سرویس ها و امکانات متنوع تری برای بکارگیری آن در موارد مختلف از محاسبات ریاضی(Numpy) تا پردازش های تصویری(Pillow) و یا حتی توسعه وب برخوردار است. پایتون را می توان زبانی برای برنامه نویسی full stack (همه کاره) و ابزار کارآمد بارگذاری برنامه ها روی شبکه و سیستم های مختلف اندروید و دسکتاپ دانست.

یکپارچه سازی Shell(پوسته یا واسط کاربری)

کار کردن با واسطه کاربری متنی در جولیا به دلیل استخراج تمام متغیر ها در Shell کار راحتی است و به همین سبب جولیا می تواند به همه ی دستورات لازم برای باز کردن ،تصحیح و ذخیره سازی فایل ها برای کار های آتی دسترسی داشته باشد که همین فرآیند در پایتون پیچیده تر خواهد بود.

function binarysearch(lst::Vector{T}, value::T, low=1, high=length(lst)) where T
    if isempty(lst) return 0 end
    if low ≥ high
        if low > high || lst[low] != value
            return 0
        else
            return low
        end
    end
    mid = (low + high) ÷ 2
    if lst[mid] > value
        return binarysearch(lst, value, low, mid-1)
    elseif lst[mid] < value
        return binarysearch(lst, value, mid+1, high)
    else
        return mid
    end
end

جست و جو دودویی در جولیا

def binarySearch (arr, l, r, x): 
    if r >= l:   
        mid = l + (r - l)/2
        if arr[mid] == x: 
            return mid 
        elif arr[mid] > x: 
            return binarySearch(arr, l, mid-1, x) 
        else: 
            return binarySearch(arr, mid+1, r, x) 
    else: 
        return -1

جست و جو دودویی در پایتون

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

 

 

هم رویش منتشر کرده است:

آموزش برنامه نویسی Kivy - توسعه کراس پلتفرم با پایتون (بسته جامع )

 

جمع بندی مقایسه پایتون و جولیا

انتخاب جولیا یا پایتون جواب قطعی ندارد. نمی توان پیش بینی کرد که در آینده چه اتفاقی خواهد افتاد ولی می توان مطمئن بود که رقابت جدی بین این دو زبان برنامه نویسی قدرتمند ادامه خواهد داشت. اگرچه جولیا سریع تر و برای شاخه های آکادمیک مناسب تر است، در حال حاضر پایتون از موقعیت بهتری از نظر سهولت فهم و برداشت کدهای مورد استفاده و انجمن های کاربری برخوردار است.
اگر برنامه نویسی را به تازگی آغاز کرده اید،پیشنهاد ما به شما برنامه نویسی به زبان پایتون است زیرا همانطور که اشاره شد، این زبان ساختار های توسعه دهنده و امکانات مباحثه ای بیش تری در زمینه کدها و رفع ابهامات و اشکالات در اختیار شما می گذارد.
زبان برنامه‌نویسی جولیا برای آن دسته از برنامه نویسانی تدوین شده است که پیش زمینه ی خوبی در برنامه نویسی با زبان هایی همچون Mathematica دارند و به دنبال یک زبان جایگزین متن باز برای Matlab می گردند.
با در نظر داشتن همه ی موارد گفته شده، متخصصان علم داده، باید توجه داشته باشند که سرعت بالا در جولیا به ازای از دست دادن فرصت بهره مندی از جامعه ی کاربری گسترده قابل دسترس است. برنامه نویسان با تجربه ممکن است هر دو زبان را تجربه کرده و سپس با توجه به نیاز خود یکی را انتخاب کنند.
برای کسی مثل من سرعت در اولویت نبوده و بنابراین از آنچه پایتون ارائه می دهد راضی هستم.

منابع:

?Julia vs. Python: What should you choose

 

دوره های آموزشی مرتبط

نویسنده :

سئو و ویراستاری :

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Search

مطالب مرتبط

دسته بندی مطالب

دوره-رایگان-یادگیری-ماشین-کتاب-یادگیری-ماشین-ژرون-Aurelien-Geron-هم-رویش
یادگیری ماشین رایگان ــ تندخوانی کتاب جرون