আয়রন পাইথন বনাম পাইথন। নেট


88

আমি পাইথন কোড থেকে সি # তে লিখিত কিছু .NET সমাবেশগুলি অ্যাক্সেস করতে চাই।

একটি সামান্য গবেষণা দেখিয়েছে যে আমার দুটি পছন্দ আছে:

  • .NET ইন্টারফেস ক্ষমতা / অন্তর্নির্মিত সমর্থন সহ আয়রন পাইথন
  • পাইথন পাইথন। নেট প্যাকেজ সহ

উভয় সমাধানের মধ্যে বাণিজ্য-অফগুলি কী কী?

উত্তর:


71

আপনি যদি মূলত .NET ফ্রেমওয়ার্কে আপনার কোডটি বেস করতে চান তবে আমি আইরন পাইথন বনাম পাইথন.নেটকে সুপারিশ করব। আয়রন পাইথন অনেকটা নেটিভ। নেট - তাই অন্যান্য। নেট ল্যাঙ্গোজের সাথে সংহত করার সময় এটি দুর্দান্ত কাজ করে।

পাইথন.এনইটি ভাল তবে আপনি। নেট থেকে এক বা দুটি উপাদান একটি মানক পাইথন অ্যাপ্লিকেশনটিতে সংহত করতে চান।

আয়রণ পাইথন ব্যবহার করার সময় উল্লেখযোগ্য পার্থক্য রয়েছে - তবে তাদের বেশিরভাগই মোটামুটি সূক্ষ্ম। পাইথন.নেট স্ট্যান্ডার্ড সিপিথন রানটাইম ব্যবহার করে, তাই এই উইকি পৃষ্ঠাটি দুটি বাস্তবায়নের মধ্যে পার্থক্য সম্পর্কিত একটি প্রাসঙ্গিক আলোচনা। ব্যতিক্রম ব্যয়ের ক্ষেত্রে সবচেয়ে বড় পার্থক্য দেখা দেয় - তাই কিছু স্ট্যান্ডার্ড পাইথন গ্রন্থাগার তাদের প্রয়োগের কারণে আয়রন পাইথনে তেমন পারফর্ম করে না।


11
আয়রন পাইথনের এখন "লাইটওয়েট" ব্যতিক্রম রয়েছে যা অনেক দ্রুত। পাইবেঞ্চের একটি ট্রাইরাইজেক্সট টেস্ট যা times০ বার ধীর গতিবেগ করেছে, এখন মাত্র ১.6 গুণ ধীর। উইথআরসেপসেপ্ট এখনও ধীর, তবে আগের চেয়ে 4 গুণ বেশি দ্রুত। অন্যান্য পরীক্ষার জন্য, আইপিআই আসলে দ্রুত হয়আয়রন পাইথন 2.7 বনাম সিপিথন 2.7 পারফরম্যান্স তুলনা ( মানদণ্ডের সম্পূর্ণ তালিকা )।
অথারি

29

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

পাইথন.নেট ডকুমেন্টেশন থেকে:

এম্বেডকারীদের জন্য গুরুত্বপূর্ণ দ্রষ্টব্য: পাইথন ফ্রি-থ্রেডেড নয় এবং একাধিক-থ্রেডযুক্ত অ্যাপ্লিকেশনকে পাইথন ইন্টারপ্রেটারের সাথে নিরাপদে ইন্টারঅ্যাক্ট করার অনুমতি দেওয়ার জন্য একটি গ্লোবাল ইন্টারপ্রেটার লক ব্যবহার করে। www.python.orgওয়েবসাইটে পাইথন সি এপিআই ডকুমেন্টেশনে এটি সম্পর্কে আরও অনেক তথ্য পাওয়া যায় ।

পরিচালিত অ্যাপ্লিকেশনটিতে পাইথন এম্বেড করার সময়, সিআই বা সি ++ অ্যাপ্লিকেশনটিতে পাইথন এম্বেড করার সময় আপনি ঠিক একইভাবে জিআইএল পরিচালনা করতে হবে।

Python.Runtimeনেমস্পেসের দ্বারা সরবরাহিত যেকোন অবজেক্ট বা API এর সাথে কথোপকথনের আগে, কলিং কোডটি PythonEngine.AcquireLockপদ্ধতিটি কল করে অবশ্যই পাইথন গ্লোবাল ইন্টারপ্রেটার লকটি অর্জন করতে হবে । এই নিয়মের একমাত্র ব্যতিক্রম PythonEngine.Initializeপদ্ধতি হ'ল জিআইএল অর্জন না করেই স্টার্টআপে ডাকা যেতে পারে।

পাইথন এপিআই ব্যবহার করা শেষ হলে, পরিচালিত কোড অবশ্যই PythonEngine.ReleaseLockজিআইএল প্রকাশের জন্য সংশ্লিষ্ট কল করতে হবে এবং অন্যান্য থ্রেডগুলিকে পাইথন ব্যবহার করার অনুমতি দেবে।

AcquireLockএবং ReleaseLock পদ্ধতি অপরিচালিত উপর পাতলা চাদরে হয় PyGILState_Ensureএবং PyGILState_Releaseপাইথন API থেকে ফাংশন, এবং যারা API গুলির জন্য ডকুমেন্টেশন পরিচালিত সংস্করণ ক্ষেত্রে প্রযোজ্য।

