কিছু প্রোগ্রামিং ভাষায় এখনও কেন সংবেদনশীলতা রয়েছে?


44

কোডিং অবলম্বন ব্যতীত প্রোগ্রামিং ভাষায় কেস সংবেদনশীলতার জন্য আমি কোনও ব্যবহার দেখতে পাচ্ছি না।

প্রোগ্রামিং ভাষায় এটিকে কেন বাস্তবায়ন করবেন?

হালনাগাদ:

দেখে মনে হচ্ছে আপনার পরিচিত কেউ এই সম্পর্কে একটি বিবৃতি দিয়েছেন


28
কিছু প্রোগ্রামিং ভাষায় কেন এখনও সংবেদনশীলতা নেই?
থমাস এডিং

1
এমনকি ইংরেজি সাধারণভাবে ক্ষেত্রে সংবেদনশীল। সাধারণ উদ্ধৃত উদাহরণটি হ'ল পোলিশ এবং পোলিশ যা দুটি পৃথক পদ যার লিখিত ফর্ম কেবলমাত্র ক্ষেত্রে পৃথক এবং যার উচ্চারণ এবং অর্থ রয়েছে have আইএমও প্রোগ্রামিং ল্যাং এর পক্ষে এটি আরও চালাক না হওয়ার জন্য আরও ভাল এবং প্রোগ্রামাররা তাদের যথাযথ লিখিত সম্মেলনের সাথে আসতে দেয়। উদাহরণস্বরূপ Person person = new Person()ওও ভাষায় এমন কিছু লেখার পক্ষে সাধারণ বিষয় যেখানে প্রতীক 'ব্যক্তি' একটি অস্থায়ী বস্তু এবং 'ব্যক্তি' একটি শ্রেণির ধরণ।
ব্র্যান্ডিন

উত্তর:


113

কেস ভাঁজ ইংরেজিতে মোটামুটি তুচ্ছ, অন্য কয়েকটি ভাষায় এটি খুব কম। যদি কোনও জার্মান প্রোগ্রামার ßকোনও পরিবর্তনশীল নামে ব্যবহার করে তবে আপনি কী উচ্চতর ক্ষেত্রে সমতুল্য বিবেচনা করবেন? শুধু এফওয়াইআই, "ß" কেবল কখনও নিম্ন ক্ষেত্রে ব্যবহৃত হয়। OTOH, "এস এস" হয় সমতুল্য - আপনি একটি কম্পাইলার তাদের মেলে বাধ্য বিবেচনা করবে? আপনি যখন ইউনিকোডে প্রবেশ করবেন, আপনি আরও আকর্ষণীয় সমস্যাগুলি পান যেমন প্রাক-রচিত ডায়াক্রিটিকাল চিহ্নগুলির সাথে পৃথক পৃথক সংমিশ্রণ ডায়ারিকটিকালগুলির সাথে অক্ষরগুলি। তারপরে আপনি কেবল দুটি না করে তিনটি পৃথক ফর্মের সাথে কয়েকটি আরবি স্ক্রিপ্টে পৌঁছাতে পারেন।

অন্ধকার যুগে বেশিরভাগ প্রোগ্রামিং ভাষা প্রায় প্রয়োজনের বাইরে কেস-সংবেদনশীল ছিল। উদাহরণস্বরূপ, পাস্কাল কন্ট্রোল ডেটা মেইনফ্রেমে শুরু হয়েছিল, যা প্রতি চরিত্রের জন্য ছয় বিট ব্যবহার করে (64৪ টি কোড, মোট)। এই জাতীয় বেশিরভাগ মেশিনগুলি "সিডিসি বৈজ্ঞানিক" অক্ষর সেট ব্যবহার করে, এতে কেবল উচ্চ-অক্ষরের অক্ষর থাকে। আপনি অন্যান্য চরিত্রের সেটগুলিতে স্যুইচ করতে পারেন, তবে বেশিরভাগেরই হয় উচ্চ-কেস বা লোয়ার-কেস ছিল, তবে উভয়ই নয় - তবে উভয়ের জন্য একই কোড ব্যবহার করেছেন। প্রাচীন বাউডট কোডগুলির ক্ষেত্রেও একই ছিল এবং সিওবিএল, ফরট্রান, বেসিক ইত্যাদির শুরুর দিনগুলিতে যেমন বিবেচিত স্ট্যান্ডার্ড ইত্যাদি more আরও বেশি শক্তিশালী হার্ডওয়্যার বিস্তৃত হওয়ার সময় তাদের কেস-সংবেদনশীল হওয়া এতোটাই পুঙ্খানুপুঙ্খভাবে তৈরি হয়েছিল যে এটি পরিবর্তন করা অসম্ভব ছিল ।

