গতিশীলভাবে বনাম স্ট্যাটিক্যালি টাইপ করা ভাষা অধ্যয়ন [বন্ধ]


69

স্ট্যাটিকালি বনাম গতিময় টাইপ করা ভাষার কার্যকারিতা নিয়ে অধ্যয়ন কি আছে?

নির্দিষ্টভাবে:

  • প্রোগ্রামার উত্পাদনশীলতার পরিমাপ
  • খুঁত হার

এছাড়াও ইউনিট পরীক্ষা নিযুক্ত করা হয় কিনা এর প্রভাবগুলিও অন্তর্ভুক্ত।

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


8
@ বিগাউন, আমার কাছে মনে হয় না যে উত্পাদনশীলতা এবং ত্রুটিগুলি কম্পিউটার কম্পিউটার বিজ্ঞানের তত্ত্বের সাথে সম্পর্কিত
উইনস্টন এওয়ার্ট

2
@ উইনস্টন: এই ধরণের বিষয় নিয়ে পড়াশোনা করা কম্পিউটার প্রোগ্রামারদের নয়, কম্পিউটার বিজ্ঞানীদের কাজ।
ম্যানেরো

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

8
প্রশ্নটি পুরোপুরি বিষয়ে topic এই প্রোগ্রামটি আমরা প্রোগ্রামে যে সরঞ্জামগুলি ব্যবহার করি তার মধ্যে অন্যতম গুরুত্বপূর্ণ বৈশিষ্ট্য নিয়ে আলোচনা করে।
ফ্রাঙ্ক শায়ারার

4
@ উইনস্টন: টাইপিং সিস্টেমগুলি সিএস তত্ত্বের অন্তর্ভুক্ত, তবে ব্যবহারিক গবেষণায় তা হয় না।
ডেভিড থর্নলি

উত্তর:


42

কিছু পড়ার পরামর্শ দিয়েছেন:

স্থির টাইপিংয়ের ক্ষেত্রে ঠিক নয়, তবে সম্পর্কিত:

বিষয়টিতে বা সাধারণভাবে প্রোগ্রামগুলির স্থির বিশ্লেষণের উপর কিছু আকর্ষণীয় নিবন্ধ বা প্রবন্ধ:

এবং যাঁরা এই বিষয়গুলি সম্পর্কে কী তা ভাবছেন:

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

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

সতর্কতা: এর মধ্যে কয়েকটি লিঙ্ক অবিশ্বাস্য, এবং কিছু সদস্যদের জন্য ফি-ভিত্তিক অ্যাক্সেস ব্যবহার করে বিভিন্ন কম্পিউটিং সোসাইটির পোর্টালগুলি দিয়ে যায়। এর জন্য দুঃখিত, আমি এগুলির প্রত্যেকের জন্য একাধিক লিঙ্কগুলি সন্ধান করার চেষ্টা করেছি তবে এটি যতটা চাই তা ঠিক তেমন ভাল নয়।


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

রি ট্যুলিং, আমাকে বলতে হবে যে এটি আপনার ভাষার উপর নির্ভর করে - স্মলটাকের কাছে একটি রিফ্যাক্টরিং ব্রাউজার সহ দুর্দান্ত সরঞ্জাম রয়েছে যা গ্রহন করার জন্য এখনও (এখনও আমাকে বলা হয়েছে) রয়েছে।
ফ্র্যাঙ্ক শেয়ার

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

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

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

19

গতকাল আমি এই গবেষণাটি পেয়েছি: ইউনিট পরীক্ষা যথেষ্ট নয় isn't আপনার স্ট্যাটিক টাইপিংও দরকার।

মূলত লেখক একটি অস্ট্রেলিক টাইপিং ভাষা থেকে একটি প্রকল্পকে স্বয়ংক্রিয়ভাবে একটি স্ট্যাটিক টাইপিংয়ে রূপান্তর করতে সক্ষম একটি সরঞ্জাম ব্যবহার করেছিলেন (পাইথন থেকে হ্যাশেল)

তারপরে তিনি বেশ কয়েকটি ওপেন সোর্স পাইথন প্রকল্পগুলি বেছে নিয়েছিলেন যার মধ্যে যুক্তিসঙ্গত পরিমাণ পরীক্ষা ইউনিটও অন্তর্ভুক্ত ছিল এবং স্বয়ংক্রিয়ভাবে সেগুলি হ্যাশকে রূপান্তরিত হয়েছিল।

