আমি ওএসএক্স-এর জন্য একটি ছোট ইঞ্জিন লিখেছি (গ্রাফিক্স উইন্ডোর জন্য ওপেনগ্ল ব্যবহার করে)। সি ++ গেম ইঞ্জিনগুলির সাথে আমার কিছু অভিজ্ঞতা আছে ( http://morganjeff.weebly.com/ ) এবং এটি সরবরাহ করে এমন কয়েকটি বৈশিষ্ট্য সম্পর্কে পড়ার পরে গো চেষ্টা করার সিদ্ধান্ত নিয়েছি।
গো 1.1 রিলিজ গোতে গেম ইঞ্জিনটি লেখার জন্য আমার প্রয়োজনীয় বৈশিষ্ট্যগুলির বেশিরভাগের জন্য সমর্থন রয়েছে (প্রকৃতপক্ষে একটি ইঞ্জিন হিসাবে গেম কোরটি সম্পাদকদের পরামর্শ দেয় এবং কী না) সহ:
- সদস্য ফাংশন বাইন্ডিং (মেসেজিং সিস্টেমের জন্য)
- প্রতিবিম্ব অন্তর্নির্মিত (সিরিয়ালাইজেশন, বাহ্যিক সরঞ্জাম সমর্থন ইত্যাদির জন্য দরকারী)
- ইন্টারফেস (সিস্টেম, উপাদান ইত্যাদির জন্য বহুমুখী আচরণ বাস্তবায়নের জন্য)
গো (একটি বড় প্রকল্পের জন্য) ব্যবহারের কিছু সুবিধা:
- টেস্টিং ভাষাতে অন্তর্নির্মিত হয় (এতে মাপদণ্ডের পরীক্ষা এবং কিছু স্বীকৃতি অন্তর্ভুক্ত থাকে)
- উদাহরণগুলি ভাষায় যুক্ত করা সহজ (এবং সেগুলি সংশোধনের জন্য সংকলিত হয়েছে)
- আর্কিটেকচার নির্দিষ্ট কোড যুক্ত করা সহজ (ফাইল নামকরণ কনভেনশনগুলির মাধ্যমে)
- প্রোফাইলিং ভাষায় অন্তর্নির্মিত
- আমদানির অন্তর্নির্মিত সংস্করণ (উত্স থেকে আপ টু ডেট রাখার সময় উত্স থেকে পৃথক ভান্ডারগুলিতে বড় বাইনারি যুক্ত করার অনুমতি দেয়)
সাধারণভাবে যান ব্যবহারের কিছু সুবিধা:
- রিফ্যাক্টর কোডে সহজ
- গো থ্রেডিং সমর্থন করে (সি ++ এর বিপরীতে যা উপরে এটি স্তরযুক্ত)
- সুপার দ্রুত সংকলন গতি স্ক্রিপ্টিং ভাষা সমর্থন জন্য প্রয়োজনীয়তা হ্রাস
- স্ট্যাটিক টাইপিং সিস্টেম (ইন্টারফেসগুলি হাঁসের টাইপিংয়ের মাধ্যমে পুরোপুরি সন্তুষ্ট হয়)
- একাধিক রিটার্ন মান, নামযুক্ত প্যারামিটার, ট্যাগ স্ট্রাক বৈশিষ্ট্য
- দুর্দান্ত বিল্ট-ইন সরঞ্জাম এবং ডকুমেন্টেশন
- পরিচালিত ভাষা
গো ব্যবহারের কিছু ডাউনসাইড:
- কোনও ম্যাক্রো বা টেম্পলেট নেই
- আরও পরিপক্ক ভাষার লাইব্রেরির সমর্থন নেই
- পরিচালিত ভাষা (উদ্দেশ্য অনুসারে দু'বার তালিকাভুক্ত)
- কোন আইডিই
গো-র কাঁচা স্মৃতি পাওয়ার উপায় আছে ("অনিরাপদ" আমদানি করুন) এবং আমি একটি নিবন্ধ যুক্ত করব যা দেখায় যে কীভাবে একটি গো প্রোগ্রাম মেমরি এবং গতির জন্য প্রোফাইল করা যায়। সব মিলিয়ে গো এর দাবি যে এটি একটি আধুনিক সি খুব সত্য বলে মনে হচ্ছে। আমি মনে করি এটি "স্মার্টলি" ডিজাইন করা হয়েছে (আমি উল্লেখ করার চেয়ে অনেক বেশি কারণে) এবং আরও গুরুত্বপূর্ণ বিষয় এটি ভাল নথিভুক্ত। গো-তে ডিজাইন করা একটি ইঞ্জিন সি ++ এ ডিজাইন করা ইঞ্জিনের চেয়ে কিছুটা আলাদা হতে চলেছে (যা আমি এখনও অভ্যস্ত হয়ে উঠছি) তবে গো ইঞ্জিনটি অনেকগুলি সমস্যার সমাধান করে যা সত্যিকার অর্থে সি ++ এ সমাধান করা হয় না (যেমন সমান্তরালতা, সি ++ এর ভাষার জটিলতা এবং উত্তরাধিকারের ভুল ব্যবহার)
আমি যে নিবন্ধটি প্রতিশ্রুতি দিয়েছি তা এখানে:
http://blog.golang.org/2011/06/profiling-go-programs.html
-Jeff