প্রোগ্রামিং ভাষা কয় প্রকার? [বন্ধ]


30

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

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


2
কয়টির পরিবর্তে "কোন ধরণের .." না বলা ভাল?
আমির রেজায়ে

ঠিক আছে আমি শিখেছি যে প্রোলগ এবং সি এর মতো কিছু মৌলিকভাবে আলাদা, তাই আমি ভাবছিলাম যে তাদের প্রত্যেকটি একটি ভিন্ন ধরণের প্রোগ্রামিং ভাষার সাথে মিলে যায়, এবং আমি আশা করি যে কতগুলি প্রকারের একটি উপলব্ধি পেতে পারি ।
সোভা 20

7
2: আপনি যা চান সেই ধরণের এবং কী না তা টাইপ করুন
ম্যাট এলেন

1
বিভিন্ন ধরণের প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে শেখা একেবারে গঠনমূলক ! আপনি সম্ভবত যুক্তি দিতে পারেন এটি এর সদৃশ হিসাবে এটি বন্ধ করা উচিত তবে আমি মনে করি তারা পৃথক থাকার জন্য যথেষ্ট প্রশ্ন।
পিটার বুটন

1
@ সোভা, আমি সি-ভিত্তিক সিনট্যাক্স ব্যবহার না করে এমন কিছু চেষ্টা করার জন্য আপনার নতুন ভাষার প্রথম পছন্দ করার পরামর্শ দেব। এটি আপনার মাথাটি কীভাবে বনাম কাজ করে তার উপর আরও বেশি কেন্দ্রীভূত হয়ে উঠবে you আপনি কী জানেন তার থেকে এটি কীভাবে আলাদা।
এরিক পুনরায়

উত্তর:


73

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

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

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

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


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

স্ক্রিপ্টিং ভাষাগুলি, যেমন ভিবিএস স্ক্রিপ্ট কীভাবে এতে খাপ খায়? এটি কিছুটা প্রসেসরিয়াল এবং কিছুটা ওও হতে পারে যেহেতু কেউ বিভিন্ন ধরণের তৈরি করতে পারে, সুতরাং এটি কি এটি একটি সংকর হিসাবে তৈরি করবে?
জেবি কিং

আমি ঠিক এটিই খুঁজছিলাম। আপনাকে অনেক ধন্যবাদ.
সোভা

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

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

12
  • সমাবেশ
  • প্রথাগত
    • মৌলিক
    • সি
  • অবজেক্ট ওরিয়েন্টেড
    • সি শার্প
    • জাভা
  • ঘোষণামূলক
    • Prolog
    • এসকিউএল
  • ক্রিয়ামূলক
    • পাতার মর্মর
    • Haskell,

এগুলি হ'ল প্রধান, তবে সেখানে প্রচুর অন্যান্য দৃষ্টান্ত রয়েছে এবং এগুলির মধ্যে প্রচুর ওভারল্যাপ রয়েছে।


কীভাবে ঘোষণাপত্র সম্পর্কে (যেমন প্রোলগ, এসকিউএল)?
ব্রুস অল্ডারম্যান

ব্রুস, এখন তাদের পেয়েছেন।

হ্যাঁ এই সাধারণ ধারণাটি আমি কোথাও কোথাও শিখেছি।
সেভেনসিয়াট

6
সমাবেশকে পদ্ধতিগত বিবেচনা করা উচিত নয়?
ম্যাটড্যাভি

2
ফরথ এবং ফ্যাক্টারের মতো কনকনেটেটিভ (স্ট্যাক-ভিত্তিক) প্রোগ্রামিং ভাষা সম্পর্কে কীভাবে? আপনি এটিকে এক ধরণের ফাংশনাল প্রোগ্রামিং বিবেচনা করতে পারেন, তবে এটি উল্লেখ করার পক্ষে যথেষ্ট স্বতন্ত্র। en.wikipedia.org/wiki/Concatenative_programming_language
KChaloux

11

ধরণের প্রোগ্রামিং ভাষার (প্যারাডিজম) জন্য, এখানে দেখুন:
http://en.wikedia.org/wiki/Programming_paradigm

প্রোগ্রামিং ভাষার অন্যান্য বৈশিষ্ট্যগুলির জন্য (যেমন টাইপ সিস্টেমগুলি) এখানে দেখুন: http://en.wikedia.org/wiki/Pramramming_language


আহ! "দৃষ্টান্ত" কি ভাল কথা! আপনাকে ধন্যবাদ
sova