সময়ের সাথে সাথে, কেস-সংবেদনশীলতার আসল অসুবিধা আরও প্রকট হয়ে উঠেছে এবং ভাষা ডিজাইনাররা বেশিরভাগ ক্ষেত্রেই সিদ্ধান্ত নিয়েছেন ("উপলব্ধি" সম্ভবত আরও নিখুঁত শব্দ হবে) যে / যখন লোকেরা সত্যিই মামলার সংবেদনশীলতা চান, তখন এটি সহায়ক সরঞ্জামগুলি দ্বারা আরও ভালভাবে পরিচালনা করা হয়েছে ভাষা নিজে থেকে।

কমপক্ষে আইএমও, সংকলককে উপস্থাপিত ঠিক মতো ইনপুট নেওয়া উচিত, এটি সিদ্ধান্ত নেবেন না যে "আপনি এটি লিখেছিলেন, তবে আমি ধরে নিচ্ছি যে আপনি সত্যিই অন্যরকম কিছু বোঝেন নি।" আপনি যদি অনুবাদগুলি ঘটতে চান তবে সেগুলি ভালভাবে পরিচালনা করার জন্য তৈরি সরঞ্জাম সহ আলাদাভাবে সেগুলি করা ভাল।


26
+1, অনুরূপ কিছু বলতে যাচ্ছিল, আমার অভিজ্ঞতায় বেশিরভাগ লোকেরা যারা এই সম্পর্কে চিত্কার করে তারা একই ভাষা যারা অন্যান্য ভাষা / চর সেটগুলি বিবেচনা করে না।
যিরমিয় নুন

5
আমার বড় প্রশ্নটিও, যদি সংকলকটি বিভিন্ন বানানকে লক্ষ্য করা শুরু করে, এটি কি আপনাকে নির্বিচারে আন্ডারস্কোর বা অন্য "শব্দের বিভাজক" যুক্ত করার অনুমতি দেয়? আপনি যখন কোনও শনাক্তকারীকে ভুল বানান করেন তখন কি এটি "আপনি যা প্রত্যাশা করেন তা করার" চেষ্টা করবে? কতদূর যেতে হবে? (বিটিডাব্লু, অ্যাডা স্বচ্ছতার কারণে সংখ্যার অভ্যন্তরে নির্বিচারে আন্ডারস্কোর করতে দেয় ))
ড্যাশ-টম-ব্যাং

3
@ ব্যারি: দু'টি বেশ একই রকম - পৃথিবীর প্রায় প্রতিটি ভাষায় এমন অক্ষরের প্রয়োজন হয় যা ASCII তে উপলব্ধ নয়। এই বিষয়টির জন্য, যদিও আমরা কিছুটা হলেও সাজিয়ে নিই, এমনকি এটি ইংরেজির জন্যও সত্যিই সীমাবদ্ধ example উদাহরণস্বরূপ, এটি আপনাকে "সহযোগিতা" হিসাবে "সংঘাত" লিখতে বাধ্য করে। সৌভাগ্যক্রমে, টাইপরাইটাররা কম্পিউটারগুলি আগত হওয়ার অনেক আগে থেকেই এই জাতীয় বিধিনিষেধগুলিতে অভ্যস্ত হয়ে পড়েছিল, খুব কম লোক এমনকি একবারে প্রয়োজনীয় হিসাবে বিবেচিত সমস্ত চরিত্র ব্যবহার করার সম্ভাবনা বিবেচনা করে।
জেরি কফিন

