আমি একটি সিস্টেম তৈরি করেছি, ১৫ বছর আগে ডেস্কটপ অ্যাপ্লিকেশন দিয়ে শুরু করে যখন জাভা এখনও শৈশবকালীন ছিল এবং এই ধরণের অ্যাপ্লিকেশন তৈরিতে ব্যবহারের জন্য প্রস্তুত ছিল না। আমি জানতাম যে আমার সি ++ তে একটি কোর থাকা দরকার এবং এটি মাপের ধরণের (যেমন int বা দীর্ঘ পরিবর্তে int32) ব্যবহার করে ক্রস প্ল্যাটফর্ম হতে শুরু থেকেই ডিজাইন করেছি, সুতরাং এটি ম্যাক, উইন্ডোজ এবং ইউনিক্স (প্রাক-লিনাক্স) এ চলতে পারে দিন)।
যে সময় আমি একটি ভাল ক্রস-প্ল্যাটফর্ম ইউআই পরিবেশের সন্ধানের চেষ্টা করেছি, তখন এক্সভিটি সহ কয়েকটি ছিল। আমি এক্সভিটি প্রশিক্ষণের জন্য গিয়েছিলাম এবং যখন আমি একটি সত্যিকারের অ্যাপ তৈরি করতে শুরু করি তখন বুঝতে পেরেছিলাম যে আমি প্ল্যাটফর্মে একটি পরিষ্কার, দেশীয় চেহারা এবং অনুভূতি তৈরি করতে সক্ষম হব না (ম্যাক দিয়ে শুরু)। তাই আমি এই ধারণাটি ছেড়ে দিয়ে পোর্টেবল কোরের শীর্ষে একটি নেটিভ ম্যাক (পাওয়ারপ্ল্যান্ট) ইউআই তৈরি করেছি।
কয়েক বছর পরে, আমরা উইন্ডোজ (এমএফসি-তে UI) এ চলে এসেছি। এটি প্রায় দ্বিতীয়বারের মতো দ্রুতগতিতে একটি ইউআই তৈরি করছিল, আমরা অল্প সময়ের জন্য সমান্তরালে একটি ম্যাক এবং উইন্ডোজ ইউআই বজায় রেখেছিলাম এবং তারপরে উইন্ডোতে গিয়েছিলাম। কোরটি পরে ইউএনআইএক্স এবং লিনাক্সের বিভিন্ন স্বাদে চলে যায়, যাতে আমাদের সার্ভার-ভিত্তিক গণনা চালানোর অনুমতি দেয়। কোরটি বন্দরটি বেশ ভাল করেছে, যখন আমরা এটিকে 64-বিট প্রস্তুত করেছিলাম তখন কিছু সামঞ্জস্য রয়েছে।
এখন আমি একটি ম্যাক ব্যবহার করতে ফিরে এসেছি এবং আমি আশা করি আমরা ম্যাকটিতে ফিরে আসতে পারি, তবে অ্যাপ্লিকেশনটির আকার এবং জটিলতা এটিকে একটি কঠিন পছন্দ করে তোলে। এটি এখনও এই অ্যাপ্লিকেশনটির বেশিরভাগটিকে একটি ডেস্কটপ অ্যাপ্লিকেশন হিসাবে বোঝায় - এটি সিএডি পরিবেশের মতো। তবে প্ল্যাটফর্ম-নির্দিষ্ট সি / সি ++ ভাষাতে আবার ইউআই তৈরির পরিবর্তে (এবং এমএফসি-ভিত্তিক ইউআই বজায় রাখা অবিরত করুন), জাভাতে পুরো স্ট্যাকটি পুনরায় লেখার জন্য আমি আরও বেশি আগ্রহী তাই এটি একাধিক প্ল্যাটফর্মে চালাতে পারে।
জাভাবিহীন কোর চালানোর কারণগুলি এখনও থাকতে পারে, যেমনটি আমরা করেছি তেমন সি ++ বলুন। তবে আমি তাড়াতাড়ি পারফরম্যান্স পরীক্ষা চালাতে চাইছি এটি দেখার জন্য সত্যই প্রয়োজন ছিল কিনা। এবং আমি আমার ইউআইয়ের সাথে সাবধানতার সাথে তাকিয়ে দেখব যে আমি এটি কোনও ওয়েব অ্যাপ্লিকেশন হিসাবে তৈরি করতে পারছি, ওয়েব পরিষেবাদির মাধ্যমে কোরের সাথে সংযুক্ত, যাতে আমার কাছে অনেকগুলি ক্লায়েন্ট - ডেস্কটপ অ্যাপ্লিকেশন, মোবাইল অ্যাপস, ওয়েব অ্যাপ্লিকেশন ইত্যাদি থাকতে পারে see আমার যদি সি বা সি ++ তে টুকরো দরকার হয়, তবে এটি জাভার কোনও স্তরের নিচে লেখা যেতে পারে? নাকি ওয়েব সার্ভিস হিসাবে?
আরেকটি বিবেচনা - আপনার অ্যাপ্লিকেশনটি আর কত দিন থাকবে? এটি কতটা জটিল হয়ে উঠবে? আপনার যদি এই সম্পর্কে কোনও ধারণা থাকে তবে আপনি যে কোনও ইউআই লাইব্রেরি ব্যবহার করছেন তার সম্ভাব্য দৈর্ঘ্য এবং সময়ের সাথে সাথে লোকেরা এগুলি বজায় রাখতে সহায়তা করার জন্য আপনার সক্ষমতা বিবেচনা করুন। এটি এখন বিবেচনা করা কঠিন হতে পারে তবে একটি চিন্তার মূল্য।
- অ্যালেক্স