পাইথন উচ্চ-পারফরম্যান্স / বৈজ্ঞানিক কম্পিউটিংয়ের জন্য কেন ব্যবহার করা হয় (তবে রুবি তা নয়)?


106

পাইকন ২০১১ টকের একটি উদ্ধৃতি রয়েছে যা এখানে চলে:

কমপক্ষে আমাদের দোকানে (আর্গোন ন্যাশনাল ল্যাবরেটরি) আমাদের কাছে বৈজ্ঞানিক কম্পিউটিংয়ের জন্য তিনটি স্বীকৃত ভাষা রয়েছে। এই ক্রমে তারা সি / সি ++, এর সমস্ত উপভাষায় ফোর্টরান এবং পাইথন। আপনি রুবি, পার্ল, জাভার সম্পূর্ণ এবং সম্পূর্ণ অভাব লক্ষ্য করবেন।

এটি উচ্চ-পারফরম্যান্স কম্পিউটিংয়ের আরও সাধারণ প্রসঙ্গে ছিল। মঞ্জুরিপ্রাপ্ত উদ্ধৃতিটি কেবল একটি দোকান থেকে, তবে এইচপিসির ভাষা সম্পর্কে অন্য একটি প্রশ্নটি পাইথনকে শিখার জন্য তালিকাভুক্ত করে (এবং রুবি নয়)।

এখন, আমি বুঝতে পারি যে সি / সি ++ এবং ফোর্টরান সেই সমস্যা-স্থানটিতে ব্যবহৃত হচ্ছে (এবং পার্ল / জাভা ব্যবহৃত হচ্ছে না )। তবে আমি অবাক হয়েছি যে এইচপিসির জন্য পাইথন এবং রুবি ব্যবহারের ক্ষেত্রে একটি বড় পার্থক্য থাকবে, যদিও তারা মোটামুটি একই রকম। (দ্রষ্টব্য - আমি পাইথনের ভক্ত, তবে রুবির বিপরীতে কিছুই নেই )।

এক ভাষা বন্ধ হওয়ার কোনও নির্দিষ্ট কারণ আছে কি ? এটি কি গ্রন্থাগারগুলি উপলভ্য? কিছু নির্দিষ্ট ভাষার বৈশিষ্ট্য? সংগঠনটি? অথবা সম্ভবত কেবল historicalতিহাসিক স্বাচ্ছন্দ্য , এবং এটি অন্যভাবে যেতে পারত?


2
আমি প্রস্তাব দিই যে এগুলি দুটি গতিময় ভাষা হলেও পাইথন এবং রুবি একেবারেই আলাদা। অনুরূপ থেকে আরও পৃথক।
অ্যাডাম ক্রসল্যান্ড 13

20
আমি জানি না এটি একটি উত্তর, তবে - মনে রাখবেন যে রুবেল একটি ছোট সম্প্রদায়ের বাইরে রেলদের সাথে যাত্রা করার আগে পাইথনের আরও 'ট্র্যাকশন' ছিল (প্রায় ২০০২-২০০6)। গুগল অল্প সময়ের জন্য পাইথন ব্যবহার করে আসছিল, যা এর প্রোফাইল উত্থাপন করেছিল (২০০০ এর গোড়ার দিকে) পাইথনের বাক্য গঠনটি স্পষ্ট এবং শিখতে এবং পড়তে সহজ (এবং মনে রাখবেন এটি সেই যুগে ছিল যখন পার্ল সত্যিকার অর্থেই অন্য প্রধান বিকল্প ছিল), সুতরাং আমি মনে করি যে এটি সত্যিকার অর্থে বৈজ্ঞানিক গণনাটিকে তার দিকে ঠেলে দিয়েছে। এরপরে, এটি সম্ভবত স্ব-সংযুক্তি ছিল, কারণ লোকেরা NumPy / SciPy, MatPlotLib এবং আরও অনেক বৈজ্ঞানিক কম্পিউটিং প্যাকেজ তৈরি করেছিল।
wkl

4
এই প্রশ্নে আমার আগ্রহী লোকেরাও কম্পিউটেশনাল সায়েন্স স্ট্যাক এক্সচেঞ্জ সাইটটি পরীক্ষা করতে আগ্রহী ।
মার্ক বুথ

2
"পাঠযোগ্যতার গণনা"
jsbueno

1
কিছু কম্পিউটেশনাল কেমিস্ট্রি দৃষ্টিকোণ অফার করার জন্য, পাইথনের সাথে একটি গণনার সমান্তরাল করা তুচ্ছ এবং খুব সস্তাও। সম্ভবত এই দুটোই রুবির ক্ষেত্রেও সত্য। আমি জানি না।
জোনাথন ল্যান্ড্রাম 21

উত্তর:


108

আমি আমার মন্তব্যে প্রসারিত করব।

আমি মনে করি বৈজ্ঞানিক কম্পিউটিংয়ে পাইথনের ব্যবহারকে প্রভাবিত করার কয়েকটি কারণ রয়েছে, যদিও আমি মনে করি না যে এখানে এমন কোনও নির্দিষ্ট historicalতিহাসিক বিষয় রয়েছে যেখানে আপনি বলতে পারেন, "হ্যাঁ, এ কারণেই রুবি / অন্য কোনও কিছুর উপরে পাইথন ব্যবহার করা হয়েছে reason "

প্রথম ইতিহাস

পাইথন এবং রুবি প্রায় সমবয়সী - উইকিপিডিয়া অনুসারে পাইথন আনুষ্ঠানিকভাবে প্রথম 1991 সালে এবং রুবি 1995 সালে প্রকাশিত হয়েছিল।

যাইহোক, গুগল ইতিমধ্যে পাইথন ব্যবহার করে এবং সহস্রাব্দের সময়ে পাইথন বিকাশকারীদের সন্ধান করায় রুবি যেমন আগে পাইথন তার সর্বাধিক পরিচিতি লাভ করেছিল। যেহেতু এটি আমাদের মত প্রোগ্রামিং ভাষার ব্যবহার এবং তাদের ব্যবহারকারীদের উপর তার প্রভাবগুলির একটি সংক্ষিপ্ত ইতিহাস রয়েছে তাই আমি তাত্ত্বিকভাবে জানাব যে গুগলের দ্বারা পাইথনের এই প্রাথমিক গ্রহণটি মানুষকে মতলব, সি ++ ব্যবহারের বাইরেও প্রসারিত করার জন্য প্রেরণা ছিল was ফোর্টরান, স্টাটা, ম্যাথমেটিকা ​​ইত্যাদি