2
@ ড্যাশ-টম-ব্যাং: সংকলকগুলি এমনভাবে লিখিত হয়েছে যা এই জাতীয় জিনিসগুলি করার চেষ্টা করেছিল (সঠিক বানান এবং কী না)। অভিজ্ঞতা নির্দেশ করে যে সাধারণত দ্রুত চালানো এবং আরও ভাল ত্রুটির বার্তা উত্পন্ন করার জন্য সংকলকটি পাওয়া ভাল।
জেরি কফিন

2
@ ফ্রেসনেল বা "এসজেড" দুজনের পক্ষেই ভাল যুক্তি দেওয়া যায়।
ভ্যাটাইন

114

কেন কেউ সংবেদনশীলতার ক্ষেত্রে মামলা করতে চাইবে? কোন দৃশ্যে VARIABLEএক জায়গায়, Variableঅন্য জায়গায় এবং variableতৃতীয় অংশে যেমন একটি একক চলক উল্লেখ করতে সক্ষম হয় তবে তা কার্যকর ? মামলার সংবেদনশীলতা হতাশাব্যঞ্জক। আমি যখন দুর্ঘটনাক্রমে টাইপ না করে VAriableতার কোড Variable-টাইপসগুলিকে আমার কোডটিতে স্লিপ না করে পরিবর্তনের পরিবর্তে একটি সংকলক ত্রুটি পেতে পারি ।

উপসংহারে, অনেক প্রোগ্রামিং ভাষার ক্ষেত্রে কেবল সংবেদনশীলতা বা inতিহাসিক কারণেই সংবেদনশীলতা থাকে না কারণ ক্ষেত্রে সংবেদনশীলতা একটি খারাপ ধারণা।


12
আপনি এটি ভিতরে-বাইরে তাকিয়ে আছেন। হ্যাঁ, একাধিক বানান সহ একই পরিবর্তনশীলটিকে উল্লেখ করা বিরক্তিকর হতে পারে, তবে এটি একই ক্ষেত্র হিসাবে দুটি পৃথক বিষয়কে উল্লেখ করে দুটি পৃথক শনাক্তকারী থাকার মতো খারাপ নয় near কেস সংবেদনশীলতা একটি ভাল জিনিস কারণ এটি এটি প্রতিরোধ করে। (প্লাস, এটি একটি সিনট্যাক্স ত্রুটি হতে সাধারণ টাইপকে আটকে রাখে; এই বিষয়ে জেফের পোস্টের প্রশ্নের লিংকটি দেখুন))
ম্যাসন হুইলারের

88
তবে আমি চাই সরল টাইপগুলি সিনট্যাক্স ত্রুটি হোক! আমি আমার কোডে সাধারণ টাইপস চাই না এবং আমি চাই আমার সংকলক সেগুলি সন্ধানে আমাকে সহায়তা করুন। কেস সংবেদনশীলতা এগুলি খুঁজে পাওয়া আরও শক্ত করে তোলে। কেস সংবেদনশীলতা কেবল opড়ু কোডিংয়ের জন্য একটি অজুহাত বলে মনে হয়।
nohat

4
@ নাহাত: আমি সম্মত, আপনি যখন টাইপ করতে চেয়েছিলেন তা ব্যতীত অন্য কোনও কিছু টাইপ করুন, তখন একটি বাক্য গঠন ত্রুটি একটি ভাল জিনিস।
টিম গুডম্যান

13
@Mason হুইলার, আমি আছে নিবন্ধ পড়া এবং আমি কেবল আরো অসম্মতি করতে পারিনি। আমি প্রচুর কেস-সংবেদনশীল ভাষা ব্যবহার করেছি এবং আমি কেস টাইপস দ্বারা ক্রমাগত হতাশাবোধ করি।
hat

11
সম্পূর্ণ নোহাতের সাথে একমত - ক্ষেত্রে সংবেদনশীলতা একটি হাস্যকর ধারণা - এবং সাধারণত প্রস্তাবগুলি এমন লোকদের কাছ থেকে আসে যারা এখনও ভাল পুরানো ভিবি / বেসিক দিনগুলির জন্য আগ্রহী।
টিম

27

