রূপকবিদ্যার জন্য পাইথন বনাম রুবি [বন্ধ]


90

আমি বর্তমানে প্রাথমিকভাবে একজন ডি প্রোগ্রামার এবং আমার সরঞ্জাম বাক্সে অন্য একটি ভাষা যুক্ত করার সন্ধান করছি, সম্ভবত এটি এমন একটি যা মেটাপোগ্র্যামিং হ্যাকগুলিকে সমর্থন করে যা কেবল ডি এর মতো একটি স্থিতিশীল ভাষায় করা যায় না supports

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

গুরুত্বপূর্ণ:

  1. ভাল রূপক। রানটাইমে ক্লাস, পদ্ধতি, ফাংশন ইত্যাদি তৈরি করার ক্ষমতা। সাধারণত, কোড এবং ডেটা, লিস্প শৈলীর মধ্যে ন্যূনতম পার্থক্য।
  2. সুন্দর, পরিষ্কার, বুদ্ধিমান সিনট্যাক্স এবং ধারাবাহিক, স্বজ্ঞাত শব্দার্থবিদ্যা। মূলত একটি সুচিন্তিত, ব্যবহারের মজা, আধুনিক ভাষা।
  3. একাধিক দৃষ্টান্ত কোনও প্রকল্পের জন্য কোনও প্রকল্পই সঠিক নয়, এমনকি কোনও প্রকল্পের মধ্যে প্রতিটি ছোট ছোট ছোট প্রকল্পও রয়েছে।
  4. একটি আকর্ষণীয় ভাষা যা প্রকৃতপক্ষে প্রোগ্রামিং সম্পর্কে চিন্তাভাবনা করে affects

কিছুটা গুরুত্বপূর্ণ:

  1. কর্মক্ষমতা. পারফরম্যান্সটি যদি মার্জিত হয় তবে এটি দুর্দান্ত হবে, তবে যখন পারফরম্যান্সটি আসল অগ্রাধিকার হয়, আমি তার পরিবর্তে ডি ব্যবহার করব।
  2. তথ্যসমৃদ্ধ.

গুরুত্বপুর্ন না:

  1. সম্প্রদায়ের আকার, গ্রন্থাগারের প্রাপ্যতা ইত্যাদি these এগুলির কোনওটিই ভাষার নিজস্ব বৈশিষ্ট্য নয় এবং এগুলি খুব দ্রুত পরিবর্তন হতে পারে।
  2. কাজের প্রাপ্যতা। আমি পুরো সময়ের, পেশাদার প্রোগ্রামার নই। আমি একজন গ্রেডের ছাত্র এবং প্রোগ্রামিং আমার গবেষণার সাথে সুস্পষ্টভাবে প্রাসঙ্গিক।
  3. প্রাথমিকভাবে খুব বড় প্রকল্পগুলির সাথে ডিজাইন করা এমন কোনও বৈশিষ্ট্য লক্ষ লক্ষ কোড বানরকে মনে রেখে কাজ করে।

4
সাধারণভাবে জিজ্ঞাসিত প্রশ্নের জন্য +1।
ট্রিপটিচ

দুঃখের সাথে উচ্চ-রেটযুক্ত উত্তরগুলি মূলত "এটি নির্ভর করে" বলে বলে এবং নীচের উত্তরগুলি মূলত পাইথন বনাম রুবি শিখা যুদ্ধ war
ড্যান বার্টন

আপনি কি জলদি বিবেচনা করেছেন?
মার্ক থমাস

উত্তর হ'ল জুলিয়া ! ঠিক তখনই এর অস্তিত্ব ছিল না: bit.ly/julia_meta ... আনন্দ করুন! জুলিয়া @dimcha দ্বারা তালিকাভুক্ত সমস্ত গুরুত্বপূর্ণ পয়েন্টগুলি জুড়েছে, প্লাস পারফরম্যান্স এবং জুলিয়া পরিপক্ক হওয়ার কারণে অন্যান্য সমস্ত বিষয় সত্য হয়ে উঠছে।
সালচিপাপা

উত্তর:


15

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


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

