শিল্পে ক্রিয়ামূলক প্রোগ্রামিং কেন বেশি জনপ্রিয় নয়? এটা কি এখন ধরা দেয়? [বন্ধ]


61

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

তবে কোনও কাজের সন্ধানের সময় এমন একটি কাজ দেখা খুব বিরল যে যেখানে একটি কার্যকরী প্রোগ্রামিং ভাষার জ্ঞান প্রয়োজন।

শিল্পে ক্রিয়ামূলক প্রোগ্রামিং ভাষা কেন বেশি ব্যবহৃত হয় না? আজকাল ফাংশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে বেশ কিছু সংবাদ আছে, তাই আমি ভাবছি যে এখনকার শিল্পে ক্রিয়ামূলক প্রোগ্রামিংটি ধরছে কি না?


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

1
@ ম্যাট্রিক্সফ্রোগ: কেউ জিজ্ঞাসা করতে পারেন যে "একটি পূর্ণাঙ্গ এফপি ভাষা গ্রহণের পরিবর্তে অ-কার্যকরী ভাষাগুলিতে কয়েকটি কার্যকরী ধারণা যুক্ত করে কেবলমাত্র অর্ধেক পথ কেন কার্যকর হবে? সর্বোপরি বহু বছরের পরিকল্পিত ঘটনাটি প্রায় বহু বছর ধরে চলেছে এবং খুব পরিপক্ক।"
জর্জিও

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

উত্তর:


38

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


9
কীভাবে কার্যকরী প্রোগ্রামিং 'নতুন'?
ইভান প্লেস

7
আমি মনে করি তিনি 'নতুন' এর পরিবর্তে 'অব্যবহৃত' বোঝাচ্ছেন।
ভিঙ্কো ভার্সালোভিক

9
সুতরাং এটি অব্যবহৃত ... কারণ এটি অব্যবহৃত? হুঁ।
অ্যালেক্স বারানোস্কি

21
@ অ্যালেক্স - ঠিক চুষে, তাই না?
কিথস

5
@ স্টারগাজের 12১২: সে কারণগুলি কী কী? আমি প্রচুর বিকাশকারীকে জানি যারা ফাংশনাল প্রোগ্রামিং জানেন না, তাই অজ্ঞতা আমার কাছে বোধগম্য হয়। ফাংশনাল প্রোগ্রামিংয়ের অতীতে কি এত বড় ব্যর্থতা ছিল যে শিল্পটিকে তা থেকে দূরে সরিয়ে নিয়েছিল যা আমি অজানা?
শান ম্যাকমিলান

67

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

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

প্রদত্ত যে, ফাংশনাল প্রোগ্রামিং হ'ল কেবল একটি তীর যা আপনার কাঁপুনে থাকার জন্য, কেবলমাত্র একটি নয়, যেমন ওওপি একমাত্র নয়।

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


1
এটি সত্যিই একটি ভাল মন্তব্য। আপনার কাঁপুনে তীর এবং + বাণিজ্য সহ সমাধানের ব্যাপ্তিগুলি +1 করা।
ব্যবহারকারী 21007

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

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

@ মাইক: কোন আধুনিক ভাষা সম্পর্কে? আপনি কি সি ++ এবং জাভা অন্তর্ভুক্ত করছেন?
কেভিন ক্লিন

+1 টি। এটি নিজের চেয়ে ভাল বলতে পারত না।
রিওয়ালক

25

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


48
আমি একমত নই কার্যকরী প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি কোনও রাষ্ট্রের ব্যবহারকে হ্রাস করার চেষ্টা করে এবং এর ফলে কম জটিল হয়। একটি কার্যকরী ভাষায় প্রোগ্রাম করা প্রোগ্রামগুলি পরীক্ষা এবং রিফ্যাক্টর করা সহজ।
জোনাস

7
@ জোনাস: প্রচুর প্রোগ্রামাররা প্রায় কোনও রাষ্ট্রই ব্যবহার না করে (নিজেকে সহ) কোনও প্রোগ্রাম লিখতে চূড়ান্ত বলে মনে করেন। দৃষ্টিকোণ থেকে, এটি আসলে আরও জটিল। (দয়া করে মনে রাখবেন যে আমি কোনও উপায়ে ফাংশনাল প্রোগ্রামিংয়ের কার্যকারিতা নিয়ে বিতর্ক করছি না!)
ShdNx

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

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

