برای این که به مقایسه پایتون و سی شارپ برسیم باید اول از اینجا سوال شروع کنیم و بپرسیم مدوسا را میشناسید؟ و بعد برایتان بگوییم که مدوسا یک مار چند سر در اسطورههای یونان که تا یکی از سرهایش را قطع میکردید، یک مار جدید به جایش سبز میشد. خب حالا این ماجرای ترسناک وسط مقالههای بامداد چه میکند؟ عرض میکنیم خدمتتان!
دنیای برنامهنویسی و زبانهای مختلفش، شاید به ترسناکی دنیای قهرمانان یونان نباشد، اما به خاطر وجود زبانهای مختلف، دست کمی از آن مار چندسر ندارد. دو تا از این سرها یا زبانها تقریبا از دیگران معروفتر هستند و تازهواردها را بدجوری گیر میاندازند. بحث امروز ما هم راجع به همین دو زبان پرکاربرد است و قرار است به شما بگوییم که از میان زبانهای پایتون یا سی شارپ c# کدامیک را برای آموزش برنامه نویسی انتخاب کنید تا بتوانید موفق بشوید.
اما میدانید که یک قهرمان واقعی اول تمام نقاط ضعف و قوت حریف را بررسی میکند، پس ما هم اول زبان python و c sharp را کامل معرفی میکنیم، و بعد یک دوئل تمام عیار میان این دو زبان برگزار میکنیم تا شما بتوانید راحتتر تصمیم بگیرید کدام زبان برنامهنویسی مناسب احوال شما است و میتواند درهای کوه المپ برنامهنویسی را به روی شما باز کند.
معرفی زبان برنامه نویسی پایتون
پایتون یک چند سالی از سی شارپ بزرگتر است. پدرش آقای خیدو، یک روز در هلند مشغول کدنویسی بود که دید یک چیزی مثل دم مار از گوشهی کدها هی تکان میخورد، خلاصه دم مار محترم را کشید تا به python رسید.
پایتون از همان اول، خیلی سخاوتمند بود برای همین هم به شکل open source یا متنباز وارد بازی شد، یعنی چه؟ یعنی اینکه همهی برنامهنویسها میتوانستند از بخشی از کدهایش استفاده کنند و بخش دیگری را با توجه به کاربریای که برای برنامه تعریفکردهاند، تغییر بدهند.
پایتون یکی از زبانهای برنامهنویسی است که از غیر مستقیم حرف زدن اصلا خوشش نمیآید و دستورهای لازم را خیلی رک به سیستم میگوید. مثلا وقتی قرار است یک عبارت را پرینت بگیرد، به جای اینکه با کلی تابع، حاشیه برود تا برسد به موضوع پرینت، همان اول ماجرا مینویسد: print و در نتیجه کلی کار خودش و سیستم و برنامهنویس را راحتتر میکند.
از آنجایی که پایتون مثل آدم حرفش را میزند و در واقع از keywordهای انگلیسی به جای ویرگول و … استفاده میکند، یادگیریاش هم برای مبتدیها آسانتر است و در ضمن اگر بخشی از برنامه به مشکل بخورد، خیلی راحت میشود ایراد کار را پیدا کرد.
البته پایتون کمی تنبل است وحوصله ندارد هزاران دستور و کد را همان اول ماجرا و به صورت یکجا اجرا کند، و ترجیح میدهد دستورات را خط به خط به سیستم بدهد، بنابراین در دستهی زبانهای تفسیری قرار میگیرد. زبانهای تفسیرپذیر نقطهی مقابل زبانهای کامپایلر هستند. سخت شد؟ بگذارید سادهترش کنیم.
تا به حال به مترجمهای همزمانی که در اجلاسهای مختلف حضور دارند، دقت کردهاید؟ بعضی ازآنها کلمههای گوینده را به شکل کلمه به کلمه ترجمه میکنند، اما برخی دیگر صبر میکنند تا عبارت گوینده تمام بشود و بعد تمام عبارت را ترجمه میکنند. برنامههای تفسیری مثل مترجم شمارهی یک عمل میکنند. آنها کدها را خط به خط ترجمه میکنند و همین باعث میشود که سرعت کارشان کمتر بشود و حافظهی بیشتری را اشغال کنند، در مقابل برنامههای اجرایی مثل همان مترجم شمارهی دو عمل میکنند و تمام عبارت را به صورت یکجا اجرا میکنند.
نکتهی مهم این است که عیبیابی درزبانهای تفسیری راحتتر است. چرا؟ فرض کنید در حال ساخت یک دیوار هستید و آجرها را دانه دانه روی هم میگذارید، خب اگر یک آجر را اشتباه بگذارید، خیلی راحت همان لحظه متوجه اشتباهتان میشوید. حالا اگر از یک دیوار پیشساز استفادهکنید و بعد بفهمید یکجای کار ایراد دارد، چه میکنید؟ خب باید بیل و کلنگ را بردارید و به جان دیوار بیچاره بیفتید تا بفهمید ایراد از کدام قسمت بودهاست.
پیشنهاد مقاله: سی شارپ یا جاوا
برای همین هم هست که برای پیدا کردن باگهای یک برنامه، برنامهنویسها معمولا ترجیح میدهند از پایتون یا سایر زبانهای تفسیری کمک بگیرند تا ناگهان دیوار کدها بر سرشان آوار نشود.
Python چند خصوصیت خوب دیگر هم دارد، پایتون عاشق اشیا و کلاسهای مختلف است و اصلا از همان اول گفت آقاجان من یک زبان برنامهنویسی شیگرا هستم، البته جناب پایتون به سبک زندگی مینی مالیسیتی هم خیلی علاقهمند است و برای همین دارای خاصیت Garbage Collection است، این یعنی اگر کد یا متدی در سیستم تعریف بشود و از آن استفادهای نشود، بعد از مدتی پایتون متوجه میشد یک متد اضافی، خیلی بیخود و بیجهت، بخشی از حافظه را اشغال کردهاست، بنابراین متد بیاستفاده را از صفحهی روزگار محو میکند.
پایتون فرزند رفیقباز خانوادهی برنامهنویسی است، برای همین با بیشتر غولهای فناوری مثل اینستاگرام و گوگل و … دوست است و البته برای پیدا کردن دوستهای جدید همیشه سری به کتابخانهها میزند، برنامهنویسها هم که میبینند پایتون بچهی اجتماعیای است، هر روز کلی کد جدید وارد کتابخانهها و libraryهای مختلف پایتون میکنند. کتابخانههایی مثل pytorch, spark, و … از مهمترین و پرکاربردترین کتابخانههای پایتون در توسعهی وب هستند.
از طرف دیگر پایتون خودش را محدود به یک پلتفرم خاص نکردهاست و کدهایش در تمام پلتفرمها مثل ios, android و … باکمی تغییر قابل اجرا هستند.
پایتون ماجرای ما بسیار هم اهل ماجراجویی است، برای همین دائم به چارچوبها و فریمورکهای مختلف سر میزند، تا ببیند محیط کدامشان برای پرورش استعدادهایش مناسبتر است. خوب است بدانید فریمورکها در واقع همان زمینهای بازیای هستند که مجموعهای از امکانات و کدها و در واقع کتابخانههای پیشرفته را در اختیار برنامهنویسها قرار میدهند تا به کمک آنها بتوانند سریعتر یک دستور را بنویسند.
بعضی از زبانها مثل سی شارپ فقط در یک فریمورک اختصاصی فعالیت میکنند. و برخی دیگرمثل پایتون دارای فریمورکهای متنوعی هستند. اهالی سرزمین پایتون از فریمورک جانگو برای توسعه وب اپلیکیشنها، فریمورک باتل برای توسعهی وب و فریمورکهای پریمید و توربوگیرز برای سادهتر شدن کدنویسی و انجام پروژههایی مثل سی ام سی استفاده میکنند.
پایتون بچهی آرامی نیست و دوست ندارد از دنیای صفر و یک عقب بماند، بنابراین ردپایش همه جا هست وکاربردهای زیادی دارد. اما اگربخواهیم از مهمترین فعالیتهایش نام ببریم، میتوانیم به انجام فعالیتهای محاسباتی بزرگ و داده محور، و کاربردش در علومی مثل هوش مصنوعی یا پروژههای مختلف امنیت شبکه و هک، طراحی وبسایت، بازیسازی و توسعهی اپلیکیشنهای مختلف، اشاره کنیم.
معرفی زبان برنامه نویسی سی شارپ
داستان تولد سی شارپ از یک حسادت ساده شروع شد. شرکت مایکروسافت آن موقع رقابت سختی با سایر شرکتها داشت و دلش میخواست یک بچه مثل جاوا داشتهباشد، و البته این بچه خیلی بیشتر شبیه به سایر زبانهای خانوادهی c باشد. خلاصه مایکروسافت به مهندسانش دستور داد و در نهایت از دل کلی تلاش و وسط مایکروسافت، c sharp متولد شد. در این مقاله در مورد زبان برنامه نویسی سی شارپ بیشتر بخوانید.
C sharp مثل بسیاری از زبانهای قدرتمند دیگر، شیگرا است، ولی تفاوتش این است که کلاس کارش با اشیا نسبت به پایتون بالاتر است و اگر دوست دارید به دل برنامهنویسی شیگرا بزنید، و شیگرایی را در سطح بالای آن تجربه کنید، بهتر است به سراغ سی شارپ بروید.
مایکروسافت از این بچهی جدید که همان سی شارپ باشد، خیلی خوشش میآمد، برای همین حسابی مراقبش بود. مایکروسافت یک حیاط بزرگ برای سی شارپ درست کرد و اسمش را گذاشت .net این حیاط بازی، چارچوب اصلی سی شارپ است و بسیاری از ابزارها و کتابخانههای مختلف برای بهتر کار کردن با سی شارپ، در این فریمورک تعریف شدهاست.
.net مزایای زیادی دارد مثلا open source است و این یعنی به راحتی میشود از منابع آن استفاده کرد. محیط .net به لطف ویژگی Garbage Collection همیشه تمیز است و خب این یعنی کلی فضا در حافظه باقی میماند.
یکی دیگر از ویژگیهای مهم .net داشتن زبان میانی است، این دیگر چیست؟ زبان میانی، یکجوهایی مثل پل ارتباطی میان پلتفرمهای مختلف عمل میکند. مثلا اگر شما یک برنامه را با زبان سی شارپ بنویسید و بعد با خودتان بگویید: «وای چه برنامهی خوبی! کاش میشد این برنامه را در اندروید هم اجرا کنم» همان موقع سی شارپ و .net مثل دو تا ابرقهرمان سرراهتان سبز میشوند و با ایجاد تغییرات جزیی، کاری میکنند تا کدهایتان با اندکی تغییر در اندروید هم قابل استفاده بشود، و این یعنی طی کردن یک راه صدساله در چند ساعت، چیزی که روزی رویای بسیاری از برنامهنویسها بود.
C# خیلی هم محتاط است، برای همین به محض اینکه حس کند یک کد ممکن است به سیستم آسیب بزند، سریع کارت قرمزش را درمیآورد و یک اخطار حسابی به برنامهنویس محترم میدهد.
سی شارپ حسابی در خانهی پدریاش یعنی محیط ویندوز راحت است و تقریبا هر کاری میتواند بکند، بنابراین اگر دوست دارید نرمافزارهای تحت ویندوز را توسعه بدهید، برای اولین قدم خوب است که به سراغ سی شارپ بروید.
سی شارپ همانطور که در بخش قبل گفتیم، کمی زرنگتر از پایتون است و خیلی سریع وارد دار و دستهی زبانهای اجرایی شد. بنابراین امکان پیدا کردن خطا در این زبان کمی مشکل است، از طرف دیگر اگر در یک پروژه وقت برایتان خیلی طلاست و البته به حجم حافظهی ذخیره شده هم احتیاج دارید، بهتر است از همان اول به سراغ سی شارپ بروید، چرا که این زبان به خاطر کامپایلر بودن، زمان کمتری را تلف میکند.
سی شارپ چهارمین زبان برای آموزش برنامهنویسی در دنیا از نظر محبوبیت و کاربرد است و با ارائهی نسخههای جدید .net مثل .net core و یا .asp.net از طرف مایکروسافت، هر روز به این محبوبیت اضافه میشود. چرا؟ چون به وسیلهی این فریم ورکها برنامهنویسها دیگر به راحتی میتوانند فضاهای مختلف وبسایت را طراحی کنند و البته اپلیکیشنها را توسعه بدهند.
البته خوب است بدانید تا همین چند وقت پیش، بسیاری از برنامهنویسها، برای ایجاد و یا توسعهی اپلیکیشنهای موبایل به سراغ جاوا میرفتند، اما خب بابا مایکروسافت اصلا دوست نداشت کسی رقیب بچهی دلبندش بشود، برای همین یک ابزار ساخت به اسم زامارین. حالا سی شارپ هم میتوانست پا به پای جاوا و حتی سریعتر از آن، اپلیکیشنهای موبایل را توسعه بدهد و بسازد.
سی شارپ کاربردهای زیادی دارد و تقریبا در بازار ایران، برای ساخت بازی و انواع اپلیکیشن حرف اول را میزند، نرمافزارهای کاربردیای مثل آفیس 360، شیرپوینت، اتوکد و … با این نرمافزار نوشتهشدهاند. از طرف دیگر در توسعه وبسایتهای مختلف هم کاربرد دارد و البته به خاطر سادگیاش و نزدیک بودنش به زبانهای برنامهنویسیای مثل C++ و جاوا، یادگیریاش هم راحتتر است. راستی میتوانید مقاله معرفی و آموزش برنامه نویسی ما را هم بخوانید.
آموزش برنامه نویسی سی شارپ
C sharp یا python ؟ مقایسه بازار کار برنامه نویسیة
یکی از دلایل اصلی خیلی از ما برای یادگرفتن یک مهارت جدید، رسیدن به درآمد مطلوب است، از آنجایی که هیچکدام از ما صاحب یک کت جادویی نیستیم تا از جیبهایش بتوانیم بی حساب و کتاب پول برداشت کنیم، بنابراین باید به دنبال یک شغل پردرآمد برویم. خب ما هم در این بخش از مقالهی بامداد تصمیم گرفتیم سری به بازار کار c sharp و python بزنیم، تا خیلی دست به چرتکه وارد دنیای زبانهای برنامهنویسی بشوید.
بازار کار سی شارپ
اگر از برنامهنویسهای کاربلد بپرسید که بازار کار سی شارپ چطور است؟ با این جواب مواجه میشود: «اینجا یا آنجا؟» واقعیت این است که بازار کار سی شارپ در ایران و خارج از ایران بسیار متفاوت است. سی شارپ در بازار برنامهنویسی ایران حرف اول را میزند.
سایتهای بزرگی مثل دیجی کالا یا ورزش 3 به وسیلهی سی شارپ نوشته شدند و همین نشان میدهد که صاحبان استارتتاپها چه نگاه مثبتی به سی شارپ دارند.
از طرف دیگر بسیاری از بازیها و اپلیکیشنهای اندرویدی که در کافهبازار ارائه میشوند، توسط سی شارپ و به کمک ابزارهایی مثل زامارین یا unity3d نوشتهشدهاند، و خب از آنجایی که اصولا آدمها به دنبال راههای امتحان پس داده هستند، بنابراین بسیاری ازشرکتها به دنبال ساخت اپلیکیشن با این زبان میروند و خیلی طبیعی است که کسب و کار برنامهنویسهای سی شارپ بهتر باشد.
در نهایت با توجه به پشتیبانی تمام قد مایکروسافت و محیط .net از سی شارپ، این زبان هر روز بیشتر تکامل پیدا میکند و خیلی وقت است که از آن دنیای کوچک کودکی فاصله گرفته است. اگر سری هم به آمارها بزنیم، میبینیم که تقاضا برای برنامهنویسهای مسلط به زبان سی شارپ در ایران و البته خارج از کشور سیر صعودی داشته و بعد از php دومین زبان پرتقاضا، در بازار دنیا است.
بازار کار پایتون
بازار کار پایتون، در چند سال اخیر رشد قابل توجهی داشته و جناب پایتون خیلی با سرعت دارد قلب طرفدارها را یکی بعد از دیگری فتح میکند، اما خب محبوبیت خشک و خالی که به درد کسی نمیخورد، بنابراین پایتون یک روز رفت به سراغ گوگل و گفت: «من که این همه قابلیت دارم، یک زبان چند سکویی محشر هستم، بگذارم بروم؟» گوگل هم گفت: «نه بابا کجا؟ بمان!.» خلاصه اگر دوست دارید درشرکتهای غولی مثل گوگل یا فیسبوک کار کنید، بهتر است از همین امروز با پایتون رفیق بشوید.
پایتون در زمینهی هوش مصنوعی و علم داده و علم ماشین، حرفهای زیادی برای گفتن دارد، اما از آنجایی که این علوم در ایران هنوز به اندازهی دنیا پیشرفت نکردهاند، بازار کار در این زمینهها به کمک پایتون در داخل کشور چندان پر رونق نیست. ماجرا وقتی جالبتر میشود که بدانیم پایتون، رابطهی بهتری با ios و اندروید دارد و برای ساخت اپلیکیشنها بسیار کاربردیتر است، اما با این وجود هنوز هم داخل ایران بازار کار و تقاضا روی دستان سی شارپ میچرخد.
در نهایت با رشد پلتفرمها و همچینین استارتاپها در داخل کشور، به نظر میرسد پایتون هم کم کم دارد جایگاه خودش را در بازار کار ایران پیدا میکند، اما هنوز این جایگاه کیلومترها با جایگاه فعلی سی شارپ فاصله دارد.
چرا آموزش پایتون به کودکان و نوجوانان بهتر است؟
مقایسه سی شارپ و پایتون از نظر مدت یادگیری
تا اینجا سی شارپ و پایتون هرچند تا برگ برنده که در جیبشان داشتند، برای شما رو کردند، و خوب از آنجایی که هنوز برندهی نهایی معلوم نشده است، آنها تصمیم گرفتند سری به خاطرات مدرسه بزنند تا ببیند کدامشان با کدها و برنامهنویسها زودتر رفیق میشدند!
از آنجایی که keywordها در زبان پایتون، به زبان آدمیزاد و انگلیسی هستند، یادگیری این زبان برای مبتدیها سادهتر است. از طرف دیگر منابع آموزشی پایتون و کتابخانههای آن هم زیاد است و به خاطر همین خیلی راحت میشود از تجربههای دیگران هم استفاده کرد.
البته وقتی بحث تجربهیدیگران وسط باشد، c sharp هم میتواند تا ده سال آینده، از گوشه و کنار اینترنت، منبع آموزشی بیاورد. نکتهی بعدی اینکه یادگیری سی شارپ برای کسانیکه قبلا با زبانهایی مثل جاوا و c++ کار کردهاند بسیار ساده است، و به خاطر شباهتشان، مثل رفتن از یک اتاق خانه به اتاق دیگر است. اما در نهایت بسیاری از برنامهنویسها معتقد هستند برای یادگیری و تسلط بر سی شارپ باید وقت بیشتری صرف کرد و این زبان به همین راحتیها به کسی روی خوش نشان نمیدهد.
پیشنهاد مقاله: آموزش برنامه نویسی پایتون
بین سی شارپ و پایتون کدام را انتخاب کنیم؟
خب حالا وقتش است، تعداد گلها را بشماریم و از میان پایتون یا سی شارپ یکی را بهعنوان برندهی نهایی اعلام کنیم.
سی شارپ و پایتون هر دو برنامههایی شیگرا هستند، اما کلاس شیگرایی در سی شارپ به مراتب بالاتر است و همین موضوع یادگیری این زبان را کمی سختتر میکند. از طرف دیگر شروع برنامهنویسی با پایتون چندان هم بد نیست، چرا که بعد از مدتی میتوانید با استفاده از محیط برنامهنویسی ironpython وارد فاز آموزش برنامهنویسی در محیط .net بشوید و تمام آن فعالیتهایی که قبلا ذکر خیرشان را کردیم، انجام بدهید.
پایتون یک زبان تفسیری است، بنابراین با بار کدهایی که روی دوشش است خیلی طبیعی است که از نظر سرعت در مقابل سی شارپ که زبانی کامپایلر یا اجرا کنندهاست، کم بیاورد، پس اگر قرار است وارد پروژههایی بشوید که در آنها سرعت حرف اول را میزند، بهتر است وارد دنیای سی شارپ بشوید، البته اگر یک شرلوک هلمز درون دارید، که همیشه به دنبال پیدا کردن مجرم و عیب و ایرادهای مختلف است، و دوست دارید در دنیای برنامهنویسی هم به دنبال رفع اشکال برنامههای مختلف باشید، بهتر است به سراغ پایتون بروید.
و در نهایت اگر نگاهی به مهاجرت و فعالیت در حوزههایی مثل هوش مصنوعی، علوم داده و یا کار با کامپیوترهای غولپیکر دارید، یا به برنامهنویسی به شکل فریلنسر در داخل کشور علاقهمند هستید، میتوانید با خیال راحت به سراغ python بروید.
اما اگر کودک درونتان هنوز سرحال است و عاشق بازیسازی هستید، یا دوست دارید با انواع اپلیکیشنها سر و کله بزنید یا رویای سر زدن به تمام غارهای مخفی ویندوز و desktop را دارید و یا عاشق توسعهی وبسایتهای مختلف هستید، بهتر از همین حالا با c sharp صمیمیتر بشوید.
در نهایت هر دو زبان برنامهنویسی پایتون و سی شارپ به شدت کارآمد و محبوب هستند، و این شما هستید که با توجه به تواناییهایتان و رشتهای که در آن قصد فعالیت دارید، زبان مورد علاقهتان را انتخاب میکنید.