সমস্ত বিদ্যমান প্রোগ্রামিং ভাষার সর্বোত্তম বৈশিষ্ট্যগুলিকে কেন একত্রিত করে সর্বজনীন প্রোগ্রামিং ভাষায় এটি ফিট করে না?
সমস্ত বিদ্যমান প্রোগ্রামিং ভাষার সর্বোত্তম বৈশিষ্ট্যগুলিকে কেন একত্রিত করে সর্বজনীন প্রোগ্রামিং ভাষায় এটি ফিট করে না?
উত্তর:
একই কারণে আপনি একটি মুরগির খোদাই করার জন্য সুইস সেনার ছুরি ব্যবহার করবেন না ...
সুইস আর্মি ছুরিতে সাধারণত একটি ফলক থাকে, পাশাপাশি বিভিন্ন সরঞ্জাম যেমন স্ক্রু ড্রাইভার এবং এটি ওপেনার এবং অন্যান্য অনেকগুলি থাকতে পারে। এই সংযুক্তিগুলি একটি পিভট পয়েন্ট মেকানিজমের মাধ্যমে ছুরির হাতলের ভিতরে রাখা হয় ...
ছুরির নকশা এবং তার নমনীয়তা উভয়কে বিশ্বব্যাপী স্বীকৃতি দেয় ...
কারণ
আপনার প্রোগ্রামিংয়ে যা আছে তা একটি খুব বড় সমস্যার ডোমেন। এই ডোমেনটি চূড়ান্ত এবং বহু দিক থেকে রয়েছে।
এ কারণেই এম্বেড করা ফ্লাইট কন্ট্রোলার সিতে লেখা হয় এবং ওয়েবসাইটগুলি পিএইচপি, জাভা, রেলস,। নেট এবং অন্যদের হোস্টে লেখা হয়।
এম্বেড করা ফ্লাইট কন্ট্রোলারের জন্য আমার সাথে কাজ করার জন্য প্রায় 128k মেমোরি রয়েছে এবং তার উপরে যদি আমার কোডটি বিমানটি বিধ্বস্ত হয়, তবে 200 জন মারা যায় এবং আমি $ 1B ডলার মামলা করতে পারি এবং প্রত্যেককে ইঞ্জিনিয়ার পাঠাতে হয় have বিশ্বের বিমানবন্দরগুলি যে গ্রাহকদের আমার গ্রাহকদের $ 10M / দিন হারিয়েছে তা স্থির করতে বিমান ঠিক করতে। আমাকে এমন ভাষা নিয়ে কাজ করতে হবে যা খুব আঁটসাঁট এবং খুব কম চলন্ত অংশ রয়েছে যা ভুল হতে পারে।
আমার ওয়েব অ্যাপ্লিকেশনের জন্য আমার সাথে কাজ করার জন্য বেশ কয়েকটি জিবি মেমরি রয়েছে তবে নেটওয়ার্কের গতি সীমাবদ্ধ (প্রতিদিন কম ডিগ্রি পর্যন্ত, তবে সম্ভবত এটি ওয়েবের সর্বাধিক সীমা)। আমি এমন একটি ভাষা খুঁজছি যা আমাকে এক টন বৈশিষ্ট্য দেয় এবং আউটপুট উত্পাদন করে যা যত তাড়াতাড়ি সম্ভব সংক্রমণ করা যায়। আমার সাইটটি নীচে নেমে গেলে আমি সত্যিই যত্নশীল নই, আমি সম্ভবত কয়েকটি বিক্রয় হারাব ($ 100) এবং বোমা ফাটাতে ব্যবহারের ক্ষেত্রে প্যাচ করতে হবে, কোনও বড় বিষয় নয়।
15 বছরেরও বেশি বছরের জন্য ওয়েবসাইটগুলিতে সি লেখা হয়নি (যে কোনও সিগি স্ক্রিপ্ট রয়েছে?) এবং যতদূর জানি আমি ফ্লাইট কন্ট্রোলাররা এখন সি ++ এ সন্ধান করতে শুরু করেছে, তবুও এটি খুব সীমাবদ্ধ উপায়ে রয়েছে।
আপনার যদি কোনও সরঞ্জামবাক্স না থাকে, বা কেবল ফাঁকা হ্যান্ডেলটিতে স্ক্রু ড্রাইভারের বিটগুলির সাথে কেবল সেই ছোট্ট হাতুড়িগুলির একটি থাকে তবে আপনার জন্য আমার খুব সহানুভূতি রয়েছে।
সিরিয়াসলি। আপনি যদি কোনও অটো শপটিতে যান তবে আপনার যান্ত্রিকের কি তার সরঞ্জামচেষ্টায় কেবল একটি একক করণীয় সব সরঞ্জাম রয়েছে? তিনি (বা তিনি) একজন পেশাদার, পেশাদার-গ্রেড সরঞ্জাম সহ বিশেষত বিভিন্ন গাড়িচালক মেরামতের কাজ সম্পাদনের জন্য ডিজাইন করা।
একইভাবে, পেশাদার সফ্টওয়্যার বিকাশকারীদের তার বাণিজ্য সম্পাদনের জন্য পর্যাপ্ত সরঞ্জামের মালিক হওয়া উচিত। আপনি যদি নিজের টুলবক্সটি খুলেন এবং কেবল ফিলিপসের স্ক্রু ড্রাইভারের জন্য [সফ্টওয়্যার সমতুল্য] দেখতে পান তবে আপনি নিজেকে পেশাদার হিসাবে বিবেচনা করতে পারবেন না।
আপনি একটি খোলা-শেষ রেঞ্চ, একটি বাক্স-শেষ রেঞ্চ, একটি র্যাচিট রেঞ্চ বা একটি সামঞ্জস্যযোগ্য রেঞ্চের সাহায্যে একটি বল্টু ঘুরিয়ে দিতে পারেন। এমনকি আপনি ছোট-বড় থেকে মারাত্মক ক্ষতির সাথে আচ্ছন্ন হয়ে স্লিপ-জয়েন্ট প্লাইয়ার্স দিয়ে একটি চিমটিতে একটি বল্টু ঘুরিয়ে নিতে পারেন। তবে স্লেজ হাতুড়ি দিয়ে একটি বল্টু ঘুরিয়ে দেওয়া বেশ কঠিন is
অন্যদের কাছে ভিন্ন ধরণের উত্তর - আমি আসলেই মনে করি যে কোনও ভাষা "সার্বজনীন" হয়ে উঠার সম্ভাবনা রয়েছে, এটি অন্যান্য অনেক ভাষার বৈশিষ্ট্য এবং দৃষ্টান্তগুলির অনুমতি দেয়, যদিও আপনি সম্ভবত কঠোরভাবে নকশাকৃত ভাষা নাও ভাবতে পারেন।
উপরের ব্রেটমজহনসনের উপমাটি ব্যবহার করার জন্য , প্রতিটি প্রোগ্রামিং ল্যাঙ্গুয়েজই একটি বাক্সের অভ্যন্তরের হাতিয়ার (বা একটি সুইস আর্মি ছুরির উপর) ধারণাটি প্রত্যেকেই করছে এটি ধারণা, তবে এটি সত্যই একটি ত্রুটিযুক্ত ধারণা।
প্রোগ্রামিং ল্যাঙ্গুয়েজ যদি টুলবক্স হত?
আমি বলতে চাইছি, আপনি যদি দয়া করে ভাষা থেকে বৈশিষ্ট্যগুলি যুক্ত করতে এবং মুছে ফেলতে পারেন, এবং এতে আপনার প্রয়োজনীয় সরঞ্জামগুলির সাথে আপনার নিজস্ব সরঞ্জামবক্স থাকতে পারে - এমনকি সরঞ্জামগুলি বিভিন্ন উদ্দেশ্যে হলেও।
ধারণাটি ইতিমধ্যে আংশিকভাবে বিদ্যমান। উদাহরণস্বরূপ, নিমেরলের মতো ভাষা আপনাকে ভাষাতে সিনট্যাক্স যুক্ত করতে দেয় এবং এর মতো আপনি "এক্স ভাষা থেকে সেরা বৈশিষ্ট্য" নিতে এবং এটি নিমেরলে (বা আপনার নিজস্ব) যুক্ত করতে সক্ষম হতে পারেন। এর অর্থ এই নয় যে আপনার নিজের ম্যাক্রোগুলি সমস্ত সময় লেখার দরকার নেই - প্রতিটি ভাষা (বা দৃষ্টান্ত) একটি স্ট্যান্ডার্ড লাইব্রেরিতে ম্যাক্রোর ভিতরে সংজ্ঞায়িত করা যেতে পারে - যেমন আপনি করতে পারেন import Haskell; import Prolog;
, এবং দুটি ভাষা লিখতে শুরু করলেন যেন এটি একটি অংশ ছিল তোমার ভাষা?
তাহলে প্রশ্নটি হল - আপনি একে অপরের সাথে কাজ করার জন্য বিভিন্ন ভাষা / দৃষ্টান্তগুলির বৈশিষ্ট্যগুলি কীভাবে পাবেন? যদিও আমি এর উত্তর দিতে পারছি না, নেট এবং জেভিএম এর মতো ফ্রেমওয়ার্কগুলি সমাধানের কিছু প্রস্তাব দেয় - ভাষাগুলি সংকলিত হওয়ার কারণে ভাষাগুলি কমপক্ষে আংশিকভাবে সামঞ্জস্যপূর্ণ। উদাহরণস্বরূপ আপনি সি # তে লিখিত যে কোনও কোড নিতে পারেন এবং অভিযোগ ছাড়াই এফ # থেকে এটি ব্যবহার করতে পারেন।
সমাধানটির সাথে 'সমস্যা' যেমনটি আজ রয়েছে তেমনি এই ভাষাগুলি একসাথে ব্যবহার করার জন্য এগুলি পৃথক প্রকল্প হিসাবে তৈরি করা প্রয়োজন, যা একে অপরকে রেফারেন্স করতে পারে না - আপনার কেবল 1 টি উপায় রেফারেন্স থাকতে পারে। ভাষার প্রতিবন্ধকতা হ'ল যে কোনও প্রকল্পের অ্যাক্সেস করার আগে প্রতিটি প্রকল্প তার সমস্ত ফাইল পৃথকভাবে কমন ইন্টারমিডিয়েট ল্যাঙ্গুয়েজে সংকলিত করে।
এই বাধা অপসারণের দিকে পদক্ষেপের পাথরটি হ'ল বিভিন্ন প্রকল্পের কোডগুলি (যেমন, সি # এবং এফ #) একই প্রকল্পের ভিতরে সংকলন করার অনুমতি দেয়। তত্ত্ব অনুসারে আপনি প্রতিটি ফাইল পৃথকভাবে (বা গোষ্ঠীগুলিতে - যদি তাদের আংশিক প্রকার বা বিজ্ঞপ্তি সংক্রান্ত রেফারেন্স থাকে) সংকলন করতে পারেন, এবং তারপরে একটি পৃথক ভাষার ফাইলগুলি সংকলন করুন যা ইতিমধ্যে সংকলিত (সিআইএল) অবজেক্টগুলিতে অ্যাক্সেস করতে পারে। এটি কাজ করার জন্য আপনাকে সংকলনের ক্রমটি কঠোরভাবে সংজ্ঞায়িত করতে হবে - তবে এফ # এর ক্ষেত্রে ইতিমধ্যে সংকলনের ক্রম প্রয়োজনীয়।
যাইহোক, আমি বলছি না "এখানে অবশ্যই সর্বজনীন ভাষা থাকতে পারে"। আমি প্রস্তাব দিচ্ছি যে বর্তমানে বিদ্যমান ভাষাগুলির মধ্যে আরও ভাল আন্তঃআকক্ষীয়তার সম্ভাবনা রয়েছে। বাস্তবে, খুব শীঘ্রই এটির খুব উন্নতি হওয়ার সম্ভাবনা নেই, কেবল এটি একটি ভাষা এবং গ্রন্থাগারগুলি প্রয়োগ করার জন্য প্রচুর পরিমাণে কাজ করার জন্য, সরঞ্জামগুলি ইত্যাদির জন্য এটি প্রয়োজন needed
কিছু ভাষার সেরা বৈশিষ্ট্যগুলি অন্যের সেরা বৈশিষ্ট্যের সাথে দ্বন্দ্ব করে।
উদাহরণস্বরূপ: টাইপ সচেতন প্রতিচ্ছবি সত্যিই দুর্দান্ত বৈশিষ্ট্য, তবে একটি স্বচ্ছভাবে টাইপ করা ভাষায় এটি খুব বেশি মূল্যবান নয়, তবে শিথিল টাইপিংও একই সাথে সত্যিকারের উপকার হতে পারে।
এমনকি একটি ভাষার মধ্যে আপনি সর্বদা একই সাথে সমস্ত ভাল বৈশিষ্ট্যগুলি ব্যবহার করতে পারবেন না কারণ তারা একে অপরের সাথে বিরোধ করে।
"সমস্ত ব্যবসায়ের জ্যাক - কোনওরই মাস্টার নয়।" মনে বসন্ত.
কিছু প্রোগ্রামের গতির প্রয়োজন হয়, অন্যদের প্রচুর পরিমাণে মেমরি বা ডিস্কে দ্রুত অ্যাক্সেসের প্রয়োজন হয়। কিছু ভাষাগুলি একটিতে ভাল, তবে অন্যটিতে খারাপ - আমি মনে করি না যে আপনি এমন ভাষা পেয়ে যাবেন যা মোটেই ভাল ছিল।
সুতরাং, আপনি যে কোনও ভাষায় কার্যত যে কোনও প্রোগ্রাম লিখতে পারেন, আপনি যে সমস্যাটি সমাধানের জন্য লিখতে পারেন সেই "সেরা" প্রোগ্রাম হওয়ার গ্যারান্টি নেই।
এখানে. কোনটি টুল সবকিছু সেরা, কিন্তু অনেক প্রোগ্রামিং ভাষার মত কিছু টুলস পরিবেশন করা সব উদ্দেশ্যে না ভাল সব।
আপনি কাজের জন্য সেরা সরঞ্জামটি চয়ন করতে পারেন তবে প্রোগ্রামিং ল্যাঙ্গুয়েজ সমস্ত উদ্দেশ্যে ব্যবহার করতে সক্ষম এবং আপনি সেগুলি চয়ন করতে পারেন। আমি এটি সুপারিশ করি না তবে এটি সম্ভব।
কোনও কিছুর কারণে আমি "জেনারালাইজেশন / স্পেশালাইজেশন প্যারাডক্স" বলি যার সম্ভবত অন্য নাম আছে এবং সত্যই এটি একটি প্যারাডক্স নয়
কোনও প্রোগ্রামিং ল্যাঙ্গুয়েজ যত সাধারণীকরণ করা হয় তত বেশি কিছু কার্যকর করার জন্য আরও কোড লাগে। আপনি এর সাথে যত কম ভাষা অর্জন করতে পারবেন তত বেশি বিশেষায়িত।
ভাষাগুলি মানুষের ভাবনার মতো করে দেয়। প্রাকৃতিক ভাষার ক্ষেত্রে এটি সত্য। একটি শিশু যদি "এক, দুই, অনেক" সংখ্যা সহ একটি ভাষা জানে তবে শিশু গণিত শেখানো ... কঠিন। (দুঃখিত, আমার লিঙ্কটি নেই) ইংরেজিতে আমরা বিভিন্ন সময় নিয়ে কথা বলি যেমন তারা স্থান - তাই সময় ভ্রমণের ধারণাটি কল্পনা করা সম্ভব। অন্য কয়েকটি ভাষায়, সময় ভ্রমণের ধারণাটি এর বক্তাদের কাছে কখনই ঘটে না ।
প্রোগ্রামিং ভাষার ক্ষেত্রেও এটি সত্য।
সুতরাং আমাদের যদি একটি একক প্রোগ্রামিংয়ের ভাষা থাকে তবে প্রত্যেকে সমস্ত গণনা সংক্রান্ত কাজগুলি সম্পর্কে ঠিক একই রকম চিন্তা করবে। সুতরাং আমরা বিকল্পগুলি অন্বেষণ করব না এবং কিছু করার সর্বোত্তম উপায়টি অনাবৃত থাকবে।
সার্বজনীন ভাষার কাছে আমাদের সবচেয়ে কাছের জিনিসটি সি সি অন্তর্নিহিত হার্ডওয়্যার ধারণাগুলির খুব কাছাকাছিভাবে মানচিত্র (কীভাবে আসলে হার্ডওয়্যারে জিনিসগুলি সম্পন্ন হয়) এবং প্রতিটি * ভাষায় প্রোগ্রামগুলি সি তে রূপান্তরিত হয় (দেখুন সিফ্রন্ট কীভাবে এসেম্বলারের জন্য সি সংকলক ব্যবহার করেছে) টাস্ক) সি এর সাথে সমস্যাটি মূলত যে উপরোক্ত বর্ণিত রূপান্তরগুলি কোনও সি প্রোগ্রামার দৃষ্টিকোণ থেকে বোঝায় না।
"ল্যাম্বডাস" সি-তে সর্বদা সম্ভব ছিল পুরো প্রকল্প / ফাইলের চারদিকে কোড ছড়িয়ে সহ বাক্য গঠনটি বন্ধ রয়েছে, সুতরাং এটি কোনও পছন্দসই সমাধান ছিল না। নো-ক্যাপচার / আপডেট / ইত্যাদি সংস্করণ সহ অন্য কোথাও কোনও ফাংশন সংজ্ঞায়িত করুন এবং ফাংশনটিতে একটি পয়েন্টার দিন pass ( কিউসোর্ট দেখুন ), ল্যাপডাস ব্যবহার করা কৃত মান সহ, আপনাকে যে কোডটি লিখতে হবে তার পরিমাণ ও জটিলতা অনেক বেড়ে যায় - যতক্ষণ না আমি সচেতন নূন আসলেই সি তে প্রোগ্রামিংয়ের এই পদ্ধতিটি ব্যবহার করার জন্য কোডটি লিখেছিলেন ever ল্যাম্বডাস ভাষার অংশ হিসাবে এবং মূলত সর্বত্র ব্যবহৃত হয় এমন ভাষার বিপরীতে।
সি এবং সি ++ এর মধ্যে প্রধান পার্থক্য হ'ল আপনি কীভাবে আপনার জন্য জিনিসগুলির যত্ন নিতে সি ++ কে বলতে পারেন ; তবে আপনি আর দেখতে পাচ্ছেন না, কেবলমাত্র একক লাইন কোড থেকে, আপনি এটির চেয়ে কতটা জিজ্ঞাসা করছেন। উত্তরটি হয়ে যায়: এটি নির্ভর করে (এই সমস্ত কোডের উপর)।
কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ সুনির্দিষ্ট কাজের জন্য দুর্দান্ত, তবে যেখানে বিশ্বজুড়ে বেশিরভাগ বর্তমান প্রোগ্রামগুলি সেই ভাষায় প্রোগ্রাম করা থাকলে তা বোঝা যায় না। অর্থাত্ যদি ভাষাটি সেই প্রোগ্রামটি শুরু করার জন্য প্রয়োগ করা যায়, যা দেওয়া হয়নি।
ইউনিভার্সাল ল্যাঙ্গুয়েজ থাকার প্রযুক্তিগত যোগ্যতার অসম্ভবতা? এটাই মোটামুটি বাজে কথা। আপনি পারেএকটি সার্বজনীন ভাষা রয়েছে যা সমস্ত ঘাঁটিগুলিকে আচ্ছাদন করে। সমস্যাটি বেশিরভাগ ক্ষেত্রেই historicalতিহাসিক: বিভিন্ন জিনিস বিভিন্ন জিনিস করার জন্য বিভিন্ন ভাষায় উদ্ভাবিত হয়েছিল এবং বিভিন্ন সম্প্রদায়ের মধ্যে এটি ব্যবহার করা হয়েছিল। তাদের অনেকেই আটকে গেছেন। সেই পছন্দগুলিতে যুক্ত করুন (vi! ইম্যাক্স! অপেক্ষা করুন, আমি জাভা বুঝিয়েছি! সি #, ওয়েট আমি মাইক্রোসফ্ট, ওপেন সোর্স, ইত্যাদি ইত্যাদি ইত্যাদি) এবং historicalতিহাসিক দুর্ঘটনার সাধারণ এম্বেডিং ... একটি ক্ষুদ্র দেশে প্রাকৃতিক ভাষাগুলি দেখুন কিছু ইউরোপীয় দেশগুলির মতো গণ এই বিষয়টি কতটা ক্রেজি হয়ে উঠতে পারে তা দেখতে। কিছু শহরগুলির নিজস্ব গর্ব এবং আনন্দ থাকে, একটি ছোট্ট উপভাষা যা কেবল তারা বলে। নেশনস এবং প্রোগ্রামিং সম্প্রদায়গুলি এর চেয়ে আলাদা নয়, না প্রোগ্রামিং সম্প্রদায়গুলি আরও যুক্তিযুক্ত। তারা যদি থাকত তবে আমরা সকলেই ইউনিভার্সাল কিছু 'কিছু কিছু'তে এস্পারেন্টো এবং প্রোগ্রামটি বলতাম ...
"সমস্ত বৈশিষ্ট্যের সংমিশ্রণ" একটি আরও ভাল ভাষা তৈরি করবে এটি ভাবতে ভুল হয়।
আপনার ফুলে যাওয়া, জটিল, অপঠনযোগ্য গোলযোগের সাথে শেষ হওয়ার সম্ভাবনা বেশি।
ভাল ভাষার ডিজাইনের জন্য পছন্দ এবং ট্রেড-অফ করা প্রয়োজন। যুক্তিযুক্তভাবে সেরা / সর্বাধিক বিপ্লবী / সর্বাধিক সফল ভাষাগুলি হ'ল নতুন কিছু যুক্ত করার পরিবর্তে কিছু বের করে আনে এবং আরও ভাল বিকল্প সরবরাহ করে eg
দ্য লাস্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ - আঙ্কেল বব মার্টিনের এই শীর্ষে একটি দুর্দান্ত আলোচনা আছে
goto
। তবে উত্তরটি আমার পছন্দ হয়েছে। সি-এর মূল কাজটি হ'ল আপনাকে মেমোরিতে ঠিক কোথায় এবং কোন সময়ে কোন রেজিস্টারে থাকে তার ঠিক যত্ন নিতে না দেওয়া এবং এটি প্রোগ্রামের কাউন্টারটি লুকিয়ে রাখে (এটি যে ঠিক ঠিক ঠিক ঠিক ঠিক ঠিক তার ঠিক বসে আছে ঠিক তে পদক্ষেপে আপনি এটিকে সরাতে পারেন) একটি গোটো সহ নির্ভুলতার প্রায় একটি সমাবেশ স্তরে)।
এমন কোনও সরঞ্জাম নেই যেখানে সমস্ত সেরা বৈশিষ্ট্য রয়েছে। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট এবং স্কিমের একটি দুর্দান্ত বৈশিষ্ট্য হ'ল সেগুলি ছোট, তাই আপনি যদি বৈশিষ্ট্যগুলি প্যাকিং শুরু করেন তবে আপনি ইতিমধ্যে এটি হারিয়ে ফেলেছেন।
তবুও কোবরা অন্য ভাষা থেকে সমস্ত দুর্দান্ত বৈশিষ্ট্য রাখার দিক থেকে প্রতিশ্রুতিবদ্ধ দেখায়। :-)
কারণ আপনি যদি এ জাতীয় ভাষা তৈরি করেন তবে এটি আর একটি নতুন ভাষা হবে। আপনি একটি বড় ফ্যান বেস পেতে পারেন, তবে অন্যান্য সমস্ত ভাষা এখনও বিদ্যমান থাকবে।
সি এখনও বিদ্যমান আছে যদিও অনেক নতুন ভাষা উদ্ভাবিত হয়েছিল তখন থেকে
আপনি বলতে পারেন অজগর এমন একটি সর্বজনীন ভাষা, তবে তারপরেও রুবি রয়েছে।
অনেকগুলি ভাষা থাকার কারণ হ'ল অনেক প্রোগ্রামার রয়েছে এবং তাদের মধ্যে কিছু নতুন ভাষা তৈরি করতে পছন্দ করে।
যে কোনও একক সার্বজনীন ভাষা নেই যার প্রতি প্রত্যেকে সম্মত হয় তা হ'ল কোনও কারুকর্ম হিসাবে প্রোগ্রামিং কোনও সংস্থা কর্তৃক নির্ধারিত হয় না যা সমস্ত সিদ্ধান্ত নেয়। প্রত্যেকে যা চায় তা করতে স্বাধীন to
সেটা একটা ভাল জিনিস.
এখন পর্যন্ত যা কিছু লেখা হয়েছে তা দিয়ে অনেক নতুন যুক্তি যুক্ত করা শক্ত, তবে আমি কয়েকটিতে ফেলব।
বিবর্তন: এটি কেবল জৈবিক সিস্টেমই নয় যেগুলি চালু করা হয়, পরিবর্তিত হয় এবং সংস্থানসমূহের জন্য বেঁচে থাকার জন্য সবচেয়ে উপযুক্ত প্রতিযোগিতা এবং তাদের নিজস্ব কল করার জন্য একটি কুলুঙ্গি হয়। প্রতিযোগিতাটি ভাল এবং জিনিসগুলি এগিয়ে দেয়।
পরিপক্কতা: আমরা সম্ভবত এক শতাব্দীরও কম সময়ের জন্য কম্পিউটারের ভাষা তৈরি করে চলেছি। আমরা এখনও উত্তরটি পেতে পারি না কারণ আমরা এখনও সমস্ত প্রশ্ন জানি না।
পৃথক জেনেসিস: এটির জন্য সঠিক শব্দটি নিশ্চিত নয়, তবে বিশ্বে তাদের অনেকগুলি লেখার ব্যবস্থা যা বহু ভৌগলিক অঞ্চলে শুরু হয়েছিল। কুনিফর্ম সম্পর্কে চিন্তা করুন যা মাটির ট্যাবলেটগুলিতে খোদাই করার দাবি দ্বারা আংশিকভাবে নির্ধারিত হয়েছিল। সংস্কৃত, গ্রিক, হিব্রু, রোমান, আরবি বর্ণমালা সম্পর্কে চিন্তা করুন। হায়ারোগ্লিফিক্স, 6000+ চিহ্ন সহ সুন্দর রচনার চীনা পদ্ধতি যা বহু পূর্ব এশিয়ার দেশগুলিতে ভাগ করা হয়। সিরিলিক, কাটাকানা এবং হিরিগানার মতো ফোনেটিক ভিত্তিতে আরও আধুনিক মিশ্র বর্ণমালাগুলির কথা ভাবেন। আমি ভাষাতত্ত্ববিদ নই তাই ভুলগুলি খুব কঠোরভাবে শিখাবেন না, তবে বিশ্বব্যাপী সংস্কৃতিগুলিকে যখন কোনও কিছুর প্রয়োজন হবে তখন তারা এটিকে তৈরি করে এবং প্রয়োজনীয়তার বাইরে এটিকে নিজের করে তুলবে। কম্পিউটার ভাষা যখন তখন প্রচুর বিশ্বব্যাপী যোগাযোগ ছিল এবং ইম্পেরিয়াল এবং মেট্রিক সিস্টেমের মতো হয়েছিল, শক্তিশালী ধারণা নেতৃত্ব সঙ্গে জায়গা থেকে এসেছেন। তবে প্রোগ্রামিং ল্যাঙ্গুয়েজ বিভিন্ন ধরণের সংস্কৃতিকে পরিবেশন করে (যার মধ্যে কয়েকটি কর্পোরেট সংস্কৃতি), তাই তারা তাদের তৈরি প্রতিচ্ছবিগুলি প্রতিবিম্বিত করে। কম্পিউটারের ভাষাগুলি তাদের সাংস্কৃতিক লিগ্যাসি নিয়ে আসে যা তাদের নকশা এবং ব্যবহারকে আকার দেয়। ওএস কার্নেল সংস্কৃতিতে, সি এবং সি ++ খুব শীঘ্রই জাভা (বা অন্য উপায়ে) -এর জন্য হ্রাস পাওয়ার সম্ভাবনা নেই কারণ তারা স্থানীয় কোড তৈরি, হার্ডওয়্যার বিমূর্ত স্তর তৈরির জন্য হার্ডওয়ারের সাথে ঘনিষ্ঠ / দক্ষ সংযোগের অনুমতি দেয় এবং একটি বিশাল আকারের ইনস্টলড থাকে।
ডিজাইনের নকশা: প্রোগ্রামিং ভাষা বিভিন্ন সাংগঠনিক দৃষ্টান্ত ব্যবহার করে using সিওবিএল এবং অ্যাডা ছিল এমন কমিটিগুলি থেকে যেগুলি ডিওডির অংশ ছিল যেগুলির অনেকগুলি শ্রেণিবিন্যাস ছিল। আমি যদি সঠিকভাবে সি, সি ++, জাভা মনে করি এবং সম্ভবত আরও অনেকেই এক বা অল্প সংখ্যক ডিজাইনার থেকে এসেছিল। ফ্রেড ব্রুকস তার গবেষণাপত্রের দর্শনীয় ভিত্তিক দৃষ্টিভঙ্গি, ডিজাইনের নকশা (http://www.youtube.com/watch?v=pC-DlX-PaF4) কমিটির ফলাফলের তুলনা করে। আমরা যদি আজ সার্বজনীন প্রোগ্রামিং ভাষার সংজ্ঞা দেওয়ার জন্য কোনও দা ভিঞ্চি বা কোনও কমিটি বাছাই করতে বসে থাকি, তবে আমরা কি জানব যে কে বা কোন পদ্ধতিতে এটির নকশা করা উচিত?
এই সমস্ত বিষয়ে কিছুটা ভিন্নতর হতাশ:
একটি ভাষা কি? হাস্যকরভাবে সরল হওয়ার জন্য এটি শব্দভান্ডার, বাক্য গঠন এবং শব্দার্থক শব্দ।
আপনি প্রোগ্রামিং ভাষার সাথে প্রথম জিনিসটি কী করেন?
আপনি জিনিসগুলি সংজ্ঞায়িত করেন - শ্রেণি, পরিবর্তনশীল, পদ্ধতি - আপনি শব্দভাণ্ডার এবং শব্দার্থবিজ্ঞান প্রসারিত করেন।
কেন? সুতরাং এখন আপনি এতে জিনিস বলতে পারেন যা আপনি আগে বলতে পারেন না।
এটি পছন্দ করুন বা না করুন, আপনি একটি নতুন বিশেষ-উদ্দেশ্যে ভাষা তৈরি করেছেন।
আইএমএইচও, একটি সাধারণ-উদ্দেশ্যমূলক ভাষায় সন্ধান করার জিনিসটি যদি বিশেষ-উদ্দেশ্যমূলক ভাষাগুলি তৈরি করা সহজ করে।
সুইস-আর্মি-ছুরি যুক্তি বাদ দিয়ে (যার একটি বিন্দু রয়েছে - একটি ডোমেন-নির্দিষ্ট ভাষার চেয়ে ভাল প্রশস্ত বর্ণালী ভাষা নকশা করা আরও কঠিন - তবে এর অর্থ এই নয় যে এই জাতীয় ভাষা উভয়ই হবে না) সম্ভব এবং একটি ভাল ধারণা), "সেরা বৈশিষ্ট্যগুলির সমন্বয়" নিয়ে সমস্যা রয়েছে:
সংক্ষেপে, ভাষার নকশা এর চেয়ে শক্ত এবং জটিল complicated যদিও আপনি স্ক্যালাকে একবার দেখে নিতে পারেন ।
ভিজ্যুয়াল ব্যাচ কাস্টমাইজযোগ্য প্রোগ্রামিং ভাষার একটি প্রচেষ্টা। নীচের লিঙ্কটি দেখায় যে কীভাবে এই প্রোগ্রামিং ইন্টারফেসটি ইউনিভার্সাল প্রোগ্রামিং ভাষার প্রয়োজন অনুসারে অভিযোজিত হতে পারে।
http://sourceforge.net/apps/phpbb/visualbatch/viewtopic.php?f=4&t=4
একটি সর্বজনীন প্রোগ্রামিং ভাষা আছে। একে "মেশিন ল্যাঙ্গুয়েজ" বলা হয় এবং অন্য যে কোনও কম্পিউটার ভাষার সমস্ত কিছুই চূড়ান্তভাবে মেশিন ল্যাঙ্গুয়েজ হিসাবে কার্যকর করা হয়।
এটা কিসের মতো দেখতে? 0-9 এবং এএফ এর একটি স্ট্রিং।
তবে এটি ব্যবহারের জন্য দুশ্চরিত্রা। সুতরাং অ্যালান এমন একটি ভাষা আবিষ্কার করেন যা মেশিনের ভাষায় অনুবাদ করা যায় এবং অ্যালান যা করতে চান তার থেকে আরও উপযুক্ত। বিল কী করতে চায় তার জন্য বিল একটি আলাদা ভাষা আবিষ্কার করে। এর আগে আপনি কোবল এবং ফোর্টরান এবং লিস্প এবং জাভা পেয়েছেন। এগুলির সবগুলিই কেবল মেশিন ভাষার সরলিকৃত ঘর্ষণ, নির্দিষ্ট ধরণের প্রোগ্রাম লিখতে সহজ তবে অন্যান্য ধরণের প্রোগ্রাম লিখতে শক্ত বা অসম্ভব। অ্যাকাউন্টিংয়ের জন্য একটি ভাল, অন্যটি স্পেস শাটল নিয়ন্ত্রণের জন্য ভাল।
এখানে বেশিরভাগ উত্তর প্রতিটি সমস্যার জন্য সেরা সরঞ্জামটি ব্যবহারের দিকে মনোনিবেশ করে। আমি বিশ্বাস করি না যে এটি যথেষ্ট যথেষ্ট কারণ।
আপনি যদি বড় সংস্থাগুলির দিকে নজর দেন তবে সাধারণত সংস্থাগুলি একটি একক (বা একটি অল্প সংখ্যক) ভাষা এবং প্রযুক্তি ব্যবহার করার ঝোঁক রাখে, এমনকি যদি কোনও নির্দিষ্ট প্রকল্পের জন্য আরও ভাল কোন ভাষা থাকে।
এটি করা হয়েছে কারণ উন্নত মানীকরণ, সহজ সমর্থন, কোড ভাগ করে নেওয়া ইত্যাদির ফলে যে উপকারগুলি আসে সেগুলি (বেশিরভাগ সময়) বেশি হয় তবে একটি নির্দিষ্ট ভাষার সংযোজনিত মান।
আমি মনে করি সমস্ত "কারণ আপনি একটি পেন্সিল দিয়ে মূর্তিগুলি খোদাই করেন না" উত্তরগুলি বিন্দুটি অনুপস্থিত।
কে এখানে, প্রতিটি নতুন প্রকল্পের আগে সত্যই একটি ভাষা নির্বাচন করে?
সত্য হল, আমরা মাত্র কয়েক প্রোগ্রামিং ভাষার প্রয়োজন, এবং প্রোগ্রামিং বিশ্বের যে পথ বন্ধ ভাল হবে মানুষ তৈরীর উপর ফোকাস করবে স্ক্রিপ্টিং ভাষা ভাল পরিবর্তে উদাহরণস্বরূপ পাইথন / রুবি / Perl / younameit জুড়ে ছড়িয়ে ছিটিয়ে হচ্ছে।
সি # উইন্ডোজে / এর জন্য প্রোগ্রাম করা হয় (ঠিক আছে, এখানে মোনো আছে, প্রতিদিন যে কেউ প্রতিদিন মনো অ্যাপের অধীনে সি # চালায়?) এবং এটি ব্যবহারকারীদের উইন্ডোজ 7/8 কিনে তোলে এবং এটি মাইক্রোসফ্টের জন্য অর্থ উপার্জন করে।
অন্যান্য সংস্থাগুলিও এটি করে, তারপরে ওপেন সোর্স আরও ভাল জানে, তারপরে মিস্টার জিনিয়াসও ... এবং আমরা প্রচুর চেহারা-সমান ভাষা পেয়েছি, এটি কেবল মানবতার স্ব-কেন্দ্রিক প্রকৃতি।
এই প্রশ্নের উত্তর দিতে আমাদের অর্থনীতিতে নজর দেওয়া উচিত। যদি এটি কেবলমাত্র একটি ভাষা রাখতে ব্যবসায়ের অর্থ সাশ্রয় করে তবে আমাদের কাছে তা থাকবে। তারা এটিকে মানীকৃত করবে এবং প্রত্যেককে এটি ব্যবহার করার প্রয়োজন হবে। অন্যান্য ভাষাগুলি ধূলিসাৎ একাডেমিক ভবন এবং বন্য-চোখের উত্সাহীদের বেসমেন্টে নিমজ্জিত হবে। এটি ঘটেনি, সুতরাং তাদের অবশ্যই কোনও সার্বজনীন প্রোগ্রামিং ভাষায় কোনও লাভের উত্সাহ না দেওয়া বা এখন অবধি প্রাকৃতিকভাবে বিকশিত হওয়া উচিত।