অন্য ভাষা থেকে অনুকরণীয় ধারণা থেকে কোন সমস্যা দেখা দিতে পারে?


12

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

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


3
লোকেরা আপনাকে একটি বিষয় নিয়ে মজা করবে :-)
কার্ল বিলেফেল্ড

আমি একবার ডি থেকে জাভাতে নেস্টেড ফাংশন পার্সার অনুবাদ করেছি তবে আমি স্বীকার করব যে এটি আমার লেখা কখনওই কোডের সবচেয়ে পরিষ্কার টুকরো নয় (একটি ইন্টারফেস সহ এটির একটি বৃহত ফাংশন এবং এর অভ্যন্তরে সংজ্ঞায়িত বেশ কয়েকটি ক্লাস)
র‌্যাচেট ফ্রিক

উত্তর:


23

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

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

আরও সাধারণভাবে, প্রতিটি ভাষার নিজস্ব সংস্কৃতি রয়েছে, নিজস্ব সেরা অনুশীলন রয়েছে, নিজস্ব শৈলী রয়েছে।

  • আমি যদি সি # কোড লিখতে শুরু করি তবে এটি সি ছিল, এটি কুরুচিপূর্ণ হবে।

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

  • প্রভৃতি

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


+1 ভাল উত্তর, এবং F # এর মতো সি # তে পরিমাপের একক যুক্ত করার জন্য অতিরিক্ত অনুসন্ধান পদগুলির জন্য ধন্যবাদ।

2
যিনি একবার জাভা ব্যবহার করার জন্য বাধ্য হয়ে আমার চাকরি ছেড়ে দিয়েছিলেন, আমার 2 সেন্ট: কেউ হাস্কেল ব্যবহার করতে বাধ্য হতে পারে না, একজন এটির প্রেমে পড়ে যায় এবং তারপরে কোনও প্রত্যাবর্তনের বিন্দুতে আপনাকে ডেকে আনে। হাস্কেল এমন একটি মনোরম ব্ল্যাকহোলের মতো যা আপনি কেবল
বাঁচেন

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

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

1
@ সিটিন সার্ট: সম্মত হন, হাস্কেল একটি দুর্দান্ত ভাষা। তবে যদি কেউ এটি শিখতে না চান এবং ফাংশনাল প্রোগ্রামিং বুঝতে না পারেন তবে হাস্কেলের প্রশংসা করা কঠিন হবে।
আর্সেনী মোরজেনকো

10

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

এছাড়াও,

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

2
আমাকে একবার ভ্যানিলা সি-তে সি ++ ডায়নামিক প্রেরণ (ভার্চুয়াল টেবিল ইত্যাদি) অনুকরণ করতে হয়েছিল এবং ঠিক এই সমস্যার মধ্যে পড়েছিলাম: সি প্রোগ্রামাররা যারা ডায়নামিক প্রেরণ বুঝতে পারেনি তারা প্রকল্পে অবদান রাখতে বা বজায় রাখতে অক্ষম ছিল।
আসন্ন ঝড়

4

এটি কাগজে প্রদর্শিত যতটা ভাল ধারণা তা নয়।

উদাহরণ 1: আপনার বয়স যদি যথেষ্ট হয় তবে আপনি সেই দিনগুলি মনে করতে পারেন যখন সি শহরে নতুন বাচ্চা ছিল। পাস্কাল এবং অ্যাডা প্রোগ্রামাররা সি এর টর্স খোলা এবং বন্ধ বন্ধনীগুলি পছন্দ করেনি। তারা # সংজ্ঞায়িত beginএবং endবন্ধনী এবং বন্ধ বন্ধনী খোলার জন্য, এবং ভয়েলা! CAda! দুর্ভাগ্যজনক ফলাফলটি অ্যাডা বা সি এর উভয়ের দৃষ্টিকোণ থেকে কুৎসিত হয়েছিল

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


2

অন্য ভাষা থেকে অনুকরণীয় ধারণা থেকে কোন সমস্যা দেখা দিতে পারে?

ফাঁস বিমূর্ততা।


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

1

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

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

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