যথা, আমার অর্থ হ'ল গুগল এমন একটি সিস্টেমে পাইথন ব্যবহার করছিল যেখানে তাদের কয়েক হাজার মেশিন ছিল (সমান্তরালিতা এবং স্কেল মনে করে) এবং ক্রমাগত বহু মিলিয়ন ডেটা পয়েন্ট (আবার, স্কেল) প্রক্রিয়াকরণ করে।

ইভেন্টের মিলন

এসজিআই এবং ক্রেসের মতো বিশেষ মেশিনগুলিতে বৈজ্ঞানিক কম্পিউটিং ব্যবহৃত হত (তাদের মনে রাখবেন?), এবং অবশ্যই ফোরট্রান (এবং এখনও রয়েছে) এর তুলনামূলক সরলতার কারণে এবং এটি আরও সহজেই অনুকূলিত হতে পারে বলে ব্যবহৃত হয়েছিল।

গত দশক বা তারও বেশি ক্ষেত্রে, পণ্য হার্ডওয়্যার (অর্থাত্ আপনি বা আমি মিলিয়নেয়ার না করেই সামর্থ্য রাখতে পারি) বৈজ্ঞানিক এবং বৃহত্ কম্পিউটিংয়ের ক্ষেত্রটি গ্রহণ করেছে। বর্তমান শীর্ষ 500 র‌্যাঙ্কিংয়ের দিকে তাকান - বিশ্বের শীর্ষস্থানীয় অনেকগুলি 'সুপার কম্পিউটার' সাধারণ ইনটেল / এএমডি হার্ডওয়্যার দিয়ে তৈরি।

পাইথন একটি ভাল সময়ে এসেছিল, আবার, গুগল পাইথনকে প্রচার করছিল, এবং গুগল পণ্য হার্ডওয়্যার ব্যবহার করছিল এবং তাদের কয়েক হাজার মেশিন ছিল।

এছাড়াও আপনি যদি কিছু পুরানো বৈজ্ঞানিক কম্পিউটিং নিবন্ধ খনন করেন তবে এগুলি 2000-যুগের চারপাশে শুরু হতে শুরু করে।

আগের সমর্থন

2000 সালে লিখিত অ্যাস্ট্রোনমিকাল ডেটা অ্যানালাইসিস সফটওয়্যার এবং সিস্টেমগুলির জন্য একটি নিবন্ধ এখানে দেওয়া হয়েছে , যেখানে পাইথনকে বৈজ্ঞানিক কম্পিউটিংয়ের ভাষা হিসাবে প্রস্তাব দেওয়া হয়েছিল।

নিবন্ধটি পাইথন সম্পর্কে এই উদ্ধৃতি আছে:

পাইথন হ'ল ব্যাখ্যাযুক্ত অবজেক্ট-ভিত্তিক প্রোগ্রামিং ভাষা যা বৈজ্ঞানিক অ্যাপ্লিকেশনগুলিতে যথেষ্ট মনোযোগ পেতে শুরু করে (পাইথন, 1999)। এটি কারণ পাইথন এবং সাধারণভাবে স্ক্রিপ্টিং ভাষাগুলি অনেকগুলি বৈজ্ঞানিক প্রকল্পের জন্য পরবর্তী যৌক্তিক পদক্ষেপের প্রতিনিধিত্ব করে (ডুবাইস 1994)। প্রথমে পাইথন একটি ব্যাখ্যাযুক্ত প্রোগ্রামিং ল্যাঙ্গুয়েজ সরবরাহ করে যা বৈজ্ঞানিক প্রোগ্রামগুলির দ্বারা ইতিমধ্যে ব্যবহৃত সাধারণ কমান্ড ভাষার এক্সটেনশন হিসাবে দেখা যেতে পারে

দ্বিতীয়ত, পাইথন সহজেই অন্যান্য ভাষায় লিখিত সফ্টওয়্যারগুলির সাথে একীভূত হয়। ফলস্বরূপ, এটি বিদ্যমান প্রোগ্রামগুলি চালনার জন্য নিয়ন্ত্রণ ভাষা এবং পাশাপাশি বিভিন্ন সিস্টেমকে একত্রিত করার জন্য একটি আঠালো ভাষা উভয় হিসাবে পরিবেশন করতে পারে। পরিশেষে, পাইথন তৃতীয় পক্ষের মডিউলগুলির একটি বৃহত সংগ্রহ, একটি প্রতিষ্ঠিত ব্যবহারকারী বেস এবং বই এবং অনলাইন রেফারেন্স আকারে বিভিন্ন নথিপত্র সরবরাহ করে। এই কারণে বিজ্ঞানীরা প্রায়শই তাদের নিজস্ব কমান্ড ইন্টারপ্রেটার লেখার সময় যা সম্পাদন করার চেষ্টা করে তার একটি সজ্জিত এবং প্রসারিত সংস্করণ হিসাবে দেখতে পাবে।

সুতরাং আপনি দেখতে পাচ্ছেন যে পাইথনের ইতিমধ্যে 90 এর দশকের শেষের দিকে ক্রেশন ছিল, কারণ এটি বর্তমানে বিদ্যমান সিস্টেমগুলির সাথে কার্যত একই রকম ছিল এবং সি এবং বিদ্যমান প্রোগ্রামগুলির সাথে পাইথনকে একীভূত করা সহজ ছিল was নিবন্ধের বিষয়বস্তুর উপর ভিত্তি করে পাইথন ইতিমধ্যে 1995-1996 টাইমফ্র্যামের বৈজ্ঞানিক ব্যবহারে এসেছিল।

জনপ্রিয়তা বৃদ্ধিতে পার্থক্য

