প্রোগ্রামিং প্রতিযোগী প্রতিযোগীরা কেন সি ++ এবং জাভা ব্যবহার করবেন? [বন্ধ]


94

এই বছরের গুগল কোড জ্যাম প্রতিযোগিতায় প্রতিযোগিতা এবং অনুসরণ করার পরে , আমি সাহায্য করতে পারিনি তবে সি / সি ++ এবং জাভা ব্যবহারকারী [সফল] প্রতিযোগীদের অবিশ্বাস্য সংখ্যাটি লক্ষ্য করতে পারি। প্রতিযোগিতা জুড়ে ব্যবহৃত ভাষা বিতরণ এখানে দেখা যায় ।

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

এটি স্পষ্ট যে প্রতিযোগী প্রতিযোগীর চ্যালেঞ্জের জন্য সবচেয়ে উপযুক্ত উপযুক্ত সরঞ্জামগুলি ব্যবহার করা উচিত। এমনকি x86 বিধানসভা টিউরিং সম্পূর্ণ - এটি এটির সাথে সমস্যার সমাধানকে ন্যায়সঙ্গত করে না। এই ক্ষেত্রে, কেন প্রতিযোগী যে প্রকল্প / পাতার মর্মর, Prolog মত কম প্রচলিত ভাষায় ব্যবহার জাভা ব্যবহারের সি / সি প্রতিযোগী চেয়ে আরও পাইথন উল্লেখযোগ্যভাবে কম সফল ++ এবং, এবং? অন্যভাবে বলা হয়, সফল প্রতিযোগীরা কেন এমন ভাষা ব্যবহার করবেন না যেগুলি যদিও মূলধারার চেয়ে কম, তবুও কাজের জন্য তাত্ক্ষণিকভাবে আরও ভাল সরঞ্জাম?

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


11
আমি ধারণা করি মৃত্যুদন্ডের গতি একটি কারণ হতে পারে।
জাকি

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

11
গতিশীল ভাষাগুলিতে একটি বিশাল পারফরম্যান্স সমস্যা রয়েছে: মাপদণ্ড দেখুন
নাল ইউজারএক্সেপশন

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

উত্তর:


69

দুর্দান্ত প্রশ্ন! যেহেতু কেউ প্রোগ্রামিংয়ে ছড়িয়ে পড়েছে সে নিজেকে কিছুটা প্রতিযোগিতায় ফেলেছে, আমার কিছু বলার আছে।

[আসুন স্ট্যান্ডার্ড অস্বীকৃতিটি এড়িয়ে চলুন: প্রতিযোগিতা প্রোগ্রামিং কেবল "বাস্তব জগতের প্রোগ্রামিং" এর সাথে সম্পর্কিত, এবং যখন এটি অ্যালগরিদমিক এবং সমস্যা সমাধানের দক্ষতা এবং দ্রুত বাগ-মুক্ত ওয়ার্কিং কোডের সাথে দ্রুত আসার ক্ষমতা পরীক্ষা করে while সময়ের চাপ, এটি অগত্যা বৃহত সফ্টওয়্যার প্রকল্পগুলি নির্মাণ, রক্ষণাবেক্ষণযোগ্য কোড ইত্যাদির সাথে সংযুক্ত থাকতে পারে না (সত্য-কাঠামোগত প্রোগ্রামগুলি ডিবাগ করা সহজ fact এর বাইরেও)]]

