একটি কার্যকরী প্রোগ্রামিং ভাষা নির্বাচন করা [বন্ধ]


48

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

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

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

আমি এখনও বিবেচনা করেছি এমন কিছু কার্যকরী ভাষা সম্পর্কে কিছু ধারণা:

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

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


5
আপনি যা কিছু চয়ন করুন না কেন আপনি এতে কোনও কিছুর জন্য প্রচুর কোড ব্যবহার করুন।

8
স্কালাকে নিয়ে কোনও চিন্তাভাবনা করেননি ?
ykombinator

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

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

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

উত্তর:


35

যেহেতু আপনি একটি ব্যবহারিক  ভাষা চান :

বিকল্প পাঠ

লক্ষ করুন যে ক্লজিউর এবং এফ # তে সাম্প্রতিক কিছু আগ্রহ রয়েছে তবে হাস্কেল এবং লিস্প শিল্পের অন্যদের তুলনায় বেশি ব্যবহৃত হয়।

তবে দেখুন যখন আমরা স্কিমটি মিশ্রণটিতে যুক্ত করি তখন কী হয়:

বিকল্প পাঠ

হুম, এখন এতটা একাডেমিক ভাষার মতো দেখাচ্ছে না, তাই না?

আসলে, উপরের গ্রাফটি সম্ভবত একটি মিথ্যা; "প্রকল্প" শব্দটি প্রোগ্রামিং ভাষার পাশাপাশি অন্যান্য প্রসঙ্গে বিজ্ঞাপনের সাহায্যে বিজ্ঞাপনে উপস্থিত হতে পারে। :)

সুতরাং এখানে আরও একটি গ্রাফ যা সম্ভবত (আরও কিছু) বেশি প্রতিনিধি:

বিকল্প পাঠ

আপনি যদি স্কিমের সত্যিই কিক-অ্যাস ডায়ালিকা অন্বেষণ করতে চান তবে র্যাকেটটি দেখুন।


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

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

@ রবার্ট হার্ভে, দ্বিতীয় থেকে তৃতীয় গ্রাফে কী পরিবর্তন হয়েছে?
সিস্টেমোভিচ

@ জিফ্রে: ক্যাপশনগুলি দেখুন; আমি অনুসন্ধান শব্দগুলিতে "বিকাশকারী" শব্দটি যুক্ত করেছি।
রবার্ট হার্ভে

মনে রাখবেন যে হাস্কেল এবং লিস্প হ'ল শব্দের নাম এবং প্রকৃতপক্ষে ডেটা পৃথিবীর অন্যান্য অঞ্চলে সাধারণ হয় না। আইটিজবসওয়াচ Sc৯ টি স্কেলা জব, 55 এফ #, 47 হাস্কেল, 30 লিস্প এবং 7 ক্লোজার জব তালিকা করে।
জন হ্যারোপ

17

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

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


আমি মনে করি আপনি প্রথমে খাঁটি কার্যকরী ভাষা বাছাইয়ের বিষয়ে সঠিক right বিশুদ্ধতার সাথে ক্রিয়ামূলক ভাষার ক্রম দেখতে আমি আগ্রহী would
জোয়ানিস

@M। জোয়ানিস: আপনার প্রশ্নের তালিকাভুক্ত ভাষাগুলির মধ্যে আমি বলব যে হাস্কেল খাঁটি, তারপরে ক্লোজিউর, এফ # এবং লিস্প।
ল্যারি কোলেম্যান

15

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

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

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

কলেজ ব্যবহারিকতা সম্পর্কে নয়। এটি অন্বেষণ এবং শেখার জন্য একটি নিরাপদ পরিবেশ তৈরি সম্পর্কে। এটি আসলে কার্যকর, এমনকি যদি আপনি আপনার ক্যারিয়ারের বাকি সময়গুলির জন্য সাধারণ সফ্টওয়্যার লেখা শেষ করেন।

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

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


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

10

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

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

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

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=effc5bc4-c3df-4172-ad1c-bc62935861c5&displaylang=en


এফ # এবং ক্লোজুর খাঁটিভাবে কার্যকরী নয় এই বিষয়টি তাদের পক্ষে গুরুত্বপূর্ণ ভূমিকা পালন করে। সম্ভবত F # .NET পরিবারে কোনও দিন আমার প্রবেশের পয়েন্ট হতে পারে ...
জোয়ানিস

1
@ এমজোয়ানিস, আপনি এফ # এর বিপরীতে ব্যয় হিসাবে ব্যয় করেছেন, কিন্তু এরিক উল্লেখ করেছেন, আপনি এটি সম্পূর্ণ বিনামূল্যে পেতে পারেন।
বেনজল

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

1
@M। জোয়ানিস: না, এফ # এমনকি ওপেন সোর্স এবং আপনি অন্য প্ল্যাটফর্মগুলিতে মনো এ চালানোর চেষ্টা করতে পারেন।
জন হ্যারোপ

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

9

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

আমি ক্লোজুর বাছাই শেষ করেছি যা পরবর্তীকালে একটি দুর্দান্ত পছন্দ হিসাবে প্রমাণিত হয়েছে।

মূলত প্রধান কারণগুলি হ'ল:

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

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

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

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

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

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

আমি যদি ক্লোজুরে কিছুটা ছোট ছোট ডাউনসাইডের নাম লিখতে পারি তবে সেগুলি হ'ল:

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

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

সামগ্রিকভাবে যদিও, আমি মনে করি না আপনি ক্লজুরের সাথে ভুল করতে পারেন যদি আপনি একটি দুর্দান্ত এবং বাস্তববাদী আধুনিক কার্যকরী ভাষা চান!


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

6

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

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


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

1
@ এম। জোয়ানিস: বেশ অনেকখানি, যদিও আমি পরে লিসপকেও তুলে নেওয়ার কথা ভাবছি। প্রোগ্রামার.সটাকেক্সচেঞ্জ / প্রশ্ন
18838/…

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