دانستنی‌ها

جاوا یا پایتون: کدام زبان برنامه نویسی قوی تر است؟

زبان های برنامه نویسی جاوا (Java) و پایتون (Python)، از جمله زبان هایی هستند در حال حاضر به صورت گسترده استفاده می شوند.

حال سؤال اینجاست که کدام یک از این دو زبان برنامه نویسی انتخاب مناسب تری برای توسعه ی نرم افزارهای کاربردی (applications) است؟

برخی از افراد، بر مبنای معیارهای زیر یکی از این دو زبان برنامه نویسی را انتخاب می کنند:

– طول برنامه (تعداد خطوط کد): برنامه هایی که به زبان پایتون نوشته می شوند، نوعاً کوتاه تر از برنامه های متناظر به زبان جاوا هستند. بعضی از افراد معتقدند که با استفاده از زبان های پویایی (dynamic languages) مثل پایتون می توان ده مرتبه سریع تر از زبان های ایستا (static languages) کد زد [2].

– زمان اجرای برنامه: معمولاً زمان اجرای برنامه هایی که به زبان جاوا نوشته شده اند کوتاه تر از زمان اجرای برنامه هایی است که به زبان پایتون نوشته شده باشند (چون در زبان پایتون بررسی انواع یا همان type checking در زمان اجرای برنامه انجام می شود).

– راحتی یادگیری: بسیاری از افراد معتقدند که یادگیری زبان پایتون برای افراد مبتدی آسان تر است.

– توسعه ی اپلیکیشن های تحت وب: برخی از افراد معتقدند که با وجود چارچوب هایی که پایتون برای توسعه ی سریع اپلیکیشن های تحت وب ارائه کرده است، جاوا برای توسعه ی اپلیکیشن های مقیاس پذیر (در صورتی که تعداد کاربران متغیر باشد) مناسب تر است.

– ساخت و نگهداری سیستم های بزرگ: عده ای معتقدند که زبان جاوا برای توسعه ی سیستم های بزرگ و نیز سیستم هایی که باید تحمل خطای بالایی داشته باشند، مناسب تر است.

– پشتیبانی از پارادایم های (Paradigm) مختلف برنامه نویسی: برخی از افراد معتقدند که با وجود قابلیت هایی که به نسخه های جدید جاوا افزوده شده است، با توجه به اینکه زبان پایتون از پارادایم های مختلف برنامه نویسی (شامل functional و object oriented) پشتیبانی می کند، زبان پایتون برای برنامه نویسی مبتنی بر تحلیل وظیفه مندی ها (functional programming) مناسب تر است؛ مخصوصاً که با استفاده از ابزارهایی مانند JYthon و IronPython می توان به زبان پایتون کد زد و سپس آن را در سایر محیط های توسعه (جاوا و .Net) به کار برد.

بنابراین، نمی توان ادعا کرد که یکی از این دو زبان به طور قطع بر زبان دیگر برتری دارد. بسته به هدف برنامه نویس، ممکن است یکی از این دو زبان برنامه نویسی مناسب تر باشد.

 

منابع:
 

[1] https://www.python.org

[2] http://www.javaworld.com

[3] http://stackoverflow.com

 

 

 

[yasr_visitor_votes size=”large”]

نوشته های مشابه

