আমি এখানে শস্যের বিরুদ্ধেও যাব এবং সি এর জন্য একটি (কিছুটা হাস্যকর) নান্দনিক কেস তৈরি করার চেষ্টা করব, যদিও কিছু লোক এটি বিভিন্ন কারণে "কুশ্রী" হিসাবে ডাকতে পারে যেমন শ্রেণীর মতো উচ্চ স্তরের নির্মাণের অভাব বা পয়েন্টারগুলির উপর এর নির্ভরতা, আমি দেখতে পাচ্ছি যে এটি আমার পক্ষে হয় না ।
টিএল; ডিআর : আমার মতে, সি সহজ, ভাল সি পঠনযোগ্য এবং বেটিং বিটগুলির মধ্যে একটি নির্দিষ্ট আনন্দ পাওয়া যায়।
সি সহজ
স্ট্যান্ডার্ড সি এর মধ্যে ফাংশন, পয়েন্টার এবং অ্যারে তৈরির জন্য কয়েকটি কয়েকটি প্রাথমিক ধরণের এবং প্রক্রিয়াগুলি সংজ্ঞায়িত করে। তার উপরে, আদিমগুলি (স্ট্রাক্ট এবং ইউনিয়নগুলির মতো) থেকে আরও জটিল ধরণের তৈরি করার জন্য একটি সংখ্যক রচনা রচনা রয়েছে। লক্ষ্য করুন যে আমি কীভাবে বেশিরভাগ ভাষার দুটি বাক্যে বর্ণনা করেছি। এর অর্থ কোডিংয়ের সময় আপনাকে খুব বেশি সিনট্যাক্টিক বিধি এবং ফর্মগুলি আপনার মাথায় রাখতে হবে না।
সরল সুন্দর ।
সি আরকেন নয়
অনেকগুলি উচ্চ-স্তরের ভাষার মতো নয়, আপনাকে সিতে প্রচুর অদ্ভুত, অনর্থক চিহ্নগুলি খুঁজে পেতে কঠোর চাপ দেওয়া হবে সি ওয়ার্ল্ডে, বিমূর্ততা এবং "সিনট্যাকটিক সংক্ষেপণ" উভয়ের প্রধান সুবিধাটি হল - শব্দার্থগতভাবে খুব সহজ এবং স্ব-ব্যাখ্যামূলক নির্মাণ। ভাল সি স্টাইল প্রায় কাব্যিক, পাঠযোগ্য সৌন্দর্যকে উত্সাহ দেয়। উদাহরণস্বরূপ, আসুন লিনাক্স কার্নেল থেকে নিম্নলিখিত স্নিপেটটি পড়ার চেষ্টা করি। এমনকি অন্তর্নিহিত ডেটা স্ট্রাকচার এবং বাস্তবায়নের বিশদটি উপলব্ধি না করেও আমরা নিম্নলিখিত বিষয়গুলি অনেকটা বোঝাতে পারি:
bool kthread_freezable_should_stop(bool *was_frozen)
{
bool frozen = false;
might_sleep();
if (unlikely(freezing(current)))
frozen = __refrigerator(true);
if (was_frozen)
*was_frozen = frozen;
return kthread_should_stop();
}
ফাংশনটির মাঝামাঝি সময়ে "কারেন্ট জমে যাওয়ার সম্ভাব্য ইভেন্টে ফ্রিজটি জিজ্ঞাসা করুন আসলে কী হিমশীতল ঘটেছে"। ডাঃ সিউস আরও ভাল লিখতে পারতেন না।
পঠনযোগ্য সুন্দর ।
সি স্বচ্ছ
সি স্টেটমেন্টে কোনও ফাংশন কল অন্তর্ভুক্ত না করা থাকলে আপনি সাধারণত তার রান-টাইম ব্যয় এবং পার্শ্ব প্রতিক্রিয়া সম্পর্কে খুব ভাল ধারণা পেতে পারেন। সি প্রোগ্রামারকে নিয়ন্ত্রণ দেয় এবং শেষ পর্যন্ত তাকে বা সঠিক কাজটি করতে বিশ্বাস করে। strlen()
জিএনইউ সি লাইব্রেরিতে প্রয়োগের বাইরে এই (এসই এর জন্য সামান্য পুনরায় ফর্ম্যাট করা) স্নিপেট চলে তখন কী ঘটে যায় তার একটি চিত্র আমরা পেতে পারি , কারণ প্রতিটি অপারেটরের শব্দার্থবিজ্ঞানের যথাযথ সংজ্ঞা রয়েছে। সি-তে কোনও ওভারলোডিং নেই
for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
++char_ptr)
if (*char_ptr == '\0')
return char_ptr - str;
"অপ্টিমাইজিবিলিটি" এর উদ্দেশ্যে, এই সম্পত্তিটি দুর্দান্ত। যুক্তিযুক্তভাবে, কিছু উচ্চ-স্তরের ভাষা উচ্চ স্তরের অ্যালগরিদমের সংক্ষিপ্ত প্রকাশকে সহজ করে তোলে (ক্লাস এবং ওভারলোডিং সহ সি ++ এর মতো), তবে সি যে উদ্দেশ্যে ডিজাইন করা হয়েছিল - পোর্টেবল এসেমব্লার হিসাবে অভিনয় করা - সি আদর্শ is কখনও কখনও, নিম্ন-স্তরের কোডটির সফল প্রয়োগের পরে, কোনও প্রোগ্রামার মেশিনের সাহায্যে একটি অনুভব করতে পারে (বা শূন্য - এটি বাস্তবায়নের বিশদ)। এটি অন্যান্য ভাষাগুলি খারাপ, এটি "জেন" পর্যাপ্ত নয় বা এর মতো নির্বোধ কিছু নয়, কেবলমাত্র বৈধ কারণেই আইএমও সি যেভাবে অন্য অনেক ভাষা বেছে না নেওয়ার পছন্দ করেছেন তা আকর্ষণীয় হতে পারে।
আমার মতে, উপরে উপস্থাপিত তিনটি বিষয় লিনাক্স দ্বারা মনের মধ্যে জড়িত জটিল - তবুও দক্ষ - সিস্টেম তৈরির ব্যবস্থা করতে পারে। আমি দেখতে পেয়েছি যে এই পৃথিবীটি আমার নান্দনিক সংবেদনশীলতার কাছে আবেদন করে এবং আমি সিটিকে তার পরবর্তী লক্ষ্য হিসাবে বিবেচনা করার জন্য এই বিষয়গুলি বিবেচনা করার পরামর্শ দিই। আমি মনে করি যে অপারেটিং সিস্টেমগুলি সম্পর্কে তর্কগুলি এবং স্পষ্টভাবে উল্লেখ করে আরও কী সমর্থন করা যায় না কারণ সফল প্রোগ্রামার হওয়ার জন্য কার্নেলগুলি অবশ্যই বোঝার দরকার নেই, তবে এই ক্ষেত্রগুলি বিষয়গতভাবে বাধ্যতামূলক বলে মনে করতে পারে।