"শক্তিশালী" ভাষা কী?


22

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


5
একটি ভাষা তার ব্যবহারকারীর মতো শক্তিশালী।
ysolik

6
@ সাইলিক অগত্যা সত্য নয়। আমি কাউকে কৃপণ ভাষা দিতে পারি এবং তারা কতদূর পায় তা দেখতে পেতাম। এটির একটি বিকল্প আছে, নওপ! =)
ক্যানলাস চিহ্নিত করুন

2
@ মারক যদি আমরা চূড়ান্ত কথা বলি, তবে আপনি ঠিক বলেছেন। তবে, আপনি যদি আজকের আরও কম বা কম বহুল ব্যবহৃত ভাষা বিবেচনা করেন তবে ব্যবহারকারী এটির একটি বড় অংশ।
ysolik

1
পাওয়ারব্যাসিক: এর চেয়ে বেশি শক্তিশালী আর কিছু পাওয়া যায় না। ^^
গ্যাবলিন

1
@ সোলিক: এটি বলা আরও সঠিক হবে "একটি ভাষা তার ব্যবহারকারীর চেয়ে বেশি শক্তিশালী হতে পারে না।"
ডানকান বায়েন

উত্তর:


32

"শক্তিশালী" ভাষাটি প্রথমে "শক্তিশালী" শব্দটি সংজ্ঞায়িত না করে আমরা সংজ্ঞা দিতে পারি না।

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

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

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

প্রত্যেকে কি দেখতে পাচ্ছে এখানে কী চলছে? কার্যত প্রতিটি বুলেট-পয়েন্ট বৈশিষ্ট্যটি "পাওয়ার" এর চিহ্ন হিসাবে ব্যাখ্যা করা যেতে পারে এবং ঠিক এর বিপরীতও হতে পারে!

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

আমি প্রস্তাব দিচ্ছি যে এই সমস্ত পবিত্র যুদ্ধের বাজেটের পরিবর্তে আমরা সকলেই এই সত্যিকারের সরল সংজ্ঞাটি ব্যবহার করি:

সর্বাধিক শক্তিশালী ভাষা হ'ল যা আপনাকে স্বল্পতম সময়ে স্বল্পতম সময়ে সর্বোচ্চ মানের মানের পণ্যটি বহন করতে দেয়।

অস্পষ্ট? তুই বেচা। এজন্য যে কেউ তাকে / নিজেকে পেশাদার বলতে চান তাকে প্রোগ্রামিং ধারণা এবং প্রকল্পের ডোমেন উভয়ই বুঝতে হবে । আপনার পক্ষে "শক্তিশালী" কী তা সিদ্ধান্ত নিতে সক্ষম হবেন এটিই একমাত্র উপায়।

অন্যথায়, আপনি কেবল বন্দুক লড়াইয়ে সত্যিই একটি বড় ছুরি আনছেন ।


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

11

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

সি, সি ++, ডি শক্তিশালী, তবে অবশ্যই এটি আমার নম্র মতামত।


আপনি কর্নেল স্তর প্রোগ্রামিংয়ের জন্য জাভা ব্যবহার করবেন বা আমি আপনাকে ভুল বোঝাবুঝি করছি?
ডেভি

@ ডেভি 8, আপনি ঠিক বলেছেন আমার নিজের সংজ্ঞা অনুসারে আমার জাভা অন্তর্ভুক্ত করা উচিত ছিল না।
গ্রুকাস

5

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

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

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

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

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

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


1
আমার এটির সাথে সমস্যাটি হ'ল এটি মনে হয় এটি খুব শক্তিশালী ভাষা হিসাবে সিওবিএলকে দেখায়।
ডেভিড থর্নলি

2
আমি নিলাম আপনি লিস্প জানেন না? :)
ড্যাশ-টম-ব্যাং

1
@ ম্যাট: এটাই জিনিস। একটি ভাষা যা একটি ভাষা দ্বারা সীমাবদ্ধ ব্যবহার করা হয় করা যাবে জন্য ব্যবহৃত, এবং অনেক কম আপনি যে না বিমূর্ত দূরে মেমরি সংশ্লিষ্ট বিবরণ একজন ভাষা সঙ্গে তুলনায় পাইথন সঙ্গে কাজ করতে পারেন।
ম্যাসন হুইলারের

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

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

4

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

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

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

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


3

ব্রেভিটি এবং নমনীয়তার সঠিক ভারসাম্য।

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

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

একটি শক্তিশালী ভাষা এমন একটি ভাষা যা আপনাকে ন্যূনতম দৈর্ঘ্যের দৈর্ঘ্যের সাহায্যে অনেকগুলি বিভিন্ন জিনিস বলতে দেয়।


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

@ ম্যাসন হুইলার: আপনি কি আরও বিস্তারিত বলতে পারবেন?
জোয়ে অ্যাডামস

@ জো: এই প্রশ্নের আমার প্রতিক্রিয়া দেখুন।
ম্যাসন হুইলার

1

