জাভা বনাম সি # - উত্পাদনশীলতার দৃষ্টিভঙ্গি [বন্ধ]


34

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

জাভা এবং সি # /। নেট মধ্যে সফটওয়্যার বিকাশ উত্পাদনশীলতার পার্থক্যের একটি ইঙ্গিত, আপনি কি আমাদের সরবরাহ করতে সক্ষম হবেন? আমি নিম্নলিখিত হিসাবে একটি উত্তর পেতে পছন্দ করতে চাই:

আমার অভিজ্ঞতা জাভাতে কাজ করা এক্স বছরের অভিজ্ঞতার উপর ভিত্তি করে এবং সি # /। নেট সাথে কাজ করা এক্স বছরের অভিজ্ঞতার ভিত্তিতে। জাভা হ'ল এক্স% বেশি উত্পাদনশীল তবে সি #। নেট বা সি # /। নেট যদি আপনি নিম্নলিখিতটি বিবেচনায় নেন তবে জাভা এর চেয়ে এক্স% বেশি উত্পাদনশীল।


24
আমি এখানে এক গুরুত্বপূর্ণ বিষয় হয় কি আপনি তৈরি করছেন। .NET কিছু প্রজেক্টের জন্য ভাল হতে পারে, এবং অন্যদের জন্য জাভা।
vyvind Knobloch-Bråthen

4
এটি কোন ধরণের প্রকল্প? আপনি যা করার চেষ্টা করছেন তার জন্য উপলব্ধ গ্রন্থাগারগুলির উপর অনেক কিছু নির্ভর করে। ভাষা অনুসারে আমি সি # কে জোরালোভাবে পছন্দ করি তবে আমি দাবি করছি না যে নেট সব ধরণের প্রকল্পের জন্য জাভা থেকে ভাল।
কোডসইনচাউস

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

2
@ এডিন: "এন্টারপ্রাইজ অ্যাপ্লিকেশন" এটি কী ধরণের অ্যাপ্লিকেশন তা খুব বর্ণনামূলক নয় ... এটি কি কেবল ডেস্কটপ, ক্লায়েন্ট / সার্ভার কনফিগারেশন, ওয়েব পরিষেবাদি, ওয়েব সাইটগুলি, মোবাইল ডিভাইসে সম্ভাব্য উপগ্রহ অ্যাপ্লিকেশন ইত্যাদি ..?
ভয়

3
এটি "জাভা" "জাভা" নয়
মাহমুদ হোসাম

উত্তর:


17

আমার অভিজ্ঞতা জাভাতে কাজ করার 10 বছরের অভিজ্ঞতা এবং সি # /। নেট সাথে কাজ করার 3 বছরের অভিজ্ঞতার ভিত্তিতে। সি # .NET এর চেয়ে জাভা 0% বেশি উত্পাদনশীল। এটি ব্যাক-এন্ড পরিষেবা-ভিত্তিক অ্যাপ্লিকেশনগুলি লেখার উপর ভিত্তি করে।
সি # /। নেট ব্যবহারকারীর অ্যাপ্লিকেশন লেখার জন্য জাভা থেকে 5% বেশি উত্পাদনশীল। তবে তখন আমি জাভাতে প্রায় 5 বছর এটি করি নি এবং নতুন নেটবিয়ান ইউআই সম্পাদক এই ফাঁকটি বন্ধ করতে পারতেন।

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


আপনি জাভা জন্য 0% বলতে চেয়েছিলেন? আপনি কী ব্যাক-এন্ড পরিষেবা ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য বা সামগ্রিকভাবে জাভাতে 0% বেশি উত্পাদনশীল বলতে চান? শুধু পরীক্ষা করা হচ্ছে।
জন অনস্টট

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

"যে কোনও বড় ভাষা / প্ল্যাটফর্ম / আইডিইতে ভাষা / প্ল্যাটফর্ম / আইডিই পছন্দ দ্বারা উত্পাদিত উত্পাদনশীলতা মোটামুটি ছোট" "
অ্যাডাম জ্যাসকিউইচ

