জাভা প্রোগ্রামকে 'দেশী প্রদর্শিত' করা কেন কঠিন?


98

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

আমার প্রশ্নটি হ'ল:

কেন এটি হার্ড জাভা ভাষার ডেভেলপারদের একটি GUI সিস্টেম কপি ডিজাইন করার জন্য ঠিক নেটিভ GUIs চেহারা? নেটিভ জিইউআই-তে আলাদা কী? এটি কেবল 'নেটিভ' বোতামগুলির মতো দেখতে বোতামগুলি ডিজাইনের বিষয় নয়? নাকি এর চেয়েও গভীর হয়?


31
কারণ সুইং তার নিজস্ব গুই উপাদানগুলি লিখেছে যা দেশী নকল করার চেষ্টা করে, পরিবর্তনের পরিবর্তে আসল নেটিভ উপাদানগুলিকে বাধ্যতামূলক তৈরি করার পরিবর্তে
র‌্যাচেট ফ্রিক

5
আমি এই বিষয়টিতে বিশেষজ্ঞ নই, তবে আমি অনুমান করি যে জিইউআই টুলকিট বিক্রেতারা সমস্ত ভৌতিক বিবরণ সঠিকভাবে পেতে বিনিয়োগে কতটা চেষ্টা করতে আগ্রহী তা একটি বিষয় মাত্র। উদাহরণস্বরূপ, সি ++ ফ্রেমওয়ার্ক "কিউটি" এবং এই এসও প্রশ্নটি দেখুন: stackoverflow.com/questions/7298441/…
ডক ব্রাউন

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

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

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

উত্তর:


56

এটি কেবল 'নেটিভ' বোতামগুলির মতো দেখতে বোতামগুলি ডিজাইনের বিষয় নয়?

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

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


1
ধন্যবাদ। 'হালকা ওজন' বলতে কী বোঝায়? এবং 'নেটিভ' আসলে কী বোঝায়? আমি ধরে নিচ্ছি এর অর্থ এমন কিছু যা কম্পিউটারের ওএস থেকে সংস্থান ব্যবহার করে বা সরাসরি এটির সাথে ইন্টারঅ্যাক্ট করে। এটা কি সত্য?
ব্যবহারকারী 3150201

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

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

4
জাভাএফএক্স এসডাব্লিউইং এবং এডাব্লুটিটির চেয়ে অনেক বেশি "দেশীয়" প্রদর্শিত হবে। এটিতে স্বচ্ছ উইন্ডো ইত্যাদি রয়েছে box বাক্সের চেয়ে অনেক বেশি আধুনিক looking
স্নেকডোক

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

71

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

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

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

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


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

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

+1 কারণ এই উত্তরে কিছু শক্ত পয়েন্ট রয়েছে তবে কিছু দুর্বল পয়েন্টও রয়েছে। কোনও "কীভাবে এই উইন্ডো ম্যানেজারটি এক্স আঁকো" ইস্যুটি দেশীয় এপিআই ব্যবহার করে পরিচালনা করা হয়। উদাহরণস্বরূপ, ওএস এক্স-এ এক্স 1111 দেশীয় ওএস এক্স উইন্ডো, বোতাম, স্ক্রোল বার, ডায়ালগ ইত্যাদি আঁকতে পারে তাই অনেকগুলি সমস্যা অদৃশ্য হয়ে যায়। বাস্তব ইউএক্স হল: উত্তর কী @TheSpooniest নিচে বলেছেন আরও অনেক কিছু ঠিক অঙ্কন উইজেট থাকে। ব্যবধান, সময়, অ্যানিমেশন, মাউস ত্বরণ, স্পর্শ ইনপুট ... এমন একটি সূক্ষ্ম বিশদের বিশদ রয়েছে যা ক্রস-প্ল্যাটফর্মের সরঞ্জামকিট সহ পুনরুত্পাদন করার জন্য অত্যন্ত ব্যয়বহুল।
মার্ক ই হা

13

হ্যাঁ, এটি আরও গভীর হয়।

উইন্ডোজ বা ওএস এক্স বোতামের মতো দেখতে এমন একটি বোতাম তৈরি করা সহজ, যখন আপনি কেবল এই বোতামটি তৈরি করছেন। তবে বোতামটি অবশ্যই মূল ব্যবহারগুলির মতো "আচরণ" করা উচিত, যা সহজ নাও হতে পারে: সম্ভবত একটি সংস্করণে আরও বেশি জায়গা পাওয়া যায় তবে অন্যটিতে নাও হতে পারে, রঙটি উইন্ডোজ সংস্করণে আপনার নকশার জন্য আরও উপযুক্ত ting

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


9

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

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

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


7

আপনার অ্যাপ্লিকেশনটি প্রতিটি সিস্টেমে যতটা সম্ভব প্রাকৃতিক দেখায় এবং প্রতিটি অ্যাপ্লিকেশনে একইভাবে আপনার অ্যাপ্লিকেশনটি একইভাবে কাজ করবে বলে আশা করার মধ্যে একটি বাণিজ্য রয়েছে। কোনও "সঠিক" পছন্দ নেই।

