পরিচালিত কোডার্স বনাম নেটিভ কোডার্স


19

আমি একটি কোডার এবং উভয় নেটিভ এবং পরিচালিত কোডের সাথে অভিজ্ঞতা অর্জন করি। আমি পাস্কাল এবং সি দিয়ে শুরু করেছি, তারপরে সি ++ এবং শেষ পর্যন্ত সি # তে চলে এসেছি।

গত বছর বা তারও বেশি সময় ধরে, আমি সি # তে প্রায় একচেটিয়াভাবে কোডিং করে চলেছি এবং যখন আমি সি ++ কোডার ছিলাম তখন প্রাকৃতিকভাবে যা আসত তা অনেকটাই হারিয়ে ফেলেছি।

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

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

বিশুদ্ধরূপে প্রযুক্তিগত দৃষ্টিকোণ থেকে, কোনও পরিষ্কার বিজয়ী নেই।

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

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

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

আমি আগ্রহী অন্য অভিজ্ঞ কোডাররা কীভাবে পরিচালিত এবং পরিচালনা না করা ভাষা দেখেন see আপনি কি অপেশাদার-ইশ হিসাবে পরিচালিত কোড দেখতে পাচ্ছেন ? আপনি এমন আরো অনেক নেটিভ পরিকল্পনাটি দেখতে পান কি হার্ডকোর ?

java  .net 

উত্তর:


26

আমার দিনের চাকরীটি বর্তমানে সি ++ তে রয়েছে তবে আমি বেশ কয়েকটি ভাষায় প্রোগ্রাম করেছি যে আমি আর পার্থক্য পাচ্ছি না। আমার পর্যবেক্ষণগুলি এখানে:

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

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

আমি অনুমান করি আমি যা বলতে চাইছি তা হ'ল আমার অভিজ্ঞতায় প্রোগ্রামারের প্রশিক্ষণ সে যে ভাষা ব্যবহার করছে তার থেকে অনেক বেশি তাত্পর্য তৈরি করে।


20

আপনি কি অপেশাদার-ইশ হিসাবে পরিচালিত কোড দেখতে পাচ্ছেন? আপনি কি আরও শক্তিশালী হিসাবে দেশীয় কোডার দেখতে পাচ্ছেন?

না।

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

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


+1 তবে মনে রাখবেন যে এটি একটি অর্থনৈতিক প্রভাব - যদি কোনও গণনা চক্রের জন্য 1 মিলিয়ন ডলার ব্যয় হয় তবে চূড়ান্ত অপ্টিমাইজেশন শাসন করতে পারে - বা আমরা কম্পিউটারগুলি নিয়ে মোটেই বিরক্ত করব না ...
গ্যারি রোউ

10
আমরা সামগ্রিকভাবে কম পারফরম্যান্সটি দেখতে পাচ্ছি না - ওয়ার্ড 6 আধুনিক হার্ডওয়্যারে আলোর মতো সঞ্চালিত হয়, ওয়ার্ড 2010 কেবল লোড হতে এক মিনিট সময় নেয়। প্রোগ্রামারদের সাথে তাল মিলিয়ে চলার জন্য আজ আমাদের সেই সুপারফেষ্টার হার্ডওয়ারটি দরকার !
gbjbaanb

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

2
@gbjbaanb, ওয়ার্ড ২০১০ .NET এ ওয়ার্ড 6 এর সরাসরি পুনর্লিখন নয়। এটি আরও অনেকগুলি বৈশিষ্ট্য যুক্ত করে এবং আরও অনেক ব্যবহারের পরিস্থিতি পরিচালনা করতে হয়। এটি ওয়ার্ড 6. এর চেয়ে অনেক বেশি , অনেক বড় অ্যাপ্লিকেশন
মিরসিয়া চিরিয়া

6

দুঃখের বিষয়, মাইক্রোসফ্ট আমাদের "ম্যানেজড কোড" সি # /। নেট ক্লাসের লাইব্রেরিগুলির সাথে মিশ্রিত করতে নেতৃত্ব দিয়েছে।