জাভা ক্ষেত্রে সংবেদনশীলতা কোডে আরও বিকল্প সরবরাহ করতে ব্যবহৃত হয় না, বরং খুব স্পষ্ট এবং ধারাবাহিক অর্থের জন্য for ClassesLookLikeThis। objectsLookLikeThis। methodsLookLikeThis ()। STATIC_VARIABLES_LOOK_LIKE_THIS। Classes.WithInnerClassesLookLikeThis। এটি বৃহত্তর স্বাধীনতা সরবরাহ করে না: এটি আপনাকে কিছু তথ্য সংক্ষিপ্তভাবে প্যাক করতে দেয় যা অন্যথায় অত্যধিক ভার্জিক ভাষা কী।

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

আমি মনে করি যে কঠোর সিস্টেমের সাথে কেস সংবেদনশীলতা কোডকে আবদ্ধ করে না তবে বাস্তবে এটি আরও স্পষ্ট করে তোলে। সম্ভাব্য জাভা কোড বিবেচনা করুন:

      joe blah = new hUf();

এটি বেশ পরিষ্কার, তবে কি সম্পর্কে:

      hUf.WTF();

জাভা-তে যেমন রয়েছে, আপনি স্বয়ংক্রিয়ভাবে জানবেন এটি কী। সংবেদনশীল জাভা ক্ষেত্রে এটি অস্পষ্ট, সুতরাং পদ্ধতিগুলি থেকে প্যাকেজগুলির উদাহরণ থেকে ক্লাসকে পৃথক করতে আপনাকে অন্য কোনও প্রক্রিয়া অবলম্বন করতে হবে। এবং এই প্রক্রিয়াটি সম্ভবত আপনাকে কতটা কুৎসিত করে বমি করবে :)


2
NOOOO! আরও কিছু অন্তর্ভুক্ত নয় !! ইন্ট প্যাকেজ_ক্লাস_মোথডো_ভর_নাম? !!
মাইকেল কে

2
@ মিশেল, আশ্চর্যরূপে কেউ কীভাবে খেয়াল করছে না যে আন্ডারস্কোরটি টাইপ করার ঝামেলা।
ড্যান রোজনস্টার্ক

2
এটি আপনার কীবোর্ডের উপর নির্ভর করে। আমার জন্য (ফরাসি কীবোর্ড ব্যবহার করে), _ টাইপ করা সহজ,} much অনেক শক্ত (তাদের কাছে পৌঁছানোর জন্য AltGr ব্যবহার করে)।
ফিলিহো

6
আহ, সুতরাং কেস সংবেদনশীলতা হ'ল নতুন হাঙ্গেরিয়ান স্বরলিপি।
ডেভিড থর্নলি

1
এটি কেবল " খুব স্পষ্ট এবং সামঞ্জস্যপূর্ণ অর্থপূর্ণ অর্থ " যদি সংকলক এটি প্রয়োগ করে। এখন, একটি সংকলক যাতে ছোট ছোট অক্ষরের সাথে ছোট হাতের অক্ষর এবং ছোট ছোট ছোট ছোট অক্ষর দিয়ে শুরু করতে ক্লাসের নামগুলির প্রয়োজন হয় তা কেস সংবেদনশীলতার জন্য একটি আকর্ষণীয় কারণ হতে পারে।
রস প্যাটারসন

24

আমি মনে করি না এটি এতটা "অনুমোদিত" হিসাবে "কার্যকর" হয়েছিল। কেস সংবেদনশীলতা স্ট্রিং তুলনার ডিফল্ট রাষ্ট্র; সংকলক ইঞ্জিনিয়ারের জন্য একটি ভাষা কেস সংবেদনশীল করতে অতিরিক্ত কাজ লাগে, যেহেতু আপনাকে কেস-সংবেদনশীল তুলনা সম্পাদন করতে অতিরিক্ত কোড যুক্ত করতে হবে এবং সঠিক ত্রুটি এবং সতর্কতা প্রতিবেদনের জন্য মূল টোকেন নাম সংরক্ষণ করতে হবে।

এটি প্রায় নিশ্চিতভাবেই এটি সিতে শেষ হয়েছিল; তারা একটি সহজ ভাষা তৈরি করতে চেয়েছিল যা ব্যবহারযোগ্যতার ব্যয়ে একটি সংকলক কার্যকর করা সহজ। কেন এটি আধুনিক লোগোগুলিতে? কারণ এটি অবশ্যই সি তে, সুতরাং এটি করার সঠিক উপায় এটি অবশ্যই ! </ বিদ্রূপ মোড>


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