রুবির জনপ্রিয়তা বিস্ফোরিত হওয়ার সাথে সাথে রুবি অন রেলগুলির উত্থান ঘটেছিল, যা প্রথম 2004 সালে প্রকাশিত হয়েছিল। আমি যখন কলেজে ছিলাম যখন আমি প্রথম সত্যিই রুবির সম্পর্কে গুঞ্জন শুনেছিলাম, এবং এটি 2005-2006 এর কাছাকাছি ছিল। পাইথনের জ্যাঙ্গো একই সময়ের ফ্রেমে (উইকির মতে জুলাই ২০০ around) প্রকাশিত হয়েছিল, তবে রুবি সম্প্রদায়ের দৃষ্টি নিবদ্ধ করা ছিল ওয়েব অ্যাপ্লিকেশনগুলিতে এর ব্যবহার প্রচারে খুব বেশি কেন্দ্রিক।

অন্যদিকে পাইথনের ইতিমধ্যে লাইব্রেরি রয়েছে যা বৈজ্ঞানিক কম্পিউটিংয়ের সাথে খাপ খায়:

  • নুমপি - নুমপাই আনুষ্ঠানিকভাবে ২০০৫ সালে শুরু হয়েছিল, তবে এটি যে দুটি গ্রন্থাগার নির্মিত হয়েছিল তা আগে প্রকাশ করা হয়েছিল: সংখ্যাসূচক (1995) এবং নুমারারে (2001?)

  • বায়োপাইথন - অজগরটির জন্য জৈবিক কম্পিউটিং গ্রন্থাগারটি কমপক্ষে ২০০১ সাল থেকে আসে

  • Sage - 2005 এর প্রথম দিকে প্রথম সার্বজনীন রিলিজ সহ গণিত প্যাকেজ

এবং আরও অনেকগুলি, যদিও আমি তাদের অনেকগুলি টাইম লাইন জানি না (কেবল তাদের ডাউনলোড সাইটগুলি ব্রাউজ করা বাদে) তবে পাইথনের সায়পিও (2006 সালে প্রকাশিত নুমপাইতে নির্মিত) ছিল, এর সাথে আর (পরিসংখ্যানের ভাষা) যুক্ত ছিল 2000 এর দশকের গোড়ার দিকে, ম্যাটপ্লটলিব পেয়েছিল এবং আইপথনে সত্যই শক্তিশালী শেল পরিবেশ পেয়েছে।

আইপিথন 2000 এর দশকের গোড়ার দিকে প্রথম প্রকাশিত হয়েছিল এবং এর সাথে অনেকগুলি বৈশিষ্ট্য যুক্ত হয়েছে যা বৈজ্ঞানিক কম্পিউটিংয়ের জন্য এটি খুব সুন্দর করে তোলে, যেমন ইন্টিগ্রেটেড ম্যাটপ্ল্লোলিব গ্রাফিকিং এবং গণনামূলক ক্লাস্টার পরিচালনা করতে সক্ষম হয়

উপরের নিবন্ধ থেকে:

পাইথন সম্পর্কিত অন্যান্য বৈজ্ঞানিক কম্পিউটিং প্রকল্পগুলিও লক্ষ্য করার মতো। পাইথন সংখ্যাটি এক্সটেনশনটি পাইথনে দ্রুত অ্যারে এবং ম্যাট্রিক্স ম্যানিপুলেশন যুক্ত করেছে (ডুবইস 1996), এমএমটিকে আণবিক মডেলিংয়ের জন্য পাইথন-ভিত্তিক সরঞ্জামকিট (হিনসেন 1999), বায়োপথন প্রকল্পটি জীবন-বিজ্ঞান গবেষণার জন্য পাইথন-ভিত্তিক সরঞ্জামগুলি বিকাশ করছে (বায়োপাইথন 1999), এবং ভিজ্যুয়ালাইজেশন টুলকিট (ভিটিকে) পাইথন বাইন্ডিংস (ভিটিকে, 1999) সহ একটি উন্নত ভিজ্যুয়ালাইজেশন প্যাকেজ। এছাড়াও, পাইথন সম্প্রদায়ের চলমান প্রকল্পগুলি চিত্র প্রক্রিয়াকরণ এবং প্লট করার জন্য এক্সটেনশনগুলি বিকাশ করছে। পরিশেষে, উপস্থাপিত কাজ (গ্রিনফিল্ড, 2000) এসটিএসসিআই-তে প্রকল্পগুলিতে পাইথন ব্যবহারের বর্ণনা দেয়।

পাইথনের জন্য বৈজ্ঞানিক এবং সংখ্যাগত প্যাকেজগুলির ভাল তালিকা


সম্ভবত এটির অনেকগুলিই সম্ভবত প্রাথমিক ইতিহাস এবং 2000 এর দশক পর্যন্ত রুবির আপেক্ষিক অস্পষ্টতার কারণে, যেখানে পাইথন গুগলের প্রচারের জন্য কৃত্রিম ধারণা অর্জন করেছিল।

সুতরাং আপনি যদি 1995 - 2000-এর সময়কালে স্ক্রিপ্টিং ভাষার মূল্যায়ন করছিলেন, আপনি আসলে কী দেখছিলেন? পার্ল ছিল যা সম্ভবত সিনথেটিকভাবে যথেষ্ট আলাদা ছিল যে লোকেরা এটি ব্যবহার করতে চায় না এবং তারপরে পাইথন ছিল, যার একটি পরিষ্কার বাক্য গঠন এবং আরও ভাল পাঠযোগ্যতা ছিল।

এবং হ্যাঁ, সম্ভবত অনেকগুলি স্ব-সংহতকরণ রয়েছে - পাইথনের ইতিমধ্যে বৈজ্ঞানিক কম্পিউটিংয়ের জন্য এই সমস্ত দুর্দান্ত, দরকারী গ্রন্থাগার রয়েছে, অন্যদিকে রুবির একটি সংখ্যালঘু ভয়েস বিজ্ঞানের ক্ষেত্রে এটির ব্যবহারের পক্ষে রয়েছে, এবং এখানে কিছু লাইব্রেরি রয়েছে যা সায়রব্বির মতো প্রকাশ পেয়েছে , তবে পাইথনের সরঞ্জামগুলি গত দশক ধরে পরিপক্ক হয়েছে।