3
শেষ বাক্যটির জন্য -1। প্রতিটি (বাস্তব বিশ্বের) সমস্যা শ্রেণীর জন্য, আপনি দুটি সাধারণ উদ্দেশ্যে উচ্চ স্তরের ভাষা বেছে নিতে পারেন, যেখানে একের থেকে অন্যের উত্পাদনশীলতা বৃদ্ধি 100% ছাড়িয়ে যায়। আপনি যদি সি # এবং জাভা এর মধ্যে চয়ন করেন তবে আপনি সামান্য পার্থক্য পাবেন (যদিও আমি যুক্তি দিয়ে বলব যে কার্যকরী প্রোগ্রামিংয়ের জন্য উপযুক্ত ক্ষেত্রে সি # উল্লেখযোগ্যভাবে আরও উত্পাদনশীল প্রমাণ করবে)। পছন্দটি সি এবং ওসিএএমএল এর মধ্যে থাকলে আপনার মধ্যে পার্থক্য ব্যবধান রয়েছে।
back2dos

42

আমি কলেজ এবং রিয়েল ওয়ার্ল্ড উভয় প্রজেক্টে কাজ করেছি ™ জাভা এবং সি # ব্যবহার করে এখন 5 বছর ধরে।

হাত নিচে আমি সি # আরও বেশি উপভোগ করি কারণ এর সংযোগ এবং সিনট্যাক্স চিনির ব্যবহার। আপনি Factory.GetFactory(OfFactory.GetFactory(Factory));সি # তে খুব কমই একটি কোড পাবেন । এটি পড়া এবং অনুসরণ করা আরও সহজ কারণ সিনট্যাক্সটি আরও ছোট এবং আরও সংযোগযুক্ত।

আপনি কোনটির সাথে আরও উত্পাদনশীল হবেন? এটি প্রকল্পের ধরণের উপর নির্ভর করে।

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

সত্যই, আমি খুশি যে আমি আর জাভা ব্যবহার করি না (এখন এক বছর পেরিয়ে গেছে) কারণ আমি মনে করি কোডটি কতটা ভয়াবহভাবে ভার্বোস হতে হয়েছিল। একটি দ্রুত উদাহরণ ব্যতিক্রম হ্যান্ডলিং। যদি আপনার কোডটি একটি ব্যতিক্রম ছুঁড়তে পারে তবে আপনাকে অবশ্যই প্রতিটি একক ব্যতিক্রমের জন্য অ্যাকাউন্ট করতে হবে । এটি দ্রুত তুচ্ছ কোডটি একটি 20 লাইন + মনস্ত্রে পরিণত করে।

সি # হ্যান্ড হোল্ডিং হিসাবে নয়, যদি আপনি নিজের কোডটি খোলা রেখে বেছে নেন যা সিদ্ধান্ত নিতে বিকাশকারী হিসাবে আপনার উপর রয়েছে।

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


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

5
হাহা, আমি একটি জাভা প্রোগ্রামার তবে আমি আপনার উদাহরণ কোডটি পছন্দ করেছি।
চক স্টেফানস্কি

6
If your code can throw an exception you must account for every single exception possible.আমি এর খারাপ দিকটি দেখতে পাচ্ছি না, কমপক্ষে সমস্যাগুলির সম্পর্কে সচেতনতা বাড়ায় ... যদিও এটি কেবল আমার হতে পারে।
ববি

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

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

23

আমি (2002 সাল থেকে) উভয় জাভা (1996 সাল থেকে) এবং নেট সঙ্গে ব্যাপকভাবে কাজ করেছি এবং 2010 সালে একটি তৈরি জাভা সঙ্গে যেতে সিদ্ধান্ত তাই হয়তো হবে ভিত্তিতে আমার কোম্পানিতে থেকে উত্পাদনশীল পরিবেশ সামগ্রিক

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

