এই উত্তরগুলির মধ্যে অনেকগুলি সি কেন, বা দ্রুত নয় (সাধারণভাবে বা নির্দিষ্ট পরিস্থিতিতে) এর বৈধ কারণ দেয়। এটি অনস্বীকার্য যে:
- অন্যান্য অনেকগুলি ভাষা স্বয়ংক্রিয় বৈশিষ্ট্য সরবরাহ করে যা আমরা মঞ্জুর করি। বাউন্ড চেকিং, রান-টাইম টাইপ চেকিং এবং স্বয়ংক্রিয় মেমরি পরিচালনা, উদাহরণস্বরূপ, নিখরচায় আসবেন না। এই বৈশিষ্ট্যগুলির সাথে কমপক্ষে কিছু ব্যয় যুক্ত রয়েছে, যা আমরা এই বৈশিষ্ট্যগুলি ব্যবহার করে কোড লেখার সময় — বা এমনকি উপলব্ধি করতে পারি না।
- উত্স থেকে মেশিনের ধাপটি প্রায়শই অন্যান্য ভাষায় যেমন সরাসরি থাকে তেমন সরাসরি হয় না C.
- ওটিওএইচ, এটি বলতে যে সংকলিত সি কোডটি অন্য ভাষায় লিখিত অন্যান্য কোডের চেয়ে দ্রুত কার্যকর হয় তা একটি সাধারণীকরণ যা সর্বদা সত্য নয়। কাউন্টার-উদাহরণগুলি খুঁজে পাওয়া সহজ (বা চালিত করা)।
এই সব সত্ত্বেও, আমি আরও কিছু লক্ষ্য করেছি যে, আমি মনে করি, সি বনামের তুলনামূলক কার্য সম্পাদনকে প্রভাবিত করে অন্য কোনও কারণের চেয়ে আরও অনেকগুলি ভাষায়। বুদ্ধিমান:
অন্যান্য ভাষাগুলি প্রায়শই কোড লিখতে সহজ করে যা আরও ধীরে ধীরে কার্যকর করে। প্রায়শই, এটি ভাষার নকশার দর্শনগুলি দ্বারা উত্সাহিত হয়। প্রতিচ্ছবি: একটি সি প্রোগ্রামার কোড লেখার সম্ভাবনা বেশি যা অপ্রয়োজনীয় ক্রিয়াকলাপ না করে।
উদাহরণ হিসাবে, একটি সাধারণ উইন্ডোজ প্রোগ্রাম বিবেচনা করুন যেখানে একটি একক প্রধান উইন্ডো তৈরি করা হয়। এসি সংস্করণটি পপুলেশন করবেWNDCLASS[EX]
কাঠামো তৈরি করবে যেটি এখানে পাঠানো হবে RegisterClass[Ex]
, তারপরে কল করে CreateWindow[Ex]
একটি বার্তা লুপ প্রবেশ করবে। অত্যন্ত সরলীকৃত এবং সংক্ষিপ্ত কোডগুলি নিম্নলিখিত:
WNDCLASS wc;
MSG msg;
wc.style = 0;
wc.lpfnWndProc = &WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWndCls";
RegisterClass(&wc);
CreateWindow("MainWndCls", "", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
while(GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
সি # তে একটি সমমানের প্রোগ্রাম কোডের এক লাইন হতে পারে:
Application.Run(new Form());
কোডের এই এক লাইনটি প্রায় 20 টি লাইন সি কোড করেছে এমন সমস্ত কার্যকারিতা সরবরাহ করে এবং ত্রুটি যাচাইয়ের মতো কিছু জিনিস আমাদের ছেড়ে যায় adds সমৃদ্ধ, পূর্ণাঙ্গ গ্রন্থাগার (একটি সাধারণ সি প্রকল্পে ব্যবহৃত তুলনায়) আমাদের জন্য প্রচুর কাজ করেছিল, আমাদের সময়কে মুক্ত করে আমাদের কোডকে আরও ছোট ছোট স্নিপেট লিখতে দেয় যা আমাদের চেয়ে ছোট দেখায় তবে পর্দার পিছনে অনেক পদক্ষেপ জড়িত।
তবে একটি সমৃদ্ধ গ্রন্থাগার সহজ এবং দ্রুত কোড ব্লোট সক্ষম করে তোলা আমার বক্তব্য নয়। আমার কথাটি আরও স্পষ্ট হয় যখন আপনি যখন আমাদের ছোট ওয়ান-লাইনার বাস্তবায়িত করেন তখন আসলে কী ঘটে তা পরীক্ষা করা শুরু করেন। মজা করার জন্য, ভিজ্যুয়াল স্টুডিও ২০০৮ বা তারও বেশি .NET উত্স অ্যাক্সেস সক্ষম করুন এবং উপরের সরল এক-লাইনফে প্রবেশ করুন। আপনি যে মজাদার ছোট্ট রত্নগুলি দেখতে পাবেন তার মধ্যে একটি হ'ল এটির জন্য এই মন্তব্যটি Control.CreateParams
:
// In a typical control this is accessed ten times to create and show a control.
// It is a net memory savings, then, to maintain a copy on control.
//
if (createParams == null) {
createParams = new CreateParams();
}
দশবার । তথ্য মোটামুটিভাবে কি একটি সংরক্ষিত রয়েছে এর সমষ্টি সমতুল্য WNDCLASSEX
গঠন এবং কি প্রেরণ করেছে CreateWindowEx
থেকে প্রাপ্ত করা হয় Control
বর্গ দশ বার সামনে এটি একটি সংরক্ষিত রয়েছে WNDCLASSEX
ওপর গঠন এবং পাস RegisterClassEx
এবংCreateWindowEx
।
সর্বোপরি, এই অতি প্রাথমিক কাজটি সম্পাদনের জন্য নির্ধারিত নির্দেশাবলীর সংখ্যা সি এর চেয়ে সি # তে মাত্রার পরিমাণের ২-৩ ক্রম বেশি, এর অংশটি একটি বৈশিষ্ট্য সমৃদ্ধ লাইব্রেরি ব্যবহারের কারণে, যা অগত্যা জেনারালাইজড, বনাম আমাদের সাধারণ সি কোড যা আমাদের যা প্রয়োজন ঠিক তা করে এবং আরও কিছু না। তবে এর একটি অংশ এই কারণেই হয় যে .NET কাঠামোর মডুলারাইজড, অবজেক্ট-ওরিয়েন্টেড প্রকৃতি নিজেকে ফাঁসির প্রচুর পুনরাবৃত্তিতে ধার দেয় যা প্রায়শই একটি পদ্ধতিগত পদ্ধতির দ্বারা এড়ানো হয়।
আমি সি # বা। নেট ফ্রেমওয়ার্কটি বেছে নেওয়ার চেষ্টা করছি না। আমিও বলছি না যে মডুলারাইজেশন, জেনারালাইজেশন, গ্রন্থাগার / ভাষার বৈশিষ্ট্য, ওওপি ইত্যাদি খারাপ জিনিস । আমি আমার বেশিরভাগ বিকাশ সিতে করতাম, পরে সি ++ এবং সবচেয়ে বেশি পরে সি # তে। একইভাবে, সি এর আগে আমি বেশিরভাগ সমাবেশই ব্যবহার করতাম। এবং প্রতিটি পদক্ষেপ "উচ্চতর" দিয়ে আমার ভাষা যায়, আমি কম সময়ে আরও ভাল, আরও রক্ষণাবেক্ষণযোগ্য, আরও শক্তিশালী প্রোগ্রাম লিখি। তারা তবে কিছুটা আস্তে আস্তে চালিত করার ঝোঁক রাখে।