আমি এই প্রশ্নটি এমনভাবে ফ্রেম করার জন্য যথাসাধ্য চেষ্টা করতে যাচ্ছি যার ফলে কোনও ভাষা যুদ্ধ বা তালিকার ফলাফল না ঘটে, কারণ আমি মনে করি যে এই প্রশ্নের একটি ভাল, প্রযুক্তিগত উত্তর থাকতে পারে।
বিভিন্ন ভাষায় বিভিন্ন ডিগ্রীতে প্রকারের এলিয়াস সমর্থন করা হয়। সি # প্রতিটি কোড ফাইলের শুরুতে প্রকারের এলিয়াস ঘোষণার অনুমতি দেয় এবং সেগুলি কেবলমাত্র সেই ফাইল জুড়েই বৈধ। এমএল / হাস্কেলের মতো ভাষাগুলি টাইপ অ্যালিয়াসগুলি সম্ভবত টাইপের সংজ্ঞা ব্যবহার করে। সি / সি ++ হ'ল একটি ওয়াইল্ড ওয়েস্টের ধরণ, typedefএবং #defineপ্রায়শই উলামের ধরণের হিসাবে আপাতদৃষ্টিতে আন্তঃব্যবহারযোগ্য হিসাবে ব্যবহৃত হয়।
টাইপ এলিয়াসিং এর উত্সাহগুলি খুব বেশি বিতর্ক শুরু করে না:
- এটি মিশ্রিত প্রকারগুলি সংজ্ঞায়িত করা সুবিধাজনক করে তোলে যা ভাষার দ্বারা প্রাকৃতিকভাবে বর্ণিত হয়, যেমন
type Coordinate = float * floatবাtype String = [Char]। - লং নাম সংক্ষিপ্ত করা যেতে পারে:
using DSBA = System.Diagnostics.DebuggerStepBoundaryAttribute। - এমএল বা হাস্কেলের মতো ভাষায়, যেখানে ফাংশন প্যারামিটারগুলির প্রায়শই নাম থাকে না, টাইপ অ্যালিয়াসগুলি স্ব-ডকুমেন্টেশনের একটি চিহ্ন দেয় provide
নেতিবাচক দিকটি আরও কিছুটা নিখুঁত: উপাধিগুলি প্রসারিত করতে পারে, কোড পড়া এবং বুঝতে বা প্ল্যাটফর্ম শিখতে অসুবিধা তৈরি করে। উইন 32 এপিআই এর DWORD = intএবং এর HINSTANCE = HANDLE = void*এবং এর LPHANDLE = HANDLE FAR*এবং এর মতো একটি ভাল উদাহরণ । এই সমস্ত ক্ষেত্রে এটি খুব সহজেই একটি হ্যান্ডেল এবং একটি শূন্য পয়েন্টার বা ডিডাবর্ড এবং একটি পূর্ণসংখ্যার ইত্যাদির মধ্যে পার্থক্য করার কোনও ধারণা দেয় না ..
কোনও রাজা তাদের প্রজাদের সম্পূর্ণ স্বাধীনতা দান করুন এবং তাদের নিজের জন্য দায়বদ্ধ হতে হবে বা তাদের যে সমস্ত প্রশ্নবিদ্ধ পদক্ষেপে হস্তক্ষেপ করা উচিত ছিল সে বিষয়ে দার্শনিক বিতর্ককে সরিয়ে রেখে, এমন কোনও খুশির মাধ্যম থাকতে পারে যা টাইপ অ্যালাইজিংয়ের সুবিধার সুযোগ দেয়? এর অপব্যবহারের ঝুঁকি কমাতে?
উদাহরণস্বরূপ, দীর্ঘ নামের ইস্যু ভাল স্ব-পরিপূর্ণ বৈশিষ্ট্যগুলির দ্বারা সমাধান করা যেতে পারে। উদাহরণস্বরূপ ভিজ্যুয়াল স্টুডিও 2010 আপনাকে সিস্টেম.ডায়াগনস্টিকস.ডিজাগারস্টেপবাউন্ডারিঅ্যাট্রিবিউটের সাথে ইন্টেলিসেন্স উল্লেখ করতে ডিএসবিএ টাইপ করতে প্ররোচিত করবে। আরও কিছু বৈশিষ্ট্য থাকতে পারে যা আরও নিরাপদে এলিয়াসিংয়ের অন্যান্য সুবিধা প্রদান করবে?
DebuggerStepBoundaryAttributeঅনেক বেশি পঠনযোগ্য DSBA। প্রথম ক্ষেত্রে, আপনি জানেন যে এর অর্থ কি। দ্বিতীয়টিতে আপনার কোনও ধারণা নেই। এখন ভাবুন আপনি কোডটির মতো বিশটি আলাদা আলাদা এলিয়াস ব্যবহার করেন। কারও কি আপনার কোডটি পড়ার এবং বুঝতে চেষ্টা করার মতো যথেষ্ট সাহস হবে?