java কশন ক্রস প্ল্যাটফর্ম বিকাশের জন্য নেট/মনো বা জাভা ভাল পছন্দ?




জাভা সুইং (12)

জাভা চেয়ে Mono জন্য কত কম লাইব্রেরি আছে?

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

  • কর্মক্ষমতা (উদাহরণস্বরূপ, আমি জাভা বলা হল থ্রেডিংয়ের জন্য ভাল, এবং আমি শুনেছি রানটাইম কোড অপ্টিমাইজেশান সম্প্রতি .NET এর জন্য খুব ভাল হয়ে গেছে)
  • বাস্তব বিশ্বের পোর্টেবিলিটি (এটি উভয় পোর্টেবল হতে বোঝানো হয়, প্রতিটি জন্য ক্যাচ 22 কি?)
  • টুল প্রাপ্যতা ( CI , অটোমেশন, ডিবাগিং, আইডিই তৈরি করুন)

আমি বিশেষত যা খুঁজছি তার চেয়ে বরং আপনার নিজের কাজের অভিজ্ঞতার জন্য আমি সন্ধান করছি। আমার আবেদন সময়সীমা থেকে তথ্য বৃহৎ পরিমাণে একটি ব্যাক-শেষ সেবা প্রক্রিয়া হবে।

আমার প্রধান টার্গেট প্ল্যাটফর্ম লিনাক্স হবে।

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

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


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

উইন্ডোজ প্লাটফর্মে .NET এর জন্য প্রচুর সরঞ্জাম রয়েছে যদিও আমি এগুলি সব প্ল্যাটফর্ম জুড়ে আরও সরঞ্জাম প্রাপ্যতা বলব।

2014 জন্য আপডেট

আমি এখনও ২014 সালে এই মতামত ধরে রেখেছি। তবে, আমি সত্যিই বলছি যে মনোনিবেশ না করার সময় দীর্ঘক্ষণ পরে আমি মনো মনোযোগে কিছু মনোযোগ দিতে শুরু করছি, সুতরাং মোনো রানটাইম (অথবা ইকোসিস্টেমে উন্নতি হতে পারে) ) যে সম্পর্কে সচেতন করা হয়েছে না। AFAIK, এখনও WIF এর WPF, WCF, WF, জন্য কোন সমর্থন নেই। মোনো আইওএস চালাতে পারে, কিন্তু আমার জ্ঞানের জন্য, জাভা রানটাইম এখনও মোনো থেকে অনেক বেশি প্ল্যাটফর্মে চলে। এছাড়াও, মোনো কিছু উন্নত টুলিং (জ্যামারিন) দেখতে শুরু করেছে এবং মাইক্রোসফ্ট অনেক বেশি ক্রস-প্ল্যাটফর্মের মনোভাব এবং অংশীদারদের সাথে তুলনামূলকভাবে প্রতিযোগীতার তুলনায় কাজ করার ইচ্ছা প্রকাশ করেছে বলে মনে হয় (উদাহরণস্বরূপ, মোনো হবে আসন্ন ওভিন / হিলিওস ASP.NET আড়াআড়ি একটি চমত্কার গুরুত্বপূর্ণ অংশ)। আমি সন্দেহ করি যে আগামী বছরগুলিতে পোর্টেবিলিটিয়ের পার্থক্যগুলি দ্রুত হ্রাস পাবে, বিশেষ করে নেটের মাধ্যমে খোলা থাকা সত্ত্বেও।

2018 জন্য আপডেট করুন

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

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


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

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


জাভা ক্রস প্ল্যাটফর্ম হতে ডিজাইন করা হয়েছে; সি # / নেট ছিল না। সন্দেহ থাকলে, আপনার উদ্দেশ্যের জন্য পরিকল্পিত সরঞ্জামটি ব্যবহার করুন।

সম্পাদনা করুন: ন্যায্যতার সাথে, .NET এম্বেডেড / পিসি / সার্ভার পরিবেশগুলিতে কাজ করার জন্য ডিজাইন করা হয়েছে, যাতে ক্রস-প্ল্যাটফর্মের SORT হয়। কিন্তু এটি লিনাক্সের জন্য ডিজাইন করা হয়নি।


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

স্ট্যাক ওভারফ্লোতে পর্যাপ্ত শব্দ নেই যা ন্যূনতম জাভা প্রচেষ্টার জন্য নেট / মোনোতে (অন্তত আমার অভিজ্ঞতায় 3 ...) একাধিক প্ল্যাটফর্ম বনাম প্রচলিত কিছু কিছু পেতে এবং এটি কার্যকর করা কতটা সহজ।


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