1
@ জায়ে: এবং তবুও, যে কোনও কারণেই হোক না কেন, পাস্কাল, যা সি এর পূর্বাভাস দেয় এবং এর নকশাকে প্রভাবিত করে, তা সংবেদনশীল এবং তবুও দ্রুত সংকলন করে। ;)
ম্যাসন হুইলারের

@ মেসন: আমি মনে করিনি পাস্কাল সি-কে প্রভাবিত করেছিল ... আমাকে এটি সন্ধান করতে হবে। মূলত, তারা সবাই আলগোল / ফোর্টরান থেকে আসে! people.mandriva.com/~prigaux/language-study/diagram.png
জয়

1
@ ম্যাট: উম্মম ... তুমি কোথা থেকে এলে? আমি যে সমস্ত সংস্থান দেখেছি তা পাস্কালকে 1970 এবং সি থেকে 1972 পর্যন্ত তারিখটি দেখেছে
ম্যাসন হুইলারের

16
আজকের দিনের শিশুরা. আমার দিন ফিরে, আমাদের ছোট কেস ছিল না এবং আমরা এটি পছন্দ করেছি liked 6 বিট যথেষ্ট ছিল। অবশ্যই আমরা এখন শুটিং থেকে বধির।
কিথবি

23

অন্য কিছু না হলে এটি পার্সিংকে সহজতর করে এবং আপনাকে ভেরিয়েবল / শ্রেণির নামের জন্য আরও সংমিশ্রণের অনুমতি দেয়।

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

এর মতো একটি বিষয় বিবেচনা করুন:

XmlWriter xmlWriter = new XmlWriter();
xmlWriter.Write("blah");

ধরুন এক্সএমএল রাইটার ক্লাসেও "রাইটিং" নামে একটি স্ট্যাটিক পদ্ধতি রয়েছে। এখানে যদি কোনও মামলা-সংবেদনশীলতা প্রয়োগ না হয় তবে আপনি কি এটি উদাহরণ বা ক্লাসে কল করছেন?


14
খারাপ নামকরণ কনভেনশন যদিও। আমি কারো শ্বাসরোধ যদি হবে writeএবং Writeদুটি সম্পূর্ণ ভিন্ন পদ্ধতি ছিল।
TheLQ

5
এইটির সাথে TheLQ এর সাথে একমত হতে হবে। যখন আমি কোনও সি লাইব্রেরিতে কাজ করি তখন এটি আমাকে বাদ দেয় এবং আমি "HWND hwnd;" এর মতো ঘোষণা দেখতে পাই। কেহ এই জাতীয় মামলার সংবেদনশীলতাকে আপত্তি জানায় তাকে বাইরে নিয়ে গিয়ে গুলিবিদ্ধ করা হবে।
ম্যাসন হুইলারের

4
@TheLQ পদ্ধতিগুলির ক্ষেত্রেও একই ঘটনা রয়েছে। আমি ক্লাস / ভেরিয়েবলের নামগুলিতে আমার উদাহরণ হিসাবে বিভিন্ন কেস ব্যবহার করছিলাম।
অ্যাডাম শিখুন

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

5
@ ম্যাট সিনট্যাক্স হাইলাইটিং ছাড়া আপনার কোড করা উচিত নয় । আমি কোনও আইডিই ছাড়াই বুঝতে পারি, তবে সিনট্যাক্স হাইলাইট না করে কোনও সম্পাদককে কোডিং করছি ... কেন কেউ নিজের সাথে এটি করবে?
ডেভি

13

কোডটি আরও স্ব-ডকুমেন্টিং করা ছাড়া অন্য কোনও কারণে যদি আমি মামলা সংবেদনশীলতা পছন্দ করি:

this is a CONSTANT
this is a ClassName
this is a methodName
this is a local variablename

আমি সাধারণত পাইথনে প্রোগ্রাম করি, তবে আমার সি # দিনের মধ্যে, ক্লাসের উদাহরণগুলি ক্লাসের মতো একই, তবে ছোট (বা উট) কেস হিসাবে (অন্যরা বলেছে) নামকরণ করা আমার পক্ষে খুব সুবিধাজনক বলে মনে হয়েছে:

Thing thing = new Thing();

কেস-সংবেদনশীল ভাষাগুলি ব্যবহারের জন্য এর জন্য আরও কিছু কনভেনশন প্রয়োজন, যেমন, কিছু ধরণের সিগিলের মতো:

Thing oThing = new Thing()
Thing instanceOfThing = new Thing()

যা একটি "খারাপ জিনিস"।

একটি চলক বনাম বনামের ব্যবহার সম্পর্কিত ক্লাসের রেফারেন্স পেতে আমি গ্রেপ করা (কেস-সংবেদনশীলভাবে) সুবিধাজনকও বোধ করি। কেস-সংবেদনশীল ভাষা সহ, এটি কম সহজ হবে। অনুসন্ধান এবং প্রতিস্থাপনের জন্য একই।

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


10

লোকেরা আসলে শব্দগুলি সেগুলি পড়ার আগে তাদের আকৃতিটির দিকে মনোযোগ দেয়। কেস সংবেদনশীলতা কোডের পুরো চিহ্নের সাথে সামঞ্জস্য রেখে দেয়। আমি সেই রাষ্ট্রের ওপরের লোকদের সাথেও একমত যে বিভিন্ন সম্মেলন বিভিন্ন ধরণের প্রতীককে বোঝায়। কেস সংবেদনশীলতা এবং সংবেদনশীলতা উভয়ই অপব্যবহার করা যেতে পারে। খারাপ প্রোগ্রামাররা সর্বদা খারাপ কোড তৈরি করে ... তারা একটি উপায় খুঁজে পাবে।

উদাহরণ হিসাবে ভাষা গ্রহণ করুন। কেন আমরা বাক্যগুলি শুরু করি এবং রাজধানী দিয়ে জিনিসগুলির নামকরণ করি ... এটি কি ইউনিক্সের কারণে?


@ জাস্ট মন্তব্যগুলি স্পষ্টতা চাওয়ার জন্য, বর্ধিত আলোচনার জন্য নয়। আপনার যদি সমাধান হয় তবে একটি উত্তর দিন। যদি আপনার সমাধানটি ইতিমধ্যে পোস্ট করা থাকে তবে দয়া করে এটি উত্সাহিত করুন। আপনি যদি এই উত্তরটি অন্যের সাথে আলোচনা করতে চান তবে চ্যাটটি ব্যবহার করুন । আরও তথ্যের জন্য FAQ দেখুন ।
অ্যাডাম শিখুন

9

আমি মনে করি সি # এবং জাভা এর মতো স্ট্যাটিকালি-টাইপড লানাগাজের জন্য এটি আসলে কোনও মান যুক্ত করে না। কারণ বেশিরভাগ ক্ষেত্রেই, আপনি একটি আইডিই পেয়েছেন যা যে কোনও উপায়ে আপনার জন্য কেস মেলে না তবে স্বয়ংক্রিয়ভাবে সংশোধন করবে, সুতরাং দিনের শেষে, যদি আমি দুর্ঘটনাক্রমে "VAriable" টাইপ করি তবে আমার আইডিই সেইটিকে স্বয়ংক্রিয়ভাবে সংশোধন করবে " আমার জন্য পরিবর্তনশীল "। যে যোগ MyClass myClass;শৈলী নিয়মাবলী এবং আপনি দেখতে পারেন যে কেস-সংবেদনশীলতা অগত্যা একটি খারাপ জিনিস নয়।

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

তাই হ্যাঁ, কোন বাস্তব কারণে ভাষায় পারে যখন না কেস-অবশ হতে সেখানে কোন বাস্তব কারণে কেন তারা এর উচিত পারেন হবে।

"সাইনঅন" বনাম "সিগন" সম্পর্কে স্কট হ্যানসেলম্যানের সেই নিবন্ধটি ছিল স্ট্রিং তুলনা, এবং প্রোগ্রামিং ভাষার সাথে কিছুই করার ছিল না। আমি সম্মত হই যে ব্যবহারকারীরা যে ধরণের স্ট্রিং টাইপ করেন সেগুলি সর্বদা কেস-সংবেদনশীলতার সাথে তুলনা করা উচিত তবে আমি মনে করি এটি প্রোগ্রামিং ভাষায় সনাক্তকারীদের থেকে আলাদা বলগেম।