14
এটি আপনাকে রূপান্তরকাজ করা খুব বিরল নয়, এটি করা খুব বিরল। অতি তুচ্ছ প্রোগ্রাম ব্যতীত অন্য সকলেরই পুনরাবৃত্তি প্যাটার্ন রয়েছে যা সাধারণ রিফ্যাক্টরিং সরঞ্জামগুলিতে পড়ে না তবে রূপক দ্বারা সহজেই হত্যা করা যেতে পারে।
ওয়েইন কনরাড

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

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

7
রুবি এবং পাইথন কেবলমাত্র একইরকম যে তারা "সুন্দর কোড" প্রচার করে। সেই সৌন্দর্য্যের বিষয়ে তাদের সম্পূর্ণ ভিন্ন মতামত রয়েছে (যা আইএমও ভাল)
গাবী পুরকারু

69

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

আমরা সবাই না।

কোড এবং ডেটা, লিস্প শৈলীর মধ্যে ন্যূনতম পার্থক্য

দুঃখের বিষয়, কোড এবং ডেটা এবং "অদ্ভুত" সিনট্যাক্সের মধ্যে ন্যূনতম পার্থক্য একে অপরের পরিণতি।

আপনি যদি সহজেই পঠনযোগ্য সিন্টেক্স চান তবে আপনার কাছে পাইথন রয়েছে। তবে কোডটি সাধারণভাবে ব্যবহৃত কোনও অন্তর্নির্মিত ডেটা স্ট্রাকচারে প্রতিনিধিত্ব করা হয় না । এটি আপনার 'গুরুত্বপূর্ণ' তালিকার আইটেম # 1 এ most বেশিরভাগ ভাষায় do যেমন ব্যর্থ হয়। এটি দরকারী সহায়তা প্রদান করা কঠিন করে তোলে।

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


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

11
লোকেরা লিপ্পকে পড়া কঠিন বলে মনে করে কারণ তারা সিনট্যাক্সের সাথে পরিচিত নয়। আমি লিস্পকে সি # এর চেয়ে বেশি সহজে পড়তে পেলাম (তবে পাইথনের চেয়ে শক্ত)।
জুলাই

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

দীর্ঘ দীর্ঘ এজি এখানে ডিলান নামে একটি ভাষা ছিল যা হুবহু হওয়া উচিত।
ফ্রিডরিচ

17

সত্যই, রূপান্তরকেন্দ্রের সুবিধাগুলি যতটা যায়, রুবি এবং পাইথন তাদের বেশিরভাগ স্বীকৃত স্বীকৃতির চেয়ে অনেক বেশি মিল। উভয় ভাষার এই পর্যালোচনাটি বেশ ভাল তুলনা / পর্যালোচনা সরবরাহ করে:

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


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

16

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

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

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