এখন কিছু উত্তরের জন্য:

  • সি ++ / জাভা বাস্তব বিশ্বের অন্যান্য ভাষার চেয়েও বেশি সাধারণ, তাই আপনি কোথাও কোথাও একটি উচ্চ অনুপাত দেখতে আশা করবেন। (তবে এটি প্রতিযোগিতার জনসংখ্যায় আরও বেশি))

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

  • স্কুল- এবং কলেজ-পর্যায়ের প্রতিযোগিতাগুলি সাধারণত এই ভাষাগুলি ব্যবহার করে। ইন্টারন্যাশনাল অলিম্পিয়াড ইন ইনফরম্যাটিকস (আইওআই) কেবলমাত্র সি, সি ++ এবং পাস্কালকে অনুমতি দেয় (বা সম্ভবত এটি এখন জাভা দেয়; আমি রাখি নি), এবং এসিএম ইন্টারকোলজিয়েট প্রোগ্রামিং প্রতিযোগিতা (এসিএম আইসিপিসি) কেবল সি, সি ++ এবং জাভা অনুমতি দেয়। টপকোডার সি ++, জাভা, সি # এবং ভিবি (সত্য: পি) অনুমতি দেয়; এবং সম্প্রতি, পাইথন সুতরাং আপনি বলতে পারেন "প্রতিযোগিতামূলক বাস্তুসংস্থান" এর মধ্যে আরও সি ​​++ / জাভা প্রোগ্রামার রয়েছে। গুগল কোড জ্যাম এবং আইপিএসসি এমন কয়েকটি প্রতিযোগিতার মধ্যে রয়েছে যা কোনও ভাষায় কোডের অনুমতি দেয় actually

  • এখন প্রশ্নটি হচ্ছে, জিসিজে যেখানে প্রতিযোগীরা কোনও ভাষা বেছে নিতে পারে সেখানে তারা পাইথন বা স্কিমটি বেছে নেবে না কেন? সর্বাধিক প্রাসঙ্গিক বিষয়টি হ'ল এই ভাষাগুলি ধীর । অবশ্যই, বেশিরভাগ আসল-ওয়ার্ল্ড প্রোগ্রামিংয়ের জন্য এগুলি সহজেই দ্রুত পর্যাপ্ত হয় তবে সমস্ত পরীক্ষার ক্ষেত্রে এন-সেকেন্ড সীমাতে চালিত হওয়ার প্রোগ্রামটি প্রায়শই জড়িত সেই আঁট লুপগুলির জন্য, এই ভাষাগুলির কোনওটির জন্য এটি কাটবে না don't আলগোরিদিম আরও জড়িত সমস্যা। (ও (এন লগ এন) সমাধানগুলি গ্রহণ করার জন্য তৈরি সমস্যা তবে সি / সি ++ এর সমাধান নয় Θ (এন 2 ) সমাধানগুলি ধীরে ধীরে ধীরে ধীরে আরও ভাল ও (এন লগ এন) সমাধানগুলি নিয়ন্ত্রন করে Even এমনকি জাভাতে প্রতিবন্ধকতা দেওয়া হত used ইউএসএসিও; আমি এখনও নিশ্চিত নই যে এটি এখনও আছে।)

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

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

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


4
আমি রাজী; যেমনটি আমি বলেছি, গ্রন্থাগারের অস্তিত্ব তুলনামূলকভাবে খুব সামান্য বিষয়। আপনি যদি মনে করেন আমি এটি অত্যধিক করে দিয়েছি তবে আমি এটি সরিয়ে ফেলতে পারি।
শ্রীভাতসার

4
দ্বিতীয় থেকে শেষ বুলেট পয়েন্টে জাভা সম্পর্কে সেই বিটটি মোটেই সত্য নয়। জিসিজে শীর্ষ প্রতিযোগীদের অনেকে জাভা ব্যবহার করেন।
নাল ইউজারএক্সেপশন

4
[! ফাইনালে অন্যান্য অংশগ্রহণকারী ( "linguo") ব্যবহার পাইথন, এবং প্রতিযোগীতার মাধ্যমে LOLCODE, Piet, মিথ্যা, সাদা ব্যবধান, এবং FRACTRAN সহ ভাষায় ব্যবহার করেছে]
ShreevatsaR

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

