আমার অবশ্যই স্বীকার করতে হবে যে আমি এখনও সিউডো-সি 89 কোড লিখি (পুরোপুরি সি 99-কমপ্লায়েন্ট নয়) মূলত মাইক্রোসফ্টের কারণে। আমি উইন্ডোজ পক্ষের জন্য এমএসভিসির উপর প্রচণ্ডভাবে ঝুঁকছি এবং তারা এখনও পুরোপুরি সি 99+-এর সাথে অনুগত নয়, পরিবর্তে তাদের ফোকাসের সিংহভাগ C ++ 17 এবং তারপরে রেখে pla
তারপরে আমি সি এসডিকে নিয়ে কাজ করছি যার বিপক্ষে প্রচুর প্লাগইন বিকাশকারীরা তাদের প্লাগইন বিকাশের জন্য এমএসভিসি ব্যবহার করেন এবং কিছু এখনও এমএসভিসি 2010. সুতরাং এখনও জনপ্রিয় সংকলকগুলি প্ল্যাটফর্মগুলিতে এতটা বহিরাগত নয় বলে ব্যাপকভাবে ব্যবহৃত হচ্ছে (যদি আপনি বিবেচনা না করেন) উইন্ডোজ এক্সোটিক) যা এখনও পুরোপুরি C99 প্রয়োগ করে না। আপনি যখন কম্পাইলারদের বৃহত্তম পরিসরের সাথে বিস্তৃত সামঞ্জস্যতা লক্ষ্য করেন (যা এসডিকে সিতে লেখা হয় এবং সি ++ তে লেখা হয় না তার অন্যতম প্রধান কারণ) এখনও তাদের বেশিরভাগই ব্যাপকভাবে ব্যবহৃত হচ্ছে (কমপক্ষে এমএসভিসি) যা পিছনে রয়েছে যখন সি সমর্থন আসে। সি 99 এর পরে প্রায় কয়েক দশক হয়ে গেছে এবং এখনও আমাদের এমএসভিসি আফাইক (ভিএসএল) তে ভিএলএ নেই, (এমএসভিসি 2017 তে এখনও পরীক্ষা করা হয়নি তবে সি সম্পর্কে মাইক্রোসফ্টের অবস্থান দেওয়া হয়েছে, আমি সন্দেহ করি এটি সি 99 এর সাথে অনেক বেশি সম্মতিযুক্ত) ।
এবং তাই দুর্ভাগ্যক্রমে এখনও নতুন সংকলক রয়েছে যা ভাল অপ্টিমাইজার এবং ডিবাগারগুলির সাথে এখনও বেশ ভাল যা এখনও সম্পূর্ণরূপে C99- অনুগত নয়। অবশ্যই যদি এটি না হয়, আমি পুরো সি 11 জুড়ে লাফিয়ে যাব।
প্লাগইন এবং এমএসভিসির সাথে উত্সের সামঞ্জস্যতা ছাড়াও অন্যান্য ভাষার সাথে ইন্টারপও রয়েছে। কিছু অন্যান্য ভাষা এসডিকে একটি এফএফআই এর মাধ্যমে ব্যবহার করে এবং সেই সাথে এফএফআইগুলির মধ্যে কয়েকটি কেবল সি 89 বোঝে। ডিলিব থেকে ফাংশন আমদানি করার সময় তারা বুঝতে bool
বা _Bool
সহজ উদাহরণ হিসাবে বুঝতে পারে না , কেবল বলে, বলুন int
।
হ্যাঁ, পক্ষে যুক্তিটি বহনযোগ্যতা তবে প্রশ্নটি যদি এমন হয় যে বাস্তবে অ-হাইপোথিটিক্যাল সিস্টেমগুলি রয়েছে যা কেবলমাত্র C89 সংকলক ব্যবহার করতে পারে তবে সফ্টওয়্যারটির নতুন বিতরণ সংকলন করছে। উদাহরণস্বরূপ, যদি আমি একটি নতুন সি প্রকল্প শুরু করতাম, তবে সি 89 কে মেনে চললে সম্ভাব্য ব্যবহারকারীর সংখ্যা বাড়তে পারে কিনা তা আমি কীভাবে সিদ্ধান্ত নেব?
কেবল Blrfl
এটিই কিন্তু একধরণের প্রতিধ্বনি লক্ষ্য করেছেন , আমার ক্ষেত্রে সি 99 এবং সি 11 ব্যবহার করে উত্পাদনশীলতা লাভ এতটা বিশাল নয় তবে লোকদের এমএসভিসিতে তাদের প্লাগইনগুলি লেখার সুযোগ দেওয়ার ক্ষমতা হারাতে পারলে একটি বিশাল ব্যয় হতে পারে (বিশেষত যে পণ্যটি আমি কাজ করি সেহেতু) উইন্ডোজের পক্ষে এখন পর্যন্ত সর্বাধিক বাজারে শেয়ার রয়েছে এবং গড় ব্যবহারকারী প্রায়শই অনেক তৃতীয় পক্ষের প্লাগইন কিনে এবং ডাউনলোড করে)। আমি যে ধরণের প্রোডাক্টে কাজ করি তা প্রোগ্রামার / স্ক্রিপ্টারের বিকাশের পরিবেশ এবং শিল্পীদের জন্য একটি ব্যবহারকারী প্রান্তের মধ্যে প্রায় অর্ধেক পথ হয়, যেহেতু অনেক লোক নতুন দক্ষতার সুযোগ দিতে এবং এর বিশেষ প্রভাব অর্জনের জন্য এটির উপরে নতুন জিনিস বিকাশ করতে চায় দয়ালু লোকেরা এখনও দেখেনি। সুতরাং আমার ক্ষেত্রে এটি কমপক্ষে এসডিকে পক্ষে সি 89 এর পক্ষে নেওয়ার পক্ষে বেশ সহজ সিদ্ধান্ত ছিল।
আমি মনে করি আপনি আপনার চারপাশের সংকলকগুলিকে একরকম দেখতে হবে এবং আপনার লক্ষ্য জনসংখ্যাতাত্ত্বিক খুঁজে বের করার চেষ্টা করবেন। আপনি যদি উইন্ডোজের জন্য একটি প্লাগইন আর্কিটেকচার বিকাশ করছেন না বা কোনও এমবেডেড প্রোগ্রামিং করছেন না বা এমন কোনও সফ্টওয়্যার ডেভলপমেন্ট কিট তৈরি করতে চাইছেন যা সংকলক এবং ভাষার বিস্তৃত পরিসীমা দ্বারা ব্যবহার করা যেতে পারে, তবে এটি অবশ্যই C99 + ডানদিকে পৌঁছানো সহজতর করে তোলে দূরে। এছাড়াও আপনি বিবেচনা করুন কতটা উত্পাদনশীলতা বাড়িয়ে আপনি ফর্ম সি 99 এর পরে পাবেন। ভিএলএএস-এর মতো জিনিসগুলি থেকে আমি খুব বেশি সুবিধা পাচ্ছি না যেহেতু ডেটা ফিট হয়ে যায় এবং অন্যথায় হিপ থাকে তখন আমি স্ট্যাকটি ব্যবহারের সহজ পর্যায়ে সহজ উপায়গুলির উপর নির্ভর করি।
তবে এমএসভিসি এর মতো জনপ্রিয় সংকলক থেকে অন্যান্য ভাষায় এফএফআই এর পিছনে পিছনে পিছনে থাকা অনেকগুলি জিনিস রয়েছে যা এই অর্থে যে তারা ডায়ালিব থেকে সরাসরি সি ফাংশনগুলি আমদানি করতে এবং কল করতে পারে তবে এই ক্ষেত্রে কিছুটা পিছনে থাকতে পারে বার। সুতরাং আপনার ডোমেনের উপর নির্ভর করে কোনও প্রকার নান্দনিকতার জন্য কেবল পুরানো ও মানিকের পক্ষপাতী হওয়ার চেয়ে অনেক বেশি ব্যবহারিক ব্যবসায়ের বিষয় রয়েছে।