কোনও প্রোগ্রামিং ভাষা থেকে প্রায় (প্রায়) আহ্বান করা যেতে পারে এমন ফাংশনগুলির একটি সেট আমি কীভাবে লিখব?


33

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


4
আপনি যদি কেবল বিপণনের কারণে "আমরা সমস্ত কিছু সমর্থন করি" বলতে সক্ষম হতে চান তবে আপনি কেবল সি-তে একটি নিম্ন-স্তরের ডিএলএল বা ভাগ করা লাইব্রেরি লিখতে পারেন, আপনি যদি জাভা বলতে চান যে কেউ আপনার জিনিস ব্যবহার করতে চান, আপনি চাইতেন আরও ভাল একটি জাভা ইন্টারফেস প্রদান।
mjfgates

1
আপনি "(প্রায়) কোনও" বলুন, কোন উদ্দেশ্যে কোন ভাষা এই উদ্দেশ্যে বাদ দেবেন? বা কোনটি আপনার কাছে সবচেয়ে গুরুত্বপূর্ণ?
ফানকিব্রো

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

7
+1 'কারণ এটি একটি আকর্ষণীয় প্রশ্ন - তবে কেন আপনি এটি করতে চান তা বলার মাধ্যমে আপনার প্রশ্নের উন্নতি হবে। তোমার লক্ষসমুহ কি?
তারকাডাল

@ পিটারবি => উত্তর।
কনরাড রুডলফ

উত্তর:


44

আপনার স্বল্প কিছু সু্যোগ আছে:

  1. একটি এইচটিটিপি ইন্টারফেস তৈরি করুন, প্রায় প্রতিটি জিনিসই এইচটিটিপি কথা বলতে পারে যাতে আপনার প্রচুর ভাষা পাওয়া যায়।

  2. এমন একটি ভাষা তৈরি করুন যা একটি ভাষা রানটাইমের সাথে সংযুক্ত করা যেতে পারে, এটি বরং সময় সাশ্রয়ী হবে কারণ আপনাকে এটিকে অনেকগুলি ভিন্ন ভাষায় সংযুক্ত করার উপায় খুঁজে বের করতে হবে।


বিশেষত আপনার মনে কী ধরণের HTTP ইন্টারফেস রয়েছে?
অ্যান্ডারসন সবুজ

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

7
REST + JSON হবে একটি যুক্তিসঙ্গত সমাধান
ডেভিড হেইস

আমি এও সম্মত হই যে, যোগাযোগ করতে এইচটিটিপি ব্যবহারের ফলে প্রত্যেকটি ভাষাকে আপনার অ্যাপ্লিকেশনটির কার্যকারিতার সাথে ইন্টারঅ্যাক্ট করতে দেয়।
কেবল বলিভিয়ান এখানে ২

30

আমি মনে করি সি বা সি ++ আপনার উদ্দেশ্যে সবচেয়ে উপযুক্ত হবে। আপনি আপনার সি বা সি ++ এপিআই থেকে ভাষার বাইন্ডিংগুলি তৈরি করতে এসডব্লিউআইজি (সরলীকৃত র‍্যাপার এবং ইন্টারফেস জেনারেটর) ব্যবহার করতে পারেন ।

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


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

14
@ এসকে-যুক্তি: সত্য নয়। সি এর জন্য সি টাইম লাইব দরকার। ABI এর মাধ্যমে সি ++ তে নিয়ন্ত্রণ করা যায় extern "C"তাই এটি বাইরের সি-সামঞ্জস্যপূর্ণ। সুতরাং, আপনার কাছে সি ++ (উচ্চতর ধরণের-সুরক্ষা, গ্রন্থাগারগুলি) এর অভ্যন্তরীণ সুবিধা রয়েছে তবে সি এর বাইরের সুবিধা (ডি ফ্যাক্টো এবিআই স্ট্যান্ডার্ড)
এমসাল্টার্স

3
@ এসকে-যুক্তিবিহীন এবিআই কেবলমাত্র একটি সমাধান সমস্যা, এসডাব্লুআইজি, বুস্ট.পাইটন এবং অন্যান্য ভাষার বাইন্ডিং দেখুন see
কনরাড রুডল্ফ

3
@MSalters ব্যতিক্রম এবং তাদের সাধারণ গ্রন্থাগার সীমানা জুড়ে অ workiness সম্পর্কে ভুলবেন না
sehe