আর একটি বিষয় আইডিই সমর্থন। আয়রন পাইথনের তুলনায় সিপাইথনের সম্ভবত বর্তমানে আইডিই সমর্থন আরও ভাল - তাই এটি একে অপরের থেকে একটি বাছাইয়ের কারণ হতে পারে।


4
পাইডেভ ইক্লিপস প্লাগইন সিপিথন, আয়রনপাইথন এবং জাইথনকে সমর্থন করে।
নট এল্ডুয়েসট

4
@ কুনট: ঠিক, তবে আমি যখন এই উত্তরটি লিখেছিলাম তখন পরিস্থিতি এমন ছিল না।
বিনয় সাজিপ

18

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

এবং অবশেষে আয়রন পাইথন পাইথন 3 এখনও সম্পূর্ণ সমর্থন করে না।


9

আয়রন পাইথন হ'ল "। নেট-নেটিভ" - সুতরাং আপনি নিজের পাইথন কোডটি .NET- এর সাথে পুরোপুরি একীভূত করতে চান তবে এটি পছন্দনীয় হবে; পাইথন.এনইটি ক্লাসিক পাইথনের সাথে কাজ করে, সুতরাং এটি আপনাকে পাইথন কোডের "হাতের দৈর্ঘ্য" .NET যথাযথ থেকে দূরে রাখতে দেয়। (নোট করুন যে এই কোডটির সাহায্যে আপনি আপনার আয়রন পাইথন কোড থেকে সিপাইনের জন্য লিখিত এক্সটেনশনগুলি ব্যবহার করতে পারেন, সুতরাং এটি আর কোনও বৈষম্যমূলক অবস্থা নয়)।


6

আয়রন পাইথন মাইক্রোসফ্ট থেকে আসে, তাই আমি আমার অন্ত্রের সাথে যাব এবং এটি প্রথমে ব্যবহার করব যেহেতু আপনাকে ধরে নিতে হবে যে এটি অন্যান্য এমএসএফটি প্রযুক্তির সাথে আরও ভাল খেলবে।


আমি এটি সন্দেহ করি যেহেতু এটি vs20xx এর অংশ নয়
ব্যবহারকারী 3800527

4

২০১ for সালের হিসাবে।

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


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

একটি আকর্ষণীয় সমাধান, ধন্যবাদ। লাইসেন্স দেওয়ার ক্ষেত্রে, আইসিইর
এটোরিয়ান

3

আয়রন পাইথন, বর্তমানে পাইথন 3.6 সমর্থন করে না (কেবল 2.7)

আয়রন পাইথন 3 থেকে "বিল্ডস অফ আয়রন পাইথন 3 এখনও সরবরাহ করা হয়নি" "


তারা বর্তমানে ভি 3 তে কাজ করছে তবে খুব ধীরে: github.com/IronLanguages/ironpython3
লিম্পিংনিজা

1
  1. আয়রনপাইথন সি # এর মতো, পরিবর্তে এটি স্থির প্রাক-বিল্ট লাইব্রেরিতে নির্ভর করে যখন সি # এর থেকে ভিন্ন গতিশীল ভাষা।

  2. সিপাইথন সি -+ এর মতো, যেমন আয়রনপাইথন একটি গতিশীল ভাষা এবং ডায়নামিক লাইব্রেরিতে অ্যাক্সেস রয়েছে যা ফলশ্রুতিতে সবকিছু লিখতে বাধ্য করাতে অনুবাদ করে।

  3. আয়রনপাইথন নির্দিষ্ট জায়গাগুলিতে সি # এর চেয়ে দ্রুত তবে সিপিথনের চেয়ে দ্রুত নয়, তবে আপনি আয়রনপাইথনকে যে কোনও ভাষার সাথে এইভাবে আসার সমস্যাগুলির সাথে যুক্ত করতে পারেন তবে তারপরে আবার আপনি সিপিথনের সাথে একই কাজ করতে পারেন।

আপনি যা পছন্দ করেন না কেন একটি মজার, সহজ এবং শক্তিশালী ভাষা!


1

আয়রন পাইথন মূলত পাইথন ২.7 হ'ল সংহত। নেট সমর্থন এটি সম্ভবত কখনও পাইথন সমর্থন করবে না ৩. এটি সি এবং পাইথন লাইব্রেরিতে হারিয়ে যায়, তবে মোচড়ের দিকের .net এ অ্যাক্সেস রয়েছে এবং এটি সি # দিয়ে প্রসারিত হতে পারে। সুতরাং আপনি যদি ইতিমধ্যে সি # ব্যবহার করেন তবে আয়রণ পাইথন একটি বোনাস।


-1

আমি মূলত। নেট এর জন্য পাইথনকে পছন্দ করি, কারণ আয়রনপাইথন পরিচালিত কোড হিসাবে সংকলিত হয়, যা সহজেই দ্রবীভূত করা যায় (যা আমি সবচেয়ে ঘৃণা করি) তবে পাইপেক্স বা পাইনস্টলারের সাহায্যে পাইথেক্স বা পাইনস্টলারের সাহায্যে আপনি পাইথনকে একটি অনিয়ন্ত্রিত অ্যাপ্লিকেশন হিসাবে সংকলন করতে পারেন।

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