একবার আপনি টুরিং সম্পূর্ণকে আঘাত করলেন (এবং কোনও ভাষার পক্ষে এটি করা সহজ), "শক্তি" এর অর্থ খুব বেশি নয়, এই অর্থে যে আপনি একটি টুরিং সম্পূর্ণ ভাষায় যা কিছু বলতে পারেন তা আপনি অন্য ভাষায় বলতে পারেন। মার্ক ক্যানলাসের উত্তর এটি নখ করে: ব্রেভিটি এবং নমনীয়তা পার্থক্য করে।

এই কথাটি বলার পরে, ম্যাথিয়াস ফেলেলিসেনের পেপার অন ​​প্রোগ্রামিং ল্যাঙ্গুয়েজ অফ এক্সপ্রেসিভ পাওয়ারে আকর্ষণীয় পড়ার জন্য তৈরি করে। এতে তিনি ভাষাগুলিতে মত প্রকাশের ধারণাটি আনুষ্ঠানিক করার চেষ্টা করেন।


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

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

1

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

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

(যুক্তিযুক্তভাবে, কোনও ভাষা যে পরিমাণ পয়েন্ট বন্টন করতে হবে তা ডিজাইনার এবং বাস্তবায়নকারীদের দক্ষতার দ্বারা সংজ্ঞায়িত করা হয়েছে, তবে আসুন ভান করুন যে সমস্ত ভাষা ডিজাইনার তারা যেভাবে করেন তাতে সমানভাবে ভাল।)

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

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

আরও পড়ার জন্য, এই নিবন্ধটি (কাকতালীয়ভাবে পল গ্রাহামেরও, যারা মিশ্র মতামত রয়েছে বলে মনে করেন) এই ধারণাটি স্পর্শ করে যে , প্রোগ্রামিংয়ের ভাষাগুলি কীভাবে শক্তিতে পরিবর্তিত হয় তা নির্ধারণ করা কঠিন হলেও , তিনি বরং দৃu়প্রত্যয় সহকারে বলেছিলেন যে কোনও ভাষা আপনার পছন্দের ভাষার চেয়ে কম শক্তিশালী see এটির বৈশিষ্ট্য এক্সটি অনুপস্থিত missing তবে সত্যিকারের অধিকতর শক্তিশালী ভাষা আসলে কীভাবে সত্য তা দেখতে খুব কঠিন — এটি মূলত এক্স ভাষার সমতুল্য, তবে একগুচ্ছ অন্যান্য জিনিস thrownোকানো paper

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

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

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

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

যখন কেবল মূলধারার ভাষাগুলি তুলনা করি।
n1ckp

0

প্রোগ্রামিং ভাষা হ'ল সরঞ্জাম - এর চেয়ে বেশি কিছুই নয়, কিছু কম নয়, কিছু সরঞ্জাম অত্যন্ত বিশেষায়িত এবং বিশেষ উদ্দেশ্যে উপযুক্ত; অন্যদের কাছে সাধারণীকরণ করা হয় এবং কাছাকাছি অকেজোতার উপায়ে সরলীকৃত করা হয়।

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

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


-1

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

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


অব্যক্ত ডাউনভোটের বিরুদ্ধে লড়াই করতে +1, এবং কারণ আমি সাধারণত এটির সাথে একমত হই। এটি যে কাজের জন্য ডিজাইন করা হয়েছিল তার জন্য একটি ল্যাঙ্গেজ ব্যবহার করুন। সি-তে জটিল জিইউআই লিখবেন না, ভিবি 6
গেরি

-1

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


-1

সর্বাধিক শক্তিশালী প্রোগ্রামিং ভাষা হ'ল যা নিম্নলিখিত রৈখিক প্রোগ্রামিংয়ের সমস্যাটি সমাধান করে :

সর্বাধিক

      বিকাশের তীব্রতা
    + পঠন কোডের
    সহজতা + ডিবাগিংয়ের সহজতা
    + সাফল্য / অভিব্যক্তিটির ব্রেভিটি
    + শেখার / শিক্ষার সহজতা
    - সিপিইউ ব্যবহার
    - মেমরির প্রয়োজনীয়তা

বিষযে

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