এখানে দুটি পৃথক এবং প্রায় সম্পর্কিত নয় সম্পর্কিত জিনিস রয়েছে।

  1. শীতল। নেট লাইব্রেরি।

  2. পরিচালিত কোড।

সি # উভয়ই একটি দামের জন্য একটি পরিপাটি, সমর্থিত, সহজেই ব্যবহারযোগ্য প্যাকেজ সরবরাহ করে।

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

আরও ভাল গ্রন্থাগারগুলি আপনাকে দুর্দান্ত সি ++ কোডও লিখতে দেয়।

যখনই আমি কাউকে সি / সি ++ তে একটি বৃহত্তর, পুরো বৈশিষ্ট্যযুক্ত জিইউআই অ্যাপ্লিকেশন লিখেছি দেখছি, আমি সাহায্য করতে পারি না তবে বিস্ময়ের বোধ এবং হিংসার ইঙ্গিত বোধ করি

খারাপ নীতি। পরিবর্তে আপনার খুঁজে নেওয়া উচিত তারা শ্রেণীর সংজ্ঞাগুলির কি লাইব্রেরি ব্যবহার করেছে। আপনিও সেই লাইব্রেরি ব্যবহার করতে পারেন।

এটি সমস্ত সরঞ্জাম সম্পর্কে। সরঞ্জাম ব্যতীত, আমরা প্যান্টে কেবল প্রাণী animals

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


"তারা কী ব্যবহার করছে তা সন্ধান করুন" এর জন্য +1, তবে সত্যই আমি মনে করি সরঞ্জাম-ব্যবহারকারী প্রাণী বা উপলক্ষে প্যান্ট পরতে এমন প্রাণীদের পক্ষে এটি খুব সুন্দর নয়।
আয়ান পাগসলে

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

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

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