@ সোভা আমি এটিকে সেরা উত্তর হিসাবে গ্রহণ করব, কারণ পি.এসই উত্তরে তালিকার জন্য কেবলমাত্র অনেকগুলি দৃষ্টান্ত রয়েছে, প্রত্যেকটির সংক্ষিপ্ত বিবরণ বর্ণনা করার চেয়ে কম।
রে মিয়াসাকা

9

পিডিএফ দেখতে ছবিতে ক্লিক করুন। প্রোগ্রামিং উপমা পোস্টার

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

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


6
  • কার্যপ্রণালী: সমাবেশ, জাভা, সি #, এফ #, লিস্প, ফোর্টরান।

  • সেট ভিত্তিক: এসকিউএল।

  • প্যাটার্ন ভিত্তিক: পার্ল, রেজেক্স, স্নোবোল।

  • গাছ ভিত্তিক: এক্সএসএলটি

  • অ্যারে ভিত্তিক: এপিএল।


2
+1 বিভিন্ন ধরণের শ্রেণিবদ্ধকরণ ব্যবহার করার জন্য, এবং 'প্রক্রিয়াগত' আসলে অন্যান্য ব্যক্তির শ্রেণিবিন্যাসকে অন্তর্ভুক্ত করে তা স্বীকৃতি দেওয়ার জন্য 1 (অবশ্যই এর অর্থ এই যে শব্দটির খুব কম অর্থ রয়েছে, এবং মাংসটি এমন মহকুমায় রয়েছে)
জাভিয়ের

4

এর উত্তর দেওয়ার বিভিন্ন উপায় রয়েছে তবে শর্তাবলী এগুলি হিসাবে শ্রেণিবদ্ধ করা যেতে পারে:

যন্ত্রের ভাষা: যন্ত্রের ভাষা একটি নিম্ন-স্তরের প্রোগ্রামিং ভাষা language এটি কম্পিউটার দ্বারা সহজেই বোঝা যায় তবে লোকেদের দ্বারা পড়া কঠিন। এ কারণেই লোকেরা উচ্চ স্তরের প্রোগ্রামিং ভাষা ব্যবহার করে। উচ্চ-স্তরের ভাষাগুলিতে লিখিত প্রোগ্রামগুলি সংকলিত হয় এবং / অথবা মেশিন ভাষায় ব্যাখ্যা করা হয় যাতে কম্পিউটারগুলি সেগুলি কার্যকর করতে পারে।

বিধানসভা ভাষা: অ্যাসেম্বলি ভাষা মেশিন ভাষার প্রতিনিধিত্ব করে। অন্য কথায়, প্রতিটি সমাবেশ ভাষার নির্দেশ মেশিন ভাষার নির্দেশকে অনুবাদ করে। যদিও সমাবেশ ভাষার বক্তব্যগুলি পাঠযোগ্য, তবুও বিবৃতিগুলি নিম্ন-স্তরের। সমাবেশ ভাষার একটি অসুবিধা হ'ল এটি বহনযোগ্য নয়, কারণ প্রতিটি প্ল্যাটফর্ম একটি নির্দিষ্ট সমাবেশ ভাষা নিয়ে আসে।

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

উচ্চ-স্তরের ভাষাগুলি আরও শ্রেণিবদ্ধ করা যেতে পারে:

  1. কার্যকরী ভাষা: কার্যকরী ভাষায় একটি প্রোগ্রামকে ফাংশন সংজ্ঞাতে বিভক্ত করা হয়। ক্রিয়ামূলক ভাষাগুলি এক প্রকার ঘোষিত ভাষা। এগুলি বেশিরভাগ ধ্রুবক সহ টাইপড ল্যাম্বদা-ক্যালকুলাসের উপর ভিত্তি করে। বিখ্যাত কিছু ফাংশন ভাষা হ'ল স্কেলা, এফ #, ক্লোজার এবং লিস্প।

  2. পদ্ধতিগত ভাষাগুলি: পদ্ধতিগত ভাষাগুলিতে, একটি প্রোগ্রাম এমন একটি ধাপের ক্রমতে লেখা হয় যা ফল উত্পন্ন করতে অনুসরণ করা উচিত। কোবল, ফরট্রান এবং সি কয়েকটি কার্যবিধির ভাষা।

  3. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি: ওওপি ভাষাগুলিতে একটি প্রোগ্রামকে অবজেক্টে বিভক্ত করা হয় যার মধ্যে ডেটা পাশাপাশি ডাটাগুলিতে পরিচালিত পদ্ধতি রয়েছে। জাভা, সি # এবং সি ++ হ'ল ওওপি ভাষা।

  4. লজিক প্রোগ্রামিং ল্যাঙ্গুয়েজ: লজিক ল্যাঙ্গুয়েজগুলি এমন প্রোগ্রাম তৈরি করতে ব্যবহৃত হয় যা কম্পিউটারকে যৌক্তিকভাবে যুক্তিতে সক্ষম করে। যেমন: লজিক ভাষা