আমার যুক্তির মূল উপাদানগুলি এখানে:

  • সিনট্যাক্স উত্পাদনশীলতার একটি ছোটখাটো উপাদান - যদিও জাভা অবশ্যই ভারবোজ এবং আমি সি # এর বাক্য গঠনটি পছন্দ করি তবে এটি খুব বেশি গুরুত্ব দেয় না। আপনার বিকাশকারী object.getSomeProperty()বনাম টাইপ করুন object.SomePropertyবা কোনও বেনামে অভ্যন্তরীণ বর্গ বনাম লাম্বদা ব্যবহার করুন তা আপনার কোম্পানির প্রতিযোগিতামূলক সুবিধার জন্য সহজভাবে কোনও প্রশংসনীয় পার্থক্য আনতে চলেছে না ....
  • লাইব্রেরির বাস্তুতন্ত্র সমালোচনামূলক - একটি আধুনিক সফ্টওয়্যার পণ্য বিকাশ করে, আপনি স্ক্র্যাচ থেকে প্রচুর প্রচলিত উপাদান বিকাশ করতে চান না। ওপেন সোর্স লাইব্রেরির সংখ্যা এবং মানের দিক দিয়ে জাভা ইকোসিস্টেমের একটি স্পষ্ট সুবিধা রয়েছে (বিশেষত এপাচি, গুগল, এক্সপ্লিপ ফাউন্ডেশন এবং রেডহ্যাট / জেবস দ্বারা নির্মিত)
  • বহনযোগ্যতা / স্থাপনার নমনীয়তা - আমি জানি যে আমি বড় সস্তা লিনাক্স ক্লাস্টারগুলি সহ বেশ কয়েকটি প্ল্যাটফর্মে একটি জেভিএম স্থাপন করতে পারি। । নেট দিয়ে, আপনি উইন্ডোজ পরিবেশে সীমাবদ্ধ। ক্লাউড হোস্টিং বিকল্পগুলির অগ্রগতির সাথে, আমি এটিকে বেশ গুরুত্বপূর্ণ সুবিধা বলে গণ্য করেছি।
  • আপনি যদি উন্নত ভাষার বৈশিষ্ট্য চান তবে স্কালা এবং ক্লোজার জেভিএম-তে বিকাশের কার্যকর বিকল্প দুটি। এটি জাভাতে বিকাশের একটি বাস্তবসম্মত বিকল্প তবে সময়ের সাথে সাথে স্কালা বা ক্লোজারে যাওয়ার বিকল্পটি খোলা রাখুন। কিছুটা হলেও এগুলি "পরবর্তী প্রজন্মের" ভাষা যা আমি মনে করি জাভা এবং সি # উভয়ের চেয়ে এগিয়ে, সুতরাং এটি আমাকে আশ্বস্ত করেছিল যে জাভা প্ল্যাটফর্মটি ভাষা উদ্ভাবনের ক্ষেত্রে একটি ভাল ভবিষ্যত রয়েছে। (জাভা 7 এবং 8 হ'ল প্রতিশ্রুতিবদ্ধ লাগছিল, তবে আমি ঠিক নিশ্বাস ফেলছিলাম না ....)
  • রক্ষণাবেক্ষণ ব্যয়গুলি আসলে জাভাটির পক্ষে বেশ অনুকূল বলে মনে হয়েছিল। জাভাতে সি # এর চেয়ে একটি সহজ বাক্য গঠন রয়েছে যার অর্থ আরও ভার্বোসিটি তবে ফ্লিপসাইডে লোকেরা আরও রক্ষণাবেক্ষণযোগ্য কোড লেখার ঝোঁক রাখে - "চালাক কোড" লেখা সহজভাবে কঠিন। এছাড়াও, জাভা বিশ্বটি। নেট ওয়ার্ল্ডের চেয়ে পিছনের দিকে সামঞ্জস্যের তুলনায় অনেক বেশি ওজন দেয় যা একাধিক বছর ধরে রক্ষণাবেক্ষণ ব্যয়ের ক্ষেত্রে সুবিধা হতে চলেছে।
  • বিক্রেতার স্বাধীনতা - অতীতে বিক্রেতাদের লক-ইন দ্বারা সংস্থাগুলি জ্বলতে দেখেছি, আমি অনুভব করেছি যে মাইক্রোসফ্ট-অধ্যুষিত। নেট ওয়ার্ল্ডের চেয়ে তুলনামূলকভাবে আরও বেশি উন্মুক্ত জাভা ইকোসিস্টেমের সাথে যাওয়া ভাল। উদাহরণস্বরূপ, এসকিউএল সার্ভার ব্যবহারের দিকে ধাক্কা দেওয়ার পরিবর্তে আমার কাছে ডাটাবেসগুলির পছন্দ ছিল (এবং সরঞ্জামটি সমর্থন এবং। নেট বিকাশকারীদের টিপিক্যাল স্কিলসেট উভয়ের মাধ্যমেই পুশটি বেশ শক্তিশালী)। আপনার মূল পণ্য বিনিয়োগ বিক্রেতাকে স্বাধীন রাখা আমার দৃষ্টিতে একটি স্মার্ট দীর্ঘমেয়াদী পদক্ষেপ। আমি বিচার করেছি (সঠিকভাবে দেখা যাচ্ছে) যে ওপেনজেডিকে জাভা এর ভবিষ্যত হবে তাই আমি কার্যকরভাবে একটি ওপেন সোর্স প্ল্যাটফর্মের ভিত্তিতে তৈরি করব।
  • প্রতিভা - এটি অবশ্যই বিষয়গত, তবে আমি নেট নেট ওয়ার্ল্ডের চেয়ে জাভা বিশ্বে বিকাশকারীদের প্রযুক্তিগত দক্ষতায় আরও বেশি প্রভাবিত হয়েছিলাম। আমার গড় ধারণা ছিল যে। নেট বিকাশকারীদের মাইক্রোসফ্ট যা কিছু সহজ সরঞ্জাম বা টেমপ্লেট সরবরাহ করত সেগুলি করার প্রবণতা ছিল, যেখানে জাভা ডেভেলপাররা সফ্টওয়্যার ইঞ্জিনিয়ারিং দৃষ্টিকোণ থেকে সঠিক সমাধান খোঁজার বিষয়ে আরও যত্নশীল ছিলেন। এটি সম্পূর্ণ ব্যক্তিগত এবং সন্দেহাতীত নির্দিষ্ট স্থানীয়তা / বাজারের উপর নির্ভরশীল এবং স্পষ্টতই অনেক ব্যক্তি রয়েছেন যা এই প্যাটার্নটির সাথে খাপ খায় না, অবশ্যই ওয়াইএমএমভি অবশ্যই।
  • সরঞ্জামগুলি প্রায় স্তরের ছিল। মাইক্রোসফ্টের কাছে প্রচুর দুর্দান্ত, সহজেই ব্যবহারযোগ্য সরঞ্জাম রয়েছে যা উইন্ডোজের উপর বিকাশের জন্য বিশেষত আবেদনযোগ্য। তবে আমি প্রাথমিকভাবে সার্ভার-সাইড বিকাশে কাজ করছি, যেখানে আমি যুক্তি দিয়েছিলাম জাভা সরঞ্জামগুলির কিনারা রয়েছে। বিশেষত, ম্যাভেন জাভা বাস্তুতন্ত্রের একটি অত্যন্ত শক্তিশালী হাতিয়ার হিসাবে প্রমাণিত হয়েছে যা আমি এখনও মনে করি না। নেট ওয়ার্ল্ডে একটি শালীন সমতুল্য আছে।

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