6
ফাংশনাল প্রোগ্রামিংয়ের প্রধান জোরের মধ্যে একটি হ'ল কমপোসিবিলিটি। জটিলতা পরিচালনার জন্য যদি এটি কোনও সরঞ্জাম না হয় তবে আমি কী তা জানি না।
ড্যান_ওয়াটারওয়ার্থ

23

কার্যকরী প্রোগ্রামিং অবশ্যই স্পষ্টভাবে ধরা শুরু করছে - ধীরে ধীরে তবে অবশ্যই।

উদাহরণস্বরূপ, আমি যে স্টার্টআপটি তৈরি করছি তা নিম্নোক্ত কারণে একটি কার্যকরী ভাষা (ক্লোজার) প্রাথমিক বিকাশের ভাষা হিসাবে ব্যবহার করছে:

  • উত্পাদনশীলতা - এফপি শেখা শক্ত, তবে একবার এর ঝুলন্ত পাওয়ার পরে শক্তি এবং অভিব্যক্তির দিক থেকে পরাজিত করা খুব শক্ত। আমি সি # বা জাভাতে যা প্রয়োজন তার তুলনায় যে কোনও কার্যকারিতা দেওয়া টুকরোটি বাস্তবায়নের জন্য আমি লাইনগুলির সংখ্যার প্রায় 1/10 তম লিখছি

  • নির্ভরযোগ্যতা - খাঁটি ফাংশনগুলি রাষ্ট্রীয় বস্তুর তুলনায় বিতর্ক এবং পরীক্ষা করা অনেক সহজ। অতএব আপনি আরও ভাল টেস্ট লিখতে পারেন এবং আপনার কোডের নির্ভুলতা আরও সহজেই যাচাই করতে পারেন।

  • সংশ্লেষ - কার্যকরী ভাষাগুলি অপরিবর্তনীয়তার উপর জোর দেয়, যার একাধিক কোরগুলিতে কার্যকরভাবে চালানোর প্রয়োজনের তুলনায় সমবর্তী অ্যাপ্লিকেশনগুলির জন্য প্রচুর সুবিধা রয়েছে। এবং এটি পছন্দ করুন বা না করুন, একাধিক কোরে চালানো ভবিষ্যত। এটি কেন এত গুরুত্বপূর্ণ তা সম্পর্কে উজ্জ্বল ব্যাখ্যার জন্য http://www.infoq.com/preferencesations/Value-Identity-State-Rich-Hickey দেখুন

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

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


+1, কেন আপনি ক্লোজারকে বেছে নিয়েছেন তার আশেপাশে আপনার সিদ্ধান্ত গ্রহণের প্রক্রিয়াটি শুনতে আমি আগ্রহী। (আমি ক্লোজারের পক্ষে বা বিরোধী নই, আমি কেবল আগ্রহী)।
ড্যান_ওয়াটারওয়ার্থ

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

1
আমি মনে করি প্রথম 3 টি দুর্দান্ত ঘটনা, তবে আমি 4 র্থ সাথে একমত নই। ওওপি চূড়ান্তভাবে মডুলার এবং গঠনমূলক; আমার জন্য এটি এর অন্যতম বৃহত শক্তি of এটি এনক্যাপসুলেশন এবং বিমূর্তনের মাধ্যমে জটিলতা লুকিয়ে রাখার ক্ষেত্রেও দুর্দান্ত।
দেশ্পার্টার

1
@Giorgio। যথাযথভাবে। "স্প্যানিশ শেখা শক্ত কিন্তু চীনা সহজ" এর মতোই "এফপি শেখা শক্ত, ওওপি শেখা সহজ" অবাস্তব is এটি আপনার প্রথম ভাষাটি কোনটি নির্ভর করে। এবং আমি ওওপি-তে স্বতন্ত্র এনালগ হিসাবে চীনাকে বেছে নিইনি - কারণ ওও প্রজ্ঞাগুলি হায়ারোগ্লাইফগুলির মতো: একের পর এক শিখতে সহজ তবে সেগুলি মনে রাখা শক্ত এবং রচনা করা অসম্ভব। এফপি অনেকটা বর্ণমালা সহ ভাষার মতো: পৃথক বর্ণ পৃথকীকরণে অনর্থক তবে যথাযথভাবে ছোট ছোট নিয়মের সাথে কোনও কিছু রচনা করার অনুমতি দেয়
কোলাআ