‫15 دیدگاه ها

  1. قبل از هر جهت گیری در مورد اینکه کدام زبان برنامه نویسی خوبه کدام بد باید دید میوایم چکار کنیم ؟! من خودم در زمینه هوش مصنوعی و دیتا ساینس کار میکنم در این زمینه پایتون یه سر و گردن از جاوا و c++ بالاتره . البته نه از لحاظ سرعت بلکه از لحاظ راحتی کار . مثلا میخوام با ماتریس ها کار کنم اگر بخوام همین کار را با c++ یا جاوا انجام بدم باید کلی وقت بزارم مثلا دترمینان فرمول نویسی کنم و … اما پایتون این مدل کار را راحت کرده با یه خط دستور . اما در مقابل اگر بخوام در زمینه امنیت سرور و یا امنیت بانک اطلاعاتی و یا امنیت یک شبکه بزرگ یک شرکت کار کنم بی شک جاوا . اما وقتی کار به ارتباط با سخت افزار میرسه و یا کاری داریم که سرعت تو بسیار مهمه (مثل شبکه های عصبی) اون وقت باید مدال طلا را به c++ بدهیم و پایتون به یک مصیبت تبدیل میشه

  2. با خواندن برخی کامنت‌ها واقعا متعجب شدم و ترجیح دادم به نکاتی اشاره کنم.

    برنامه نویسی تابع گرا (Functional Programming) مثل شیء گرایی یک سبک برنامه نویسی است! این سبک ربطی به سبک برنامه نویسی رویه‌ای (procedural) نداره! این سبک قدمت بسیار زیادی داره، قدمتش به همون سال‌های اولیه ساخت کامپیوتر برمی‌گرده!! ولی چند سالی است که دوباره محبوب شده، دلیل محبوبیتش هم امکان نوشتن برنامه‌های موازی است! شما با این سبک می‌تونید برنامه‌های بزرگ رو به صورت موازی روی تعداد زیادی CPU یا کامپیوتر اجرا کنید!! زبان‌هایی چون لیسپ، هسکل، ارلنگ و غیره تابع گرا هستند.

    پایتون یه زبانه خیلی ساده است، دلیل محبوبیتش هم همین سادگیه! افراد خیلی راحت می‌تونند اون رو یاد بگیرند.
    چرا این روزها معروف شده!؟ چون تو دنیای استارتاپ‌های نرم‌افزاری، که حرف اول و آخر رو سرعت و زمان رسیدن به یک محصول نرم‌افزاری می‌زنه، اپلیکیشن پایتونی خیلی سریع آماده می‌شه! اما آیا این سرعت آماده شدن به منزله بهینه بودن هم هست!؟ لزوماً خیر!

    پایتون در مقایسه با جاوا از سینتکس ساده‌تری برخورداره! سینتکس جاوا کاملا شبیه به سینتکس ++C است.
    جاوا یه زمانی تو خیلی چیزها واقعا پیشتاز بود، اما این روزها بخشی از قابلیت‌های روبنایی گذشته‌اش رو به زبان‌هایی چون پایتون و روبی داده. اما کماکان زبان خوب و قوی برای کارهای سازمانی بزرگ محسوب می‌شود.

    اما می رسیم به ++C ، این زبان اساساً برای حرفه‌ای ها ساخته شده! می‌شه لقب سریع‌ترین زبان برنامه نویسی شیء گرا رو به او داد! هیچ زبان برنامه نویسی شیء گرایی حتی به سرعت اون هم نزدیک نمی‌شه! دلیلش هم ساده است، کدهای نوشته شده به این زبان برخلاف جاوا و پایتون مستقیماً به آبجکت کدها (زبان ماشین) ترجمه می‌شوند!
    به همین دلیل بسیاری از شرکت‌های بزرگ دنیا مثل فیس بوک کدهای پشت صحنه (Back-end) خودشان را با این زبان می‌نویسند.

    اگر تجربه برنامه نویسی ندارید و تصمیم دارید برنامه‌های ساده‌ای بنویسید، یا تو یک استارتاپ کار کنید، یا برای وب برنامه بنویسید، پایتون یاد بگیرید! این زبان امکانات زیادی در اختیارتون می‌گذاره!

    اگر می‌خواهید برنامه‌های بزرگ بنویسید، تو سازمان‌های مختلف کار کنید، با کدهای سازمانی قدیمی سروکله بزنید، برای اندروید برنامه بنویسید (البته با پایتون هم می‌شه، ولی گوگل استفاده از جاوا رو توصیه می‌کنه)، جاوا یاد بگیرید!!

    اگر می‌خواهید وارد باشگاه حرفه‌ای ها شوید، برنامه‌های سیستمی بنویسید، درایورهایی برای سخت افزار بنویسید، سیستم عامل لینوکس رو دستکاری کنید، برنامه‌های خیلی خیلی سریع بنویسید، پس ++C یاد بگیرید!!

    هر چند به مرور خواهید آموخت که تنها به یک زبان نمی‌توانید تکیه کنید و برای انجام پروژه‌های مختلف مجبور به استفاده از زبان‌های مختلف خواهید بود.

    موفق باشید…

  3. سلام میشه برای دو حالت زیر بگيد که چه زبانی مناسب تر هست
    1- برای طراحی وب + الکترونیک (نه خیلی تخصصی. چون رشتم نیست) + برنامه نویسی اندروييد
    2 طراحی وب +برنامه نویسی اندروييد

  4. برنامه نویسی مبتنی بر تحلیل وظیفه مندی ها ترجمه functional programming است؟ چطور همچین ترجمه ای برای برنامه نویسی تابعی آوردید؟

    1. نوعاً توابع با تحلیل وظیفه مندی ها استخراج می شوند. در حالی که در شئ گرایی، تمرکز بر روی اشیاء است و اشیاء با تحلیل دنیای واقع تعیین می شوند (تمرکز بر روی تحلیل وظیفه مندی ها نیست).

      1. به نظر من تعریف شما از زبانهای تابعی اشتباهه.
        این زبانها تابعی نامیده میشن چون مبتنی بر تابع هستن و نه نیازهای وظیفه مند.

        هر سیستمی نیازهای وظیفه مند داره. حالا چه با زبانهای تابعی پیاده سازی بشه و چه با زبانهای شی گرا (کما اینکه این دو مفهوم در تضاد با یکدیگر نیستن و میشه توامان از آنها استفاده کرد مثل اسکالا و یا پایتون)

          1. ” زبان پایتون برای برنامه نویسی مبتنی بر تحلیل وظیفه مندی ها (functional programming) مناسب تر است”

            برنامه نویسی تابعی یک پارادایم برای زبانهای برنامه نویسی ( و یا یک رویکرد برنامه نویسی است)

            مثل: برنامه نویسی رویه ای و برنامه نویسی شی گرا

            اینجا هم میتونید یه تعریف ساده از برنامه نویسی تابعی رو ببینید.

            https://en.wikipedia.org/wiki/Functional_programming

            من متاسفانه تا حالا جایی ندیدم که برنامه نویسی تابعی رو به نیازهای وظیفه مند ربط بدن. (یعنی بحث تحلیل و پارادایم برنامه نویسی رو که در دو فاز مختلف هستن معمولا رو به هم وابسته کنن.)

            اگر منبعی دارید لطفا معرفی کنید.

            1. بنده اصراری بر این موضوع ندارم که این ترجمه بهترین ترجمه ممکن باشد.
              شما درست می فرمایید حتی متدولوژی هایی مثل FDD که مبتنی بر functional decomposing هستند نیز اجبار نکرده اند که از پارادایم خاصی در کد زنی استفاده شود.

  5. -به مراتب حرفه ای تر و قدرتمند تر از هر زبان برنامه نویسی می باشد.

    واقع عجیبه تا وقتی زبان هایی مثله C++ و Pascal هستند از نظر سرعت و قدرت جاوا هیچه دوسته عزیز لطفا تحقیق کنید

    1. هههه واقعا چی رو با چی مقایسه میکنید شما؟!
      پاسکال که …!!
      فقط C++ یکم سرعتش از پایتون بیشتره اما در برابر جاوا…
      خدایی نمیدونم الان باید چی بگگمممم!!!!

    2. دوست عزیز لطفا اطلاعات غلط ندید..یادتون باشه سی پلاس پلاس نمیتونی با جاوا مقایسه کنی

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

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

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

دکمه بازگشت به بالا