ক্রস প্ল্যাটফর্ম ডেস্কটপ প্রোগ্রামিং: সি ++ বনাম পাইথন [বন্ধ]


11

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

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

পাইথন সি ++ এর সর্বাধিক শক্তি সরবরাহ করে বলে মনে হচ্ছে এবং গতিতে ব্যয় করা খুব সহজ। এই ত্যাগ কত বড়? এটি অর্থবোধক বা এড়ানো যায়?

কোনটি আমাকে যুক্তিসঙ্গত সময়ে দ্রুত, স্থিতিশীল, অত্যন্ত নির্ভরযোগ্য অ্যাপ্লিকেশনগুলি লিখতে পারে?

এছাড়াও, আপনার ইউআইয়ের জন্য কিউটি ব্যবহার করা বা প্রতিটি প্ল্যাটফর্মের জন্য পৃথক, নেটিভ ফ্রন্ট প্রান্তগুলি বজায় রাখা ভাল?

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


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

আমি অনুমান করি যে আমি যা বলতে চাইছি তা যা দেওয়া হচ্ছে তা দেওয়া হয়েছে, যা নিখুঁতভাবে আরও ভাল পছন্দ?
জন ওয়েলস

আপনি কিছু অতিরিক্ত প্রসঙ্গ দিতে পারেন - আপনার ডেস্কটপ অ্যাপ্লিকেশনটির কী করা দরকার? প্রচুর গণিত? উত্পাদনশীলতা অ্যাপ? ডাটাবেস অ্যাক্সেস? একটি খেলা?
JBRWilkinson

আমি করতে চাই তা স্পষ্ট করতে সংযোজনিত সম্পাদনা।
জন ওয়েলস

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

উত্তর:


9

সি / সি ++ দ্রুত। বাস্তবতাটি হ'ল, বেশিরভাগ অ্যাপ্লিকেশনগুলিকে বর্তমান হার্ডওয়্যারগুলির স্থিতির সাথে সেই কর্মক্ষমতা প্রয়োজন হবে না। সাধারন উপায় হ'ল সি / সি ++ এর মতো নিম্ন স্তরের ভাষাগুলির সাথে যখন প্রয়োজন হয় ঠিক করার চেয়ে পাইথনের মতো উচ্চ স্তরের ভাষায় অ্যাপ্লিকেশনটি বিকাশ করা।

পাইথন আপনাকে একটি বড় উত্পাদনশীলতা বাড়িয়ে দেবে, এটি শেখা সহজ এবং যুক্তিসঙ্গত দ্রুত। নেই Cython , যা আপনি পাইথন মত বাক্য গঠন সঙ্গে আপনার পাইথন অ্যাপ ব্যবহার করার জন্য লেখ সি এক্সটেনশন ব্যবহার করতে পারেন bottlenecks গতি বাড়াতে।

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


1
আপনি সম্ভবত গতি সম্পর্কে সঠিক। কিভি খুব সক্ষম বলে মনে হচ্ছে, তবে এটি কি সিস্টেম-স্থানীয় উইজেটগুলি আঁকতে পারে?
জন ওয়েলস

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

5

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

আমি ক্রোম ইঞ্জিন এম্বেড করার এবং ইউআই এর জন্য HTML5 + CSS3 + জাভাস্ক্রিপ্ট + জ্যাকুয়ারি + ক্যানভাসের মতো প্রযুক্তি ব্যবহার করার পরামর্শ দেব।

এমন একটি কাঠামো রয়েছে যা আপনার সি ++ অ্যাপে Chrome ইঞ্জিন এম্বেড করা সহজ করে, এটিকে CEF বলা হয় - ক্রোমিয়াম এম্বেড ফ্রেমওয়ার্ক । এটি উইন্ডোজ, লিনাক্স, ম্যাক ওএস সমর্থন করে।

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

এখানে অ্যাপ্লিকেশনগুলির একটি তালিকা যা সিইএফ ব্যবহার করে সফল হয়েছে ( এখান থেকে নেওয়া ):

  • অ্যাডোব বন্ধনী - ওয়েবের জন্য কোড সম্পাদক
  • অ্যাডোব এজ - মাল্টিমিডিয়া রচয়িতা সরঞ্জাম
  • অ্যাপজেএস - নোড.জেএস ব্যবহার করে ডেস্কটপ অ্যাপ্লিকেশনগুলি তৈরি করুন
  • এওএল ইনস্ট্যান্ট মেসেঞ্জার - উইন্ডোজ ক্লায়েন্ট সিইএফ ব্যবহার করে
  • কিউবিজ - আপনার পছন্দসই সামগ্রীটি ডেস্কটপে সংহত করে
  • দেশুরা - অনলাইন গেম প্ল্যাটফর্ম
  • ডিশ ওয়ার্ল্ড আইপিটিভি - ভিডিও প্ল্যাটফর্ম স্ট্রিমিং
  • Evernote - নোটেকিং সফ্টওয়্যার
  • এক্সপুট - আপনাকে এইচটিএমএল 5 / পিএইচপি অ্যাপ্লিকেশনগুলি ডেস্কটপ অ্যাপ্লিকেশন হিসাবে স্থাপন করতে দেয়
  • উইন্ডোজের জন্য গিটহাব - উইন্ডোজের জন্য গিটহাব ক্লায়েন্ট সফটওয়্যার
  • জেনিটার - টুইটার ক্লায়েন্ট সফ্টওয়্যার
  • mChef - এমআইআরসি ব্রাউজার প্লাগইন
  • মিডিয়ামন - সংগঠক সফ্টওয়্যার
  • মেটাভিআর - ভৌগলিক সিমুলেশন সফ্টওয়্যার
  • এমটিজি স্টুডিও - গেমের সংগঠক সফ্টওয়্যার
  • ওপেনস্পেস 3 ডি - 3 ডি বিকাশ প্ল্যাটফর্ম
  • আরডিও - স্ট্রিমিং মিউজিক প্ল্যাটফর্ম
  • স্পটিফাই - স্ট্রিমিং মিউজিক প্ল্যাটফর্ম
  • বাষ্প ক্লায়েন্ট - অনলাইন গেম প্ল্যাটফর্ম
  • টেনসেন্ট কিউকিউ - তাত্ক্ষণিক বার্তাপ্রেরণ প্রোগ্রাম এবং ওয়েব ব্রাউজার
  • ট্রেন্ড মাইক্রো - ইন্টারনেট সুরক্ষা সফ্টওয়্যার
  • ডাব্লুবিইএ ডেস্কটপ - আপনাকে এইচটিএমএল 5 অ্যাপ্লিকেশনগুলি ডেস্কটপ অ্যাপ্লিকেশন হিসাবে স্থাপন করতে দেয়

