ক্রস প্ল্যাটফর্ম লাইব্রেরি তৈরির জন্য আমার কোন ভাষাটি ব্যবহার করা উচিত? [বন্ধ]


10

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

আমি এটি সংকলন করতে সক্ষম হতে চাই এবং এটি যথাসম্ভব প্ল্যাটফর্মগুলিতে উপলভ্য করতে চাই: উইন্ডোজ, উইন্ডোজ ফোন 7 ওএস, ওএসএক্স, আইওএস, লিনাক্স, অ্যান্ড্রয়েড, ব্ল্যাকবেরি। মূলত যতগুলি সম্ভব প্ল্যাটফর্ম।

অগ্রাধিকার হ'ল এটি মোবাইল ডিভাইসে উপলব্ধ available

প্রশ্নাবলী:

  1. আমার কোন সেটআপ ব্যবহার করা উচিত? (প্রোগ্রামিং ভাষা, সংকলক, আইডিই ইত্যাদি)
  2. এই বিভিন্ন প্ল্যাটফর্মগুলির জন্য আমি এই গ্রন্থাগারটি কীভাবে সংকলন করব এবং কীভাবে আমি এটিতে সংযোগ করব?
  3. অন্য কোন তথ্য? যেমন নিবন্ধগুলি ক্রস প্ল্যাটফর্মের বিকাশের বিষয়টিকে অন্তর্ভুক্ত করে?

আমি আগে এই ধরণের ক্রস-প্ল্যাটফর্ম প্রকল্পটি করিনি, সুতরাং আমাকে সঠিক দিকে রাখার জন্য যে কোনও উপলভ্য তথ্য স্বাগত জানানো হবে।

নিজেই, আমার সি # /। নেট এবং অবজেক্টিভ-সি তে পটভূমি রয়েছে।

উত্তর:


8

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

নোট করুন যে জাভা প্ল্যাটফর্মের সুবিধার্থে আপনাকে জাভা ভাষা ব্যবহার করতে হবে না - বাস্তবে আজকাল যদি কোনও স্ক্র্যাচ থেকে কোনও প্রকল্প শুরু করা হয় তবে আমি সম্ভবত নিম্নলিখিতগুলির মধ্যে একটিটিকে পুনরুদ্ধার করতে পারি:

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

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

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

অন্যান্য বিকল্পের উপর চিন্তাভাবনা:

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

1
দুর্দান্ত উত্তরের জন্য ধন্যবাদ। আপনি কি জানেন যে কোনও একটি লাইব্রেরি বা কাঠামোর আকারে জাভা কীভাবে আইফোনে পোর্ট করতে পারে? এছাড়াও, ফানাম্বল ব্যবহার করতে পারবেন না, মূল কথাটি আমার নিজের লাইব্রেরি তৈরি করা।
আন্দ্রেই

2
আমি বুঝতে পারি অ্যাপল বর্তমানে আইফোনে জাভা সম্পর্কে বেশ সীমাবদ্ধ রয়েছে। আমি আশা করি বাজারে চাপ ভবিষ্যতে এটি আরও ঘটবে - এই নিবন্ধটি Therverside.com/discussion/thread.tss?thread_id=63072 উদাহরণস্বরূপ ওরাকল আইপড টাচে একটি জাভা ভিত্তিক অ্যাপ্লিকেশন প্রদর্শন সম্পর্কে আলোচনা talks
মাইক্রা

আমাকে প্রতি সেবা জাভা ব্যবহার করার প্রয়োজন না পড়ার জন্য শিক্ষিত করার জন্য +1, তবে কেউ স্কালা, ক্লোজার, গ্রোভি ব্যবহার করতে পারেন। আকর্ষণীয় উত্তর।
অ্যান্টনি

3

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


3

এটি এক পছন্দ নয় অনেকগুলি। এটি সর্বত্র যে কোনও জিনিস সন্ধান করার জন্য লোভনীয়, যদিও এটি সর্বদা সর্বোত্তম উপায় নয়।

  1. উদাহরণস্বরূপ, উইন্ডোজ মোবাইল প্ল্যাটফর্মে কোনও সি ++ কোডটি গ্রাস করা সম্ভব হতে পারে তবে .NET তার সমর্থনের দিক থেকে 'কাউন্টার অংশের চেয়ে এখানে সর্বদা সহজ হবে।

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

  3. আমার অনুমানের সবচেয়ে গুরুত্বপূর্ণ জিনিসটি হ'ল আপনি যে জিইআইআই তৈরি করতে চান তার ধরণ এবং স্তর।

এখন বেশিরভাগ প্রতিশ্রুতিবদ্ধ পছন্দগুলিতে আসছেন।

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

খ। উইন্ডোজ .NET জন্য কোনও সমর্থিত ভাষা ভাল হবে।

গ। আইওএস জন্য - কোন পছন্দ কিন্তু উদ্দেশ্য সি এই নয় খুব সি ++ তাই আমি একটি উদ্দেশ্য হিসাবে এটি গণনা করা হবে না

এখানে একটি উইকি রেফারেন্স রয়েছে যা সমস্ত প্ল্যাটফর্মের সেট দেখায় যা আপনাকে সমস্ত বিকল্প এবং যেখানে তারা প্রয়োগ করে তা দেখায়।

আপনার প্রশ্নের জন্য ধন্যবাদ, আমি উপরের উইকি লিঙ্কটি থেকে শিখেছি যে এখন এসডিকে রয়েছে, যারা উপরের সমস্যাটি সমাধান করার চেষ্টা করে। দু'টি নিকটে আসে:

  1. কমলালেবুর আচার: http://www.madewithmarmalade.com/marmalade/supported-platforms এই মজার সমর্থন প্রায় সব প্ল্যাটফর্মের। উইন্ডোজ সম্পূর্ণ বৃত্ত তৈরি করতে প্রায় যোগ হচ্ছে।

  2. কণা কোড: http://www.particlecode.com/

আমি সেগুলি এখনও ব্যবহার করি নি, তবে আকর্ষণীয় কাজ বলে মনে হচ্ছে।


অ্যান্ড্রয়েড বাডা এবং আইওএস সরবরাহ করে সি ++।
ক্লাইম

3

.NET অনেকগুলি প্ল্যাটফর্মে খুব কমই উপলব্ধ Ob সি হিসাবে একটি ভাষা মূলত বিবেচনা করার মতো নয় যদি না কোনও বাহ্যিক উপাদান আপনাকে এটি ব্যবহার করে তোলে।

কেবলমাত্র ফলস্বরূপ ভাষা হ'ল সি ++।


2
সি # এর সাথে মিশে মনো প্রকল্প ব্যবহারের সুবিধাগুলি সম্পর্কে আপনি কি কিছু জানেন? সি কেন বিবেচনা করার মতো নয়?
আন্দ্রেই

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

4
@ ডিএডএমজি: আমি আপনাকে লিনাস টোরভাল্ডসের সাথে এই বিতর্কটি দেখতে দেখতে চাই: থ্রেড.gmane.org/gmane.comp.version-control.git/57643/… - বলছেন না যে তিনি অবশ্যই 100% সঠিক হতে হবে, আমি ঠিক শিখার মত দেখতে।
মাইকেল বর্গওয়ার্ট

2
@ ডিডএমজি সি ভাল বৈশিষ্ট্যগুলি কাটা দিয়ে সি ++ নয়; সি ++ সি সহ ভয়ঙ্কর বৈশিষ্ট্য যুক্ত রয়েছে। সি
তে

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