4
@ ইভজেনিসারজিভ আপনার বক্তব্যটি আইওআই / টপকোডার এর মতো বেশিরভাগ প্রোগ্রামিং প্রতিযোগিতার ক্ষেত্রে সত্য, তবে জিসিজে বিশেষত, সময় সীমাটি সাধারণত বড় ইনপুটটির জন্য 8 মিনিট হয় এবং সমস্যাগুলি সাধারণত নকশা করা হয় যাতে পাইথন সমাধানগুলিও পাস করতে পারে। এমনকি 10 বছর আগে থাম্বের নিয়ম প্রতি সেকেন্ডে ~ 10 ^ 9 "সাধারণ" ক্রিয়াকলাপ ছিল, সুতরাং যেমন ও (এন ^ 2) কে Ω (n ^ 3) থেকে আলাদা করতে আমাদের কেবল n ^ 2 <10 ^ 9 * 60 প্রয়োজন * 8 <n ^ 3, বা মোটামুটি 8000 <n <692000. আপনি n = 20000 নিতে পারেন, এবং n ^ 2 এছাড়াও একটি 400x ধীর ভাষায় (10 ^ 9/400 প্রতি এস) নিতে কেবল 160 সেকেন্ড সময় লাগবে, এমনকি দ্রুত n ^ 3 লাগবে 8000 সেকেন্ড।
শ্রীভাতসার আর

14

গুগল এআই প্রতিযোগিতার প্রতিযোগীদের চক্রান্ত করার জন্য জেরি কফিনের ধারণাটি আমি পছন্দ করেছি, তাই আমি সমস্ত ফলাফল নিয়ে সেগুলি প্লট করেছিলাম (গণিত গড়, মানক বিচ্যুতি, এবং তারপরে এক্সেলের সাধারণ বন্টন কার্ভগুলি আঁকিয়েছি)।

লুয়া এবং জেএসের সাথে, এটি পেয়েছেন:

ছাড়া (কয়েকটি প্রতিযোগী ছিল, সুতরাং ফলাফলগুলি স্কিউ করা হতে পারে):

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


তবে, গুগল কোড জ্যাম সম্পর্কে জিজ্ঞাসা করা প্রশ্ন এবং গুগল এআই প্রতিযোগিতা নয় (আপনার উত্তরটি আমি প্রথমে শুনছি), সুতরাং গুগল কোড জ্যামের জন্য এই গ্রাফগুলি আঁকানো আরও প্রাসঙ্গিক হতে পারে। আসলে, প্রশ্ন ইতিমধ্যে এই জাতীয় পরিসংখ্যানের উল্লেখ করেছে (2010) ; আরো দেখুন 2011 , 2012 , 2013 এবং (এই সময়ে প্রগতিতে) 2014
শ্রীভাতসার

12

কেন আমরা সবাই ইংরাজী বলি এবং এস্পেরান্তো না ? ঠিক আছে, এটা ঠিক তাই ঘটেছে। যদিও ইংরাজী অসঙ্গত এবং স্ফীত এবং এস্পেরান্তো ইচ্ছাকৃতভাবে 'আরও ভাল সরঞ্জাম' হিসাবে ডিজাইন করা হয়েছে।

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

আর একটি কারণ হবে গতি। যদিও এটি গুগল কোড জ্যামের সমস্যা নয়, প্রায় সমস্ত প্রতিযোগিতায় 2x গতির ফাঁক 'স্বীকৃত' এবং 'সময়সীমা' রায়গুলির মধ্যে পার্থক্য।
অন্য কথায়, যদি সি ++ এ অনুকূলতম অ্যালগরিদম রুবির তুলনায় 10 গুণ দ্রুত গতিতে চলে আসে তবে এর অর্থ হতে পারে যে সি ++ এ উপ-অনুকূল অ্যালগরিদম এখনও রুবির একটি ভাল চেয়ে দ্রুততর হবে। এবং প্রতিযোগীতার লেখকরা সাধারণত ও (এন ^ 2) জমা দেওয়ার অনুমতি দিতে চান না, যদি ও (এন * লগন) অর্জন করা যায়।