1
"আইডিই উল্লেখ করুন যা" কেস
ম্যাচটি মিলে যায় না

3
আইডিইগুলি উইম্পসের জন্য। আমি পেন্সিল এবং কাগজ দিয়ে প্রোগ্রাম করি, এবং তারপরে কোডটি স্ক্যান করি
ড্যান রোজনস্টার্ক

6

যখন কোনও ভাষা কেস-সংবেদনশীল হয়, আমি গণিত এবং বিজ্ঞানে প্রচলিত কেস ব্যবহার পুনরুত্পাদন করার জন্য এর সুবিধা গ্রহণ করি। কয়েকটি কেস কনভেনশনের একটি তালিকা এখানে (কোনওভাবেই নিখুঁত নয়):

  • সম্ভাব্যতা তত্ত্বের ক্ষেত্রে, লোয়ার কেস fসাধারণত একটি সম্ভাব্যতা ঘনত্ব ফাংশন (পিডিএফ) Fউপস্থাপন করে , অন্যদিকে উচ্চতর ক্ষেত্রে এটি সম্পর্কিত ক্রমবর্ধমান বিতরণ ফাংশন (সিডিএফ) উপস্থাপন করে।
  • সম্ভাব্যতা তত্ত্বের ক্ষেত্রেও, বড় হাতের অক্ষরগুলি এলোমেলো পরিবর্তনগুলি Xবোঝায় xএবং $ PR [X = x] \ লেক 0.05 as হিসাবে সম্পর্কিত ছোট ছোট অক্ষরগুলি তাদের উপলব্ধি বোঝায় $
  • লিনিয়ার বীজগণিতের ক্ষেত্রে, বড় হাতের অক্ষরগুলি সাধারণত ম্যাট্রিক্সের জন্য ব্যবহৃত হয় তবে লোয়ার কেস অক্ষরগুলি সাধারণত সংখ্যার জন্য উল্লেখ করা হয়, যেমন, $ A = [a_ {ij}] $ $
  • ইউনিট প্রতীকগুলি ছোট হাতের অক্ষরে (যেমন, মিটারের জন্য মি) লিটার (এল) এবং কোনও ব্যক্তির নাম থেকে প্রাপ্ত ইউনিটগুলিতে (ডাব্লু ওয়াটের জন্য, পাস্কালের জন্য পাস, নিউটনের জন্য এন, এবং আরও কিছু) লেখা থাকে।
  • উপসর্গগুলির প্রতীকগুলি যার অর্থ মিলিয়ন বা তারও বেশি মূলধন করা হয় (মেগা জন্য মেগা (মিলিয়ন)), এবং মিলিয়ন এর চেয়ে কম লোকগুলি হ'ল ছোট ক্ষেত্রে (মিলি (হাজারের জন্য))।

3
বৈধ পয়েন্ট, তবে আপনি সেখানে প্রায় প্রতিটি সাধারণ প্রোগ্রামিং ভাষার কোডিং কনভেনশন লঙ্ঘন করছেন, যা তাদের নিজস্ব উদ্দেশ্যে কেস সংবেদনশীলতা ব্যবহার করে ..
কেন ব্লুম

3

আমি ঠিক এটি ইউনিক্স এবং সি এর কারণেই বুঝতে পেরেছি - তবে এটি মুরগির মতো এবং ডিমের সমস্যা যা কেবল গীজাররা সঠিকভাবে উত্তর দিতে পারে।

ডিমের আগে তারা এসেছিল কিনা জানতে চাইলে আমি "দ্য ইস্টার বনি ইজ টু টাউন" -তে মুরগি যে যুক্তি ব্যবহার করে তা ব্যবহার করি use কারণ নোহের সিন্দুকের মুরগি ছিল, মুরগি আগে আসে। সুতরাং, জিসিসি ইউনিক্সে চালিত হওয়ার কারণে, ইউনিক্স প্রথমে এসেছিল, সুতরাং ইউনিক্স কেস, সি এবং এর সমস্ত রূপ এবং বংশধরদের জন্য এত যত্ন করে, হ্যাঁ, কোঁকড়ানো ধনুর্বন্ধনী চাপিয়ে দেয় এমন কোনও ক্ষেত্রেই কেস কেয়ার করে।