মূলত রুবির সম্প্রদায় রুবিকে একটি ওয়েব ভাষা হিসাবে এগিয়ে নিয়ে যেতে আগ্রহী বলে মনে হয়, কারণ এটিই এটি সত্যই সুপরিচিত করেছে, যেখানে পাইথন একটি আলাদা পথ শুরু করেছিল এবং পরে এটি ওয়েব ভাষা হিসাবে ব্যাপকভাবে ব্যবহৃত হয়েছিল।


8
আমি সি ইন্টিগ্রেশন সম্পর্কে কিছুটা ভুলে গেছি। অনেক ক্ষেত্রে একটি বৈজ্ঞানিক গণনা গণনাগতভাবে নিবিড় হয়, এবং কেবল সেই বিটের জন্য এসি রুটিন লিখতে সক্ষম হওয়া একটি গুরুত্বপূর্ণ সুবিধা।
স্পেনসার রথবুন

1
@ স্পেনসারথ্যাথুন আমি যে নিবন্ধটি লিঙ্ক করেছি তাতে র‌্যাপারগুলি তৈরি করতে এবং পাইথনকে সি / সি ++ কোডের সাথে ইন্টারপ করার অনুমতি দেওয়ার জন্য এসডাব্লুআইজি-র সাথে পাইথন ব্যবহারের কথা উল্লেখ করেছি। ২০০৪ সালে মুক্তিপ্রাপ্ত রুবি ১.6 অবধি এসডাব্লুআইজি আনুষ্ঠানিক রুবির সমর্থন পায়নি। সুতরাং পাইথনের ইতিমধ্যে একটি প্রধান মাথাটি ছিল মাইন্ড শেয়ারে এবং তার চারপাশে তৈরি করা সরঞ্জামটি পাইথনকে তাদের বিদ্যমান সিস্টেমে বল্টু করার অনুমতি দেওয়ার জন্য উপযুক্ত। প্রচলিত, অপ্টিমাইজড ফরট্রান / সি কোড যে সমস্ত ব্যবহৃত ছিল তা খনন না করা সম্ভবত সবচেয়ে বড় ড্রাইভার ছিল।
wkl

3
১৯৯১ সালে আমরা টিসিএল ব্যবহার করে সি / ফোর্টরানের জনসাধারণকে না লিখে ডেটা বিশ্লেষণের একটি সংখ্যা হিসাবে সংখ্যক গ্রন্থাগারগুলিকে একসাথে আঁকতে ব্যবহার করেছি। পাইথন টিসিএল প্রতিস্থাপনের ঠিক সময়ে এসেছিল। পার্লের তুলনায় 'সি' (এবং এফ 2 সি দ্বারা ফোররানের সাথে) ইন্টারফ্যাকিংয়ের সহজতা ছিল বড় চুক্তি, টিসিএল ইন্টারফেসটি 'সি' তে খুব সহজ ছিল
মার্টিন বেকেট

পছন্দের সংযুক্তি প্রক্রিয়াগুলি কী কী ভাষা ব্যবহৃত হয় সে সম্পর্কে একটি ভয়ঙ্কর অনেক কিছু ব্যাখ্যা করে। এটা জিপফিয়ান! দেখুন Zipf Myatery "জাউ" তা 12:50 এ ব্যাখ্যা করা হয়।
রাডারবাব

37

আমি ইঞ্জিনিয়ারিং অ্যাপ্লিকেশনগুলির জন্য পাইথন এবং ওয়েব অ্যাপ্লিকেশনগুলির জন্য রুবি ব্যাপকভাবে ব্যবহার করেছি।

আমি রুবিকে একটি বৈজ্ঞানিক ভাষা হিসাবে যে সমস্যাটি দেখছি তা হ'ল প্রদত্ত ক্রিয়াকলাপের জন্য অনেকগুলি সিনট্যাক্স বিকল্প রয়েছে।

পাইথনটি নীচের ভিত্তিতে তৈরি করা হয়েছে "এখানে একটি হওয়া উচিত - এবং এটি করার একমাত্র উপায় - সম্ভবত উপায়"। এটি কারও কোড পড়তে এবং এর উদ্দেশ্য নির্ধারণ করা আরও সহজ করে তোলে। ইঞ্জিনিয়ারিং ইত্যাদির জন্য পিয়ার রিভিউগুলির জন্য এটি কী etc.

আমি রুবি পছন্দ করি এবং এটি কিছু নির্দিষ্ট কাজের জন্য দুর্দান্ত তবে আমার রুবি কোডটি সঠিকভাবে একই কাজ করে এমন একটি পৃথক প্রোগ্রামারের কোডের তুলনায় বাক্যগতভাবে সম্পূর্ণ আলাদা হতে পারে। এটি বৈজ্ঞানিক বা ইঞ্জিনিয়ার পরিবেশে অত্যধিক অস্পষ্টতার কারণ হয়।


3
হ্যাঁ সত্যই। রুবি টিমটোউডিটিআই traditionতিহ্যে রয়েছে এবং তাই পার্ল থেকে খানিকটা ভাল। সফ্টওয়্যার প্রোগ্রামারদের জন্য রচিত হয়। সংকলক / দোভাষী, এই অর্থে, একজন গৌণ শ্রোতা। অযৌক্তিকভাবে জটিল সফ্টওয়্যার থেকে খুব বেশি হস্তক্ষেপ ছাড়াই বিজ্ঞানীরা তাদের কাজটি সম্পন্ন করার বিষয়ে গুরুতর প্রবণতা পোষণ করেন। কিউইডি
ডমিনিক ক্রোনিন

4
নিশ্চিত নয় যে আমি এই যুক্তিটি অনুসরণ করি। যদি প্রোগ্রামার এবং মেশিনটি প্রাথমিক শ্রোতা না হয় তবে এমন সময় আসে যখন জিনিসগুলিতে আলাদাভাবে কথা বলা স্পষ্টতাকে উন্নত করে এবং উদ্দেশ্যটি হাইলাইট করে। আরও নমনীয় ভাষাটি কী আমাদের নরম মানব মস্তিষ্কের দ্বারা বুঝতে সহায়তা করে না?
অ্যান্ড্রু ভিট