সম্ভবত এখনই কেবলমাত্র আমি যেখানে যেতে চাই। নেটটি যদি আমি কোনও উইন্ডোজ-কেবলমাত্র ডেস্কটপ অ্যাপ্লিকেশন বিকাশ করতাম (যেখানে। নেট সুবিধাটি স্পষ্টত বিশাল)।


9
+1: দুর্দান্ত উত্তর! এটি সামগ্রিকভাবে উত্পাদনশীলতার মূল্যায়ন করার সময় বিবেচনা করা উচিত এমন অনেকগুলি সমস্যার সংক্ষিপ্তসার জানায়। কিছু সিনট্যাকটিক চিনি একটি ভাষা শীতল এবং আরও "আধুনিক" দেখায় তবে উত্পাদনশীলতাকে প্রভাবিত করে এমন অন্যান্য গুরুত্বপূর্ণ কারণও রয়েছে।
জর্জিও

3
পূর্ববর্তীগুলির চেয়ে আরও বেশি বিস্তৃত উত্তরের জন্য +1।
NlightNFotis

1
যেহেতু আপনি স্কেল এবং ক্লজুর উল্লেখ করেছেন আপনি সম্ভবত এফ # এরও উল্লেখ করতে পারেন ...
মরিসিও শেফার

2
গ্রেট! পুরো বিশ্লেষণ। শুধু আমি যা খুঁজছিলাম। :)
xebo

9

আমার আছে: জাভা 10 বছর, সি # 8 বছর

আমি জাভা ভোট দিয়েছি

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

23
ল্যাম্বডাস না থাকায় কোন ধরণের "উদ্ভাবন" হতে পারে?
এসকে-যুক্তি

6
এএসপি এমভিসি এর আগে অন্যান্য এমভিসি ফ্রেমওয়ার্কগুলি ছিল (যেমন মনোরেল) ...
এরিকশাফার

2
ওহ বিটিডাব্লু: ল্যাম্বডাস / ক্লোজারগুলি একটি ভাষা বৈশিষ্ট্য, আপনি ফ্রেমওয়ার্কের বিষয়ে কথা বলছেন।
এরিকশাফার

5
@ এসকে-যুক্তি, আপনার ও / আর স্তরটি লিখতে ল্যাম্বডাস লাগবে না।

