অ্যালগরিদমগুলি (এবং সাধারণভাবে দক্ষতা) কি কম গুরুত্বপূর্ণ হচ্ছে?


29

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


2
"হ্যাঁ এবং না" উভয়ই!
vzn

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

2
যদি ইনপুটটির আকারটি যথেষ্ট পরিমাণে বড় হয় তবে মেশিনটি যত তাড়াতাড়ি দ্রুত বিবেচনা না করেই অ্যালগরিদমের মধ্যে একটি অর্ডার অফ-প্রস্থের তাত্পর্য গুরুত্বপূর্ণ। তবে আমি মাঝে মধ্যে শুধুমাত্র "অপটিমাইজ করে" পরিবর্তন করার জন্য বোকামি করেছিলাম কেবল তখনই বুঝতে পারি যে প্রোগ্রামিং ভাষার <বিঘ্ন> পাইথন </ c>> এর সিনট্যাকটিকাল চিনির অন্তর্নিহিত অভিব্যক্তিটি আমার "অপটিমাইজেশন" এর চেয়ে উল্লেখযোগ্যভাবে দ্রুতগতির।
কোজিরো

আরো দেখুন Moores আইন
vzn

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

উত্তর:


31

আমি আলগরিদম বইয়ের পরিচিতি থেকে শুরু করে উদাহরণটি পছন্দ করি , যা অ্যালগরিদম দক্ষতার তাত্পর্য বর্ণনা করে:

আসুন দুটি বাছাই করা অ্যালগরিদমগুলির তুলনা করা যাক: সন্নিবেশ সাজান এবং মার্জ সাজান । তাদের জটিলতা এবং । সাধারণত সাজানোর একত্রীকরণ একটি বড় ধ্রুবক ফ্যাক্টর আছে, তাই এর অনুমান করা যাক ।( এন লগ এন ) = সি 2 এন এলজি এন সি 1 < সি 2 2O(n2)=c1n2O(nlogn)=c2nlgnc1<c2

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

আমরা মনে করি:

  • ইনপুট সমস্যার আকারটি 10 ​​মিলিয়ন সংখ্যা: ;n=107
  • কম্পিউটার এ প্রতি সেকেন্ডে নির্দেশাবলী কার্যকর করে (~ 10GHz);1010
  • কম্পিউটার বি প্রতি সেকেন্ডে মাত্র নির্দেশাবলী কার্যকর করে (M 10MHz);107
  • ধ্রুবক কারণগুলি হ'ল (যা কিছুটা বাড়িয়ে দেওয়া হয়) এবং (বাস্তবে এটি ছোট)।সি 2 = 50c1=2c2=50

সুতরাং এই অনুমান সঙ্গে এটি লাগে

107

2(107)2 instructions1010 instructions/second=2104 seconds
জন্য কম্পিউটার এ নম্বর বাছাই এবং107

50107lg107 instructions107 instructions/second1163 seconds

কম্পিউটার বি।

সুতরাং, কম্পিউটার, যা 1000 গুণ ধীর, 17 গুণ দ্রুত সমস্যার সমাধান করতে পারে। বাস্তবে সংযুক্তি বাছাইয়ের সুবিধা আরও বেশি তাৎপর্যপূর্ণ এবং সমস্যার আকারের সাথে বৃদ্ধি পাবে। আমি আশা করি এই উদাহরণটি আপনার প্রশ্নের উত্তর দিতে সহায়তা করবে।

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

সুতরাং সংক্ষেপে বলা যায়, দক্ষ অ্যালগরিদমগুলির নকশা আজ আগের মতোই গুরুত্বপূর্ণ, কারণ দক্ষ অ্যালগরিদমের সাথে তুলনা করে ফ্রিকোয়েন্সি বৃদ্ধি বা অতিরিক্ত কোর আপনাকে গতিবেগ দেবে না।


4
এটি উল্লেখযোগ্য যে লিনিয়ার স্পিডআপের অসম্ভবতা আমধলের আইন থেকে প্রাপ্ত ।
বার্তোস্জ প্রিজিবিলস্কি

আমধলের আইন সর্বদা প্রযোজ্য নয়। কম্পিউটেশনাল সায়েন্সে প্রচুর সমস্যা রয়েছে যেখানে সমস্যার আকার বাড়ার সাথে সাথে অপ্রতিযোগিতামূলক কাজের ভগ্নাংশ শূন্যে নেমে আসে। বলুন কম্পিউটিং সময় লাগে কাজ এবং আপনি প্রয়োজন কম্পিউট জন্য বিভিন্ন । সিরিয়ালে সময় ব্যয় হ'ল , যেখানে প্রসেসরের সমান্তরালে , কাজটি । n 2 n i = 1 f ( x i ) n x i s O ( n n 2 + n ) = O ( n 3 ) n O ( n 2 + n ) = O ( n 2 )f(x)n2i=1nf(xi)nxisO(nn2+n)=O(n3)nO(n2+n)=O(n2)
নিক

"সুতরাং কম্পিউটার, যা 1000 গুণ ধীর গতির, সমস্যাটি 17 বার দ্রুত সমাধান করতে পারে" "আপনি একই সময়ে হার্ডওয়্যার গতি এবং বিভিন্ন অ্যালগরিদমের সংমিশ্রণ করার কারণে এটি একটি মিথ্যা বক্তব্য। বরং প্রতিটি ধরণের সাজানোর জন্য কম্পিউটার এ বনাম কম্পিউটার বি তুলনা করুন। (আমি কেন কম্পিউটার এ, বা কম্পিউটার বিতে সন্নিবেশ সাজানোর ব্যবহার করতে পারি না?)
অ্যাকোয়াএলেক্স

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

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

36