10
তবে সি ASCII কারখানায় বিস্ফোরণের মতো দেখতেও পারে। মনে রাখবেন যে সি-তে একটি অ্যারে হ'ল পয়েন্টারগুলির চারপাশে একটি ত্বক। সুতরাং অ্যারে [5] বিকল্প হিসাবে * (অ্যারে + 5) হিসাবে লেখা যেতে পারে যা বিকল্পভাবে * (5 + অ্যারে) হিসাবে লেখা যেতে পারে যা বিকল্পভাবে 5 [অ্যারে] হিসাবে লেখা যেতে পারে। যা বোকা।
জোনাথন ল্যান্ড্রাম 21

1
আমি একটি দীর্ঘমেয়াদী পার্ল প্রোগ্রামার এবং এটি বেশিরভাগ কারণে আমার প্রিয় ভাষা হিসাবে রয়ে গেছে। যদিও গণিত সম্পর্কে নিশ্চিত নয়। আমি টিমটিউটিডিআই পদ্ধতির সাথে এই মনোভাবের সাথে একমত নই। অনেকগুলি উপলভ্য উপলব্ধির অর্থ এই নয় যে এগুলি অবশ্যই ভাল। সিনট্যাকটিক বিকল্পগুলির অভাব এটি সহায়তা করে না।
এমসি 0 ই

@ অ্যান্ড্রুভিট: অগত্যা নয়। আপনার যদি একজন বিকাশকারী থাকে বা আপনার যদি বিকাশকারীদের একটি ছোট, শক্তভাবে সংহত দল থাকে তবে টিমটোডডিআই দুর্দান্ত কাজ করে। কিন্তু যেই আপনি মানুষ যারা কখনো একই কোড নিয়ে কাজ সঙ্গে মিলিত হয়েছে, আপনি নিজেকে জিজ্ঞাসা শুরু করতে যাচ্ছেন "ওহ, কেন তারা এটা করতে হবে যে উপায়?" অথবা, বিকল্পভাবে, আপনি প্রত্যেককে এটি একইভাবে করতে বাধ্য করার জন্য একটি স্টাইল গাইড লিখবেন এবং তারপরে আপনি আর টিমটোডটিডি করছেন না।
কেভিন

17

একটি অনুমান হিসাবে, এটির একটি বড় অংশটি অনেক গবেষকের দ্বারা মাতলাবের উপর নির্ভরতা । পাইথনের বিকল্প রয়েছে যেমন ageষি । যেখানে রুবি নেই, বা কমপক্ষে কোনও সুস্পষ্ট বিষয় নেই।

দ্বিতীয়ত, রুবি এফএকিউ অনুসারে অজগরটি উভয় প্রক্রিয়াগত এবং অবজেক্ট ভিত্তিক, অন্যদিকে রুবি প্রক্রিয়াগত ভাষা হিসাবে মুখোশ তৈরি করে। আপনি যদি ম্যাথল্যাবে যা করতে চান তার মতো গণিতের উদ্দেশ্যে যদি একটি ছোট স্ক্রিপ্ট লিখছেন তবে ওও দৃষ্টান্ত একটি মাথা ব্যথা। কেবল তা-ই নয়, এটি গবেষকরা যে কার্যকরী / পদ্ধতিগত দৃষ্টান্তগুলি ব্যবহার করেন তা থেকে দূরে রাখে concept ম্যাথ ওও নয় । গণিত কার্যক্ষম, তারপরে প্রক্রিয়াগত (যুক্তির প্রমাণগুলি ভাবেন)।

পরিশেষে, দ্রষ্টব্য যে রুবি এফএকিউতে বলা হয়েছে যে রুবি পাইথনের চেয়ে জটিল। প্রোগ্রামিং গবেষকদের পরে দ্বিতীয় আসে, আমাদের মতো প্রথম নয়।


22
আমার মনে হয় ওও জিনিসটি কিছুটা লাল রঙের হারিং। কোনও গবেষক কীসের যত্ন নিয়েছেন যে অভিব্যক্তিটি বস্তুকে 1 + 1বার্তা পাঠায় কিনা ? এটি আপনার প্রোগ্রামের কাঠামোর সামান্যতম পরিবর্তন করে না। +1
sepp2k

1
@ সেপ্পেকে, আমার ধারণা স্পেনসর পরামর্শ দিচ্ছেন যে রুবির বিজ্ঞানীদের আলাদাভাবে প্রোগ্রাম করার প্রয়োজন হবে । আমি রুবি জানি না, কিন্তু আপনি ত ছিল রুবি একটি প্রোগ্রাম লিখতে, যেহেতু পাইথন পদ্ধতি পারবেন বস্তু তৈরি করার জন্য - এই মানসিক ওভারহেড যোগ হবে। অনেক বেশি নয়, তবে প্রোগ্রামারবিহীনদের কাছে দেওয়া হয়েছে, প্রতিটি বিট অতিরিক্ত কাজ অন্য ভাষা ব্যবহারের কারণ হতে পারে।
সাইক্লপস

7
@ সাইক্লপস আমি তার প্রস্তাবটি পেয়েছি। আমি বলছি এটা ভুল। পদ্ধতিগত ভাষা হিসাবে রুবি মাস্ক্রেড সম্পর্কে উদ্ধৃতিটির পুরো বক্তব্যটি হ'ল আপনার প্রোগ্রামটিকে কোনও অবজেক্ট ওরিয়েন্টেড পদ্ধতিতে কাঠামো করার দরকার নেই। যদি আপনি "2 + 2" এর মতো কিছু টাইপ করেন তবে আপনি দুটি পূর্ণসংখ্যার অবজেক্ট তৈরি করছেন এবং একটিতে একটি পদ্ধতি কল করছেন (অন্যটিকে একটি আর্গুমেন্ট হিসাবে পাস করছেন)। তবে এটি রুবিতে "2 + 2" টাইপ করতে পারে না অন্য ভাষায় "2 + 2" টাইপ করার চেয়ে আরও বেশি চেষ্টা করতে হবে।
sepp2k