2
@ জর্জিও, ল্যাম্বডাস জিসির সাথে যে কোনও ভাষায় পুরোপুরি ফিট করে। অবশ্যই তাদের জন্য সি ++ এবং সি তে কোনও স্থান নেই।
এসকে-যুক্তি

6

জাভা: 5 বছর (অবিচ্ছিন্ন)
সি #: 7 বছর

আমি বিশ্বাস করি না আপনি সেইভাবে উত্পাদনশীলতার পরিমাণ নির্ধারণ করতে পারেন। এটি পৃথক বিকাশকারী এবং প্রকল্পের উপর নির্ভর করে। আপনার বিকাশকারীরা যা জানেন তা ব্যবহার করুন।

সম্পাদনা করুন:
আসুন "টিপিক্যাল এন্টারপ্রাইজ অ্যাপ্লিকেশন" হিসাবে সংজ্ঞা দিন:

  • বহু স্তরযুক্ত
  • ক্লায়েন্ট সার্ভার
  • ডিবি সমর্থিত

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


3
"এটি পৃথকভাবে বিকাশকারীদের উপর নির্ভর করে" ... ঠিক এই কারণেই তিনি এমন লোকদের কাছ থেকে মতামত চেয়েছিলেন যারা উভয় জগতের অভিজ্ঞতা আছে ... "এবং প্রকল্পটি।" ... যার একটি উত্তর প্রয়োজন যা বিভিন্ন প্রযুক্তি থেকে কী ধরণের প্রকল্পগুলি উপকৃত হবে তা নির্দেশ করে।
ভয়

4
এটি এই দেব (ওরফে আমি) এর উপর নির্ভর করে না, তবে প্রকল্পটি তৈরি করার কথা এমন দেবগণের উপর নির্ভর করে। এছাড়া সহজ হবে যদি তিনি বলেন ছিল প্রকল্পের ধরনের কি তিনি বিল্ড সম্পর্কে ...
EricSchaefer

@ এরিক এটি আদর্শ এন্টারপ্রাইজ অ্যাপ্লিকেশন
এডিন ড্যাজডেরেভিচ

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

5
অবশ্যই একটি "সাধারণ এন্টারপ্রাইজ অ্যাপ্লিকেশন" রয়েছে, পয়েন্ট এ থেকে এই ডেটাটি নিন, ব্যবহারকারীকে এলোমেলো করার সুযোগ দিন, তারপরে এটি বিন্দুতে রাখুন। ;)
মেজমো

6