তদুপরি, আপনি যদি "প্রাকৃতিক চেহারা" দিকটি বেছে নেন তবে আপনি নিজের গ্রাফিক টুলকিট ব্যবহারকারীদের অন্তর্নিহিত নেটিভ উপাদান এবং API এর "উন্নতি" থেকে রক্ষা করতে চাইতে পারেন যা অপ্রত্যাশিতভাবে তাদের অ্যাপ্লিকেশনটি ভেঙে দিতে পারে।

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

মনে রাখবেন যে এই সমস্যাটি জাভা নির্দিষ্ট নয়, তবে প্ল্যাটফর্মের স্বতন্ত্র টুলকিট উত্পাদনকারী প্রতিটি সংস্থার মুখোমুখি।


নীরবে নিচের দিকে চাপ দেওয়ার পরিবর্তে আপনি উত্তরটির সাথে কী ভুল বলে মনে করছেন তা ব্যাখ্যা করে আপনি সম্প্রদায়ের আরও বৃহত্তর সেবা করবেন। যদি না এটি কেবল একটি ব্যক্তিগত সমস্যা ...
নিকোলা মুসাত্তি

4

সবই ইতিহাসের কারণে।

সান সমস্ত জাভা সফ্টওয়্যার সমস্ত মেশিনে একই কাজ করার ইচ্ছা প্রকাশ করেছিল।

সফ্টওয়্যারটির "স্থানীয় প্রদর্শিত" হওয়ার জন্য প্রদত্ত ওএসের অন্যান্য সফ্টওয়্যারগুলির মতোই কাজ করতে হয়।

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

আজকাল খুব কম জাভা প্রোগ্রামাররা ওয়েব সার্ভার ভিত্তিক সফ্টওয়্যার ব্যতীত অন্য যে কোনও বিষয়ে যত্নশীল।

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

যে কোনও "ডেস্কটপ সফ্টওয়্যার" লিখেছেন যা জাভা ব্যবহার না করা শিখেছে এবং "যে কোনও ওরাকল সফ্টওয়্যার ব্যবহার করার সাথে সাথে প্রত্যেকবার তাদের মতামতগুলি দৃ .়প্রসূত করে about"

অতএব আজকাল জাভা প্রোগ্রামারগুলির ডেস্কটপ সফ্টওয়্যারটিতে "নেটিভ হাজির" হওয়ার কোনও দাবি নেই।


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

1
@ জওয়ান্টিং, সান মাইক্রোসফ্টের জন্য সমস্যা তৈরি করার বিষয়ে আরও বেশি যত্ন নিয়েছিল তখন মাইক্রোসফ্টের জাভা ভিত্তিক সিস্টেমটি ব্যবহার করা বেছে নেওয়া প্রোগ্রামারদের সম্পর্কে। অতএব আমি জাভে ছেড়ে দিয়েছি এবং সি # বের হওয়া পর্যন্ত এমএফসি-র সাথেই রয়েছি।
ইয়ান

3
সূর্যের সময়ে কিছু লোক হতে পারে, কিন্তু সেই ভাবটি পারস্পরিক ছিল। যদি আপনি একক প্ল্যাটফর্মের জন্য একচেটিয়াভাবে বিকাশ করে থাকেন তবে সেই প্ল্যাটফর্মের একটি নেটিভ সরঞ্জাম সর্বদা পছন্দসই বিকল্প, এটি কর্পোরেট রাজনীতির সাথে কোনও সম্পর্ক রাখে না। যদি আপনি "আমি সানকে ঘৃণা করি" বা "আমি মাইক্রোসফ্টকে ঘৃণা করি" এর উপর ভিত্তি করে আপনার সরঞ্জামগুলি চয়ন করেন যা আপনার পেশাদার মনোভাবের উপর খুব খারাপ প্রভাবিত করে। আমি বেশিরভাগ জাভা ব্যবহার করেছি, তবে এর পাশাপাশি আমি ডেল্ফি, সি #, রুবি, সি ++, সি, প্রগতিও ব্যবহার করেছি, যা কাজের জন্য সবচেয়ে ভাল ছিল। এবং প্রায়শই এটির চেয়ে একটি হাইব্রিড সমাধান হয়ে যায় than
jwenting

3

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

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

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

ডেস্কটপ প্ল্যাটফর্ম হিসাবে জাভা কখনও খুব বেশি জনপ্রিয় হয় নি। ফলস্বরূপ শিল্পের এই পরিবর্তনগুলি ডেস্কটপের রানটাইমগুলিতে প্রচার করে না। ইস্যুটি ঠিক করার জন্য পর্যাপ্ত পরিমাণ বিকাশকারী সময় কাটাতে ইচ্ছুক নেই।


