সি # এবং জাভা ভাষার অর্ধেক হওয়া সম্পর্কে এই বিবৃতিটির অর্থ কী? [বন্ধ]


32

নিবন্ধে: পোকো কেন , এই বাক্যটি রয়েছে:

ম্যাকিয়েজ সোবকজাক এটিকে ভালভাবে বলেছেন: "যখন কেউ আমাকে অর্ধেক ভাষা দেয় এবং আমাকে বলে যে এটি আমার নিজের সুরক্ষার জন্য" তখন আমি পছন্দ করি না।

আমি তার অর্থ বুঝতে পারছি না, যদিও সি # মাইক্রোসফ্টের মালিকানাধীন এবং জাভা ওরাকলের মালিকানাধীন , এর অর্থ এই নয় যে তারা ভাষার অর্ধেক অংশ ধরে, তাই না? আমি এই বাক্যটি প্রমাণ করার মতো কোনও প্রমাণ পাইনি এবং আমি এটি সম্পর্কে সত্যই আগ্রহী। এমনকি 'আমার নিজের সুরক্ষার জন্য' অংশটি সম্পর্কে আরও কৌতূহলী।


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

15
আমি ঠিক নিশ্চিত নই, কারণ তিনি যে নিবন্ধটির উদ্ধৃতি দিচ্ছেন তা মৃত বলে মনে হচ্ছে, তবে মনে হচ্ছে তিনি জাভা এবং সি # তে একাধিক উত্তরাধিকার বা টেম্পলেট রূপক হিসাবে অনেকগুলি সি ++ এর আরও 'বিপজ্জনক' বা বিতর্কিত বৈশিষ্ট্য হারিয়েছেন।
GoatInTheMachine

3
উদ্ধৃতিটির প্রসঙ্গটি নিখোঁজ হয়েছে (লিঙ্কটি 404), সুতরাং আপনি কেবল এখানে পাবেন যে লোকেরা সম্ভবত তার অর্থ কী তা অনুমান করছেন বা (সম্ভবত আরও বেশি লোক) কেবল নিজের মতামত উপস্থাপন করছেন। যদি আপনি প্রকৃতপক্ষে প্রসঙ্গটি জানতে চান, অর্থাৎ হারিয়ে যাওয়া পৃষ্ঠায় কী রয়েছে তবে সম্ভবত সেরা লেখককে সরাসরি লেখার পক্ষে বা ওয়েবব্যাক মেশিন বা অনুরূপ মাধ্যমে হারিয়ে যাওয়া পৃষ্ঠাটি সন্ধান করার চেষ্টা করা ভাল বেট bet
জ্যাকবিবি

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

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

উত্তর:


162

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

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

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


67
এটি আমার গোটো উত্তর।
নিল

71
এছাড়াও আমি যুক্ত করব যে উচ্চতর বুদ্ধিমানের মতো এমন কোনও জিনিস নেই যার সীমাবদ্ধতার প্রয়োজন নেই। এই ধারণা করা সর্বদা নিরাপদ যে সকলেই খুব শীঘ্রই বা পরে গণ্ডগোল করে। এবং সাধারণত বুদ্ধি উচ্চতর, তত বড় ভুল।
নিল

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

12
@ রবার্টহারভে আমি 100% সম্মত দীর্ঘ সময় সি ++ প্রোগ্রামার হওয়ার কারণে, সি # এ যাওয়ার সময় আমি স্বয়ংক্রিয় মেমরি পরিচালনার বিষয়ে সন্দেহ ছিলাম। একবার আমি এটি পেরেছি, এটি সম্পর্কে 99% সময় নিয়ে চিন্তা করার দরকার নেই এটি অবিশ্বাস্যরূপে মুক্ত হয়েছিল। পরিবর্তে অন্যান্য বিষয় নিয়ে চিন্তা করার জন্য এটি আমার মস্তিষ্কের শক্তি মুক্ত করেছে up
26

8
"টাইপ সীমাবদ্ধতা ছাড়াই অন্য কোনও বিষয়কে নির্ধারণ করুন" "... তাই dynamic,?
আর্টুরো টরেস সানচেজ

