ক্রিয়ামূলক প্রোগ্রামিং কি ওয়েব বিকাশের সাথে সম্পর্কিত? [বন্ধ]


88

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

আমি লাঠি ভুল শেষ পেয়েছি? ফাংশনাল প্রোগ্রামিং সম্পূর্ণরূপে ওয়েব বিকাশের সাথে সম্পর্কিত নয়? যদি তা না হয় তবে এর কোনও উদাহরণ 'ওয়েবে' ব্যবহার করা হচ্ছে?

উত্তর:


31

আমার মাথার উপরের অংশের কয়েকটি উদাহরণ:


7
ইয়াহু! স্টোর কয়েক বছর আগে সি ++ এ পুনরায় লেখা হয়েছিল।
এপিজি

4
ভাষা! = প্রোগ্রামিং দৃষ্টান্ত ig
phkahler

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

@ শেরেমপেন্ডলে সার্ভার কনফিগারেশন, নেটওয়ার্ক সেটআপ এবং ডাটাবেস অ্যাক্সেসও পারফরম্যান্সের প্রধান কারণ। ওয়েব অ্যাপ্লিকেশনগুলির স্ক্রিপ্ট সম্পাদন সময় সাধারণত সামগ্রিক ব্যয়ের একটি ক্ষুদ্র ভগ্নাংশ।
AgmLauncher

62

কার্যকরী প্রোগ্রামিং খুব ভাল ওয়েব অ্যাপ্লিকেশন সাথে মেলে। ওয়েব অ্যাপ্লিকেশন একটি এইচটিটিপি অনুরোধ গ্রহণ করে এবং একটি HTML ফলাফল তৈরি করে। অনুরোধ থেকে পৃষ্ঠাগুলিতে এটি কোনও ফাংশন হিসাবে বিবেচিত হতে পারে।

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


20

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


20

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

বলেছিল, কিছু বিকল্প আছে।

এগুলির কোনওটির সাথে আমার কোনও অভিজ্ঞতা নেই। সম্ভবত মন্তব্যকারীরা তাদের জন্য কী ভাল কাজ করেছে তা বিবেচনা করতে পারে।


14

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

এছাড়াও, লিফ্ট ওয়েব কাঠামো স্কালায় লেখা হয়।


4

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

জিএই এর সাথে ক্লোজার মোতায়েন করার বিষয়ে একটি ভাল আলোচনার জন্য: http://news.ycombinator.com/item?id=1239788

যতদূর আমি জানি, ক্লোজুরে কয়েকটি ওয়েব বিকাশ গ্রন্থাগার রয়েছে। কমপোজ রিং কনজুয়ার

আশা করি এটি আপনার কয়েকটি প্রশ্নের জবাব দিয়েছে =) (আমি খুব শুরু করছি ..)

সেরা, রায়ান


3

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

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


3

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


3

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

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

যাইহোক, আপনার জন্য সবচেয়ে কার্যকর বলে মনে হয় যা কিছু সঙ্গে যান। তবে সর্বদা আপনার মনের পিছনে ফাংশনাল প্রোগ্রামিং রাখুন কারণ কখন কখন তা কার্যকর হতে পারে তা আপনি জানেন না।



2

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


2

জাভাস্ক্রিপ্ট (ওয়েবের ফেয়ার অংশের ভাষা এবং ক্রমবর্ধমান পাশাপাশি বিইও) প্রতি সেফ কার্যকরী নয় তবে ফাংশনগুলি প্রথম অর্ডার ক্রিয়ামূলক


2

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

http://hypernumbers.com

যে কোনও মানদণ্ডের দ্বারা এটি মানসিক জটিলতার সাথে জিনরমাস জিআইআই দিয়ে তৈরি করতে পারেন এমন একটি জটিল ওয়েব অ্যাপ্লিকেশন।


2

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


1

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

অন্তত আমার কারণ।


1

আরেকটি সংক্ষিপ্ত উত্তর: http://www.MLstate.com - এফপির উপর ভিত্তি করে একটি সম্পূর্ণ ওয়েব বিকাশ প্ল্যাটফর্ম। ভাষার পরিষ্কার শব্দার্থবিজ্ঞান সমস্ত ধরণের স্বয়ংক্রিয় সুরক্ষা এবং সুরক্ষা বিশ্লেষণ, অনুকূলিতকরণ ইত্যাদির অনুমতি দেয়

ক্যাভেট: আমি সেখানে কাজ করি।


1

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


0

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

আপনার উচিত? এটি আপনি যে সমস্যার সমাধান করছেন তার উপর নির্ভর করে। ফাংশনাল প্রোগ্রামিং একটি প্রোগ্রামিং দৃষ্টান্ত এবং যেখানে আপনার এটি ব্যবহার করা উচিত আপনি যে সমস্যার সমাধান করছেন তার উপর নির্ভর করে।

সিদ্ধান্তটিকে সহজতর করার জন্য, ভাবেন যে ওওপিএস ধারণাগুলি ব্যবহার করে কিছু সমস্যার সমাধান করা সহজ, যেখানে এনক্যাপসুলেশন, পলিমারফিজম, বৈশিষ্ট্যগুলির মতো উত্তরাধিকারগুলি আপনার জীবনকে সহজ করে তুলতে পারে?

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

এগুলি প্রোগ্রামের কাঠামো এবং উপাদানগুলি গঠনের ঠিক বিভিন্ন স্টাইল, সুতরাং এটি সঠিক কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করার জন্য restরিস্ট কিছু ব্যবহার করেও কিছু করা যায়।

ওয়েব বিকাশে কার্যকরী প্রোগ্রামিং:

জাভাস্ক্রিপ্ট ফাংশনাল প্রোগ্রামিং সমর্থন করে এবং আমরা ওয়েব বিকাশের প্রসঙ্গে থাকাকালীন এটি অনেকটা সহায়ক।

এছাড়াও, আপনি নীচে তালিকাভুক্ত ফাংশনাল প্রোগ্রামিং ভাষার উপর নির্মিত ফ্রেমওয়ার্কগুলি সহ অনেকগুলি ওয়েব অ্যাপ্লিকেশন তৈরি এবং চলমান দেখতে পাবেন:

S ওয়েবশার্পার (এফ #)

• স্ন্যাপ (হাস্কেল)

Ift লিফ্ট (স্কেলা)

• ওসিসিগন (ওসিএএমএল)

• শিকাগো বস, জোটোনিক (এরল্যাং)

আশা করি আমার উত্তরটি যে কাউকে সাহায্য করবে।


-2

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

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

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

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


4
আসলে, পল গ্রাহাম বলেছেন যে লিসপ্সের বড় সুবিধা হ'ল এটি "সর্বাধিক শক্তিশালী" ভাষা উপলব্ধ। তিনি তার যুক্তিটি সমর্থন করে বলেছেন যে ওয়েইনওয়েব (লাইনের মাধ্যমে) চতুর্থাংশের মতো কিছু ছিল লিস্প ম্যাক্রোস। বেশিরভাগ ভাষায় মেটা-প্রোগ্রামিং (বিশেষত 90 এর দশকের মাঝামাঝি সময়ে উপলভ্য) শক্ত। এটি প্রোটোটাইপ নয় যদি এটি প্রোডাকশন সার্ভারে ধাক্কা দেয়।
nmichaels
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.