কেন এত প্রোগ্রামিং ভাষা আছে?
এবং অন্য ভাষা ইতিমধ্যে বিদ্যমান থাকা সত্ত্বেও কী কাউকে প্রোগ্রামিং ভাষা তৈরি করতে অনুরোধ করে?
কেন এত প্রোগ্রামিং ভাষা আছে?
এবং অন্য ভাষা ইতিমধ্যে বিদ্যমান থাকা সত্ত্বেও কী কাউকে প্রোগ্রামিং ভাষা তৈরি করতে অনুরোধ করে?
উত্তর:
নতুন প্রোগ্রামিং ভাষা প্রায়শই বিদ্যমান ভাষা থেকে শিখে এবং নতুন উপায়ে বৈশিষ্ট্যগুলি যুক্ত, সরিয়ে এবং একত্রিত করে। অবজেক্ট ওরিয়েন্টেড এবং ফাংশনাল এর মতো কয়েকটি আলাদা দৃষ্টান্ত রয়েছে এবং অনেক আধুনিক ভাষা তাদের উভয় থেকে বৈশিষ্ট্যগুলিকে মিশ্রিত করার চেষ্টা করে।
এছাড়াও নতুন সমস্যাগুলি সমাধান করা দরকার, যেমন মাল্টি-কোর সিপিইউগুলি বৃদ্ধি। এর সর্বাধিক সাধারণ সমাধান থ্রেড ছিল তবে কয়েকটি প্রোগ্রামিং ল্যাঙ্গুয়েজ একাধিক পদ্ধতিতে উদাহরণস্বরূপ অভিনেতা মডেলকে সমাধান করার চেষ্টা করে। এরলং দেখুন - সাম্প্রতিক বিশ্বের জন্য সফ্টওয়্যার
এটি একটি চক্র। আপনি একটি নতুন ভাষা শুরু করেন এবং আপনি পূর্বসূরীদের কাছ থেকে সমস্ত খারাপ বাক্য গঠন এবং দুর্বল পছন্দ থেকে দূরে সরে যেতে পারেন। সংস্করণ 1-এ ভাষাটি দুর্দান্ত দেখাচ্ছে কারণ এতে কোনও ব্যাগ নেই এবং এটি কাজটি করে। তারপরে, নতুন সংস্করণগুলিতে, আপনি এমন বৈশিষ্ট্যগুলি নিয়ে পরীক্ষা-নিরীক্ষা শুরু করতে পারেন যা কার্যকর না হতে পারে, বা আপনি অন্যান্য, আরও নতুন ভাষা থেকে ফিচার আনেন যা আপনার বাক্য গঠনটিকে একটু ক্লোজেজে পরিণত করে। দেখুন এবং দেখুন, আরও কয়েকটি সংস্করণের পরে, আপনি বুঝতে পারবেন যে আপনার ভাষাটি এখন বদলে ফেলার মতো জটিল, মূর্খ সিনট্যাক্স ইস্যু এবং লিগ্যাসি ব্যাগেজ সহ। এবং হঠাৎ করে, আপনি বুঝতে পেরেছিলেন যে আপনি যদি একটি নতুন ভাষা তৈরি করেন তবে আপনি সমস্ত কিছু ঠিক করতে পারেন ...
একই কারণে হাতুড়ি, স্ক্রু ড্রাইভার, হ্যান্ডসওয়া, ব্যান্ডসওয়া, জ্যাকহ্যামার, করবার এবং অন্যান্য সরঞ্জাম রয়েছে: প্রতিটি ভাষা প্রতিটি কাজের জন্য উপযুক্ত নয়। কিছু ভাষা নির্দিষ্ট সমস্যা ডোমেনগুলিতে লক্ষ্যযুক্ত: আর স্ট্যাটিস্টিকাল বিশ্লেষণের জন্য বিশেষত সি, অপারেটিং সিস্টেমের কার্নেলগুলি লেখার জন্য সি বিশেষত ভাল, হাস্কেল বিশেষত গণিত-ভারী বা আর্থিক গণনাগুলির পক্ষে ভাল, এরলং বিশেষত সমবর্তী প্রোগ্রামিং ইত্যাদিতে ভাল etc.
এছাড়াও, একই কারণে শার্টগুলি বিভিন্ন রঙে আসে: কিছু লোক কেবল একটি ভাষার অন্য ভাষার চেয়ে "স্টাইল" পছন্দ করে।
এবং, অবশ্যই, প্রচুর প্রোগ্রামাররা একটি নতুন ভাষা আবিষ্কার করতে মজা পান, কেবল কি ঘটে তা দেখার জন্য, বা সম্ভবত তারা ভাষা সম্পর্কে কিছু জ্ঞান থাকতে পারে এবং একটি চুলকানি স্ক্র্যাচ করতে চান, বা কিছু ধারণা ব্যবহার করে দেখতে চান।
কারণ তারা সবাই স্তন্যপান করে (এক উপায় বা অন্যভাবে)।
এই মুহূর্তে, আমরা প্রাকৃতিক সমস্যাগুলি বর্ণনা করতে প্রায় 5000 টি ভাষা তৈরি করেছি এবং সেগুলির কোনওটিই প্রোগ্রাম লিখতে উপলভ্য নয় (উদাহরণস্বরূপ "ইংরেজি" হবে)।
যতক্ষণ না কেউ কোনও প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করার কোনও উপায় খুঁজে না পান যা কোনও প্রাকৃতিক ভাষায় আপনি কোনও বাক্যে কী প্রকাশ করতে পারেন তা প্রকাশ করতে পারে, তারা আসতে থাকবে।
স্পষ্টতই একটি নতুন ভাষা তৈরির জন্য একটি গুরুত্বপূর্ণ অনুপ্রেরণা হ'ল ইতিমধ্যে বিদ্যমান ভাষাগুলির চেয়ে ভাল কিছু অর্জন করা। এবং উন্নতির জন্য সর্বদা জায়গা থাকায় সর্বদা নতুন ভাষা থাকবে।
বাণিজ্যিক আগ্রহ আরও বড় কারণ। আমি বিশ্বাস করি যে এটি মাইক্রোসফ্ট উদাহরণস্বরূপ গুরুত্বপূর্ণ যে তারা প্রতিটি প্রয়োজনের জন্য একটি ভাষা অফার করতে পারে যাতে সংস্থাগুলি এবং বিকাশকারীরা তাদের প্ল্যাটফর্মগুলিকে পছন্দ করে।
উত্তরাধিকার কোড. আপনি যদি কোনও নতুন ভাষা শুরু করেন তবে কোনও পুরানো ভাষা পরিবর্তন করার সময় আপনাকে সমস্ত অভিযোগ শুনতে / বিবেচনা করতে হবে না। এমনকি যদি সবাই বাস্তবায়নের সাথে একমত হয় যে নতুন বাস্তবায়ন আরও ভাল, এটি পুরানো কোডটি ভাঙতে পারে না। এবং সেখানে প্রচুর পুরানো কোড রয়েছে।
কারণ নতুন ভাষাগুলি তৈরি করা মজাদার যদিও তাদের বাস্তব ব্যবহার নেই
একটি এসোটেরিক প্রোগ্রামিং ল্যাঙ্গুয়েজ (কখনও কখনও এএসএলং-এর কাছে সংক্ষিপ্ত) কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজ ডিজাইনের সীমানা পরীক্ষা করার জন্য ডিজাইন করা একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ, ধারণার প্রমাণ হিসাবে বা রসিকতা হিসাবে।
প্রোগ্রামিং ভাষা তৈরি করা বরং মজাদার rather এটি খাঁটি সৃজনশীল কাজের কাছে, যেহেতু আপনি পূর্বের প্রয়োজনীয়তার মধ্যে সীমাবদ্ধ নন। এটির আর বাস্তবায়ন করা এতটা কঠিন নয়, যেহেতু আপনি সর্বদা সিটিতে সংকলন করতে এবং পর্যাপ্ত পারফরম্যান্সের জন্য সি কোডটি সংকলন করতে পারেন যদি আপনি প্রথম স্থানে একটি সংকলক লিখছেন।
অবশ্যই, আমাদের বেশিরভাগের কাছে আমাদের কাছে আমাদের ধারণার চেয়ে কম ভাল ধারণা রয়েছে, তাই তারা প্রায়শই হতাশার কারণ হয়ে দাঁড়ায় বা মূল ডিজাইনার ছাড়া অন্য কারও দ্বারা ভালবাসা হয় না।
আপনার জানা কোনও প্রোগ্রামিং ভাষা সম্পর্কে চিন্তা করুন। আপনি সহজেই এগুলি সম্পর্কে অপছন্দের কিছু জিনিস নিয়ে আসতে পারেন, তাই না? সেগুলি কীভাবে সংশোধন করা যায় তা সম্ভবত আপনার ধারণা রয়েছে। সংকলক বিল্ডিং (এবং প্রচুর লোকেরা করেন) সম্পর্কে আপনি আরও অনেক কিছু জানেন তা ধরে নিয়েই আপনি আরও কিছুটা উত্সাহ দিয়েছিলেন, আপনি নিজের নকশা তৈরি করতে এবং এমনকি বাস্তবায়নও শুরু করতে পারেন।
দ্রুত সংক্ষিপ্ত উত্তর
চাকাটি পুনরায় উদ্ভাবন করা হচ্ছে ... বর্তমান প্রবণতাটি কী ...
বিরক্তিকর দীর্ঘ উত্তর
অনেকে ভুলে যান যে "পুরানো প্রোগ্রামারদের জন্য অনুরূপ নতুন ভাষা" হ'ল "নতুন প্রোগ্রামারদের জন্য একটি সহজ নতুন ভাষা"।
আমি এর অর্থ কি?
ঠিক আছে, "বেশ কয়েক বছর" প্রোগ্রামারদের জন্য জাভা বা সি # বিদ্যমান কোবলের অতিরিক্ত প্রোগ্রামিং ভাষা হতে পারে, (ওও / কার্যবিধ) বেসিক, সি / সি ++, যখন "নতুন" প্রোগ্রামারদের জন্য জাভা বা সি # নতুন ভাষা, তবে কোবল, (ওও / কার্যবিধিত্বমূলক) বেসিক, সি / সি ++ তাদের জন্য বিদ্যমান নেই, তাই চাকাটিকে পুনর্বহাল করা একটি সাধারণ জিনিস হয়ে যায় ...
এবং, যদি প্রযুক্তিতে কোনও নতুন প্রবণতা দেখা যায় তবে লোকেরা সেই প্রবণতার উপর ভিত্তি করে ওয়েবের জন্য বাস্তু স্ক্রিপ্ট / জাভাস্ক্রিপ্ট এবং কার্যকরী প্রোগ্রামিংয়ের মতো একটি নতুন প্রোগ্রামিং ভাষা তৈরি করতে পারে ...
চিয়ার্স।
নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি বিভিন্ন কারণে নির্মিত হয়, বেশিরভাগ কারণেই এখানে নতুন প্রোগ্রামিং দৃষ্টান্ত রয়েছে বা হার্ডওয়্যারে অগ্রগতির কারণে লোকেরা নতুন হার্ডওয়্যার বৈশিষ্ট্য যেমন মাল্টিটাস্কিং ইত্যাদির সুবিধা নিতে নতুন ভাষা তৈরি করে etc.
আমার ক্ষেত্রে, আমি সাধারণত বিশেষ কারণে ছোট সংকলকগুলি (একটি নতুন প্রোগ্রামিং ভাষার সাথে) তৈরি করি। যদি আমি বরাদ্দ গেমস তৈরি করি এবং আমি বিশ্বাস করি যে গেম ডেভলপমেন্টের জন্য বিশেষত তৈরি একটি প্রোগ্রামিং ল্যাঙ্গুয়েজের ফলে আরও দ্রুততর কোড এবং দ্রুত বিকাশ ঘটাতে পারে তবে আমি এটি তৈরি করি। এবং এরপরে এটি সক্রিয় হয় যে এটি অন্যান্য সাধারণ উদ্দেশ্যে প্রোগ্রামিংয়ের জন্যও ব্যবহার করা যেতে পারে।
আমি মনে করি বেশিরভাগ লোকেরা যারা প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করেন তাদের মনে একটি নির্দিষ্ট উদ্দেশ্য থাকে, সেখানে যারা আছেন তারা প্রথম থেকেই সাধারণ উদ্দেশ্যে এগুলি তৈরি করেন। তবে বেশিরভাগই তা নয়।
যাইহোক, আমি মনে করি অনেকগুলি প্রোগ্রামিং ভাষা রয়েছে তবে শত শত নতুন ভাষা সর্বদা বেরিয়ে আসবে। কিছু মজাদার না, কিছু একটি কুলুঙ্গি উদ্দেশ্যে, একটি স্কুল প্রকল্প হিসাবে, বা অন্যান্য শত শত কারণে। এবং শীঘ্রই বা পরে একটি নতুন জনপ্রিয় হবে। এটি কখনই শেষ হবে না।
একই কারণে এখানে অনেকগুলি << যা> রয়েছে এবং আমরা নতুন <যা কিছু> তৈরি করতে থাকি
উদাহরণস্বরূপ এখানে এক ডজন পিএইচপি এমভিসি ফ্রেমওয়ার্ক রয়েছে, তবে লোকেদের নির্দিষ্ট প্রয়োজনগুলি পূরণ করার জন্য, অন্য কোনও দলের উপর নির্ভরশীল না হওয়ার জন্য, বা আরও চেষ্টা করার এবং আরও ভাল কিছু তৈরি করার জন্য সর্বদা নতুন তৈরি করা হবে। মূলত প্রতিটি ধরণের সরঞ্জাম বা অ্যাপ্লিকেশনটির ক্ষেত্রে এটি একই সত্য।
এটি একটি খুব ভাল জিনিস, প্রায় আমার মতে প্রত্যেকের জন্য একটি জয়।
বিশ্ববিদ্যালয়গুলি প্রচুর প্রোগ্রামিং ভাষার অবদান রাখে এবং এরিকসন (এরলং = এরিকসন ভাষা), বেল ল্যাবস (বি এবং সি ভাষা), গুগল (কয়েক মাস আগে গো ভাষা) এর মতো খুব বড় কর্পোরেশনগুলি ব্যবহার করে। বিশ্ববিদ্যালয় গবেষণার অংশ হিসাবে যেগুলি রচিত হয়েছিল তাদের অনেকগুলি ব্যবহার করা হয় না। যদিও কয়েকটি উল্লেখযোগ্য ব্যতিক্রম রয়েছে। আমি মনে করি আপনার নিজস্ব ভাষা / সংকলন লেখার ফলে সিএস থিওরি বা সম্পর্কিত শাখাগুলি অধ্যয়নরত লোকদের পিএইচডি থিসিসের জন্য একটি ভাল বিষয় তৈরি হয়েছে। এটি আমাকে আঘাত করে যে পাইথন হ'ল প্রথম ভাষাগুলির মধ্যে একটি, যা একক ধারণা নিয়ে বিভিন্ন প্রোগ্রামারদের সহযোগিতামূলক অনলাইন প্রচেষ্টা থেকে জন্মগ্রহণ করে।
কয়েকটি কারণ রয়েছে, বেশিরভাগ কারণ লোকেরা মনে করে যে যা বিদ্যমান তা কিছু সেট সমস্যার সমাধান সহজ করে না। কিছু কেবল মজাদার জন্য বা একাডেমিক আগ্রহের জন্য।
আমি মনে করি যে একটি নিখুঁত যুক্তি রয়েছে যে আপনি কীভাবে নিখুঁত ভাষা ডিজাইন করেন তা এখনও সমাধান হয়নি (এবং কখনই হতে পারে না)। সুতরাং যতক্ষণ না লোকেরা কী দুর্দান্ত ভাষা তৈরি করতে পারে সে সম্পর্কে নতুন ধারণা থাকে যতক্ষণ মানুষ চেষ্টা চালিয়ে যাবে। এর মধ্যে কিছু চেষ্টা এরলংয়ের মতো শীতল নতুন জায়গার মানচিত্র তৈরি করবে এবং কিছু ফ্লপ হবে, তবে যতক্ষণ না ফ্লপ থেকে কিছু শিখতে হবে তা ঠিক আছে।
পূর্বে বর্ণিত মত, ভাষাগুলি নির্দিষ্ট কিছু নির্দিষ্ট লক্ষ্যকে লক্ষ্য করার চেষ্টা করে এবং নতুন ভাষাগুলি কোনও নতুন অঞ্চলকে লক্ষ্য করে। এই ভাষাগুলি বর্তমানে বাইরে থাকা অন্যান্য ভাষা থেকে বৈশিষ্ট্যগুলি নিতে পারে।
নতুন ভাষাগুলির আর একটি কারণ হ'ল অনেকগুলি বিভিন্ন কার্য সংযুক্ত করার চেষ্টা করা এবং বিভিন্ন প্রয়োজনের জন্য পছন্দের ভাষা হওয়া। এইগুলির মধ্যে কয়েকটি আপনার নিজের প্রয়োজন বিবেচনা না করেই সবগুলি অন্তর্ভুক্তকারী ভাষা হওয়ার চেষ্টা করছে যা আপনি সর্বদা ব্যবহার করবেন।
আমি আমার প্রোগ্রামিং ল্যাঙ্গুয়েজ ক্লাসে শিখেছি যে বেশিরভাগ ভাষায় চুলকানি স্ক্র্যাচ করার জন্য উদ্ভাবিত হয়েছিল। বেশিরভাগ ভাষাগুলি আবিষ্কার করা হয়েছিল যাতে কিছু সেট অ্যালগরিদম আরও ভালভাবে প্রকাশ করতে সক্ষম হয়। উদাহরণস্বরূপ, ক্রমবর্ধমান অ্যালগরিদমগুলিকে আরও অনেক বেশি ভাবপূর্ণ স্থান দেওয়ার জন্য ক্রিয়ামূলক ভাষার উদ্ভাবন করা হয়েছিল।
কেন অনেকগুলি ভাষা রয়েছে তা জিজ্ঞাসা করা কেন C ++ 0x জিজ্ঞাসার মতো? :)
এছাড়াও, আপনি যত বেশি ভাষা জানেন, আপনি তত বেশি ভাবপূর্ণ হয়ে উঠতে পারেন - প্রোগ্রামিং এবং প্রাকৃতিক উভয় ভাষায় এটি সত্য!