34

এটিকে উদ্ধৃতিটির মূল উত্সটিতে বেশ সুন্দরভাবে ব্যাখ্যা করা হয়েছে :

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

[...]

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

[...]

ঠিক আছে, আমি ভুলে গেছি। আমি একদিন শপথ করেছিলাম জাভা শিখব না। কিন্তু আমি করেছিলাম. ঠিক আছে, যে পরিমাণে আমাকে কার্যকরী কোড পড়তে এবং লিখতে দেয় allows আমি 'থিংকিং ইন জাভা' (অনলাইনে উপলব্ধ, নিখরচায়) এবং 'কোর জাভা' (অনলাইনে নয়, নিখরচায় নয়) পড়েছি, কিছু জাভা বিকাশের ক্ষেত্রেও আমি পরোক্ষভাবে চালিত হয়েছি, এবং ... ভাল, আমি কিনছি না এটা। যখন কেউ আমাকে অর্ধেক ভাষা দেয় এবং আমাকে বলে যে এটি আমার নিজের সুরক্ষার জন্য আমি তখনই পছন্দ করি না । এটি একটি কাগজের হাতুড়ির মতো, হালকা করে তৈরি করা যাতে আঙুলটি মারার সময় কেউ নিজেকে আঘাত না করে ... এটি সি # তেও প্রযোজ্য। আমি ইস্পাত স্লেজ-হাতুড়িটি বেছে নিই, যাতে আমি নিশ্চিত হতে পারি যে যখন আমি মাচো খেলতে চাই, তখন এটি সহ্য করবে।
প্রশ্নটি হল - এত লোক কেন এটি ব্যবহার করে (জাভা, সি # ইত্যাদি)? হুম ... কারণ এটি কিছু জায়গায় খুব ভাল। তবে এমন পরিস্থিতি রয়েছে, যেখানে ভাষা এবং গ্রন্থাগার উভয়ই দেখায় যে এগুলি অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছিল (শুরুতে) সমস্ত কিছু উপযোগী হওয়ার পরিবর্তে। এটি কেবলমাত্র অনেক প্রতিশ্রুতি দেয় এবং ক্যাপ-অল প্রযুক্তির জন্য খুব সামান্য দেয়। বা এমন কোনও সমাধান হিসাবে যা কোনও প্রতিযোগিতায় লাঙল রাখতে পারে ..

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

সুতরাং, অন্য কথায়, সেই উক্তিটির লেখক সি ++ পছন্দ করেন এবং তিনি জাভা পছন্দ করেন না এবং তিনি মনে করেন যে জাভা সি ++ এর অর্ধেক হারিয়েছে। এবং এটাই সেই উদ্ধৃতিতে রয়েছে।


18
হাস্যকরভাবে, তিনি সি পছন্দ করেন না ঠিক একই কারণে তিনি সি ++ পছন্দ করেন, এটি খুব উন্মুক্ত, প্রচুর শক্তি এবং প্রচুর ত্রুটি সরবরাহ করে।
গ্রেজেজ

8
তিনি সি ++ কে পাইথনের চেয়ে বেশি ভাবপূর্ণ বলে বিবেচনা করেছেন
benxyzzy

12
@ গ্রেজেজ যা আমার চোখেও পড়েছে ... সি খুব ত্রুটিযুক্ত প্রবণ কিন্তু সি # আপনাকে যথেষ্ট শক্তি দেয় না? সি +++++++++++++++++++++++++++++++++++++++ C ++++++++++++++++++++++++++++++++++++++ সি C ++ থেকে অনেক দূরে সরিয়ে নেওয়া হয়? সি # এর "সুরক্ষিত" কোণগুলি নেই যা আপনাকে আরও নিয়ন্ত্রণ দেয়? মতামতগুলির আকর্ষণীয় মিশ্রণটি নিশ্চিত হয়ে যায় ...
ওয়ার্নারসিডি

10
@ ওয়ার্ননারসিডি সত্যিই অনিরাপদ সি # সম্পর্কে বলতে পারবেন না, তবে সি এবং সি ++ এর সাধারণ কিছুই নেই, আপনি একটি বেসিক সি 90 স্নিপেটকে একটি বৈধ সি ++ - ইশ স্নিপেটে হারিয়ে ফেলতে পারবেন যার উপর সংকলকটি কমে যাবে না।
কোয়ান্টিন

23

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

২০০ 2006 সালে, যখন এটি লেখা হয়েছিল, যখন সি # তুলনামূলকভাবে অল্প বয়স্ক ছিল এবং জাভা অনেক দিক থেকে অপরিণত ছিল, এবং যখন পাওয়ার বনাম সুরক্ষা একটি বাণিজ্য-বন্ধ মনে হয়েছিল যেখানে আপনি কেবল একটি বেছে নিতে পারেন, এটি গ্রহণ করা একেবারেই অযৌক্তিক অবস্থান ছিল না was ।

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

যদি কেউ কোনও ভাষার দিকে নজর রাখেন কারণ এটি আপনার হাতটি ধরেছে, বা বলে যে কোনও ভাষা ব্যবহারের পক্ষে কঠোর হওয়া কোনওরকম ভাল জিনিস, তবে আমি তাদের বলে নুনের দানা দিয়ে যা কিছু নিয়েছি তা গ্রহণ করব। আপনাকে কেবল কোডে পাওয়া বিব্রতকর সংখ্যার দিকে নজর দিতে হবে যা আমরা প্রতিদিন নির্ভর করি, শিল্পের উজ্জ্বল মনের দ্বারা লেখা, এটি কেন 'নিরাপদ' ভাষা ব্যবহার করে তুচ্ছভাবে এড়ানো যেত see


6
আমি শেষ অনুচ্ছেদে আপনার অবস্থানের সাথে একমত সি ++ কে "শোষণের ফোয়ারা" বলা উচিত।
কালেব মাউয়ার

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

12

সংরক্ষণাগারগুলির দিকে ফিরে তাকালে দেখা যায় যে এই উদ্ধৃতিটি ২০০৩ সালের (নিবন্ধটি ২০০ 2006 সালের উল্লেখ করে সত্ত্বেও) was সেই সময়, সি # সংস্করণ ১ এ ছিল এবং এক্স এর আধুনিক বৈশিষ্ট্যগুলির প্রচুর অভাব ছিল :

নতুন বৈশিষ্ট

সি # 2.0

  • জেনেরিক্স
  • আংশিক প্রকার
  • নামবিহীন পদ্ধতি
  • Iterators
  • অবিচ্ছিন্ন প্রকার
  • গেটর / সেটার পৃথক অ্যাক্সেসযোগ্যতা
  • পদ্ধতি গোষ্ঠী রূপান্তর (প্রতিনিধি)
  • প্রতিনিধিদের জন্য কো এবং বিপরীতে বৈচিত্র্য
  • স্ট্যাটিক ক্লাস
  • প্রতিনিধি অনুমান

সি # 3.0

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

সি # 4.0

  • গতিশীল বাঁধাই
  • নামযুক্ত এবং alচ্ছিক যুক্তি
  • জেনেরিক সহ- এবং বৈপরীত্য
  • এম্বেড করা আন্তঃবিদ্যুত প্রকার ("NoPIA")

সি # 5.0

  • অ্যাসিনক্রোনাস পদ্ধতি
  • কলারের তথ্য বৈশিষ্ট্য

সি # 6.0

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

সি # 7.0

  • আউট ভেরিয়েবল
  • প্যাটার্ন ম্যাচিং
  • tuples
  • বিনির্মাণ
  • স্থানীয় ফাংশন
  • অঙ্ক বিভাজক
  • বাইনারি আক্ষরিক
  • রেফারেন্স এবং স্থানীয়রা
  • সাধারণ async রিটার্ন প্রকার
  • এক্সপ্রেশন শারীরিক নির্মাণকারী এবং চূড়ান্তকারী
  • অভিব্যক্তিটি দেহ প্রাপ্তকারী এবং সেটারকে দেবে

সি # 7.1

  • অ্যাসিঙ্ক মেইন
  • ডিফল্ট আক্ষরিক এক্সপ্রেশন
  • অনুমিত টুপল উপাদান নাম

- "সি শার্প" , উইকিপিডিয়া (তথ্যসূত্র এবং লিঙ্কগুলি সরানো হয়েছে)

এটি সম্ভবত আরও বোধগম্য যে সি #টিকে সেই প্রসঙ্গে অর্ধ-ভাষার মতো মনে হয়েছিল, কারণ এতে আজ সি # এর কি পরিমাণ অভাব ছিল। এটি staticক্লাস না এমনকি ভাবতে অবাক !

সি # এর .NET- এ আবদ্ধ থাকার পরেও আরও স্টাফগুলি অনুপস্থিত ছিল। উদাহরণস্বরূপ, ডব্লিউপিএফ তখন প্রায় ছিল না; এটি সব উইনফর্ম ছিল।


স্ট্যাটিক ক্লাসগুলি অনুপস্থিত বৈশিষ্ট্যটির দুর্বল পছন্দ হতে পারে কারণ জাভা এখনও তাদের নেই (সি # ধরনের)। জাভাতে জাব না হলে?
ব্যবহারকারী 253751

1
@ ইমিবিস জাভাতে কোনও ইচ্ছাকৃত ছুরিকাঘাত নয়, তবে, জিজি, সত্যি? staticক্লাসগুলি যেমন একটি আদিম বৈশিষ্ট্য বলে মনে হয়; আমি কল্পনা করেছিলাম যে তারা পূর্ব-তারিখযুক্ত ক্লাসগুলি করেছে।
নাট

2
দেখে মনে হচ্ছে যে পিস্টন-ইঞ্জিন জেটগুলি পূর্বনির্মাণ করা জেট-ইঞ্জিন জেটগুলি; "কোডহীন শ্রেণি" সাধারণভাবে মডিউল বা নেমস্পেস নামে অভিহিত হয় , ভাষা বাদে যেখানে সমস্ত কোড একটি শ্রেণীর মধ্যে থাকতে হয়। (অথবা একটি সাইকেলটিকে একটি ম্যানুয়াল অটোমোবাইল কল করা বা একটি ল্যান্ডলাইন ফোনে স্টেশনারি সেলফোন কল করা বা ...)
ব্যবহারকার 253751

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

@ জিরকাহানিকা হ্যাঁ, যাইহোক আমি staticবেশিরভাগ ক্ষেত্রেই ক্লাসের বিশাল ফ্যান নই । সত্যি বলতে আমি এটিকে কল করার জন্য একটি বৈশিষ্ট্য হিসাবে বেছে নিয়েছি কারণ এটি সত্যিই সাধারণ #, সি এর আদিম অংশ বলে মনে হয়েছিল; আমি বিবেচনা করি নি যে তারা জাভাতে নেই।
নাট

3

তিনি ভাষার বৈশিষ্ট্যগুলির অভাবের বিরুদ্ধে অভিযোগ করেছিলেন যা সূক্ষ্ম-নিয়ন্ত্রণযুক্ত নিয়ন্ত্রণকে সক্ষম করে। এর জন্য সরঞ্জামগুলি অন্তর্ভুক্ত রয়েছে

  • অপরিবর্তনযোগ্যতা প্রয়োগ করা (যেমন সি ++ constকীওয়ার্ড)
  • অবজেক্টের আজীবন এবং মালিকানা নিয়ন্ত্রণ করা
  • মেমোরি ব্যবহার নিয়ন্ত্রণ করা, অনুলিপি এবং বরাদ্দ শৈলী

এটি জাভা সম্পর্কে আমার একটি সমালোচনা মনে করিয়ে দেয়:

সবকিছুই একটি পয়েন্টার, তবে পয়েন্টারগুলির অস্তিত্ব নেই।

সি ++ অবজেক্টে পয়েন্টার এবং রেফারেন্সগুলি স্পষ্ট শব্দার্থবিজ্ঞান সহ তিনটি স্বতন্ত্র ধারণা। জাভাতে আপনার কেবল ছদ্ম-বস্তু-পয়েন্টার রয়েছে। এগুলিকে বিভ্রান্ত করে এবং সত্য পয়েন্টার শব্দার্থক শব্দগুলি নির্ধারণের মাধ্যমে অবজেক্টের মডেলটি কম স্পষ্ট হয়।

একটি সংজ্ঞায়িত সি ++ প্রোগ্রামে প্রোগ্রামার রেফারেন্সগুলি বৈধ এবং অকার্যকর হতে পারে বলে আশা করতে পারে। সরলিকৃত মডেলের কারণে, জাভা একই গ্যারান্টি দিতে পারে না।

এই কম পরিষ্কার মডেলের লক্ষণগুলির মধ্যে নাল অবজেক্ট প্যাটার্ন এবং যোডা শর্তাদি অন্তর্ভুক্ত 5.equals(potentiallyNullIntegerReference)


5
এটা খুব বিভ্রান্ত। পয়েন্টার (যৌক্তিক অর্থে জাভাতে বিদ্যমান) আপনি কেবল তাদের সাথে স্ক্রু করতে পারবেন না। মডেলকে সরলীকরণের পুরো বিষয়টিটি আরও গ্যারান্টি দেয়। আপনি কোনও ভাষায় কোড সম্পর্কে আরও বেশি ধারনা নিতে পারবেন এমন যুক্তি পিছনের দিকে কম restrictions আরও বিধিনিষেধ -> আরও গ্যারান্টি।
জিমি জেমস

1
@ জিমি জেমস বাক্যাংশটির অর্থ এই যে, সমস্ত জাভা ক্লাসের অন্তর্নিহিত (ইয়াক, বিটিডাব্লু) রেফারেন্স সিমানটিকস থাকা সত্ত্বেও, আপনার প্রকৃত পয়েন্টার থাকতে পারে না। উদাহরণস্বরূপ, কোনও রেফারেন্সের জন্য "রেফারেন্স" পাওয়ার কোনও উপায় নেই। এটি ভাষাটিকে বেশ কয়েকটি জায়গায় বিকল করে দেয়, এককালের জন্য উন্মাদ কাজের প্রয়োজন হয় ( Map.mergeকখন আপনি কোনও মানচিত্রে কোনও মান আপডেট করতে চান তা দেখুন)।
কোয়ান্টিন

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

3
@ জিমি জেমস: অন্যদিকে, জাভা এবং "সেফ-মোড" সি এর আরও কয়েকটি মৌলিক বিধিনিষেধ তাদের একটি খুব কার্যকর গ্যারান্টির প্রস্তাব দেয় যে সি ++ করতে পারে না: কোনও রেফারেন্স (সি ++ এ কী পয়েন্টার হবে) যা সর্বদা কোনও নির্দিষ্ট বিষয় চিহ্নিত করার জন্য পর্যবেক্ষণ করা অন্য কিছু সনাক্ত করার জন্য কখনও পর্যবেক্ষণ করা হবে না ।
সুপারক্যাট

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

1

আমি @ কিলিয়ান উত্তরের সাথে একমত তবে আমি কিছু উপাদান যুক্ত করব।

1- ভার্চুয়াল মেশিনের বিরুদ্ধে চলছে ওএস নয়

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

2- টন অ্যাপ্লিকেশনগুলিতে আপনাকে এই জাতীয় স্টাফের প্রয়োজন হয় না।

এমন অনেকগুলি অ্যাপ্লিকেশন রয়েছে যেগুলি আপনাকে এত বেশি বিশদ আবিষ্কার করার দরকার নেই, তবুও যদি আপনি এমন কোনও ভাষা ব্যবহার করেন যা আপনাকে এটি করার প্রয়োজন হয়:

  • এই অপ্রয়োজনীয় জিনিসগুলির কারণে বাগ থাকা আরও ঝুঁকিপূর্ণ।
  • আরও বিকাশের ব্যয়, মেমরি পরিচালনা এবং এটি পরীক্ষা করতে সময় লাগে এবং এত টাকা লাগে!

3- ভাষা কিছু পছন্দ ওজন কমানো / ব্যবহার / ঝুঁকি, যেমন ... সবকিছু উপর তৈরি করা হয়।

সি ++ দিয়ে আপনি যা চান তা বেশ কিছু করতে পারেন, এটি সি ++ লোকের পছন্দ। তবে যত বেশি আছে ততই আপনাকে পরিচালনা করতে হবে।

সুতরাং একাধিক উত্তরাধিকারের মতো জিনিসগুলি কেবল বিপজ্জনক হিসাবে ছেড়ে দেওয়া হয় না, সেগুলি ছেড়ে দেওয়া হয় কারণ এগুলি বাস্তবায়নের জন্য একটি ব্যয় হয় (বিকাশ, তত্ত্বাবধান), এটির জন্য এমন কোনও বৈশিষ্ট্য যা খুব কমই সঠিকভাবে ব্যবহৃত হয় এবং পারে সাধারণত আলাদাভাবে নতুন করে লিখুন।


একাধিক উত্তরাধিকারের আসল ব্যয় নিহিত রয়েছে যে নিম্নলিখিত দুটি গ্যারান্টি ধরে রাখা সম্ভব নয়: (১) যদি বেস-ক্লাসের কোনও সদস্যকে Bমধ্যবিত্তে ওভাররাইড করা হয় Mতবে Bসেই সদস্যের সংস্করণটি কেবলমাত্র এর মাধ্যমে অ্যাক্সেসযোগ্য হবে M' s ওভাররাইড; (২) প্রকারের যে কোনও রেফারেন্স দেওয়া হয়েছে T, এটিকে যে কোনও সুপার-টাইপ এবং রূপান্তরিত Tকরে মূলটির সমতুল্য একটি রেফারেন্স পাওয়া যাবে। এই গ্যারান্টি উভয়ই দরকারী, এবং একাধিক উত্তরাধিকার সমর্থন করার জন্য কমপক্ষে একটি ত্যাগ করা প্রয়োজন।
সুপারক্যাট

-1

প্রোগ্রামারকে সুরক্ষিত করার জন্য কেবল সি # এবং জাভা যেমন উচ্চ স্তরের ভাষাগুলিতে সমস্ত বিধিনিষেধগুলি রাখুন। সেগুলি প্রোগ্রামারটিকে তার থেকে বাঁচানোর জন্য এতটা বিদ্যমান নয়, বরং প্রোগ্রামারটিকে অন্যান্য প্রোগ্রামার থেকে রক্ষা করার জন্য!

প্রোগ্রামারদের হিসাবে আমরা কতবার গ্রন্থাগারগুলির মুখোমুখি হই যা তাদের কোডিং অনুশীলন এবং ডিজাইনে নিখুঁতভাবে সচেতন ছিল কিন্তু আমরা এক কারণে বা অন্য কারণে ব্যবহার করতে বাধ্য হয়েছিলাম?

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

সেখানেই জাভা এবং সি # এর মতো ভাষা চূড়ান্তভাবে সহায়ক; এটি এমন নয় যে আমরা এই সত্যটি উপভোগ করি যে তারা আমাদের সমস্ত পরিষ্কার কাজগুলি অন্য ভাষাগুলি করতে দেয় না, এটি হ'ল আমরা যে মাথাব্যথার ঘাটতি সহ্য করতে পারি তা উপভোগ করি কারণ অন্যান্য প্রোগ্রামাররা যেসব পরিষ্কার-পরিচ্ছন্ন জিনিসগুলি অন্য ভাষাগুলি করতে পারে সেগুলি অপব্যবহার করবে না।

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


এই অফারটি কোন কিছুরই সৃষ্টি পয়েন্ট উপর সারগর্ভ বলে মনে হচ্ছে না এবং পূর্বে 5 উত্তর ব্যাখ্যা
মশা

1
They exist not so much to protect the programmer from him/herself, but rather to protect the programmer from other programmers!বা এটি প্রোগ্রামার থেকে অন্য প্রোগ্রামারদের রক্ষা করার জন্য?
টোবিয়া তিসান

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