কোন স্ক্রিপ্টিং ভাষায় আপনি কী খুঁজছেন? [বন্ধ]


10

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

কোনও বিবরণ প্রকাশ না করে (পক্ষপাত এড়ানোর জন্য) আমি জানতে আগ্রহী:

গেম বিকাশের জন্য আপনি কোন স্ক্রিপ্টিং ভাষায় কোন বৈশিষ্ট্যগুলি পছন্দ করেন?

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

  • ভাষার বৈশিষ্ট্য (ল্যাম্বডাস, ক্লাস, সমান্তরালতা)

  • বাস্তবায়ন বৈশিষ্ট্য (পারফরম্যান্স অপটিমাইজেশন, জেআইটি, হার্ডওয়্যার এক্সিলারেশন)

  • সংহত বৈশিষ্ট্য (সি, সি ++, বা। নেট বাইন্ডিং)

  • বা সম্পূর্ণ ভিন্ন কিছু?


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

1
@ র্যান্ডলফ: ভালো কথা। অস্পষ্টতার সাথে একমাত্র সমস্যা হ'ল এটি স্থিতিশীল ভাষার উপর নির্ভর করে, যা তরুণ ভাষাগুলি নয়। ০.১০ এর সাথে কাজ করে এমন একটি অবলম্বনকারী 0.11 এর সাথে কাজ করতে পারে না।
জন পুরে

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

5
@ র্যান্ডল্ফ: পার্ল কখন এমন দেখায় না?
কেন

1
@ জো ফ্রেসনিগ এটি বলছেন যে 'আমার কোনটি বেছে নেওয়া উচিত', এটি আরও 'স্ক্রিপ্টিং ভাষায় কোন বৈশিষ্ট্যগুলি ভাল'।
কমিউনিস্ট হাঁস

উত্তর:


4

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

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

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

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

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


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

2

ওয়েব-ভিত্তিক গেমিংয়ের জন্য, আমার জন্য তিনটি গুরুত্বপূর্ণ কারণ হ'ল:

  • ঘনিষ্ঠতা
  • দ্রুততা
  • মিশ্রণ

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

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


2

(হ্রাস) গুরুত্বের ক্রমে সাজানো:

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

+1 এটি আমাকে কিছুটা সাহায্য করে, আপনাকে ধন্যবাদ। আমি আরও কিছু আলোচনা আছে কিনা তা দেখার জন্য অপেক্ষা করব, তবে আমি মনে করি আপনি এটি ভালভাবে আবৃত করেছেন।
জন পুরে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.