1
+1, উইন্ডোজ 95 এর যুগে উইন্ডোজ নিয়ন্ত্রণগুলির জন্য 'স্ট্যান্ডার্ড' চেহারা ছিল। এখন, এত কিছু না।
গ্র্যান্ডমাস্টারবি

হ্যাঁ, আমি ডেস্কটপ প্রোগ্রাম করেছি কয়েক বছর হয়ে গেছে কিন্তু আমি অবাক হয়ে গিয়েছিলাম। এমএস নির্মিত উত্পাদনশীলতা সফ্টওয়্যারটির সাথে ইন্টিগ্রাল হয়েও নেট নেট ফিতা স্টাইল কন্ট্রোল দিয়ে পাঠায়নি।
রিগ

@ রিগ নেট নেট থেকে Since.০ সেখানে একটি ভাল নেটিভ রিবন নিয়ন্ত্রণ রয়েছে N এখানে একটি ভাল নিবন্ধটি দেওয়া হয়েছে: c-sharpcorner.com/UploadFile/0b73e1/ribbon-control-in-wpf-4-5
ক্রিশ্চিয়ান

1
@ রিগ আপনার দরকার হবে। নেট 4.5। নেট নয় 4. ভিজ্যুয়াল স্টুডিও 2010 কেবলমাত্র 4 টি পর্যন্ত লক্ষ্যবস্তু করতে পারে; আপনার 4.5 কে লক্ষ্যমাত্রার জন্য VS2012 বা আরও নতুন প্রয়োজন হবে। VS2013 এ 4.5 লক্ষ্য করার সময় আমি এটি দেখতে পাচ্ছি, তবে আমি লক্ষ্য সংস্করণটি 4
বব

1
@ রিগ নেট 4.0-তে রিবন ব্যবহার করা সম্ভব - আপনি এটি মাইক্রোসফ্ট থেকে ডাউনলোড করতে পারেন এবং তারপরে এটি প্রদর্শিত হবে: 10rem.net/blog/2010/10/22/wpf-ribbon-october-re कृपया (এটি নিশ্চিত না তবে এটি সর্বশেষতম সংস্করণ)। নুগেট থেকে এটি আরও ভাল ডাউনলোড করুন। উইন্ডোজ এক্সপি-তে চালিত হওয়া একটি প্রোগ্রামের জন্য আমাকে এটি করতে হয়েছিল - সূক্ষ্মভাবে কাজ করে এবং বেশিরভাগ নেট ৪.৫ বৈকল্পিকের সাথে সামঞ্জস্যপূর্ণ, যাতে এক্সপি অবসর নেওয়ার পরে আপনি 4.0 জিনিসটি ছিনিয়ে নিতে পারেন।
খ্রিস্টান সৌর

-1

আপনি কোন অপারেটিং সিস্টেমটিকে "দেশীয়" দেখতে চান?

100% সময়ের মধ্যে আপনি কেবল তাদের সকলেরই স্থানীয় হতে পারবেন না

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

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

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


-2

সত্যিই ভাল প্রশ্ন। আমি সর্বদা কয়েক বছর পরের বছর ধরে আমি নিজেই এটি নিয়ে ভাবতাম, আমি ভেবেছিলাম এর পিছনে কিছু যুক্তি রয়েছে, কিন্তু আসলে তা হয়নি।

আমি মনে করি উত্তরটি বরং সহজ, এবং প্রচুর উত্তর সত্যিই ইস্যুটিতে খনন করছে না।

যদি আপনার ভাষা স্ক্রিনে পাইসেল আঁকতে দেয় তবে তার উপর ভিত্তি করে একটি গি কাঠামো তৈরি করা 100% সম্ভব যা উইন্ডোজ ফর্ম নিয়ন্ত্রণগুলির অনুকরণ করবে এবং অবিকলভাবে অনুভব করবে।

যেহেতু জাভা ক্রসপ্ল্যাটফর্ম হিসাবে এটি নিশ্চিত করাও সত্য যে চলমান সিস্টেমের ভিত্তিতে (ম্যাক / উইন্ডোজ) ইউআই উভয় প্ল্যাটফর্মগুলিতে রানটাইম প্ল্যাটফর্মের শৈলীর সাথে মিল রেখে আলাদা দেখতে বেছে নেবে make

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

সুতরাং জিইউআই কাঠামো তৈরি করা সম্ভব হবে যা জাভা বিকাশকারীদের এমন অ্যাপ্লিকেশন পেতে সক্ষম করবে যা ম্যাক এবং উইন্ডোজে স্থানীয় দেখায়।

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


2
এটি প্রশ্নের উত্তর দেয় না, প্রশ্নকর্তা ইতিমধ্যে এই বিষয়টিকে কভার করেছিলেন: "সুইং সম্ভবত একটি স্বতন্ত্র চেহারা দেওয়ার জন্য ডিজাইন করা হয়েছে"
জিনাত

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