(এবং হ্যাঁ, আমি জানি, আমি ইতিমধ্যে সম্পূর্ণ বিপরীতমুখী উত্তর পোস্ট করেছি That's কারণ এটি আমি একজন দ্বান্দ্বীবিদ।


-2

এটি প্রাকৃতিক ভাষার ক্ষেত্রে লেখা হয়েছিল, তবে আমি মনে করি প্রোগ্রামিং ভাষাও এটি উপযুক্ত:

কিছু বিশ্বাস অন্যদের চেয়ে স্বতন্ত্রভাবে উচ্চতর যে বিশ্বাসটি ব্যাপক, তবে ভাষাগত সত্যতার এর কোনও ভিত্তি নেই। কিছু ভাষা অবশ্যই ইতিহাসের একটি নির্দিষ্ট সময়ে অন্যের চেয়ে বেশি কার্যকর বা মর্যাদাপূর্ণ হয় তবে এটি সেই সময়ের বক্তাদের প্রাধান্যের কারণে, এবং কোনও সহজাত ভাষাগত বৈশিষ্ট্যের কারণে নয়।
- ডেভিড ক্রিস্টাল (সম্পাদনা)। কেমব্রিজ এনসাইক্লোপিডিয়া অফ ল্যাঙ্গুয়েজ 2 / ই (1997)। p.7

"পাওয়ার" কেবল একটি ভাষার কাছে অন্য ভাষার জন্য গুনযোগ্য নয়। এটি বলা নির্বোধ হবে "চাইনিজ কোরিয়ার চেয়ে আরও শক্তিশালী ভাষা"। তেমনি, এপিএল কোবোলের চেয়েও শক্তিশালী ভাষা say

ভাষাগত শক্তিকে কিছু বস্তুনিষ্ঠ পরিমাপের সাথে সমান করার জন্য বহু চেষ্টা করা হয়েছে। আমি বিশ্বাস করি এই প্রচেষ্টা ব্যর্থ হয়েছে:

  • আপনি মাওরি বলার চেয়ে আমেরিকান ইংরেজি বলতে পারেন তবে মার্কিন যুক্তরাষ্ট্রে চাকরি পাওয়া আরও সহজ হতে পারে। তেমনি, কোনও সন্দেহ নেই যে এলআইএসপি বা জেদের চেয়ে চাকরির প্রোগ্রামিং জাভা বা সি পাওয়া সহজ, তবে এই অর্থনৈতিক সুবিধা অবশ্যই ভাষার একধরনের সহজাত শক্তি প্রতিফলিত করে না। এটি ভাষাভাষীদের শক্তি সম্পর্কে।
  • "হাই" "নী হাও" বা "শালম" এর চেয়ে ভাল নয় কারণ এর সংক্ষিপ্ত। একইভাবে, কোনও ফাংশন কোপোলের চেয়ে এপিএলে আরও সংক্ষেপে প্রকাশ করা যেতে পারে, এটিও ভাষার একজাতীয় শক্তি প্রতিফলিত করে না।

আমার অভিমত হ'ল "অন্য ভাষার উপরে একটি ভাষার শক্তি" সম্পর্কে আলোচনা অন্য কোন দলের চেয়ে স্পিকারের শ্রেষ্ঠত্বের অনুভূতির পর্দা প্রকাশ করে। সংক্ষেপে, এর কুসংস্কার এবং স্টেরিওটাইপিং। অবশ্যই, যে লোকেরা সত্যিকারের পক্ষপাতদুষ্ট তারা সত্যই তাদের স্টেরিওটাইপগুলিকে বেশ দৃ strongly়তার সাথে বিশ্বাস করে এবং এর সম্ভাবনা কমই আপনি তাদের মন পরিবর্তন করতে প্ররোচিত করতে পারেন।


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

1
@ n1ck: আপনি কি বলছেন শক্তি = পঠনযোগ্যতা? এবং :. বিএফের পাঠযোগ্যতার অভাব কি তার বিদ্যুতের অভাবকে বোঝায়? এপিএল এবং জে এর খুব স্বল্প পাঠযোগ্যতা রয়েছে, তবুও তারা অত্যন্ত দরকারী এবং সংযোগযুক্ত (যদিও আমি অবশ্যই শক্তির সাথে উপযোগ বা সাফল্যের সাথে সমীকরণ করছি না)। বিপরীত দিকে যেতে, COBOL খুব পঠনযোগ্য; এটি সরল ক্রিয়াপদ; তবে আবার এটিকে এপিএল বা বিএফের চেয়ে শক্তিশালী করে তোলে। বিএফ অত্যন্ত চিত্তাকর্ষক; এটি মজা করার ক্ষমতা আছে; তবে তা পাওয়ার কোয়া পাওয়ার নয়। সমস্যাটি হ'ল কারও কাছে পাওয়ারের একটি ভাল তত্ত্ব আছে বলে মনে হয় না যার পিছনে তারা aক্যমত্য পেতে পারে।
এএন অন্যান্য

1
না আমি সেই শক্তি = পঠনযোগ্যতা বলতে চাইনি। আমি কেবল আপনার দৃষ্টিভঙ্গির সাথে একমত নই যে সমস্ত ভাষা সমান এবং আমরা 'পাওয়ারফুলনেস' এর সাথে ভাষার তুলনা করতে পারি না, তবে আপনি এটি সংজ্ঞায়িত করেন। আমার মতে, পাঠ্যতার একটি মৌলিক ভাষার কোনও শক্তি দেওয়ার প্রয়োজন তবে এটি আসলে প্রশ্ন নয়। আমরা যদি সত্যই প্রশ্নের উত্তর দিতে চাই তবে অবশ্যই আমাদের অবশ্যই প্রথমে শক্তিশালীকরণের সংজ্ঞা দেওয়া দরকার তবে আমার দৃষ্টিতে এটি 'প্রতিটি পরিস্থিতিতে সেরা' হিসাবে একই নয় যা আপনার উত্তর আমাকে ইঙ্গিত বলে মনে হয় যে আপনি সেভাবে ব্যাখ্যা করেছেন (অর্থাত্ সেরা নয়) সমস্ত কিছুর জন্য ভাষা, যা আমি সম্মত)।
n1ckp
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.