উইনআরটি কেন নিয়ন্ত্রণহীন? [বন্ধ]


164

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


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

9
আমি বাস্তব বিষয় হিসাবে ভোট দিয়েছি যেহেতু এটি ব্যবহারিক প্রোগ্রামিংয়ের কোনও প্রশ্নের সমাধান করে না। এটি কেবল কৌতূহল। এই প্রোগ্রামের ফলে কোনও প্রোগ্রামার তাদের কোড পরিবর্তন করতে যাচ্ছে না।
রেমন্ড চেন

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

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

7
আমি @ হ্যান্সপাস্যান্টের সাথে সম্মত; এই প্রশ্নটি আবার খোলার এবং বৈধ হিসাবে বিবেচনা করা দরকার। "কেন এটি পরিচালনা করা হচ্ছে না?" উইনআরটি মৌলিক বিষয়গুলির জন্য একটি খুব ভাল প্রশ্ন।
রব পারকিনস

উত্তর:


190

WinRT একটি হল প্রতিস্থাপন বয়স বয়সী সি-ভিত্তিক Winapi জন্য। এটি একটি এপিআই যা অবশ্যই অনেক রানটাইম পরিবেশে ব্যবহারযোগ্য। 20 বছর আগে, একটি সি এপিআই আন্তঃসম্পর্কীয়ভাবে সহজেই প্রবেশ করানো সহজ হয়েছিল। ১৯৯০ এর দশকের শেষার্ধে সিওএম সর্বজনীন আঠালো হয়ে উঠেছে since কার্যত উইন্ডোজের সাধারণ ব্যবহারে যে কোনও ভাষা রানটাইম সিওএম সমর্থন করে।

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

এই মুহুর্তে, উইনআরটি-র জন্য সেরা বাঁধাই হ'ল সি ++ হ'ল স্পষ্টত মেমরি পরিচালনার সাথে সিওএম আরও দক্ষতার সাথে কাজ করে। নতুন সি ++ সংকলক এক্সটেনশানগুলি যা এটি স্বয়ংক্রিয় করে তোলে থেকে যথেষ্ট সহায়তার সাথে এটি এড়ানোর জন্য সি ++ / সিএলআই-এর মতো সিনট্যাক্সের সাথে _com_ptr_t পুরানো of পরিচালিত ভাষার সাথে বাঁধাই তুলনামূলক সহজ কারণ সিএলআর ইতিমধ্যে দুর্দান্ত সিওএম ইন্টারপ সমর্থন রয়েছে। উইনআরটি .NET এর মেটাডেটা ফর্ম্যাটটিও গ্রহণ করেছে। আফাইক, পরিচালিত সংকলকগুলিতে আজ পর্যন্ত কোনও কাজ করা হয়নি।

সম্পাদনা: মাইক্রোসফ্টের একজন প্রখ্যাত প্রোগ্রামার এবং ব্লগার ল্যারি অস্টারম্যান এখন মুছে ফেলা উত্তরে একটি ভাল মন্তব্য রেখে গেছেন। এটি সংরক্ষণের জন্য আমি এখানে এটি উদ্ধৃত করব:

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


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

5
নিশ্চিত নয়, আপনি হাতিটিকে উপেক্ষা করছেন। IInspectable আইডিআইপ্যাচের একটি প্রতিস্থাপন যা ১৯৯ 1997 সালে আটকে গিয়েছিল stuck আপনি মাইক্রোসফ্টের পক্ষে কাজ করেন, কিছু গোপনীয়তা এখানে নির্দ্বিধায় দিতে পারেন :)
হ্যানস প্যাস্যান্ট

13
ভাষা অনুমানগুলি সমর্থন করার জন্য সমস্ত 3 টি ভাষায় কাজ করা হয়েছিল।
রিইনস্টেটমোনিকা ল্যারি অস্টারম্যান

13
আমি এখনই দাবি করব 'উইনআরটি-র জন্য সেরা বাঁধাই' আসলে সি #। সিএলআর বাইন্ডিংটি চমত্কার দ্রুত সিওএম ইন্টারপ ছাড়িয়েও অপ্টিমাইজ করা হয়েছে, এবং দেব প্রিভিউতে। নেট ভাষা ইতিমধ্যে 'প্রতীক্ষা' দিয়ে সর্বব্যাপী অ্যাসিঙ্ক ফাংশনগুলির জন্য দুর্দান্ত সমর্থন বাস্তবায়ন করে। কয়েকটি ডেমোতে সি # কোড সি ++ নমুনাগুলির চেয়ে অনেক বেশি কাজ করেছে এবং আরও সহজে কাজ করেছে। সম্ভবত পরে সি ++ একটি অ্যাসিঙ্ক সহায়তা এক্সটেনশন পাবে, তবে এই সংস্করণে সি ++ অ্যাসিঙ্কটি ভয়ানক দেখায়। এবং আপনার চক্র-সমস্যাযুক্ত সি ++ বাস্তবায়নের চেয়ে সিএলআর সংগ্রহকারী আবর্জনা থেকে দীর্ঘমেয়াদী মেমরি ফাঁস হওয়ার সম্ভাবনা কম। সি # এফটিডব্লিউ!
Govert

13
@ હંস: তৃতীয় প্রজেক্টটি সমস্ত সিএলআর ভাষার (মূলত সি # এবং ভিবি) সিএলআর। এছাড়াও উইনজেএস কোনও প্রক্ষেপণ নয়, এটি সমর্থন লাইব্রেরির একটি সেট। প্রজেকশনটি সরাসরি চক্র জেএস ইঞ্জিনে নির্মিত।
ইনস্টল করুনমনিকা ল্যারি অস্টারম্যান

25

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

এর অর্থ হ'ল সি ++ বিকাশকারীরা সি ++ / সিএলআই যে হুপগুলিতে প্রবর্তন না করে WinRT ব্যবহার করতে পারেন (দেখুন http://www2.research.att.com/~bs/bs_faq.html#CppCLI ) এর অর্থ এই নয় যে আপনি এখনও আপনি উইনআরটি ব্যবহার করতে চাইলে COM অধ্যয়ন করতে হবে।

আসল প্রশ্নটি হচ্ছে 'কেন সিওএম দরকার? মাইক্রোসফ্ট কেন এটি আবিষ্কার করতে হয়েছিল? ' কারণ সিওএমের সমস্ত যুক্ত সুবিধা ছাড়াই সরল সি ++ আসল ওওপি কাজের জন্য অপ্রতুল এবং স্ট্রাস্ট্রাপের সি ++ আপনাকে 'পোর্টাবিলিটি' দেওয়ার দাবী কার্যকারী বাস্তবতার আলোকে খুব স্পষ্টতই আলাদা। Http://webmechs.com/webpress/2011/11/c-versus-objective-c-as-api-substrate/ দেখুন


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