হাস্কেল-এর অনুবাদে ভেরিয়েবলের ধরণের সম্পর্কিত ত্রুটিগুলির একটি সিরিজ প্রকাশিত হয়েছিল: ত্রুটিগুলি পরীক্ষা ইউনিটগুলির দ্বারা সনাক্ত করা যায় নি।


4
গতিশীল টাইপিংয়ের অস্বস্তিকর সত্য।
ডেন

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

4
আমি রেডডিতে এই লিঙ্কটিতে একটি পোস্টে সাড়া দিয়েছি। আমি মনে করি না যে কাগজ থেকে প্রাপ্ত সিদ্ধান্তগুলি যুক্তিসঙ্গত।
Veedrac

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

10
  • স্টিফান হেনেনবার্গ নিবন্ধের (একটি আগের পোস্টে লরিন হচস্টেইন দ্বারা রেফারেন্স করা) এসিএম পেপার " স্ট্যাটিক অ্যান্ড ডায়নামিক টাইপ সিস্টেমস সম্পর্কে একটি পরীক্ষা " (২০১০) আলোচনার লিঙ্ক ।
  • উপসংহার: গতিশীল ভাষায় অনুরূপ মানের জন্য উত্পাদনশীলতা বেশি ছিল।
  • সম্ভাব্য পক্ষপাত / বৈধতা সংক্রান্ত সমস্যা: পরীক্ষামূলক বিষয়গুলি সমস্ত ছাত্র ছিল। এছাড়াও, সীমিত বিভিন্ন প্রোগ্রামিংয়ের কাজগুলি (বিষয়গুলিকে স্ক্যানার এবং পার্সার প্রয়োগ করতে বলা হয়েছিল)।
  • এসিএম কাগজ " কি প্রোগ্রামিং ভাষাগুলি উত্পাদনশীলতাকে প্রভাবিত করে? " (2007) দেলোরে, নডসন এবং চুন দ্বারা by
  • উপসংহার: জাভা স্ক্রিপ্ট, টিসিএল, পার্ল সি # সি ++ এবং জাভার চেয়ে বেশি উত্পাদনশীল। পাইথন এবং পিএইচপি মাঝখানে পড়ে।
  • সম্ভাব্য পক্ষপাতিত্ব / বৈধতা সম্পর্কিত সমস্যা: গুণমানের কোনও পরিমাপ নেই (যেমন বাগ-মুক্তির পরে অনুসন্ধান করা হয়েছে)। নির্ভরযোগ্যতার কোনও পরিমাপ নেই (স্ট্যাটিকালি টাইপ করা ভাষাগুলিতে কি আরও বেশি নির্ভরযোগ্য সফ্টওয়্যার লেখা আছে?) নমুনা পক্ষপাত - সমস্ত প্রকল্পগুলি উন্মুক্ত উত্স সিভিএস সংগ্রহস্থল থেকে নেওয়া হয়েছিল open এছাড়াও, দুর্বল এবং দৃ strongly়ভাবে টাইপ করা ভাষার (যেমন পয়েন্টার) মধ্যে কোনও পার্থক্য নেই।
  • মাইকেল এফ সিয়োক লিখেছেন থিসিস " সফটওয়্যার প্রোডাক্টিভিটি অ্যান্ড কোয়ালিটির এমপিরিয়াল স্টাডি " (২০০৮)
  • উপসংহার: প্রোগ্রামিং ভাষার পছন্দগুলি উত্পাদনশীলতা বা গুণমানকে উল্লেখযোগ্যভাবে প্রভাবিত করে না। তবে এটি শ্রম ব্যয় এবং "সামগ্রিক সফ্টওয়্যার প্রকল্পের পোর্টফোলিওর মধ্যে গুণমানকে" প্রভাবিত করে।
  • সম্ভাব্য পক্ষপাতিত্ব / বৈধতা সম্পর্কিত সমস্যা: এভিওনিক্স ডোমেনে সীমাবদ্ধ। প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি সমস্ত স্থিরভাবে টাইপ করা যেতে পারে। আমি থিসিসটি পড়িনি, তাই আমি এর কঠোরতা মূল্যায়ন করতে পারি না।
    আমার মতামত. যদিও গতিশীলভাবে টাইপ করা ভাষাগুলি বেশি উত্পাদনশীল এমন দুর্বল প্রমাণ রয়েছে, তবে এটি চূড়ান্ত নয়। (1) এমন অনেকগুলি কারণ রয়েছে যা নিয়ন্ত্রণ করা হয়নি, (২) খুব অল্প অধ্যয়ন রয়েছে, (৩) কোন উপযুক্ত পরীক্ষা পদ্ধতিটি গঠন করে সে সম্পর্কে খুব কম বা আলোচনা হয়নি।

