পাইপাইকে স্ট্যান্ডার্ড পাইথনের অন্তর্ভুক্ত করা হয়নি কেন?


165

আমি পাইপাইয়ের দিকে তাকিয়ে ছিলাম এবং আমি কেবল ভাবছিলাম যে কেন এটি পাইথন বিতরণে মূলধারায় কেন গৃহীত হয়নি। জেআইটি সংকলন এবং লোয়ার মেমোরির পদচিহ্নের মতো জিনিসগুলি কি সমস্ত পাইথন কোডের গতি বাড়িয়ে তুলবে না?

সংক্ষেপে, পাইপাইয়ের মূল ত্রুটিগুলি কোনটি যা এটিকে পৃথক প্রকল্প হিসাবে রাখে?


4
এছাড়াও, পাইপির কাছে নাম্পের জন্য কোনও সমর্থন নেই, এখনও। morepypy.blogspot.ch/2012/09/numpy-on-pypy-status-update.html
rthiago

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

3
আমি মনে করি এই উত্তরগুলি এবং মন্তব্যগুলি পুরানো
মার্লন অ্যাবাইকুন

উত্তর:


249

পাইপাই সিপিথনের কাঁটাচামচ নয়, তাই এটি কখনই সরাসরি সিপিথনে একীভূত হতে পারে না।

তাত্ত্বিকভাবে পাইথন সম্প্রদায় সর্বজনীনভাবে পাইপাই গ্রহণ করতে পারে, পিপাইকে রেফারেন্স বাস্তবায়ন করতে পারে এবং সিপিথন বন্ধ করে দেওয়া যেতে পারে। তবে পিপাইয়ের নিজস্ব দুর্বলতা রয়েছে:

  • সিপিথন সিটিতে লিখিত পাইথন মডিউলগুলির সাথে একীভূত করা সহজ, যা গতানুগতিকভাবে পাইথন অ্যাপ্লিকেশনগুলি সিপিইউ-নিবিড় কাজগুলি পরিচালনা করেছে (উদাহরণস্বরূপ সায়পাই প্রকল্প দেখুন)।
  • পিপিওয়াই জেআইটি সংকলন ধাপে নিজেই সিপিইউ সময় ব্যয় করে - এটি কেবল সংকলিত কোডটি পুনরাবৃত্তি করার মাধ্যমে এটি সামগ্রিকভাবে দ্রুত হয়ে ওঠে। এর অর্থ স্টার্টআপের সময় বেশি হতে পারে এবং অতএব পিপিপি আঠালো কোড বা তুচ্ছ স্ক্রিপ্টগুলি চালানোর জন্য প্রয়োজনীয় দক্ষ নয়।
  • পাইপাই এবং সিপথন আচরণ সব ক্ষেত্রেই অভিন্ন নয়, বিশেষত যখন এটি "বাস্তবায়নের বিবরণ" আসে (এমন আচরণ যা ভাষার দ্বারা নির্দিষ্ট নয় তবে ব্যবহারিক স্তরে এখনও গুরুত্বপূর্ণ)।
  • সিপিথন পাইপাইয়ের চেয়ে বেশি আর্কিটেকচারে চলে এবং এমপিডেড আর্কিটেকচারে পায়পি-র জন্য অযৌক্তিক হতে পারে এমনভাবে সাফল্যের সাথে মানিয়ে নেওয়া হয়েছে।
  • মেমোরি ম্যানেজমেন্টের জন্য সিপিথনের রেফারেন্স গণনা স্কিমটি পিপিপির বিভিন্ন জিসি সিস্টেমের তুলনায় আরও পূর্বাভাসযোগ্য পারফরম্যান্সের প্রভাব রয়েছে, যদিও এটি সমস্ত "খাঁটি জিসি" কৌশলগুলির ক্ষেত্রে অগত্যা সত্য নয়।
  • পাইপই পাইথন ৩.x পুরোপুরি সমর্থন করে না, যদিও এটি একটি সক্রিয় কাজের আইটেম।

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

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

পাইপাই এবং সিপিথনের মৌলিক নকশা প্রশ্নগুলির ক্ষেত্রে মূলত পৃথক পদ্ধতি রয়েছে এবং বিভিন্ন ট্রেডঅফ তৈরি করা হয়, তাই প্রতিটি ক্ষেত্রেই একটিরও "অপেক্ষাকৃত ভাল" নয়।


4
এটি সত্য নয় যে পাইপি স্ক্রিপ্টগুলি চালনার জন্য অনুপযুক্ত। এটির প্রারম্ভকালীন সময়টি সিপিথনের মতোই অনেক একই এবং এর ব্যাখ্যার গতিও সমান।
লুসিয়ান

6
এটি লক্ষণীয় যে পাইপাই এখন একটি ইনক্রিমেন্টাল জিসি নিয়ে আসে এবং ফলস্বরূপ গেমসের জন্য এটি সম্ভবত আরও উপযুক্ত।
porgarmingduod

63

একটির জন্য, এটি পাইথন ২.x এর সাথে ১০০% সামঞ্জস্যপূর্ণ নয় এবং কেবলমাত্র 3.x এর প্রাথমিক সমর্থন রয়েছে।