গভীরতা অধ্যয়নের জন্য, দেখুন:


3

আমি বৈশিষ্ট্যগুলির শর্তাবলী বিবেচনা প্রবণতা:

বাক্য গঠন:

সি-ভিত্তিক বা কী-আপনার-আছে। জাভাতে সি-ভিত্তিক সিনট্যাক্স রয়েছে। আমি আপনার মাথাটি সিনট্যাক্স থেকে বের করে আনার জন্য পাইথন বা রুবির মতো কিছু চেষ্টা করার পরামর্শ দিচ্ছি এবং প্রদত্ত ভাষা কীভাবে কাজ করে তার মৌলিক বিষয়ে আরও চিন্তা করার পরামর্শ দিচ্ছি recommend আমি এই মতামত করছি যে সি-ভিত্তিকের চেয়ে কোনও সিনট্যাক্সের বাল্কিয়ার পাওয়ার দরকার নেই এবং সাদা-স্থানের চারপাশে ব্লক তৈরি করতে কোনও সমস্যা নেই।

সংকলিত বনাম বর্ণিত ডাব্লু। বিল্ড-প্রক্রিয়া বনাম বর্ণিত / কনসোল:

রান টাইম পরিবেশ সংক্রান্ত উদ্বেগগুলির সংকলন সময়ের সাথে আমার খুব কম পরিচিতি আছে তবে আমি পেয়েছি যে সেখানে উদ্বেগের পুরো ব্যাগ রয়েছে যা আমি খুব কমই ভাবি।

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

এবং তারপরে জাভাস্ক্রিপ্ট এবং পাইথন রয়েছে যা আপনি ফ্লাইতে চালাতে পারবেন, একটি লাইভ এনভায়রনমেন্টে কনসোলে কমান্ড বাই কমান্ড। তিনটিই কোড লেখার খুব আলাদা পদ্ধতিতে নেতৃত্ব দিতে পারে।

গতিশীল বনাম কঠোর টাইপিং:

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

ব্লক-লেভেল স্কোপ বনাম ফাংশন স্কোপ বনাম?:

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

ক্লাসিকাল ওওপি বনাম প্রোটোটাইপাল ওওপি বনাম প্রায়-ওওপি (সিতে স্ট্রাক্টস) বনাম নন-ওওপি:

এমনকি শ্রেণিভিত্তিক ওওপিতেও তারতম্যের জন্য প্রচুর জায়গা রয়েছে। আপনি একাধিক উত্তরাধিকার (ew, অতিরিক্ত পরিমাণে ভাল) করতে পারেন, ইন্টারফেসগুলি সংজ্ঞায়িত করুন ... ইত্যাদি

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

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

প্রথম শ্রেণির কার্যাদি:

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

বন্ধ:

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

অনমনীয় / কঠোর / নিরাপদ বনাম আপনি যে সমস্ত দড়ি চান তা প্রদান করা:

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


ইই ......... ধন্যবাদ. কোনও ব্যাখ্যা ছাড়াই ডাউন-ভোটের প্রচেষ্টা চালিয়ে যাওয়া সত্যিই দুর্দান্ত।
এরিক পুনরায়

2

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

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

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

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

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


কুল। আমি এলআইএসপি শিখব এবং আলোকিত হব। উত্তেজনাপূর্ণ: ডি
সোভা

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

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

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

1

আমাকে যুক্ত করতে হবে যে নির্দিষ্ট অ্যাপ্লিকেশনগুলির জন্য প্রোগ্রামিং ভাষা রয়েছে। যে বিষয়টি মনে আসে তা হ'ল এপিটি (অটোমেটিক প্রোগ্রামযুক্ত সরঞ্জাম) মেশিন সরঞ্জামগুলির উত্পাদনতে ব্যবহৃত একটি ভাষা।


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

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

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