উভয়ই 1 এবং 4 তে ভাল স্কোর [সম্পাদনা করুন: আসলে 1 টি বেশ বিতর্কিত - দু'টিতেই "ইওল" রয়েছে, অনুবাদ করা ভাষায় প্রচলিত, তবে এগুলি ধারণাগতভাবে বিশুদ্ধ নয়। আপনি ক্লোজারগুলি সংজ্ঞায়িত করতে পারেন, অবজেক্টগুলিকে পদ্ধতি নির্ধারণ করতে পারেন এবং কী নন। এটি আপনার পছন্দ মতো চলে কিনা তা নিশ্চিত নয় Not]

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

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


15

আপনি কি স্মলটাল্ককে বিবেচনা করেছেন? এটি রিফ্লেক্টিভিটি এবং ইন্ট্রোস্পেকশন ক্ষমতা এবং একটি সম্পূর্ণ সংহত উন্নয়নের পরিবেশের সাথে একটি খুব সাধারণ, পরিষ্কার এবং এক্সটেনসিবল সিনট্যাক্স সরবরাহ করে যা এই ক্ষমতাগুলির সুযোগ নেয়। উদাহরণস্বরূপ Squeak Smalltalkচলছে এমন কিছু কাজ দেখুন । স্কুয়াক ব্যবহার করে প্রচুর গবেষক সিকিউক মেইলিং লিস্টে এবং ফ্রিকোডে # স্পিকারের জন্য ঝুলিয়ে রাখেন, যাতে আপনি খুব সহজেই জটিল সমস্যাগুলিতে সহায়তা পেতে পারেন।

এর বর্তমান প্রাসঙ্গিকতার অন্যান্য সূচক: এটি আপনার যে নামের যত্ন নিতে চাইবেন এমন কোনও প্ল্যাটফর্মে চলে ( আইফোন সহ ); গিলাদ ব্রাচা তার নিউজপ্লেকের কাজকে স্কাইয়াকে ভিত্তি করে দেখছেন; ভি 8 টি দল স্মলটাক ভিএমগুলিতে দাঁত কাটেছে ; এবং ড্যান ইঙ্গালস এবং র্যান্ডাল শোয়ার্তজ সম্প্রতি প্রান্তরে বছরখানেক পরে ছোট ছোট কাজের কাজে ফিরে এসেছেন।

আপনার অনুসন্ধানের সাথে শুভকামনা - আপনি শেষ পর্যন্ত কী সিদ্ধান্ত নেবেন তা আমাদের জানান।


14

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


4
অথবা আপনি ক্লোজুরে চেষ্টা করতে পারেন, যা আমার খুব ভাল লাগছে।
pupeno

4
দৃ agree় সম্মত। আপনি যদি লিস্পের শক্তি চান তবে কেবল ডুব দিন এবং এটি পান! প্যারেনস ব্যবহার করা আসলে এটি বেশ সহজ; তারা এতটা বড় চুক্তি নয় যতটা লোকেরা তাদের তৈরি করে দেয় to
ড্যান বার্টন

11

আপনার 4 "গুরুত্বপূর্ণ" পয়েন্টগুলি রুবিকে ঠিকঠাক দিকে নিয়ে যায়, যখন পাইথন দ্বারা নিয়ন্ত্রিত 2 "কিছুটা গুরুত্বপূর্ণ" পয়েন্ট। তাই হোক।


11

আপনি রুবি বর্ণনা করছেন।

  • ভাল রূপক। রানটাইমে ক্লাস, পদ্ধতি, ফাংশন ইত্যাদি তৈরি করার ক্ষমতা। সাধারণত, কোড এবং ডেটা, লিস্প শৈলীর মধ্যে ন্যূনতম পার্থক্য।

রানটাইমটিতে বিদ্যমান আদিমগুলিকে প্রসারিত সংশোধন করা খুব সহজ । রুবিতে সবকিছু হ'ল একটি অবজেক্ট, স্ট্রিং, ইন্টিজার, এমনকি ফাংশন।

আপনি সিনট্যাকটিক চিনির জন্য শর্টকাটও তৈরি করতে পারেন, উদাহরণস্বরূপ ক্লাস_ওয়ালের সাথে

  • সুন্দর, পরিষ্কার, বুদ্ধিমান সিনট্যাক্স এবং ধারাবাহিক, স্বজ্ঞাত শব্দার্থবিদ্যা। মূলত একটি সুচিন্তিত, ব্যবহারের মজা, আধুনিক ভাষা।

রুবি কম আশ্চর্যতার নীতি অনুসরণ করে এবং অন্য ভাষায় রুবি কোড বনাম সমতুল্য তুলনা করার সময় অনেকে এটিকে আরও "সুন্দর" বলে মনে করেন।

  • একাধিক দৃষ্টান্ত কোনও প্রকল্পের জন্য কোনও প্রকল্পই সঠিক নয়, এমনকি কোনও প্রকল্পের মধ্যে প্রতিটি ছোট ছোট ছোট প্রকল্পও রয়েছে।

আপনি জরুরী, অবজেক্ট ওরিয়েন্টেড, ক্রিয়ামূলক এবং প্রতিফলিত অনুসরণ করতে পারেন।

  • একটি আকর্ষণীয় ভাষা যা প্রকৃতপক্ষে প্রোগ্রামিং সম্পর্কে চিন্তাভাবনা করে affects

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

আমি পাইথন চেষ্টা করেছি এবং এটি আপনার গুরুত্বপূর্ণ পয়েন্টগুলির সাথে খাপ খায় না।


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

6
অনেক কথা কিন্তু হাঁটাচলা নেই। স্ট্রিং ক্লাসটি গতিশীলভাবে একটি পদ্ধতি যুক্ত করার জন্য পাইথনে একটি উদাহরণ দেওয়ার জন্য যত্নশীল?
ফেলিপিসি

6
@ জোহান এটাই আমার বক্তব্য; এটি অত্যন্ত জটিল এবং কুরুচিপূর্ণ ( স্ট্রিং ক্লাসের পক্ষে অসম্ভবের কথা উল্লেখ না করা )। রুবিতে ওটিওএইচ এটি খুব সহজ: "সেলফি.ক্লাস.সেন্ড (: সংজ্ঞায়িত_মাদিক,: পদ্ধতি_নাম) {মেথড_কোড}"
ফিলিপিসি

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

4
@ টোকেন রূপান্তরকাজের Stringউদ্দেশ্যে রুবিতে বানর-প্যাচিংয়ের একটি উদাহরণ : শীতকালীন . info / shvedsky / pro / blogs / a-foo-walks-into-a-bar / posts/… । সাবক্লাসিং করত না; তবে, একটি সাধারণ দ্বি-যুক্তি ফাংশন হবে would
পি

8

কোডmyList ভাষাগুলির সাথে তুলনা করুন যা একই কাজ করে (একটি তালিকা থেকে আইটেমগুলির একটি নিউলাইন অ-খালি বর্ণনার সাথে যোগ দিন ) বিভিন্ন ভাষায় (ভাষাগুলি বিপরীত-বর্ণমালা অনুসারে সাজানো হয়):

রুবি :

myList.collect { |f| f.description }.select { |d| d != "" }.join("\n")

বা

myList.map(&:description).reject(&:empty?).join("\n")

পাইথন :

descriptions = (f.description() for f in mylist)
"\n".join(filter(len, descriptions)) 

বা

"\n".join(f.description() for f in mylist if f.description())

পার্ল :

join "\n", grep { $_ } map { $_->description } @myList;

বা

join "\n", grep /./, map { $_->description } @myList;

জাভাস্ক্রিপ্ট :

myList.map(function(e) e.description())
      .filter(function(e) e).join("\n")

আইও :

myList collect(description) select(!="") join("\n")

এখানে একটি আইও গাইড রয়েছে


4
(ফর্ম্যাট নীল "~ {~ a ~ ^ ~% ~}" (মুছে ফেলুন (ম্যাপকার # 'বর্ণনা মাইলিস্ট)))
রেনার জোসভিগ

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

6

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

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

যাইহোক, কিছু সংস্থান যা আপনার কার্যকর মনে হতে পারে তা হলেন:

1) প্র্যাকমেটিক প্রোগ্রামারস রুবি মেটাপ্রোগ্রামিং সিরিজ ( http://www.pragprog.com/screencasts/v-dtrubyom/the-ruby-object-model- and-metaprogramming ) - নিখরচায় নয়, তবে পরবর্তী পর্বগুলি বেশ আকর্ষণীয়। (কোডটি বিনামূল্যে, যদি আপনি এটি ডাউনলোড করতে চান এবং আপনি কী সম্পর্কে শিখছেন তা দেখুন be)

2) পল গ্রাহামের লিপ্পে ( http://www.paulgraham.com/onlisp.html )। এটি সামান্য পুরানো তবে এটি একটি ক্লাসিক (এবং বিনামূল্যে ডাউনলোডযোগ্য)।


5

আমি পাইথনকে অনেকগুলি প্রকল্পের জন্য ব্যবহার করছি এবং আমি মনে করি যে পাইথন আপনার কাছে অনুরোধ করা সমস্ত বৈশিষ্ট্য সরবরাহ করে।

গুরুত্বপূর্ণ:

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

কিছুটা গুরুত্বপূর্ণ:

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

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

শুভেচ্ছা, ডেনিস


4
পাইথন হোয়াইটস্পেস-সংবেদনশীল নয় এটি ইন্ডেন্টেশন-সংবেদনশীল।
jfs

5

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

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

class Ninja
  def rank
    puts "Orange Clan"
  end

  self.name #=> "Ninja"
end

নিজের নাম ব্যবহার করে নিনজার ক্লাসের নাম ফিরে পেতে নিনজা ক্লাসের মেটাগ্লাস নাম পদ্ধতিটি অ্যাক্সেস করে । পাইথনে রূপক ফুল কী এত সুন্দর? আমি আন্তরিকভাবে এটি সন্দেহ!


4

ওয়েল, আপনি যদি লিস্প সিনট্যাক্স পছন্দ না করেন তবে অ্যাসেমব্লার হওয়ার উপায়। :-)

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


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

4
আমার কাছে এসেম্বলারের কোড রয়েছে যা আপনি ওও বলে দাবি করতে পারেন। এটিতে এমন জিনিস রয়েছে যা পদ্ধতির মতো দেখায় - আপনি "ক্লাস" এর উপর নির্ভর করে call
জাস্টিনটাইম

4

আইও আপনার সমস্ত "গুরুত্বপূর্ণ" পয়েন্টকে সন্তুষ্ট করে। আমি মনে করি না পাগল মেটা হ্যাকারি করার জন্য আরও ভাল ভাষা আছে।


তার জন্য ধন্যবাদ, এটি জানেন না। প্রথম নজরে মজা দেখায়, সম্ভবত প্রচুর পরিমাণে (()) তবে যাইহোক। আশা করি খুব শীঘ্রই একবার দেখার জন্য সময়টি পেয়ে যাব।
flq

3

রূপান্তরকৃত হ্যাকগুলিকে সমর্থন করে এমন একটি যা কেবল স্থিতিশীলভাবে সংকলিত ভাষায় করা যায় না

আমি এমন একটি ভাষা খুঁজে পেতে চাই যা লিস্পের মতো কিছু দুর্দান্ত জিনিস দেয়

লিসপ সংকলন করা যায়।



3

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


2

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

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


2

আপনি পাতার মর্মর-শৈলী কোড-is-ডেটা ধারণা মত, কিন্তু Lispy সিনট্যাক্স পছন্দ না হয়, হয়তো Prolog একটি ভাল পছন্দ হতে হবে।

এটি "ব্যবহারের মজাদার, আধুনিক ভাষা" হিসাবে যোগ্য কিনা, আমি অন্যকে বিচার করার জন্য ছেড়ে যাব। ;-)


2

পাইথন, ছোট্টকল এবং রুবি অন্বেষণ করার পরে রুবি আমার পছন্দ।


2

ওক্যামাল সম্পর্কে কী?

ওসিএএমএল বৈশিষ্ট্য: একটি স্ট্যাটিক টাইপ সিস্টেম, টাইপ ইনফারেন্স, প্যারামেট্রিক পলিমারফিজম, টেল রিকার্সন, প্যাটার্ন ম্যাচিং, ফার্স্ট ক্লাসের লেক্সিকাল ক্লোজার, ফান্টেক্টর (প্যারামেট্রিক মডিউল), ব্যতিক্রম হ্যান্ডেলিং এবং ইনক্রিমেন্টাল জেনারাল স্বয়ংক্রিয় আবর্জনা সংগ্রহ।

আমি মনে করি যে এটি নিম্নলিখিতগুলি সন্তুষ্ট করে:

গুরুত্বপূর্ণ:

  1. সুন্দর, পরিষ্কার, বুদ্ধিমান সিনট্যাক্স এবং ধারাবাহিক, স্বজ্ঞাত শব্দার্থবিদ্যা। মূলত একটি সুচিন্তিত, ব্যবহারের মজা, আধুনিক ভাষা।
  2. একাধিক দৃষ্টান্ত কোনও প্রকল্পের জন্য কোনও প্রকল্পই সঠিক নয়, এমনকি কোনও প্রকল্পের মধ্যে প্রতিটি ছোট ছোট ছোট প্রকল্পও রয়েছে।
  3. একটি আকর্ষণীয় ভাষা যা প্রকৃতপক্ষে প্রোগ্রামিং সম্পর্কে চিন্তাভাবনা করে affects

কিছুটা গুরুত্বপূর্ণ:

  1. কর্মক্ষমতা. পারফরম্যান্সটি যদি মার্জিত হয় তবে এটি দুর্দান্ত হবে, তবে যখন পারফরম্যান্সটি আসল অগ্রাধিকার হয়, আমি তার পরিবর্তে ডি ব্যবহার করব।
  2. তথ্যসমৃদ্ধ.

ওক্যামল আপনাকে রানটাইমে ক্লাস / পদ্ধতি তৈরি করতে দেয়? ওটা কিভাবে কাজ করে?
জেসন ক্রেইটন

আমি কেবল ওসিএএমএল সম্পর্কে পড়েছি এবং এটি রানটাইমে স্টাফ তৈরি করতে পারে না তাই আমি এটি সরিয়ে দিয়েছি।
রবার্ট ভুকোভিć

2

আমি পাইথনকে কিছুটা ব্যবহার করেছি, তবে আরও অনেক বেশি রুবি। তবে আমি যুক্তি দিয়েছিলাম যে তারা উভয়ই আপনি যা চেয়েছিলেন তা সরবরাহ করে।

আমি যদি আপনার চারটি পয়েন্ট দেখতে পাই তবে আপনি কমপক্ষে চেক করতে পারেন: http://www.iolanguage.com/

এবং মোজার্ট / ওজ আপনার জন্যও আকর্ষণীয় হতে পারে: http://mozart.github.io/

শুভেচ্ছা ফ্রিডরিচ



1

আমি নিশ্চিত নই যে পাইথন আপনার পছন্দসই সমস্ত জিনিস পূরণ করবে (বিশেষত কোড এবং ডেটার মধ্যে ন্যূনতম পার্থক্য সম্পর্কে বিষয়) তবে পাইথনের পক্ষে একটি যুক্তি রয়েছে। একটি প্রকল্প রয়েছে যা আপনার পক্ষে ডি তে অজগরটির জন্য এক্সটেনশানগুলি প্রোগ্রাম করা সহজ করে তোলে যাতে আপনি উভয় বিশ্বের সেরা উপভোগ করতে পারেন। http://pyd.dsource.org/celerid.html



1

আমি আপনাকে রুবির সাথে যেতে সুপারিশ করব।

আমি যখন প্রথম এটি শিখতে শুরু করেছি তখন আমি এটি গ্রহণ করা সত্যিই সহজ পেয়েছি।


1

রুবি প্রোগ্রামিং ল্যাঙ্গুয়েজে রুবি বাস্তবায়নের সাথে মিশ্রিত করবেন না, এই ভেবে যে রুবিতে পসিক্স থ্রেড সম্ভব নয়।

আপনি সহজভাবে pthread সমর্থন দিয়ে সংকলন করতে পারেন, এবং এই থ্রেডটি তৈরি হওয়ার সময় ইতিমধ্যে সম্ভব ছিল , যদি আপনি শ্লেষ ক্ষমা করেন।

এই প্রশ্নের উত্তর সহজ। আপনি যদি লিস্প পছন্দ করেন তবে আপনি সম্ভবত রুবি পছন্দ করবেন। অথবা, আপনি যা পছন্দ করেন


0

আমি আপনাকে উভয় ভাষা ব্যবহার করে দেখার জন্য পরামর্শ দিই এবং যেটি আপনার কাছে আবেদন করে তার একটি বেছে নিন। পাইথন এবং রুবি উভয়ই আপনার যা ইচ্ছা তা করতে পারে।

এছাড়াও পড়া এই থ্রেড



0

আপনার মূল-পয়েন্ট (মেটা-প্রোগ্রামিং) সম্পর্কিত: গ্রোভির সংস্করণ 1.6 এএসটি (অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি) প্রোগ্রামিং রয়েছে একটি মানক এবং সংহত বৈশিষ্ট্য হিসাবে অন্তর্নির্মিত। রুবির রুবি পার্সার রয়েছে তবে এটি অ্যাড-অন।

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