3
সি ++ পরামর্শের জন্য -1। সি সহজ, সি ++ জিনিসগুলি অযথা শক্ত করে তোলে।
আর্নেস্ট ফ্রেডম্যান-হিল

23

বেশ কয়েকটি 2 উপায় আছে:

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

ব্যবহৃত সিস্টেমের উপর নির্ভর করে এই পরিবর্তনের জন্য প্রয়োজনীয় কাজটি উদাহরণস্বরূপ, একটি সকেট ইন্টারফেস কাজ করবে, তবে ক্লায়েন্ট-সাইড লাইব্রেরিগুলি http লাইব্রেরির তুলনায় আরও নিম্ন-স্তরের হয়ে থাকে।

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


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

আমি কি প্রতিটি ভাষার জন্য কেবল 3 টি আলাদা RESTful API লিখতে পারি?
অ্যান্ডারসন সবুজ

আপনি এই প্রতিটি ভাষাতে একটি নেটিভ র‍্যাপার লিখুন যা লোডিং এবং অন্তর্নিহিত সি ডেলিকে কল করে। অথবা এটি সি ++ এ লিখুন এবং আপনার জন্য এটি করতে এসডাব্লুআইজি ব্যবহার করুন। আপনি যদি কোনও REST এপিআই ব্যবহার করে থাকেন তবে একই প্রয়োগ হয়, হয় একটি একক এপিআই এবং তারপরে 3 টি র‍্যাপার লিখুন তবে আপনি যদি একটি REST এপিআই লিখছেন তবে প্রতিটি ভাষা সরাসরিই REST এপিআই কল করতে সক্ষম হবে - বিরক্ত করবেন না একটি মোড়ক দিয়ে।
gbjbaanb

ডিএল (গতিযুক্ত লিঙ্কড লাইব্রেরি) উইন্ডোজ ছাড়াও কোনও প্ল্যাটফর্মের সাথে সামঞ্জস্যপূর্ণ হবে? আমার এখানে ক্রস-প্ল্যাটফর্মের সামঞ্জস্যতা দরকার।
অ্যান্ডারসন সবুজ

না, আপনাকে অন্য প্ল্যাটফর্মগুলির জন্য এটি পুনরায় সংকলন করতে হবে। উদাহরণস্বরূপ লিনাক্স .dll এর পরিবর্তে .so ব্যবহার করে। কেবল একটি সরল রিকম্পাইল দরকার, কোনও (বা খুব গৌণ) কোড পরিবর্তন হয় না।
gbjbaanb

12

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


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

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

এইভাবে একটি কমান্ড-লাইন ইন্টারফেস ব্যবহার করতে, আপনি একটি নির্দিষ্ট কমান্ডের জন্য কনসোল আউটপুট পাবেন (যেমন whoamiব্যবহারকারীর নাম পেতে উবুন্টু), বা আপনার মনে অন্য কিছু আছে?
অ্যান্ডারসন গ্রিন

অ্যান্ডারসগ্রিন, পাইপিং স্টিডিন এবং স্টাডাউট বেশিরভাগ ক্ষেত্রেই পর্যাপ্ত হওয়া উচিত।
এসকে-যুক্তি

5

এপিআই দ্বারা, আপনার অর্থ কী?

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

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

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

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


2