1
(অবিরত) তাই কেন এটি জনপ্রিয় নয় - তবুও - খুব একই কারণে। প্রথম বর্ণমালা উদ্ভাবন ও পরিপক্ক হওয়ার অনেক আগে থেকেই হায়ারোগ্লাইফসের অস্তিত্ব ছিল। এটি বর্ণানুক্রমিক লেখা এবং পাঠ্য সহ অন্য প্রজন্মের কাছে লেগে যেতে পারে আমি
এফপিটিকে

12

ঘাতক অ্যাপের অভাব

আরে, এই এখানে একদম সতেজ দেখাচ্ছে। (ডিগ ডিগ ডিগ)

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

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

  • সি: সর্বত্র কাজ করে (এটি 70 এবং 80 এর দশকের শেষভাগ ছিল)
  • সি ++: জিইউআই ফ্রেমওয়ার্ক (90 এর দশকের শুরুর দিকে)
  • জাভা: অ্যাপলেট এবং সার্লেটগুলি (90 এর দশকের শেষের দিকে)
  • উদ্দেশ্য-সি: আইওএস অ্যাপস (তার আগে ওএস এক্স অ্যাপ্লিকেশন)
  • রুবি: রেলস
  • সি #: এএসপি.এনইটি, উইনফর্মস
  • পিএইচপি: ওয়ার্ডপ্রেস, ইত্যাদি
  • জাভাস্ক্রিপ্ট: এজেএক্স, বিশেষত ফ্রেমওয়ার্কের মাধ্যমে
  • লুয়া: গেমের স্ক্রিপ্টিং, বিশেষত ওয়াও

এ ছাড়াও অনেক মালিকানাধীন ভাষাগুলি শক্তিশালী বিক্রয় সংস্থার (ওরাকল এবং আরও কিছুটা কম মাইক্রোসফ্টের ভাষাগুলি) মাধ্যমে কার্যকরভাবে তাদের নিজস্ব কুলুঙ্গি তৈরি করেছে।

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

সুতরাং, কোনও কার্যকরী ভাষার সত্যই কী দরকার তা এক কুলুঙ্গি। বাস্তবে, এখনও কোনও বিশাল কার্যকরী ভাষা নেই, তবে ছোট কুলুঙ্গিগুলিতে পুরোটা রয়েছে:

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

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

এ থেকে আমি বলতে পারি যে আমার মনে হয় কোন কার্যকরী ভাষা বৃদ্ধি পাচ্ছে :

  • ক্লোজার: ওয়েব প্রোগ্রামিং, এসএসপি হেরোকু মাধ্যমে
  • স্কেল: লিফট (বা সম্ভবত প্লে করুন, এই দিনগুলি) - জাভা ছাড়া জেভিএম

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


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

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

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

8

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


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

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

13
@ জোনাস সেখানে প্রচুর লোকের জন্য, গণিত একটি এলিয়েন দৃষ্টান্ত এবং প্রোগ্রামিংকে গণিত থেকে আরও দূরে সরিয়ে নিয়ে যাওয়া এমন কিছু বোঝা সহজ করে তোলে।
স্ক্রিপ্টোক্যালপস

5
আমি এমন লোকদের কথা শুনেছি যারা কখনও গাছের কথা শুনে নি, গ্র্যাজুয়েশন শেষ করে প্রোগ্রামিংয়ের কাজ শুরু করে দেয়।
dan_waterworth

1
@ টাক্স-ডি, আসলে, না, আমি যুক্তরাজ্যের শিক্ষার্থীদের কথা বলছি।
ড্যান ওয়াটারওয়ার্থ

6

ব্যবসা এবং প্রোগ্রামিং বিবেচনা করা যাক।

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

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

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

অতএব, বেশিরভাগ ব্যবসায়ের ক্ষেত্রে, কার্যকরী প্রোগ্রামিংয়ে পরিবর্তন করা ব্যয়সাধ্য হবে এবং এটি কেবলমাত্র তার জন্য পরিশোধ করতে হবে যদি দীর্ঘমেয়াদে আইটি ব্যয় হ্রাস যথেষ্ট হয় তবে ব্যতীত দীর্ঘমেয়াদী সম্ভাবনা কম হয় if