এই ব্লগ এন্ট্রিটি একবার দেখুন: ওয়েব টেকনোলজিসে একটি ডেস্কটপ-মানের অ্যাপ্লিকেশন তৈরি করা - ব্রেকেটস এডিটর টিম সিইএফ কাঠামো এবং ওয়েব প্রযুক্তি ব্যবহার করে কীভাবে এটিকে তৈরি করেছে তা বোঝায় : jQuery , বুটস্ট্র্যাপ , কম CSS , প্রয়োজনীয় জেএস , ইউনিট পরীক্ষার জন্য জেসমিন , জেএসলিন্ট

দাবি অস্বীকার: আমি সিইএফ পাইথন প্রকল্পের লেখক।


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

@ জোহানওয়েলস, স্থানীয় কেন? মানুষ ওয়েব অভিজ্ঞতায় অভ্যস্ত। উইন্ডোজ 8 দেখুন, মাইক্রোসফ্ট থেকে প্রতিটি পরবর্তী ওএসের নেটিভ সাথে কম সম্পর্ক আছে, তারা ওয়েব প্রযুক্তি জোর করে চলেছে এবং এটি ভবিষ্যত, "দেশীয় অভিজ্ঞতা" এর মতো কোনও জিনিস নেই, এটি অতীতের বিষয়।
Czarek Tomczak

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

1
একেবারে ঠিক জেবিআরউইলকিনসন, তবে আমি যদি না চাই তবে প্রতিটি প্ল্যাটফর্মের জন্য আমি উইজেট-নকল সিএসএস (সিইএফ-এর ক্ষেত্রে) লিখতে চাই না।
জন ওয়েলস

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

5

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

সুতরাং, কেন আমি ডেস্কটপ অ্যাপ্লিকেশনগুলিতে পাইথন পছন্দ করি না এবং আমি এটিকে স্ক্রিপ্টিং বা সার্ভারের পাশের জিনিসগুলির জন্য রাখতে পছন্দ করি?

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

  • পাইথন এক্সকে , বড় অ্যাপ্লিকেশনগুলি তৈরি করুন (আকারের শর্তে) in

  • পাইথন অ্যাপস, আরও মেমরি খাওয়া।

এটি ব্যক্তিগত দৃষ্টিভঙ্গি। কিউটি এর প্যারেন্ট সিস্টেম, স্মার্ট পয়েন্টার, আপনাকে নিজের পাতে গুলি করতে দেবে না পাও পাবে না, সি ++ 11 আপনাকে আরও বেশি বৈশিষ্ট্য দেবে।


3
"আপনার অ্যাপ্লিকেশনটি চালানোর জন্য আপনার ক্লায়েন্টকে পাইথন ইনস্টল করতে হবে" - আপনি নিজের অ্যাপ্লিকেশন দিয়ে পাইথন ডেলগুলি বিতরণ করতে পারেন, ব্যবহারকারীর পক্ষে পাইথন ম্যানুয়ালি ইনস্টল করার দরকার নেই। আপনাকে পাই 2 এক্সে বা অন্যান্য বগি এক্স মেকার ব্যবহার করার দরকার নেই (আমার অভিজ্ঞতা থেকে), পাইথন এম্বেডিং দেখুন এটি কেবল সি ++ কোডের কয়েকটি লাইন, পাইআরনসিম্পল স্ট্রিংটি পিআরন_সিম্পলফাইলের সাথে প্রতিস্থাপন করুন, আপনি সহজেই এটি সংকলন করতে পারেন, এতে কোনও ওভারহেড তৈরি করা উচিত নয় আপনার অ্যাপ্লিকেশন আকার। "পাইথন অ্যাপস, আরও মেমরি খাবেন।" - আপনার অ্যাপ্লিকেশনটির মেমরির চাহিদা থাকা অংশগুলি অনুকূল করতে সাইথন ব্যবহার করুন।
Czarek Tomczak
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.