অপরদিকে. একই সময়ে হার্ডওয়্যারটি সস্তা হওয়ায় অন্যান্য বেশ কয়েকটি উন্নয়ন ঘটে।

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

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

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

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

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


"অ্যালগোরিদমগুলি এখনও মরে নি" ... এর সম্পূর্ণ বিপরীতে আমরা সম্ভবত "অ্যালগরিদমের স্বর্ণযুগ" এর মধ্য দিয়ে বেঁচে
আছি

12

দ্রুত অ্যালগরিদম কীভাবে লিখবেন তার চেয়ে অ্যালগরিদমের জ্ঞান অনেক বেশি।

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

আমি প্রায়শই বিকাশকারীদের শুনতে পাই "এমন কেউ, যিনি জানেন যে কীভাবে দ্রুত একটি বৃহত সিস্টেম তৈরি করতে হয়।" দ্রুত বৃহত সিস্টেমগুলি নির্মাণের কোনও কৌশল নেই; আপনি এগুলি যত তাড়াতাড়ি গড়ে তুলবেন তত বেশি তারা পাবেন!

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

অ্যালগরিদমগুলির জ্ঞান আমাদের কীভাবে আপনার ডেটা সংগঠিত করবেন তা আমাদের জানায় যাতে ডেটা স্ট্রাকচারের ব্যবহারের মাধ্যমে আপনি আরও সহজে এবং দক্ষতার সাথে তাদের প্রক্রিয়া করতে পারেন ।

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

সফ্টওয়্যার দক্ষতার গুরুত্বের বিষয়ে আমি উইথের আইনটি উদ্ধৃত করব:

হার্ডওয়্যার দ্রুত হওয়ার চেয়ে সফটওয়্যারটি আরও ধীর হয়ে যাচ্ছে।

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


7

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

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

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

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

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

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


2

এটি একটি আকর্ষণীয় আলোচনা। এবং আমাদের এখানে কয়েকটি জিনিস দেখার দরকার আছে।

  1. তাত্ত্বিক কম্পিউটার বিজ্ঞান - এটি একটি বিবর্তিত বিজ্ঞান যার অর্থ সময়ের সাথে সাথে আমরা সমস্যাগুলি সমাধানের জন্য আরও নতুন এবং আরও ভাল উপায়গুলি খুঁজে পাব, যার অর্থ অনুসন্ধানের জন্য উদাহরণস্বরূপ বাছাই করার জন্য উন্নত অ্যালগরিদম।

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

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

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

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


1

এই আকর্ষণীয় এবং গভীর প্রশ্নে অন্যান্য বেশ কয়েকটি কোণ যে জোর দেওয়া আন্তঃবিষয়ক ঘটনাটি এবং crosscutting আ। দাই তার উত্তরে উইথের আইন উদ্ধৃত করেছেন:

হার্ডওয়্যার দ্রুত হওয়ার চেয়ে সফটওয়্যারটি আরও ধীর হয়ে যাচ্ছে।

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

উদাহরণস্বরূপ, বেনামে আইনের তালিকা, উইকিপিডিয়া :

পার্কিনসনের আইন - "কাজটি এর প্রসারণের জন্য উপলব্ধ সময়টি পূরণ করার জন্য প্রসারিত হয়।" সি। নর্থকোট পার্কিনসন (১৯০৯-১৯৯৩) দ্বারা পরিচালিত, যিনি এর মূল প্রতিপাদ্যও রচনা করেছিলেন, "ব্যয় আয় অর্জনের জন্য বেড়ে যায়।" কম্পিউটারগুলিতে: সমস্ত উপলব্ধ মেমরি পূরণ করার জন্য প্রোগ্রামগুলি প্রসারিত হয়।

জেভনের প্যারাডক্সের সাথে কিছু দৃ strong় মিল রয়েছে যা আরও কার্যকর ওয়াট বাষ্প ইঞ্জিনগুলি নিউকোমেন ডিজাইন প্রতিস্থাপন করা শুরু করার পরে শক্তি ব্যবহারের বৃদ্ধিতে দেখা গেছে, তবে ইঞ্জিনগুলির ব্যবহার বা বিস্তার বৃদ্ধি পেয়েছিল:

অর্থনীতিতে, জেভনস প্যারাডক্স (/ ˈdʒɛvənz /; কখনও কখনও জেভনস এফেক্ট) এমন একটি প্রস্তাব যে প্রযুক্তিগত অগ্রগতি যা কোনও সংস্থান ব্যবহার করে যে দক্ষতা বৃদ্ধি করে সেই সংস্থানটির ব্যবহারের হার বাড়ার (হ্রাসের পরিবর্তে) প্রবণতা।

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


ডাউনটা কেন? আমি পার্কিনসনের আইন এবং জেভনসের প্যারাডক্সের উল্লেখটি খুব উদ্ভাসিত বলে মনে করি।
যুবাল ফিল্মাস

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

1
এটি "ব্যাকরণ নিয়ে সমস্যা" নয়, এটি একটি ভিন্ন স্টাইল। এটি বলার মতো যে কোনও স্থানীয় বক্তা তাদের নিজস্ব ভাষায় কথা বলতে "ভুল" করেন, যখন বাস্তবে উভয়ই ভাষা পরিবর্তন হয়, বা আঞ্চলিক বৈচিত্র রয়েছে। এই ক্ষেত্রে, এটি vzn এর idiomatic শৈলী।
যুবাল ফিল্মাস

-3

না, বেশিরভাগ জায়গার জটিলতার কথা বিবেচনা করার সময়! একটি সাধারণ কম্পিউটারের সঞ্চয়ের ক্ষমতা দ্রুত বৃদ্ধি পাচ্ছে।


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

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