উপরের উত্তরগুলিতে যুক্ত করতে যে কোনও আরপিসি প্রক্রিয়া ব্যবহার করার পরামর্শ দেয়। আপনি অ্যাপাচি থ্রিফ্ট ব্যবহার করতে পারেন (( http://thrift.apache.org/ )। এটি মূলত একটি আরপিসি কাঠামো।

থ্রিফ্ট উইকি অনুসারে:

স্কেবলযোগ্য ক্রস-ল্যাঙ্গুয়েজ পরিষেবাদি বিকাশের জন্য অ্যাপাচি থ্রিফ্ট সফ্টওয়্যার ফ্রেমওয়ার্ক, একটি কোড সফটওয়্যার স্ট্যাককে কোড জেনারেশন ইঞ্জিনের সাথে সংযুক্ত করে পরিষেবাগুলি তৈরি করে যা সি ++, জাভা, পাইথন, পিএইচপি, রুবি, এরলং, পার্ল, হাস্কেল, সি #, এর মধ্যে দক্ষতা এবং নির্বিঘ্নে কাজ করে services কোকো, জাভাস্ক্রিপ্ট, নোড.জেএস, স্মলটালক, ওক্যামেল এবং ডেলফি এবং অন্যান্য ভাষা


অ্যাপাচি থ্রিফ্ট ব্যবহার করে কীভাবে বিদেশী ফাংশন কল করা যেতে পারে?
অ্যান্ডারসন গ্রিন

0

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

সামগ্রী দেখতে দেখতে পারে:

Call-method:  fdisk()
Params:  (string) "/root", (string) "write-back-file-expected.txt"

;) আপনি হয়ত উত্তর পেতে চিরকালের জন্য অপেক্ষা করতে পারেন। আপনাকে অন্য প্রসেসে কয়েকটি বাইট চাপতে হবে, তবে আমি নিশ্চিত যে এটি পুরো অনুমান নয়।


যখন আপনার কেবল কমান্ড-লাইন ইন্টারফেস + স্টিডিন / স্টাডআউট থাকতে পারে তখন অতিরিক্ত জটিল মনে হয়।
মনিকা

1
এমনকি আরও ভাল কলটি এটি করতে পারেন ++ 1, ব্রেন্ডন। আমি কখনই এটি কার্যক্রমে দেখিনি তবে একবার লোকেরা চারপাশে বাইটগুলি স্থানান্তর করার জন্য কার্ডে ছিদ্র করছে ching
পরেশকুমার

4
এই একটি কৌতুক উত্তর, তাই না? আমরা এখানে এটি করি না।
আর্নেস্ট ফ্রাইডম্যান-হিল

ঠিক আছে, এফডিস্ক এবং / মূল অংশটি একটি রসিকতা, তবে আমি লক্ষাধিক ডলারের দশকে ভাল উত্পাদনকারী একটি প্ল্যাটফর্ম-পণ্য তৈরি করতে 5 বছরেরও বেশি সময় ধরে একটি প্ল্যাটফর্ম r & d (বিকাশকারী এবং বিশ্লেষক) হিসাবে যুক্ত ছিলাম। এটি ক্লায়েন্টের জন্য কয়েক মিলিয়ন শিপযোগ্য শারীরিক (পিডিএফ এবং ইমেল নয়) আইটেম (এই আইটিএসটি প্রতি এমবি কয়েকশত এমবি সমন্বিত ফাইলস প্রসেসিং) সহ আউটপুট দেয় RE আমাদের কাছে প্রধান সিস্টেম ট্রোলজি ছিল- এসএপি-এমএস অফিস-পিএলসি ড্রাইভারস-পিডিএফ ওয়ার্কফ্লো সমস্তই একে অপরের কাছে নিয়ে যায় এবং সরল-পুরাতন-ইউটিএফ-8-পাঠ্য ফাইল এবং একটি জিপ-এর সাথে একটি জিপ সহ ভালভাবে কাজ করে, এবং কোনও HTTP বিএস ওভারহেড নেই।
পরেশকুমার

আমি কি একটি প্রশ্ন করতে পারি? কেন কেউ জেএসএনকে রসিকতা মনে করে না? কীভাবে আমি অন্যরকম রেকমেন্ড করলাম? আমরা / জেএসন ব্যবহার করতে পারতাম তবে এটি ২০০৩ সালের দিকে ছিল না। এক্সএমএল খুব চর্বিযুক্ত, তবে সেই মাসের স্বাদটি ছিল সবচেয়ে সাধারণ এবং সহজতম আত্মা নয়।
পরেশকুমার

0

ওপেনজিএল আপনি যা বর্ণনা করেছেন তার একটি দুর্দান্ত উদাহরণ - এটি সি এ লিখিত একটি এপিআই, অন্য ভাষায় বাইন্ডিং লিখতে সহজ এমন উপায়ে তৈরি করা হয়েছে

  1. সি লাইব্রেরিগুলি বেশিরভাগ প্রোগ্রামিং ভাষা থেকে কল করা যেতে পারে (সাধারণত সংকলিত এক্সটেনশন বা পিপি ctypesলাইব্রেরির মতো জিনিস ইত্যাদি)

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

  3. এটির নিজস্ব সংখ্যাযুক্ত ডেটা-টাইপগুলি রয়েছে, যা নির্ভুলতা এবং সাইনডনেস নির্দিষ্ট করে (অন্যদিকে int floatপৃথক হতে পারে)

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

এই ভার্জোজ এপিআই এর উপরে, আপনি এর চারপাশে আরও "বিকাশকারী বান্ধব" মোড়ক লিখতে পারেন (গেম ফ্রেমওয়ার্ক এবং এ জাতীয়)

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