2

আপনি ইতিমধ্যে কার্যকরী শৈলীতে কোড লিখেছেন, কেবল আপনি এটি জানেন না।

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

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


1

আমি বিশ্বাস করি আপনার প্রশ্নের একমাত্র আসল উত্তর আছে। এই উত্তরটি কেন হয় সম্পর্কিত আপনি অনেকগুলি কারণেই পেতে পারেন তবে সেগুলি পৃথক প্রশ্ন।

এটা এখানে:

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

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


0

আসল সমস্যা হ'ল রাষ্ট্র।

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

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

সুতরাং কার্যকরী ভাষার কোনও বৈশ্বিক রাষ্ট্র না থাকলেও তাদের রাষ্ট্রীয় তথ্য প্যারামিটার এবং ফলাফল হিসাবে পাস করা হয়।

তাহলে প্রশ্নটি তখন হয়ে যায় যে ভাষা কী রাষ্ট্রকে দক্ষতার সাথে বোঝার পিছনে পরিচালনা করতে পারে? বিশেষত যখন ডেটার আকার আর্কিটেকচারের আকারের চেয়ে বেশি হয়।

হার্ডওয়্যার সাইড থেকে এটি তাকান

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

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

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

শিল্পের দিক থেকে তাকানো:

শিল্পে অনেকগুলি অক্ষম রাজ্য-পূর্ণ প্রগ্রেমার রয়েছে।

তবে সময়ের সাথে সাথে এই প্রোগ্রামগুলির উন্নতি পরিমাপ করা সহজ। আপনি বিকাশকারীদের একটি টিমকে সমস্যায় ফেলে দেন যেহেতু তারা প্রোগ্রামটি কীভাবে পরিচালনা করে তা উন্নতি করে কোডটি উন্নত করতে পারে।

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

সুতরাং শিল্পের জন্য আমি মনে করি এটি কোডের উন্নতিগুলি পরিমাপ করার ক্ষমতাতে নেমে আসে।

ভাড়ার দৃষ্টিকোণ থেকে

ভাড়া নেওয়ার জন্য প্রচুর স্ট্যাট-পূর্ণ প্রোগ্রামার রয়েছে। কার্যকরী প্রগ্রেমারগুলি খুঁজে পাওয়া শক্ত। সুতরাং শিল্প যদি কার্যক্ষম শৈলীর প্রোগ্রামিংয়ে রূপান্তরিত হয় এবং এটি ঘটতে চায় এমন কিছু না হয় তবে প্রোগ্রামাররা এটি যথেষ্ট ব্যয়বহুল)


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

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

"কার্যকরী ভাষাগুলির বিশ্বব্যাপী রাষ্ট্র নেই" - আপনার বৈশ্বিক রাষ্ট্রের প্রয়োজন নেই। খুব সুন্দর সমস্ত রাজ্য পরিচালনা মনডের মাধ্যমে করা যেতে পারে।
অরুণাভ সান্যাল

-3