5
আমি সেপ্পেকের সাথে আছি, আমি সেই যুক্তিটিও কিনছি না। জাভা-র মতো কিছু ভাষা আপনাকে ওও দৃষ্টিকোণকে বাধ্য করে - এটি রুবির সাথে নয়। আপনাকে রুবিতে খাঁটি প্রক্রিয়াজাতীয় বা কার্যকরী প্রোগ্রাম লিখতে বাধা দিচ্ছে কি?
মাইক বারানজাক

2
@ সাইক্লোপস যদিও রুবি প্রক্রিয়াজাতীয় হওয়ার ভান করতে পারে, তুচ্ছ-তুচ্ছ প্রসঙ্গে আপনি এমন পরিস্থিতিতে চলে যাবেন যেখানে ওও দৃষ্টান্তটি একটি নির্দিষ্ট উপায়ে ভাষাটিকে কাজ করে তোলে। যদি আপনি তা বুঝতে বা অবজ্ঞা না করেন, তবে হয় আপনি যা চান তা করতে অক্ষম হন বা আপনি একটি অগোছালো হ্যাক দিয়ে শেষ করেন।
স্পেন্সার রথবুন

14

বিডিএফএল (গাইডো ভ্যান রসম) যখন পাইথন প্রথম লিখেছিল তখন লক্ষ্য ছিল যে এটি সাধারণ কোডিং ত্রুটিগুলি দূর করতে পারে সরল ইংলিশ (DARPA তহবিল প্রস্তাব) এর মতোই বোধগম্য।

একটি সমস্যা যা সর্বাধিক দৃশ্যমান তা হ'ল ইনডেন্টের ব্যবহারের জন্য ব্লকগুলি সীমান্তে। যে ভাষাগুলিতে সুস্পষ্ট জটিল স্টেটমেন্ট ডিলিমিটার রয়েছে (যেমন সি ব্রেসেস, পাস্কেল বিগিন / এন্ড) সাদা অংশটি লেক্সারে কোড ফিড করার আগে একটি একক স্পেস অক্ষরে ভেঙে ফেলা হবে। কোডটি কীভাবে নির্ধারণ করা হয় তাতে এটি দুর্দান্ত পরিবর্তনের অনুমতি দেয়।

পেশাদার প্রোগ্রামারদের জন্য এটি কোনও সমস্যা নয় কারণ তারা অনুশীলনের সপ্তাহে 30 বা তার বেশি ঘন্টা থেকে এটি মোকাবেলা করার জন্য তাদের প্রশিক্ষণ দিয়েছিল।

অন্যান্য পেশাদারদের যেখানে প্রোগ্রামিং একটি সরঞ্জাম এটি এই সমস্যাটি একটি বড় সমস্যা হয়ে দাঁড়িয়েছে। এই গ্রুপে গণিতবিদ, পদার্থবিদ, রসায়নবিদ, প্রকৌশলী ইত্যাদি রয়েছে includes

পাইথন যেহেতু অ পেশাদার পেশাদারদের জন্য ত্রুটিগুলি হ্রাস করে এটি তাদের যে সমস্যাটি সমাধান করার চেষ্টা করছে সে সম্পর্কে ভাবতে সহায়তা করে এবং ভাষার মেকানিক্সকে ততটা মোকাবেলা করতে হবে না।

এটি প্রোগ্রামিং পেশার বাইরে কেন জনপ্রিয় তার একক উদাহরণ। অন্যান্য উদাহরণ রয়েছে যা ব্যাটারি অন্তর্ভুক্ত হিসাবে একই পয়েন্ট চিত্রিত করতে ব্যবহার করা যেতে পারে, দ্যা জেন অফ পাইথন ( import this), মন্টি পাইথন হিউমার ব্যবহার এবং আরও অনেক কিছু।


আমি গিডোর জীবনবৃত্তান্ত বা প্রকাশনা তালিকায় কোনও গবেষণামূলক বা ডক্টরাল প্রোগ্রামের কোনও রেফারেন্স পাই না । আপনি কি এটির জন্য একটি প্রশংসাপত্র আছে? এই সাক্ষাত্কারটি কেবল বলেছে যে তিনি সিডাব্লুআইয়ের একজন গবেষক ছিলেন।
এম ডুডলি

আমি এতে পুরোপুরি গোলযোগ পেয়েছিলাম: আমি পড়েছি যে তিনি লিখেছেন যে এটির উপর গবেষণামূলক প্রবন্ধ রয়েছে, তবে এ সম্পর্কে যথাযথ গবেষণা করেননি। আমি এই পোস্টটি লেখার পরে আমার ত্রুটি খুঁজে পেয়েছি, কিন্তু তারপরে এখানে কখনও সংশোধন করা হয়নি। ধন্যবাদ।
ল্যান্স হেলস্টন

5

এটি এখানে একটি দুর্দান্ত আলোচনা, আমি মনে করি যে এখানে পোস্টগুলি সত্যই উত্তর দিয়েছে কেন বৈজ্ঞানিক সম্প্রদায়টিতে পাইথন বেশি জনপ্রিয়। তবে রুবি বিজ্ঞানের জন্য কিছু পাল্টা যুক্তি রয়েছে:

  • অজগর (ডিএসএল ইত্যাদি) এর চেয়ে রুবি আরও স্বজ্ঞাতভাবে কোড করা যেতে পারে: সঠিক প্যাকেজগুলি ব্যবহৃত হয়েছে:

    Bioruby দেখুন: http://bioruby.org/ একটি সিকোয়েন্স রিজার্ভ সহজভাবে হতে পারে: s.revers ইত্যাদি যদি আপনি ডাটাবেস ব্যবহার করেন: রুবি ডাটাবেস বাইন্ডিং এপিআই অজগর থেকে তর্কযোগ্যভাবে ভাল better

  • রুবি ক্ষয় হওয়ার একই সময়ে উচ্চ স্তরের বিমূর্ততা মঞ্জুরি দেয়।

  • উন্নত প্যাকেজ পরিচালনা ব্যবস্থা: রুবি রত্নগুলি তুলনায় এত সহজ: সেটআপলগুলি, পাইপ ইত্যাদি