বিপরীতে, মনও অবশ্যই নেটের ইকোসিস্টেমের দ্বিতীয় শ্রেণীর নাগরিক।

আপনার লক্ষ্য গ্রাহকগণের উপর নির্ভর করে, আপনিও মোনো ব্যবহার করার বিরুদ্ধে প্রকৃত pushback খুঁজে পেতে পারেন - নোভেল কি মোনোর জন্য একই ধরণের বিক্রেতা সমর্থন দেয় যা আপনি জাভা বা উইন্ডোজ নেটওয়ার্কে পেতে পারেন?

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


আমি আসলেই .NET এ বিকাশ করি, প্রথমে আমার সমস্ত পরীক্ষা মোনোতে এবং তারপর উইন্ডোজগুলিতে চালান। এই ভাবে আমি আমার অ্যাপ্লিকেশন ক্রস প্ল্যাটফর্ম জানি। আমি এটি ASP.NET এবং Winforms অ্যাপ্লিকেশন উভয়তে খুব সফলভাবে সম্পন্ন করেছি।

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

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

এখন পর্যন্ত আমার অভিজ্ঞতার উপর ভিত্তি করে মনটোর কারণে .NET অবশ্যই খুব ক্রস প্ল্যাটফর্ম।


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


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


জাভাস্ক্রিপ্ট ক্রস প্ল্যাটফর্ম উন্নয়নের জন্য একটি ভাল পছন্দ।

  • কর্মক্ষমতা. ভার্চুয়াল মেশিনের কারণে জাভা এবং .NET এর অনুরূপ পারফরম্যান্স স্তর রয়েছে, তবে বছর এবং বছর অপ্টিমাইজেশনের কারণে JVM সাধারণত ভাল পারফরম্যান্স করে।

  • লাইব্রেরি। যদিও এটি আপনার কাজের উপর নির্ভর করে তবে জাভাটিতে অনেকগুলি ওপেন সোর্স বা তৃতীয় পক্ষের লাইব্রেরি রয়েছে। সার্ভার অ্যাপের জন্য, জি 2 ই, স্প্রিং, স্ট্রুটস ইত্যাদি। জিআইআইয়ের জন্য, যদিও .নেট Win32 লেয়ার API সরবরাহ করে তবে এটি সামঞ্জস্যপূর্ণ সমস্যাগুলির কারণ করে। জাভা সুইং, SWT, AWT, ইত্যাদি। এটি বেশিরভাগ ক্ষেত্রে কাজ করে।

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

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

তাই আমি জাভা সুপারিশ চাই যে একটি ভাল পছন্দ। শো শো হিসাবে, কিছু বিখ্যাত ডেস্কটপ ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন জাভা দ্বারা তৈরি হয়েছে: ভুজে, লিমিয়ার, ব্লগব্রিজ, ক্রসএফটিপি, যারা আইডিই উল্লেখ করতে পারে না। নেট হিসাবে, আমি যেমন সাফল্যের অ্যাপ্লিকেশন সীমিত জ্ঞান আছে।


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

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


আমি মনে করি উত্তরটি "এটি নির্ভর করে।" জাভা প্রায় কিছুতেই চালায়, কিন্তু ডেস্কটপের জন্য .NET / Mono (IMHO) একটি ভাল ফ্রেমওয়ার্ক। তাই আমি অনুমান করছি যে আপনি লক্ষ্যবস্তুতে কোন প্ল্যাটফর্মগুলি পরিকল্পনা করছেন তার উপর সত্যিই নির্ভর করে।


Gatorhall আপনি যে ব্যাক আপ কিছু তথ্য আছে?

কর্মক্ষমতা. ভার্চুয়াল মেশিনের কারণে জাভা এবং .NET এর অনুরূপ পারফরম্যান্স স্তর রয়েছে, তবে বছর এবং বছর অপ্টিমাইজেশনের কারণে JVM সাধারণত ভাল পারফরম্যান্স করে।

পটভূমি: উইন্ডোজ 3.1 থেকে উইন্ডোজ লোক এবং বর্তমানে একটি লিনাক্স ব্যবহারকারী (এখনও উইন্ডোজ 7, ​​মহান ওএস, ভিসুয়াল স্টুডিও 2010 এবং অন্যান্য সরঞ্জামগুলির জন্য ভিএম এ চলছে)।

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

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





cross-platform