7
আপনার উপমা সম্পর্কে কেবল একটি মন্তব্য: এস্পেরান্তো তার লক্ষ্যগুলিতে মারাত্মকভাবে ব্যর্থ হয়। এর শব্দগুলি জামেহনফের পোলিশ ভাষার উপভাষার চেয়ে অনেকটা হুবহু এবং এর ব্যাকরণ অপ্রাকৃত এবং জটিল। এটি কোনওভাবেই একটি ভাল সর্বজনীন ভাষা নয়; ক্লিঙ্গন, বিভিন্নভাবে, প্রাকৃতিক মানব ভাষার মতো দেখতে আরও ভাল কাজ করে। আমি ধারণা করতে পারি যে, সি ++ এবং জাভাতে এর মধ্যে সাদৃশ্য রয়েছে তবে এটি অন্যায় হবে :) ( xibalba.demon.co.uk/jbr/ranto দেখুন ।)
আন্টাল স্পেক্টর-জাবুসকি

4
@ আন্টাল ওয়েল, উপমাটি ত্রুটিযুক্ত হতে পারে তবে আপনি আমার বক্তব্য পান। আপনার এবং আমার মধ্যে, আমি
এস্পেরেন্টোও

(প্রাকৃতিক) ভাষা উপজাতির সদস্যপদের একটি ব্যাজ , এবং প্রোগ্রামিং ভাষাগুলি একই
চাপগুলির

12

প্রথমে, আমি আপনার ভিত্তি সম্পর্কে প্রশ্ন করব [সম্পাদনা করুন: বা আমি কী হতে চাই প্রতিযোগিতা - যে প্রতিযোগীরা সি ++ এবং জাভা ভাড়া প্রায় সমানভাবে ব্যবহার করছেন] using উদাহরণস্বরূপ, গুগলের সাম্প্রতিক এআই প্রতিযোগিতায় প্রথম 100 জায়গায় এবং শেষ 100 স্থানগুলিতে আগত এন্ট্রিগুলির জন্য কী কী ভাষা ব্যবহৃত হয়েছিল তা এখানে :

বিকল্প পাঠ

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

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

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


4
ঠিক আছে, দেখে মনে হচ্ছে যে শীর্ষস্থানীয় অংশগ্রহণকারীরা বেশিরভাগ সি ++ / সি # ব্যবহার করেছেন এবং তাদের মধ্যে কয়েকজন পাইথন / হাস্কেল / লিস্প / স্কিম / রুবি / প্রোলোগ ব্যবহার করেছেন, যা প্রশ্নের ভিত্তি শক্তিশালী করে, তাই না? প্রশ্নটি নিজেদের মধ্যে সি ++ এবং জাভা তুলনা করার ছিল না (যদিও এটি আকর্ষণীয়, ধন্যবাদ) তবে এর মতো কিছু: "শীর্ষে" সুন্দর "ভাষা কেন কম সফল? ভাল প্রতিযোগীরা (যারা সম্ভবত অনেক ভাষাগুলি জানেন) কেন এর একটি বাছাই করবেন না? " তবে আমি সম্মত হই যে পরিচিতি অন্যতম প্রধান কারণ।
শ্রীভাতসার

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

4
আমার নাইট-পিকিন ক্ষমা করুন তবে এটি একটি লাইনের গ্রাফের চেয়ে বার
বার্ট হতে হবে

আহারে. আমি এমন একটি চার্ট তৈরির জন্য সংগ্রাম করছি যা এক ঘন্টা ধরে বোঝায়, এবং আমি অগ্রগতি করছি না making এক্সেল এবং গুগল স্প্রেডশিটগুলি আমাকে বোকা বোধ করে।
তাতিয়ানা রাচেভা

লিস্প প্রযুক্তিগতভাবে সি / সি ++ ম্যাক্রো প্রিপ্রসেসর হিসাবে ব্যবহার করা যায় না ...? আপনি এটি দেখতে এমন একটি চেহারা তৈরি করতে পারেন যা আপনি একটি সি ++ প্রোগ্রাম জমা দিয়েছেন তবে বাস্তবে আপনি লিস্পে কোড করেছেন!
aoeu256