যাইহোক, রুবি এর গ্রহণযোগ্যতা ছিল / হয় / তার জটিলতায় বাধা হয়ে দাঁড়াবে। আমি ভাবছি লিস্প একটি দুর্দান্ত / শক্তিশালী ভাষা, তবে কেন এটি সাধারণ ভাষা হিসাবে গ্রহণ করা হয়নি? অনুরূপ পরিস্থিতি এখানে রুবীর সাথে রয়েছে - এটি লিসপ, ছোট আলাপ এবং পার্ল থেকে প্রচুর পাওয়ার উত্তরাধিকার সূত্রে পাওয়া যায়: তবে কেবলমাত্র একটি জনগণের সুবিধাগুলি পেতে এটি ব্যবহার করবে। শেষ পর্যন্ত, এটি নির্দিষ্ট কুলুঙ্গি / বিশেষ অঞ্চলে শক্তিশালী থাকতে পারে (যেমন ওয়েবে রেল, কনফিগারেশনের পুতুল), এটি 'অ-প্রোগ্রামারদের সম্পূর্ণরূপে উপভোগ করা কঠিন, তবে এটি প্রোগ্রামারের ভাল বন্ধু হতে পারে (কোনও কম্পিউটার দেখেছিলেন) বিজ্ঞানীরা ভাষাটি উপভোগ করেছেন: http://www.cleveralgorithms.com/nature-inspired/index.html )

সাম্প্রতিকতম কয়েকটি আপডেট: মনে হচ্ছে অজগরটি ইতিমধ্যে ল্যান্ডস্কেপটি নিয়েছে। সাম্প্রতিক বই যেমন: http://www.amazon.com/Python-Data-Analysis-Wes-McKinney/dp/1449319793 এবং আরও অনেক বই (ডেটা অ্যানালাইসিস, মেশিন লার্নিং ইত্যাদি) সমস্ত ভাষার ব্যবহার হিসাবে পাইথন দিয়ে লেখা হয়েছে । রুবি যদি ধরতে চায় তবে এর জন্য কিছু গুরুতর প্রচেষ্টা দরকার। অজগরটিতে ম্যাটপ্ল্লোটিব বিবেচনা করে, এটি এখন যেখানে রয়েছে সেখানে পৌঁছাতে সম্ভবত বেশ কয়েক বছর বয়সের বছর। রুবিতে যদি কিছু গুরুতর প্রচেষ্টা না চালানো হয় তবে এটি সম্ভবত পরবর্তী 2-3 বছরগুলিতে পাইথন ডেটা বিশ্লেষণ / বৈজ্ঞানিক গণনার পর্যায়টি ধরে রাখতে পারে না।


3

ডেথ অ্যানালাইসিসের জন্য অজগরটি কিছুক্ষণ ব্যবহার করার পরে (রুবি, লুয়া এবং আর এর সাথে কাজ করার অভিজ্ঞতা থেকে আসে), নম্পি প্যাকেজ (এবং অনেকগুলি সম্পর্কিত বৈজ্ঞানিক লাইব্রেরি) দ্রুত গণনা চালানো 'সম্ভব' করে তোলে (সি এর মতো গতি, অদ্ভুত হিসাবে) পাইথনে প্রোগ্রামিংয়ের স্বাচ্ছন্দ্যে সি কোডগুলির সাথে লিখিত / সংহত)।