মাইক্রোসফ্ট আপনাকে উইন্ডোজ 8-এ আবার সি ++ নিয়ে সহায়তা করছে (পুরো উইন্ডোজ 8 বিকাশের পৃষ্ঠার মূল কোড হ'ল, এবং সি ++ সি # এবং জাভাস্ক্রিপ্টের সাথে প্রথম শ্রেণির নাগরিক): এমএসডিএন.মাইক্রোসফট
জ্যাচ

5

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

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

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

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


সিমডের চেয়ে প্রসেসরের মধ্যে আরও পার্থক্য রয়েছে - যদিও আপনার সি ++ সংকলক সম্ভবত আপনার জেআইটির মতো পাইপলাইনটিকে অ্যাকাউন্টে নিচ্ছে।
পিটার টেলর

একটি রানটাইম পরিবেশ যেখানে সিস্টেমের অবস্থা পরীক্ষা করা এবং প্রতিটি অ-পিনযুক্ত-অবজেক্ট রেফারেন্স সনাক্ত করা সম্ভব যা কখনও পৌঁছনীয় হতে পারে সি সি ++ এ সম্ভব না এমন উপায়ে প্রচুর জিসি-সংক্রান্ত ব্যয়কে এমোরিটাইজ করতে পারে । জাভা বা সি # তে প্রদত্ত String foo,bar;বিবৃতি foo=bar;দুটি নির্দেশ কার্যকর করবে - একটি রেজিস্টার লোড এবং একটি রেজিস্টার স্টোর। স্ট্রিং দৈর্ঘ্য নির্বিশেষে নির্বাহের ক্রমাগত সময়। সি ++ কি কাছাকাছি আসতে পারে?
সুপারক্যাট

2

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

বিটিডব্লিউটি এর বিমূর্ত স্তর সি এর জন্য অবিশ্বাস্যভাবে দ্রুত, মাইক্রোসফ্ট একটি দুর্দান্ত কাজ করেছে।


2

অপেশাদার ভাষা প্রোগ্রাম নয়, অপেশাদার প্রোগ্রামার রয়েছে। তাদের উদ্দেশ্যগুলির সমস্ত ভাষা (ভাল, তাদের মধ্যে বেশিরভাগ অন্তত) রয়েছে।

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

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

আমি যে ভাষাটি ব্যবহার করি না কেন আমি অপেশাদার মনে করি না, আমি কেবল বোকা বাগ তৈরি করলেই তা অনুভব করি।


1

গত বছর যে ফার্মে আমি কাজ করি তা হ'ল ব্রুট ফোর্সের মাধ্যমে একটি যোগাযোগ সিআরসি কোড বিপরীত প্রকৌশল ছিল (আমরা এটি শেষ পর্যন্ত পেয়েছি)। 3 বিকাশকারীদের প্রত্যেকটির নিজস্ব সংস্করণ ছিল, বোরল্যান্ড সি, সি #। নেট 2008, ভিবি 6। VB6 স্পষ্টতই ধীর ছিল, বোরল্যান্ড সি দ্রুত ছিল তবে C #। নেট কেবল 12 গতিবেগে এটিকে আঘাত করেছে। আমরা একেবারে প্রত্যাশা ছিল না।


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

কোনও পুরানো সি সংকলক সর্বশেষ প্রসেসরের নির্দেশাবলী (যেমন, এসএসই 2 এবং তার পরে) ব্যবহার করছেন না
গ্র্যান্ডমাস্টারবি

1
তিনটি ভাষাই অনুকূলিত নেটিভ কোডে সংকলন করে (সংকলন চলাকালীন VB6 / C ++, JIT এর সময় .NET)। সুতরাং আপনি সম্ভবত প্রোগ্রামিং ভাষার পরিবর্তে আপনার প্রোগ্রামারদের মধ্যে পার্থক্যগুলি পরিমাপ করছেন।
নিকি

@ নিকি জেআইটি! = সংকলন। এবং সংকলকগুলির গুণমান পৃথক হয়। আমি জেআইটি সম্পর্কে সমস্ত কথা বলা সত্ত্বেও জাভা থেকে সি ++ (কোনও এপিআই কল নয়, কেবল অ্যারে রেফারেন্স, লুপ এবং সরল পাটিগণিত) লেখার সময় একই অ্যালগরিদমটি খুব দ্রুত সম্পাদন করতে দেখেছি।
কোয়ান্ট_দেব

1
@quant_dev: আমার অভিজ্ঞতা আছে হয় রক্ষা কবচ নেই ;-) .NET জে আই টি JIT সঙ্গে আমার অভিজ্ঞতা জে আই টি JIT এবং MSVC মধ্যে পার্থক্য ++, খুব ছোট হয়। আমি খুব খুব একই কোডের জন্য 12x সন্দেহ করি।
নিকি

1

এটি সামগ্রীর মিশ্রণের উপর নির্ভর করে, তবে মূলত, সমস্ত কিছু সমান হচ্ছে, হ্যাঁ, নেটিভ কোডটি পরিচালিত কোডের চেয়ে বেশি "শক্তিশালী"।

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


1

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


1

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

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

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

আবার কালো ও সাদা নয়। অনেকগুলি বৌদ্ধিকভাবে অলস ব্যবস্থাপনিত বিকাশকারী এবং হার্ডকোর পরিচালিত বিকাশকারী রয়েছে। উভয়ই সংজ্ঞা অনুসারে অন্যের চেয়ে বেশি অভিজাত নয়।


0

আপনি কি অপেশাদার-ইশ হিসাবে পরিচালিত কোড দেখতে পাচ্ছেন? আপনি কি আরও শক্তিশালী হিসাবে দেশীয় কোডার দেখতে পাচ্ছেন?

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


আপনার বর্ণনা অনুসারে একটি অ্যাপ্লিকেশন কনস্ট্রাক্টিং সিস্টেম হ'ল অন্য একটি (এবং আশাকরি ভাল) প্রোগ্রামিং ভাষা।
ডেভিড থর্নলি

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

0

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

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