আমার জাভাতে 10+ বছরের অভিজ্ঞতা রয়েছে (যেহেতু সংস্করণ 1.1, সত্যই!) এবং। নেট (সি # বেশিরভাগ ক্ষেত্রে) এর সাথে আমার 7 বছরের অভিজ্ঞতা রয়েছে।

আপনার সিদ্ধান্ত নেওয়ার খুব দরকার তবে বেশিরভাগ ক্ষেত্রে আপনার কয়েকটি দৃশ্যকে ভেঙে ফেলার চেষ্টা করা উচিত:

ডেস্কটপ অ্যাপ্লিকেশন

আপনি যদি কোনও ডেস্কটপ অ্যাপ্লিকেশন বিকাশ করে থাকেন তবে আপনাকে যে প্রধান প্ল্যাটফর্মের সাথে কাজ করতে হবে তার সাথে যেতে হবে। যদি এটি মাইক্রোসফ্ট প্ল্যাটফর্ম ব্যবহার করে। নেট, মাদার শিপ নিজেই তৈরি প্ল্যাটফর্মের চেয়ে ভাল সমাধান আর কোনও নেই। যদি এটি লিনাক্স বা মাল্টি-প্ল্যাটফর্মের দৃশ্য জাভা বিবেচনা করে বা ওয়েব ভিত্তিক সমাধানে চলে।

ওয়েব ভিত্তিক অ্যাপ্লিকেশন

এটি করা খুব কঠিন সিদ্ধান্ত কারণ প্রত্যেকের নিজস্ব শক্তি এবং দুর্বলতা রয়েছে। এখানে কয়েকটি:

সি শার্প

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

দুর্বলতা: এন্টারপ্রাইজ অ্যাপ্লিকেশনটির জন্য। নেট জাভার মতো পরিপক্ক নয়। আপনার জাভা হিসাবে যেমন আছে তেমন অনেক বিক্রেতারা .NET এন্টারপ্রাইজ সফ্টওয়্যার তৈরি করে না।

জাভা

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

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

সার্ভার সাইড অ্যাপ্লিকেশন

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

সামগ্রিক বিবেচনা

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

আমি মনে করি এটিও একটি ভাল বিষয় যে মাইক্রোসফ্ট আগের অর্থের চেয়ে শক্তিশালী। নেট কিছুক্ষণ থাকবে। সুতরাং 10-15 বছর এগিয়ে খুঁজলে আমি জাওয়ার চেয়ে নেট। নেট দিয়ে আরও সুরক্ষিত বোধ করি।


4

আমি সম্প্রতি বিশ্ববিদ্যালয় থেকে স্নাতক ডিগ্রি অর্জনকারী, তবে উভয় ভাষার সাথে বাণিজ্যিক অভিজ্ঞতা অর্জন করেছি, মোট প্রায় 3 বছর জাভা এবং 4 বছর সি #। নেট (নোট। নেট মানে আপনি সি #, ভিবি নেট, সি ++ সি এল আই ব্যবহার করতে পারবেন, এবং জে # এবং এফ #)।

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

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

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


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

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

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

1
একটি প্রকল্পের জন্য 10-15 পুরুষ বছর কাজ করার পরিকল্পনা করা হয়েছে, ভিএস লাইসেন্সের জন্য প্রাথমিক ব্যয় হল চিনাবাদাম।
ভয়

1
এমএসডিএন ব্যতীত ভিজ্যুয়াল স্টুডিও 2010 পেশাদার $ 550।
বোরিস ইয়াঙ্কভ

3

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

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

আমি পরামর্শ দেব, আমার মতে, এই প্রশ্নের পেছনের ভিত্তি, যে "(সি # এবং জাভা) এর মধ্যে উত্পাদনশীলতার পার্থক্যগুলি প্রয়োজনীয় বিনিয়োগ এবং সময়-বাজারে বিনিয়োগকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে" সত্য নয়। আমি কিছু পার্থক্য হবে সন্দেহ না কিন্তু তা তাৎপর্যপূর্ণ হবে না।


3

আমি জাভা এবং .NET এর মধ্যে পিছনে পিছনে পিছনে গিয়েছি, জাভা 1.2 থেকে 1.6 পর্যন্ত শুরু হয়েছি, এবং নেট নেট 1 থেকে 4.0 পর্যন্ত, প্রায় 10 বছরের পেশাদার কাজের অভিজ্ঞতার (তার আগে সি / সি ++ প্রোগ্রামার হওয়া)।

একসময়, নেট নেট ২.০ এর মতো, আমি বলব যে জাভা এবং সি # প্রায় একই হবে, বিশেষত ব্যাক-এন্ড কাজের জন্য। ভাষার নির্মাণগুলি এখনও খুব মিল ছিল were । নেট সম্ভবত ডেস্কটপ ইউআই প্রোগ্রামিংয়ের প্রান্তটি অর্জন করতে পারত, ভিজ্যুয়াল স্টুডিওর উইনফোর্ডস ডিজাইনারের কারণে এবং জাভাটি ওয়েব / সার্ভারের স্টাফগুলিতে প্রান্তটি পেত, মূলত আপনি আইআইএসের সাথে আটকে ছিলেন না বলে।

এখন .NET 3.5 এবং 4 এ চলেছি, আমি হাতের নীচে, নেটকে উত্পাদনশীলতার প্রান্ত দিচ্ছি। এটি মূলত আমার মতে, কারণ। নেট একটি তাত্পর্যপূর্ণ বিকশিত ভাষা, যেহেতু এমএস জেএসপির রাজনীতির মাধ্যমে পরিবর্তনগুলি ঠেকানোর বিরোধিতা হিসাবে তুলনামূলকভাবে ভাষার সিদ্ধান্ত নিতে পারে। বিগ উন্নতি হয় varকীওয়ার্ডটি Linq, এক্সটেনশন পদ্ধতি, নাল-কোয়ালেসিং অপারেটর সম্পূর্ণতা ??, dynamic, এবং সম্ভবত আরো অনেক মহান স্টাফ যে সত্যিই উত্সাহ উৎপাদনশীলতা।

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


3

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

মাইক্রোসফ্ট কিছু অফিসিয়াল লাইব্রেরি তৈরি করে যেমন এএসপি এমভিসি, লিনকিউ ইত্যাদি But

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


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

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

0

আমি নিজেকে এই প্রশ্নটি অনেক জিজ্ঞাসা করলাম: কোনটি ভাল? সি # না জাভা?

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

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

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