প্রোগ্রামিং * একটি ভাষায় বনাম বনাম রুবিতে সি কোড লেখা


10

কোড সম্পূর্ণ হয়েছে বলে যে আপনি aways কোড উচিত মধ্যে একটি ভাষা হিসেবে কোড উল্টোদিকে মধ্যে এটি। তার দ্বারা, তারা মানে

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

হাতের ভাষার বিশেষ শক্তি এবং দুর্বলতাগুলি বিবেচনা না করেই কি এটি কি প্রতিটি ভাষায় প্রোগ্রামিংয়ের একটি স্টাইল ব্যবহারের দিকে পরিচালিত করে না?

অথবা, প্রশ্নটি আরও উত্তরযোগ্য ফরমেটে রাখার জন্য:

আপনি কি প্রস্তাব দিতে পারেন যে কারও নিজের ভাষার বর্ণনার সাথে যথাসম্ভব ঝরঝরে সমস্যাটি এনকোড করার চেষ্টা করা উচিত, বা আপনার পরিবর্তে সামগ্রিকভাবে সবচেয়ে সুন্দর সমাধানটি সন্ধান করা উচিত, এমনকি যদি এর অর্থ এমনও হয় যে আপনার সম্ভবত স্থানীয়ভাবে অস্তিত্বহীন অজানা কাঠামোগত প্রয়োগ করা দরকার কারও ভাষায়?


5
+1 ভাল প্রশ্ন। আমি পার্লে এই সময়ে অর্ধ ডজন বিভিন্ন ভাষায় লিখতে পারি।
ড্যান রে

@ ড্যান রে - অদ্ভুত! আমি সবসময় পার্ল সি লিখি।
জেমস অ্যান্ডারসন

উত্তর:


7

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

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


1
হাস্কেল সম্প্রদায় ডোমেন-নির্দিষ্ট ভাষাগুলিও গ্রহণ করে এবং হ্যাস্কেল প্রোগ্রামিং ভাষা তাদের বাস্তবায়নের জন্য বিশেষভাবে উপযুক্ত।
tmadmers

লুয়ার মতো এম্বেড থাকা ভাষার উপর ভিত্তি করে টেইলার বানানো স্ক্রিপ্টিং সিস্টেমটি বাস্তবায়ন করা বা টাকল কোনও লেখাকে ডিএসএল হিসাবে বিবেচনা করে? যদি তা হয় তবে লুয়ার যেমন ঘাটতিগুলি আপনি কীভাবে মোকাবেলা করবেন?
bastibe

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

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

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

2

আমি সঠিক উত্তরটি বিশ্বাস করি এবং বইটির উদ্দেশ্যটি হ'ল:

কারও নিজের ভাষার বর্ণনার সাথে নিজের সমস্যাটিকে যতটা সম্ভব পরিষ্কারভাবে এনকোড করার চেষ্টা করা উচিত

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

উদাহরণস্বরূপ, উচ্চতর অর্ডার ফাংশনগুলি ব্যবহার করে হাস্কেল শেখা আমার দক্ষতার ব্যাপক উন্নতি করেছে। এখন সি # তে প্রোগ্রামিং করার সময় আমি বিভিন্ন IEnumerableপদ্ধতি যেমন বেশিবার Selectব্যবহার করি কারণ এই পদ্ধতিগুলি ব্যবহার করা লুপগুলিতে লেখার চেয়ে ক্লিনার কোডের দিকে নিয়ে যায়। আমার পাসওয়ার্ড এবং ফাংশনগুলি (যেমন Func<int, int>) ব্যবহার করার ঝোঁক আমার হ্যাশেলের অভিজ্ঞতার কারণে প্রায়শই ঘটে। আমার উত্তরাধিকারের কারণে এর ব্যবহার হ্রাস পেয়েছে এবং বেশিরভাগ সময় ফলাফলটি সহজ কোড।

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

তাই আমি দক্ষতার সাথে আমার সর্বোত্তম প্রভাব ফেলতে ভাষার সরঞ্জামগুলি ব্যবহার করি। আমি বিশ্বাস করি যে ভাষায় প্রোগ্রামিং হয়।


0

আপনি কি প্রস্তাব দিতে পারেন যে কারও নিজের ভাষার বর্ণনার সাথে যথাসম্ভব ঝরঝরে সমস্যাটি এনকোড করার চেষ্টা করা উচিত, বা আপনার পরিবর্তে সামগ্রিকভাবে সবচেয়ে সুন্দর সমাধানটি সন্ধান করা উচিত, এমনকি যদি এর অর্থ এমনও হয় যে আপনার সম্ভবত স্থানীয়ভাবে অস্তিত্বহীন অজানা কাঠামোগত প্রয়োগ করা দরকার কারও ভাষায়?

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

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