6

এখানে একটি সূচনা পয়েন্ট:

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


5
নন-আইইইইই লোকের জন্য, প্রাথমিক সারসংক্ষেপটি কী?
ফ্র্যাঙ্ক শিয়েরার

1
@ ফ্র্যাঙ্ক শিয়েরার, তারা যে সিদ্ধান্তে টানছেন তা হ'ল প্রোগ্রামিংয়ের ভাষা উত্পাদনশীলতাকে প্রভাবিত করে। তারা প্রতি ভাষা প্রতি প্রোগ্রামার প্রতি কোড লাইন পরিমাপ করছে, আমি নিশ্চিত না যে উত্পাদনশীলতার একটি ভাল পরিমাপ হয়।
উইনস্টন ইওয়ার্ট

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

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

আমি যে তার সাথে একমত. তবে এটি আমার মূল প্রশ্নের উত্তর দেয় না।
উইনস্টন ইওয়ার্ট

1

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

নির্বাহী সংক্ষিপ্তসার এখানে:

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

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

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

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

বাকি পরীক্ষাগুলি সম্পর্কে, তাদের কাছ থেকে আমার প্রধান গ্রহণযোগ্যতা হ'ল, গবেষণায় বর্ণিত পরিস্থিতিতে নির্দিষ্ট পরিস্থিতির অধীনে, কোনও প্রভাব, যদি তা অস্তিত্ব থাকে তবে তা সামান্যই।

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

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

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

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

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

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

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

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


0

আমি সত্যই মনে করি না যে স্ট্যাটিক বনাম ডায়নামিক টাইপিংই আসল প্রশ্ন।

আমি মনে করি যে এখানে দুটি পরামিতি আসতে হবে:

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

আপনি যদি ভাষাটিতে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি কোড লিখবেন এবং আপনি সহজেই বাগগুলি সন্ধান করবেন।

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

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


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

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

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

0

এখানে কয়েকটি দেওয়া হল:

  • স্টিফান হ্যানেনবার্গ 2010. স্ট্যাটিক এবং ডায়নামিক টাইপ সিস্টেমগুলি সম্পর্কে একটি পরীক্ষা: বিকাশের সময়ে স্ট্যাটিক টাইপ সিস্টেমগুলির ইতিবাচক প্রভাব সম্পর্কে সন্দেহ। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং সিস্টেমের ভাষা ও অ্যাপ্লিকেশনগুলিতে এসিএম আন্তর্জাতিক সম্মেলনের কার্যক্রমে (ওওএসপিএলএ '10)। এসিএম, নিউ ইয়র্ক, এনওয়াই, মার্কিন যুক্তরাষ্ট্র, ২২-৩৫। ডিওআই = 10.1145 / 1869459.1869462 http://doi.acm.org/10.1145/1869459.1869462

  • ড্যানিয়েল পি। ডালোরি, চার্লস ডি নটসন, স্কট চুন, "প্রোগ্রামিং ভাষা কী উত্পাদনশীলতাকে প্রভাবিত করে? ওপেন সোর্স প্রকল্পের ডেটা ব্যবহার করে একটি কেস স্টাডি," ফ্লস, পিপি ৮, এফএলএসএস গবেষণা ও বিকাশের উদীয়মান প্রবণতা সম্পর্কিত প্রথম আন্তর্জাতিক কর্মশালা (এফএলএসএস) '07: আইসিএসই ওয়ার্কশপ 2007), 2007

  • ডেলি, এম ;; সাজাওয়াল, ভি।, ফস্টার, জে .: প্রগতিতে কাজ করুন: ওব-ওয়ার্ড ২০০৯-এ রুবীতে স্ট্যাটিক টাইপিংয়ের একটি সম্রাজ্যীয় স্টাডি, ওএন ওয়ার্ড ২০০৯ এ প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং সরঞ্জামগুলির মূল্যায়ন ও ব্যবহারযোগ্যতা সম্পর্কিত কর্মশালা (প্ল্যাটআউ)।

  • লুটজ প্রিচেল্ট এবং ওয়াল্টার এফ টিচি। 1998. প্রক্রিয়া যুক্তি টাইপ চেকিংয়ের সুবিধা নির্ধারণের জন্য একটি নিয়ন্ত্রিত পরীক্ষা। আইইইই ট্রান্স Softw। ইং। 24, 4 (এপ্রিল 1998), 302-312। ডিওআই = 10.1109 / 32.677186 http://dx.doi.org/10.1109/32.677186

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