এটি একত্রীকরণের মতো কিছুও নয় - পাইপাই দ্বারা সরবরাহ করা পাইথন বাস্তবায়ন তারা তৈরি একটি ফ্রেমওয়ার্ক ব্যবহার করে তৈরি করা হয়েছে যা অত্যন্ত দুর্দান্ত, তবে বিদ্যমান সিপিথন বাস্তবায়নের সাথে সম্পূর্ণ আলাদা নয়। এটি একটি সম্পূর্ণ প্রতিস্থাপন হতে হবে।

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

এটিও লক্ষণীয় যে পাইপি সর্বজনীনভাবে দ্রুত নয়।


54

গুডো ভ্যান রসমের এই ভিডিওটি দেখুন । আপনি 12 মিনিট 33 সেকেন্ডে জিজ্ঞাসা করেছেন একই প্রশ্ন সম্পর্কে তিনি কথা বলেন।

হাইলাইটস:

  • পাইথন 3 সামঞ্জস্যতার অভাব
  • এক্সটেনশন সমর্থন অভাব
  • আঠালো কোড হিসাবে উপযুক্ত নয়
  • গতি সবকিছু হয় না

সর্বোপরি, তিনিই সিদ্ধান্ত নেবেন ...


3
ভিডিওর প্রাসঙ্গিক অংশের সাথে সরাসরি লিঙ্কের সাথে লিঙ্কের জন্য +1! এছাড়াও হাস্যকরভাবে সত্যবাদী গিডো ভ্যান রসম অনানুষ্ঠানিক জরিপের জন্য +1 "কত মানুষ পিপাই উত্পাদনে ব্যবহার করছে? ... কোন হাত? কাশি ভাল না, আমার ধারণা এখনও আশা আছে [সিপিসনের জন্য]"।
ট্রেভর বয়ড স্মিথ

15

একটি কারণ হতে পারে পাইপি সাইট অনুসারে , এটি বর্তমানে কেবল 32- এবং 64-বিট ইন্টেল x86 আর্কিটেকচারে চালিত হয়, অন্যদিকে সিপিথন অন্যান্য প্ল্যাটফর্মেও চালায়। এটি সম্ভবত পাইপাইতে প্ল্যাটফর্ম-নির্দিষ্ট গতির বর্ধনের কারণে is যদিও গতি একটি ভাল জিনিস, লোকেরা প্রায়শই ভাষা প্রয়োগগুলি যতটা সম্ভব "প্ল্যাটফর্ম-স্বতন্ত্র" হতে চায়।


6
মনে রাখবেন যে একটি এআরএম ব্যাকএন্ড "প্রায় সেখানে" এবং একটি পাওয়ারপিসি ব্যাকএন্ড ডাব্লুআইপি। এছাড়াও লক্ষ করুন যে এটি কেবল জেআইটি সংকলককে বোঝায় এবং জেআইটিকে একটি নতুন আর্কিটেকচারে পোর্ট করার জন্য তুলনামূলকভাবে সহজ এবং নিম্ন-স্তরের আইআরের জন্য একটি কোড জেনারেটর বাস্তবায়ন করা দরকার, আরও কিছু নয়।

1
2018 সালের হিসাবে, পাইপি এখন আরও আর্কিটেকচার x86 (লিনাক্স, উইন্ডোজ, ম্যাকোস এবং বিএসডিগুলিতে 32/64 বিট) চালায়, তবে লিনাক্সে, নতুন এআরএম হার্ডওয়্যার (এআরএমভি 6 বা এআরএমভি 7, ভিএফপিভি 3 সহ), বড়- এবং ছোট-এন্ডিয়ান পিপিসি 64 এবং s390x এর রূপগুলি।
ফ্রেডেরিক গ্রোহানস


6

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

অন্যদিকে, আমরা সিপিথনে কেবল একটি বাগ খুঁজে পেয়েছি এবং এটি ছিল পূর্বনির্ধারিত।

এছাড়াও, পাইথন 3 সাপোর্টের অভাবটিকে ডিসকাউন্ট করবেন না। পাইথন মূল সম্প্রদায়ের কেউই পাইথন 2 সম্পর্কে আর চিন্তা করে না। তারা পাইথন ৩.৪-এ পরবর্তী বড় কাজগুলিতে কাজ করছে যা পাইথন ৩-এর পঞ্চম প্রধান মুক্তি হবে The পিপিপি ছেলেরা এখনও তাদের একটি পায় নি। সুতরাং তারা প্রার্থী হতে শুরু করার আগে তাদের কিছুটা পেতে পেরেছিল।

আমাকে ভুল করবেন না পাইপাই দুর্দান্ত। তবে এটি এখনও অনেক গুরুত্বপূর্ণ উপায়ে সিপিথনের চেয়ে ভাল হওয়া থেকে অনেক দূরে।

এবং যাইহোক, আপনি যদি পাইপাইতে সিমপি ব্যবহার করেন তবে আপনি কোনও ছোট মেমরির পদচিহ্ন (বা কোনও স্পিডআপ) দেখতে পাবেন না। Https://bitbucket.org/pypy/pypy/issues/1447/ দেখুন ।


2
2018 এর হিসাবে, আমি নিশ্চিত করতে পারেন যে, আমি বিভিন্ন sympy ব্যবহারসমূহ মধ্যে মাত্রার মোটামুটিভাবে একটি আদেশ speedups দেখেছি
ফ্রেডেরিক Grosshans

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