এই প্রশ্নের সামান্য ভুল ভিত্তি আছে। নিম্নলিখিত কারণে:

  1. কার্যকরী প্রোগ্রামিং শিল্পে আসলে বেশ সাধারণ। তবে এটি কেবলমাত্র অভিজ্ঞ প্রোগ্রামারদের উপলব্ধ ক্ষেত্রেই ব্যবহৃত হয়। নতুনদের এটি জানা আশা করা যায় না। প্রায় সমস্ত বড় প্রোগ্রামিং প্রকল্প এটি ব্যবহার করে তবে অভিজ্ঞ প্রোগ্রামারদের দ্বারা পরিচালিত এমন অঞ্চলগুলিতে তারা কেবল এটি রাখে। সূচনাপ্রাপ্তরা সহজেই মডিউলগুলি মোকাবেলা করবে যার জন্য কার্যকরী প্রোগ্রামিংয়ের প্রয়োজন হয় না।
  2. এই বাস্তবতাটি দেওয়া, যে সংস্থাগুলি লোক নিয়োগ করে (সাধারণত বিশ্ববিদ্যালয় থেকে আগত তরুণীরা) কার্যত কার্যনির্বাহী প্রোগ্রামিংয়ের অভিজ্ঞতা চাইতে পারে না। যে প্রকল্পগুলিতে ফাংশনাল প্রোগ্রামিং প্রয়োজন তাদের যে কেউ ইতিমধ্যে 15 বছরের জন্য একই সংস্থায় ছিলেন।
  3. বিশ্ববিদ্যালয়গুলি এটি শেখানো শুরু করছে, কারণ তারা ইতিমধ্যে জানে যে 30 বছরের মধ্যে কার্যকরী প্রোগ্রামিং জ্ঞান খুব কার্যকর হবে। তাদের সময়সীমা 30 বছরের মধ্যে, সংস্থাগুলির মতো স্বাভাবিক অর্ধ বছরের নয়।
  4. এই পয়েন্টগুলি হ'ল কর্মশক্তিতে প্রবেশের সময় লোকেরা হতাশ হওয়ার এবং তারা দেখেছে যে তারা বিশ্ববিদ্যালয়ে শিখেছে এমন জিনিস ব্যবহার করা হচ্ছে না। তবে সেগুলি 30 বছরের টাইমস্প্যানের জন্য ডিজাইন করা হয়েছিল এবং এটি শেষ পর্যন্ত কার্যকর হবে - এটি কেবলমাত্র সংস্থা সাধারণ জিনিস ব্যবহার করছে - যে জিনিসটি তারা লোকেরা জানতে পারে বলে আশা করতে পারে।
  5. এছাড়াও আপনি অহঙ্কারী হবেন যদি আপনি কয়েক বছরের বিশ্ববিদ্যালয়ের পরে চিন্তা করেন, আপনি কার্যকরী প্রোগ্রামিংটিকে সত্যিকারের সফ্টওয়্যার প্রকল্পগুলিতে ব্যবহার করার পক্ষে যথেষ্ট জানেন। প্রথমে সাধারণ জিনিস থেকে শুরু করুন। আপনি যখন কাজ শুরু করবেন তখন আপনার প্রথম কাজ হিসাবে সত্যই জটিল সফ্টওয়্যারটি করার দরকার নেই। অবশেষে আপনি জটিল জিনিসগুলিতে পৌঁছে যাবেন তবে এটি সময় নেয়।

2
1) "প্রায় সমস্ত বড় প্রোগ্রামিং প্রকল্প এটি ব্যবহার করছে"। আমার অভিজ্ঞতা হ'ল এটি পুনরুক্তি থেকে দূরে। খুব কম সংস্থাগুলি আমার জানা হিসাবে ফাংশনাল প্রোগ্রামিং ব্যবহার করছে। সর্বাধিক কেবল জাভা এবং সি # ব্যবহার করুন (যদিও সি # গত কয়েক বছরে আরও কার্যকরী কনস্ট্রাক্ট পেয়েছে), সি ++ এবং সি
জোনাস

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

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

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

ঠিক আছে, এজন্য অভিজ্ঞ প্রোগ্রামারগুলির প্রয়োজন। যেহেতু মূলধারার ভাষা থেকে প্রোগ্রামিংয়ের ভাষা পরিবর্তন করা বেশ অসম্ভব, তাই পরবর্তী সেরাটি হল সি ++ এ ফাংশনাল প্রোগ্রামিং। এছাড়াও সি ++ এ কনস্টের মতো জিনিস রয়েছে যা বেশ সাহায্য করে।
tp1

-10

কারণ এফপি ডিবাগ করা শক্ত।


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

2
খাঁটি ফাংশন রাষ্ট্রবিহীন হওয়ায় কার্যকরী প্রোগ্রামিং ভাষাগুলি পরীক্ষার পক্ষে আসলে সহজ।
জোনাস

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

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

2
আপনার ফাংশনগুলি যতক্ষণ খাঁটি থাকে ততক্ষণ ডিবাগ করা সহজ। আপনি ইউনিট-টেস্ট যুক্ত করে যদি ডিবাগ করতে না পারেন তবে আপনার পরীক্ষা লেখার পর্যাপ্ত কাজ না করে।
ড্যান_ওয়াটারওয়ার্থ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.