সব ভাষা কি মূলত এক?


39

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

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

এটি কি সাধারণত সত্য? সমস্ত প্রোগ্রামিং ভাষা কি লুপ, শর্তসাপেক্ষ বিবৃতি এবং ফাংশনগুলির মধ্যে পাস করার বার্তার মতো অনুরূপ নির্মানের সমন্বয়ে গঠিত? এমন কোন অ-গৌরবহীন ভাষা রয়েছে যা একটি সাধারণ জাভা / রুবি / হাস্কেল প্রোগ্রামারটি বোঝাতে সক্ষম হবে না? সব ভাষার কি সাধারণ মিল আছে?


4
আমি আপনাকে পল গ্রাহামের গড় পিটানোর দিকে পরিচালিত করব । আপনি পুরো জিনিসটি পড়তে বা না চাইতে পারেন, তবে সম্পর্কিত অংশটির জন্য "দ্য ব্লব প্যারাডক্স" শিরোনামটি অনুসন্ধান করুন। গ্রাহাম সাহেবকে তাঁর পাঠ্যের দেয়ালে অ্যাঙ্কর লাগানো বিরক্ত করা যায় না, তাই আমি সরাসরি এটির সাথে লিঙ্ক করতে পারি না।
কাওয়াতফোর্ড

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

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

2
যদি আপনি কার্যকরী ভাষা জানেন তবে আপনার জানা উচিত যে প্রতিটি ভাষায় লুপগুলি সম্ভব নয়।
জুলফ

পিট বেশ আলাদা। :)

উত্তর:


88

বেশিরভাগ পদ্ধতিগত ভাষার মূল বিষয়গুলি প্রায় একই রকম।

তারা প্রস্তাব:

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

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

আরও আকর্ষণীয় পদ্ধতিগত ভাষা অফার

  • নেস্টেড বা লেক্সিকাল স্কোপস, নেমস্পেসস
  • গতিশীল স্টোরেজ বরাদ্দ সহ পয়েন্টারগুলি একটি সত্তাকে অন্যটিকে উল্লেখ করার মঞ্জুরি দেয়
  • সম্পর্কিত কোডের প্যাকেজিং: প্যাকেজ, পদ্ধতি সহ বৈশিষ্ট্য, বৈশিষ্ট্য
  • আরও পরিশীলিত নিয়ন্ত্রণ: পুনরাবৃত্তি, ধারাবাহিকতা, সমাপ্তি
  • বিশেষায়িত অপারেটর: স্ট্রিং এবং অ্যারে অপারেশন, গণিত ফাংশন

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

যে ভাষাগুলি বোঝা শক্ত তা হ'ল অ-প্রক্রিয়াজাতীয় ভাষা:

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

ভাষার জন্য দুটি প্রধান উপস্থাপনা শৈলী রয়েছে:

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

গ্রাফিক্যাল ভাষাগুলি প্রায়শই নোডে এবং আর্কগুলিতে টীকুল্য সাবল্যাংগুলিকে টিকা হিসাবে মঞ্জুরি দেয়। বিজোড় গ্রাফিকাল ভাষাগুলি গ্রাহকদের পুনরাবৃত্তভাবে মঞ্জুরি দেয় (পাঠ্য সহ :) নোডে এবং আরকেসে। সত্যিই বিজোড় গ্রাফিক্যাল ভাষাগুলি টীকাগুলির গ্রাফগুলিকে টীকায়িত করার জন্য গ্রাফগুলিকে নির্দেশ করে।

এই ভাষাগুলির বেশিরভাগই সংখ্যার খুব অল্প সংখ্যক মডেলের উপর ভিত্তি করে:

  • ল্যাম্বদা ক্যালকুলাস (লিস্প এবং সমস্ত কার্যকরী ভাষার জন্য ভিত্তি)
  • পোস্ট সিস্টেমগুলি (বা স্ট্রিং / ট্রি / গ্রাফের লেখার কৌশল)
  • ট্যুরিং মেশিনগুলি (রাষ্ট্র পরিবর্তন এবং নতুন মেমরি কোষ নির্বাচন)

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

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


3
দুর্দান্ত উত্তর! ফলো-আপ হিসাবে (এসও-তে একটি ফলো-আপ প্রশ্ন জিজ্ঞাসা করার কোনও উপায় আছে?), প্রোগ্রামিং সফ্টওয়্যারটিতে সমস্ত ধারণা বোঝার জন্য আমি যে ভাষা আয়ত্ত করতে এবং দাবি করতে পারি তার একটি ভাষা কি আছে? এটি লিস্প (বা স্কিমের মতো একটি উপভাষা) হবে?

@ অণিরুদ: এখানে কোনও আনুষ্ঠানিক ফলো-আপ পদ্ধতি নেই, তবে আপনি একটি নতুন প্রশ্ন খুলতে পারেন। যদি এটিতে যৌক্তিক যুক্তি এবং এই প্রশ্নের একটি লিঙ্ক থাকে তবে এটি বন্ধ নাও হতে পারে। ;) আপনার ফলোআপের উত্তর দেওয়ার জন্য, আমি আন্তরিকভাবে বিশ্বাস করি যে কেবল একটি ভাষা নেই, কারণ দৃষ্টান্তগুলি খুব আলাদা too

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

1
প্রাকৃতিক ভাষার মতোই, "বুঝতে খুব কঠিন" হ'ল বিষয়গত এবং আপনি যে প্রথম ভাষা শিখেন তার উপর নির্ভরশীল।
নালুউজারএক্সেপশন

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

6

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


এটা একটা ভাল দিক. আমি ভেরিলোগ / ভিএইচডিএল সন্ধান করব।

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

4

"মূলত" আপনি কী বোঝাতে চান তার উপর নির্ভর করে। যে কোনও নমনীয়তার সমস্ত ভাষা টুরিং-সম্পূর্ণ। সেই অর্থে: হ্যাঁ, তারা সবগুলিই মূলত এক are

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

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


3

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

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


1
জন ভন নিউমান এবং এটি "নিউম্যান" এর মতো উচ্চারণ করা হয় না, আরও "ন্যুম্যান" এর মতো।

সংশোধনের জন্য ধন্যবাদ - আমি উচ্চারণ করি যদিও আপনি বলেছিলেন।
প্রীত সংঘ

যখন কেউ কোনও সংশোধন করার পরামর্শ দেয় আপনি কেবল নিজের পোস্টটি প্রতিফলিত করতে সম্পাদনা করতে পারেন।
ফিল মিলার

2

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

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


2
+++++++[>+++++++++++<-]>+.<+++++++++++[>+++<-]>.>>+++++++[>++++++<-]>++++.

সর্বনিম্ন স্তরে, প্রতিটি প্রোগ্রামিং ভাষা হ'ল "একই" তবে এর অর্থ এই নয় যে আপনি যে স্তরে আসলে ইন্টারেক্ট করেন সেখানে সেগুলি একই হয় same তারা আপনার জন্য বিমূর্ত সমস্যা; এর অর্থ এই নয় যে তারা একই সমস্যাগুলি বিমূর্ত করে দেয় বা প্রতিটি সমস্যাকে একইভাবে বিমূর্ত করে তোলে।


1

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

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

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

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

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

শেষ পর্যন্ত, প্রোগ্রামার হিসাবে আপনার পছন্দটি হ'ল কাজের উপযুক্ত সরঞ্জামটি কী।

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