12

প্রায় সমস্ত গুগল কোড জ্যাম রাউন্ডে, সি ++ তে উচ্চ-পারফরম্যান্স প্রতিযোগীদের কোডের বেশি।

গুগল কোড জ্যাম 2012 রাউন্ড 1 এ, 1 বি, এবং 1 সি (উপরে নীচে তালিকাভুক্ত) এর ভাষার পরিসংখ্যানগুলি নীচে রয়েছে। প্রতিটি রাউন্ডে প্রতিযোগীর সংখ্যা যথাক্রমে 3,686, 3,281 এবং 3,189।

গুগল কোড জ্যাম 2012 রাউন্ড 1 এ থেকে ভাষার পরিসংখ্যান গুগল কোড জ্যাম 2012 রাউন্ড 1 বি থেকে ভাষার পরিসংখ্যান গুগল কোড জ্যাম 2012 রাউন্ড 1 সি থেকে ভাষার পরিসংখ্যান


8

মজার প্রশ্ন, সম্ভবত সম্প্রদায় উইকি হওয়া উচিত।

দেশগুলির দ্বারা চূড়ান্ত প্রার্থীদের সংখ্যা দেখুন: http://www.go-hero.net/jam/10/regions । পূর্ব ইউরোপ এবং রাশিয়া থেকে মানুষ লক্ষ্য করুন। এই জায়গাগুলিতে বেশ কয়েকটি শক্তিশালী সি ++ সম্প্রদায় রয়েছে পাশাপাশি জাভাও রয়েছে বেশ কয়েকটি কারণে।

বাছাইপর্বে নম্বর ভাষা দেখুন: http://www.go-hero.net/jam/10/languages/0 এবং ফাইনাল: http://www.go-hero.net/jam/10/languages/6 । সি ++ অর্ধেকেরও কম শুরু হয় এবং ফাইনালে 75 শতাংশ থাকে। হয় ভাল প্রোগ্রামার সি সি ++ বা সি ++ কে প্রোগ্রামার করে তোলে। সম্ভবত আপনি যখন সি ++ আয়ত্ত করবেন তখনই অন্যান্য জিনিসগুলি তুচ্ছ হয়ে উঠবে।

যদিও আপনি নিজের সিদ্ধান্তটি আঁকতে নির্দ্বিধায় রয়েছেন।


5

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


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

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

3

ওএমজি ... লোকেরা সমস্ত পরিসংখ্যান এবং চিত্রের মধ্য দিয়ে যাচ্ছে!

বেসিকগুলি ভুলে যাওয়া যাক না .. এগুলি কেবলমাত্র দুটি ভাষা (বেশিরভাগ) যা কলেজ / স্কুলগুলিতে লোকদের শেখানো হয় ...!

উত্তর দিতে পারে ভারী ভিড়!


3

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


2

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


2

মনে রাখবেন যে সি ++ কেবল সমস্ত প্রতিযোগীদের মধ্যে সংখ্যাগরিষ্ঠ নয়, তবে চক্রের অগ্রগতির সাথে সাথে তার শতাংশ ঠিক রাখে এবং উন্নতি করে চলেছে।

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

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

গুগলের সমর্থন কয়েকটি ভাষা ব্যতীত বড় বড় প্রতিযোগিতা, তবে এখনও পাস্কাল বা। নেট জাভা স্তরের কাছাকাছি নয় কেন তা ব্যাখ্যা করতে পারে না (যেহেতু তারা বড় প্রতিযোগিতার ইভেন্টগুলিতে সমানভাবে সমর্থিত হওয়ার ঝোঁক রয়েছে)।

এই প্রতিযোগিতায় সেরা কোডারগুলি প্রচুর ভাষা জানেন। তবে তারা এখনও রাউন্ডগুলির সময় সি ++ ব্যবহার করতে পছন্দ করে এটি প্রথমে "শিখেছি সি ++" এর চেয়ে বড় কারণের জন্য হতে হবে।

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

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

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