কোঁকড়া ধনুর্বন্ধনী এবং কেস সংবেদনশীলতার মধ্যে সম্ভবত একটি লিঙ্ক রয়েছে।


ইউনিসি জিসিসির অনেক বছর আগে এসেছিল, তবে মূল বিসিপিএল সংকলক ইউনিক্সের আগে এসেছিল এবং এটি সাধারণত "সি সিনট্যাক্স" তৈরি করে।
রস প্যাটারসন

2

এখনও অবধি দেওয়া দুর্দান্ত উত্তরের পাশাপাশি, আমি উল্লেখ করতে চাই যে কেস সংবেদনশীলতা আপনাকে অতিরিক্ত "নেমস্পেস" দেয় gives উদাহরণস্বরূপ পার্ল মত কিছু বিশেষ অবরোধগুলি BEGINএবং ENDস্বাভাবিক কোড চেয়ে বিভিন্ন সময়ে যে run (কম্পাইল সময়ে শুরু করার আগে, শেষে স্বাভাবিক প্রোগ্রাম স্থগিত করল), এবং অল-ক্যাপ হিসাবে যারা থাকার তাদের স্ট্যান্ড আউট করে তোলে, এবং মানে ছোট হাতের যে রূপগুলি সংরক্ষিত শব্দ নয়।

কেউ আরও এগিয়ে যেতে পারে এবং ভবিষ্যতের ভাষা ব্যবহারের জন্য সমস্ত-বড় নাম সংরক্ষণ করতে পারে এবং সাধারণ প্রোগ্রামারদের কোনও ক্ষতি করতে পারে না, যারা সাধারণত তাদের কোডে বন্ধ করে না।


2

অস্পষ্টতা কমাতে প্রযুক্তিবিদদের পক্ষে "কেস সেনসিটিভ" সর্বদা ভাল। উদাহরণ হিসাবে ফাইলের নাম নিন Take উইন্ডোজ ফাইলনামের সাথে ডিল করা ইউনিক্স ফাইলের চেয়ে বেশি সমস্যা কারণ উইন্ডোতে ফাইলের নাম কেস-সংবেদনশীল এবং ইউনিক্সে ফাইলের নাম কেস-সংবেদনশীল।

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


ছাইপাঁশ. এটি কেবল অস্পষ্টতা হ্রাস করে বলে মনে হচ্ছে কারণ আপনি ইতিমধ্যে কেস-সংবেদনশীল আচরণটি প্রত্যাশা করছেন।
রস প্যাটারসন

1

আমি এই অভিজাত দ্বারা অবাক। এখন যে কেউ আপনাকে m_সি # তে একটি আন্ডারস্কোর বা একটি ক্ষেত্রের নাম ব্যবহার করতে চান না, আমি কেবলমাত্র উটের কেসটি ব্যবহার করছি এবং যদি ক্ষেত্রের নামটি জনসাধারণের সম্পত্তির নাম হিসাবে একই হয় তবে কেবলমাত্র পাবলিক সম্পত্তির নাম পাস্কাল কেস এবং ব্যাকিং ফিল্ডটি উটের ক্ষেত্রে, আমি চিত্রিত করি, "তাই হোক" - এটিই প্রোগ্রামিং সম্প্রদায়টি চায় বলে মনে হয়। এটি এখনও পর্যন্ত কোনও সমস্যা তৈরি করে নি।


0

বিশেষত কিছু প্রোগ্রামার বেসিকের প্রথম দিন থেকে আসে, যেখানে একটি পরিবর্তনশীল নামটি কেবল 2 অক্ষর দীর্ঘ হতে পারে।

এবং তাই, যখন এটি কোনও অক্ষর হতে পারে, তারা খুব খুশি হয়। এবং কেস সংবেদনশীলতার সাথে - কারণ তারা SomeNameদুর্ঘটনাক্রমে সমান হওয়ার বিষয়েও যত্ন নিতে চায় না SOMENAMEএবং এ জাতীয় জিনিসের কারণে কোনও বাগ তৈরি করতে চায় না।

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