নম্পি কিছু সময়ের জন্য অস্তিত্ব রেখেছে, এটির প্রাপ্যতা সম্পর্কিত অন্যান্য অনেকগুলি বৈজ্ঞানিক প্যাকেজ যেমন স্কিপি, পান্ডাস ... ইত্যাদি তৈরি করতে সহায়তা করেছিল সেখানে দুর্দান্ত সরঞ্জামগুলি পাইথনকে বৈজ্ঞানিক কম্পিউটিংয়ের জন্য একটি দুর্দান্ত বাস্তুতন্ত্র তৈরি করেছে, অন্যদিকে রুবিতে একই রকম দ্রুত ম্যাট্রিক্স তৈরি করা হয়েছে গণনা গ্রন্থাগারটি সবেমাত্র তৈরি করা হচ্ছে (এনএমট্রিক্স: https://github.com/SciRuby/nmatrix )। এই বিশাল সময়ের পার্থক্যটি পাইথনকে বৈজ্ঞানিক কম্পিউটিংয়ের সুস্পষ্ট পছন্দ করে তোলে।


5
"শেষ পর্যন্ত, অজগর সকলের ভাষার মতো", এটির ব্যাক আপ করার জন্য আপনার উত্স সরবরাহ করতে হবে।
ওয়াল্টার

2

আমি এই একই জিনিস ভাবছিলাম। পাইথনের প্রক্রিয়াগত দিকের কারণেই স্পেনসার রথবুন যেমন বলেছিলেন, আমি মনে করি এটি। নিজেই একজন "প্রোগ্রামারহীন" হওয়ায় রুবিতে আপনি যেভাবে কোডিং করতে পারবেন তা আমি খুব সুন্দর মনে করি এবং ব্যবহারের সুবিধার্থে রেল ফ্রেমওয়ার্কটি দুর্দান্ত। যাইহোক, বৈজ্ঞানিক উদ্দেশ্যে (গণিত, জীববিজ্ঞান, ইত্যাদি) কোডিং করার সময় আপনি সাধারণত একটি "গাণিতিক" ভাষায় ভাবেন, অর্থাত্, আপনি যেমন বিবৃতিগুলির যত্ন নেন না

Person.find_by_name 'Juanito'

তবে আপনি আরও যত্নশীল

A = B*C + D

সুতরাং আমি মনে করি রুবি শক্তিশালী যে এর অনেকগুলি বৈশিষ্ট্য একটি বৈজ্ঞানিক প্রোগ্রামে অব্যবহৃত হবে। পদ্ধতিগুলির মধ্যে কেবল চিন্তা করা সহজ।


0

নম্পি প্যাকেজ সহ পাইথনের এন-ডাইমেনশনাল অ্যারেগুলির জন্য আরও ভাল সমর্থন রয়েছে। আমি রুবির মতো কিছু দেখিনি।

পাইথনটি আমি সম্পাদিত সংখ্যাসূচক কম্পিউটিং / বৈজ্ঞানিক কম্পিউটিংয়ে দ্রুত বলে মনে হচ্ছে। পাইথন এবং রুবিতে যখন অনুরূপ অ্যালগরিদম লিখেছিলাম তখন ছাড়া আমার কাছে আর কোনও প্রমাণ নেই, পাইথন অ্যালগরিদমগুলি দ্রুত চলেছিল (ওয়াইএমএমভি)।


2
এটি সত্যই আলোচনায় তেমন অবদান রাখে না। নম্পির কার্যকারিতা ইতিমধ্যে স্বীকৃত উত্তরে আবৃত (আরও বিস্তারিতভাবে) । আপনার পারফরম্যান্স যুক্তি আপত্তিজনক থেকে যায়; আমি historicalতিহাসিক পারফরম্যান্স নিয়ে আলোচনা করার সময় উপাখ্যানগুলিতে নির্ভর করতে পছন্দ করি না, বিশেষত যখন এই জাতীয় কোনও যুক্তি ইতিমধ্যে বিশ্বাসযোগ্য (ভাল, প্রাসঙ্গিক মুক্ত উপাখ্যানের তুলনায় আরও বিশ্বাসযোগ্য) আচ্ছাদিত থাকে।
ব্রায়ান 21

@ ব্রায়ান, একমত
জোশ পেটিট

@ ব্রায়ান, আমার নির্দিষ্ট অবদান ছিল এন-ডাইমেনশনাল অ্যারে সম্পর্কিত মন্তব্য। হ্যাঁ, নম্পি চারপাশে কী তৈরি হয়েছে তার মূল এটি, তবে আমি এনডি অ্যারেগুলির কোনও উল্লেখ পাইনি। এটি লিনিয়ার বীজগণিতের মূল এবং মাতলাব এবং নম্পি কী করে। রুবি প্রোগ্রামারগুলির মতো অ্যারে ব্যবহার করে যেমন ইঞ্জিনিয়ার এবং বিজ্ঞানীরা অ্যারে ব্যবহার করেন না (যেমন ম্যাট্রিক্স) ar আপনি যদি মনে করেন এটি সাহায্য করবে, আমি গ্রহণযোগ্য উত্তরে এনডি অ্যারে সম্পর্কে একটি মন্তব্য যুক্ত করব।
জোশ পেটিট

@ ব্রায়ান এবং আমি এখনও আমার মন্তব্যে দাঁড়িয়ে আছি যে আমি বৈজ্ঞানিক কম্পিউটিংয়ের জন্য রুবির পক্ষে ভাল এনডি অ্যারে সমর্থন দেখিনি।
জোশ পেটিট

0

একটি কারণ হ'ল পাইথনের সি / সি ++ কোড ব্যবহার / সংহতকরণ / কল করার জন্য ভাল সমর্থন রয়েছে, তবে আমার জ্ঞানে রুবি একই ডিগ্রি (স্বাচ্ছন্দ্য) ইন্টিগ্রেশন সরবরাহ করে না। এর অর্থ হ'ল আপনি সি / সি ++ তে উচ্চ-পারফরম্যান্ট কোড উপাদানগুলি লিখতে পারেন এবং তারপরে পুরো জিনিসটি একসাথে আঠালো করার জন্য পাইথন (অর্থাত্ একটি উচ্চ-স্তরের / অন-অন-ল্যাঙ্গুয়েজ ভাষা) ব্যবহার করতে পারেন। আমি কল্পনা করি যে এটি গুগলের দ্বারা প্রাথমিকের প্রাতিষ্ঠানিক গ্রহণের অন্যতম কারণ।


0

আমি মনে করি ডেথ সায়েন্সের জন্য পাইথন এত জনপ্রিয় হয়ে উঠার অন্যতম প্রধান কারণ হ'ল সময় / প্রচেষ্টার (অর্থাত্ অর্থ) আমরা আমাদের স্ক্রিপ্টগুলিকে প্রকৃত সমাধানের জন্য প্রসারিত করতে পারি (যেমন, সফ্টওয়্যার সিস্টেম)। পাইথনের সাহায্যে আমরা ডেটা সায়েন্সের জন্য আমরা যে কোড লিখেছি তার উপর ভিত্তি করে আমরা আরও সহজেই সিস্টেম সলিউশন তৈরি করতে পারি।

আমার প্রায় 15 বছর আগে এই বৈশিষ্ট্যটির সাথে একটি দোভাষী ভাষার সন্ধানের অভিজ্ঞতা রয়েছে। সেই সময় পাইথনটিকে এক হিসাবে বেছে নেওয়া হয়েছিল, এটি তথ্য বিজ্ঞানের জন্য নিখুঁত ভাষা নয়, কারণ এটি একটি বিরল OOP ভাষা ছিল যা দ্রুত / বহনযোগ্য দোভাষী দিয়েছিল যা অন্যান্য ভাষার সাথে যেমন ইন্টারফেসের ক্ষেত্রেও সি / সি ++ / জাভা। আজকাল বিপরীতে, ইতিমধ্যে ডেটা বিজ্ঞানের জন্য প্রয়োগ করা বেস কোড থেকে সরাসরি বিল্ডিং সমাধানের জন্য সেগুলি দুর্দান্ত তবে বিরল বৈশিষ্ট্য ছিল।

ডেটা-সায়েন্স ল্যাঙ্গুয়েজ তৈরির জন্য সময়টি আরেকটি সমালোচনামূলক কারণ হতে পারে। 15 বছর আগে, আমরা পাইথনগুলিতে ইতিমধ্যে সংখ্যাসূচক গণনার জন্য সংখ্যাসূচক এবং স্কিপি জাতীয় প্রাথমিক প্যাকেজগুলি পেয়েছি, তবে আমরা প্রোগ্রামিংয়ের ভাষা হিসাবে রুবির অস্তিত্বও জানতাম না। 2018 সালের শেষের দিকে, আমি ডেবিটি সায়েন্সের জন্য রুবি ব্যবহার করে বেশ কয়েকটি প্রকল্প খুঁজে পেতে পারি। হতে পারে 10 বছর পরে, কেউ জিজ্ঞাসা করতে পারে কেন রুবি এআইয়ের জন্য এত জনপ্রিয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.