ওসিএএমএল কেন বেশি জনপ্রিয় নয়?


86

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

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

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

এটি একটি বিষয়গত প্রশ্ন, তবে ওসিএএমএল এবং এমএল অন্যান্য ভাষাগুলি কেন এতটা অস্পষ্ট থেকেছে, যখন সি এবং অন্যান্য ভাষা জনপ্রিয় হয়েছিল?

উত্তর:


82

প্রথম উত্তরটি হ'ল ভাষা কেন জনপ্রিয় হয় তা সত্যই কেউ জানে না এবং যে কেউ অন্যথায় বলে সে বিভ্রান্ত হয় বা এজেন্ডা রয়েছে। (কোনও ভাষা কেন জনপ্রিয় হতে ব্যর্থ হয় তা শনাক্ত করা প্রায়শই সহজ , তবে এটি অন্য একটি প্রশ্ন))

সেই দাবি অস্বীকার করার সাথে সাথে এখানে কয়েকটি পয়েন্ট যা প্রস্তাবনামূলক, সবচেয়ে গুরুত্বপূর্ণ তা হল:

  • প্রথম পরিপক্ক সি সংকলক 1974 সালে উপস্থিত হয়েছিল; 1990 এর দশকের শেষের দিকে প্রথম পরিপক্ক ওসিএএমএল সংকলক উপস্থিত হয়েছিল। সি একটি 25 বছরের মাথা শুরু করেছে।

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

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

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

  • সি স্ট্যান্ডার্ড এবং অনেক সংকলক সহ একটি ভাষা। OCaml একটি সফটওয়্যার হস্তনির্মিত বস্তু: শুধুমাত্র কম্পাইলার একটি একক উৎস থেকে, এবং কম্পাইলার হয় মান। এবং প্রতিটি প্রকাশের সাথে সেই মানটি পরিবর্তিত হয়। স্থিতিশীলতা এবং পশ্চাদপটে সামঞ্জস্যকে মূল্য দেয় এমন লোকদের জন্য, একক উত্সের ভাষা অগ্রহণযোগ্য ঝুঁকির প্রতিনিধিত্ব করতে পারে।

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


5
ওসিএএমএল একটি তুলনামূলকভাবে সাম্প্রতিক এমএল উপভাষা, যা জাভা হিসাবে প্রায় একই সময়ে জন্মগ্রহণ করে। যাইহোক, এমএল ১৯ to৩ সালে ফিরে আসে প্রথম প্রধান উপভাষা, এসএমএলটি ১৯ 197৮ সালে বিকশিত হয়েছিল M
জুলিয়েট

15
আমি এমএলকে "আর্থিক প্রতিষ্ঠানের শিল্প মান" বলব না। (এবং আমি এটি বলি না কারণ আমি হাস্কেল-তে আর্থিক অ্যাপ্লিকেশন লিখি। : আমার অভিজ্ঞতায় সি ++ এবং জাভা প্রাধান্য পাবে। জেন স্ট্রিটের মতো সংস্থাগুলি ব্যতিক্রম, নিয়ম নয়।

8
পার্ল হ'ল "সফটওয়্যার আর্টিফ্যাক্ট" - পার্লের একমাত্র সংজ্ঞা হ'ল "যে ভাষা পার্ল (1) ব্যাখ্যা করে" - এবং এটি বরং জনপ্রিয় rather পাইথন এবং রুবি দীর্ঘদিন ধরে "সফ্টওয়্যার আর্টফ্যাক্টস" ছিল।

5
@ ক্রিস: আইএমও এটি একটি কারণ যার ফলে পার্ল মন খারাপ করে ফেলেছে।
নরম্যান রামসে

5
পূর্বাভাসযোগ্যতা হিসাবে, আমি মনে করি যে ওসিএএমএল প্রকৃতপক্ষে সিটিকে পরাজিত করে, সি সংকলকগুলির দ্বারা প্রত্যাশিত অপটিমাইজেশনের স্তর এবং সেই সাথে অনেকগুলি অপ্টিমাইজেশনের ভঙ্গুরতা। এটি আপনার কোডটি কী সংকলন করে সে সম্পর্কে ওক্যামেলের সংকলকটি খুব আক্ষরিক।

63

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

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

(আমি জানি "ব্যাটারি অন্তর্ভুক্ত" এর মতো প্রকল্পগুলি নিয়ে এটি পরিবর্তন করার কাজ চলছে 5 বছরে এখানে ফিরে আসুন এবং সম্ভবত ওক্যামেল আরও জনপ্রিয় হবে))

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

ফলাফল জনপ্রিয়তা ছিল। অর্থ অনেক সমস্যার সমাধান করতে পারে।

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

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

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


45
এটি সম্ভবত 10 বছর আগে সত্য ছিল। যখন আমি একটি ওসিএএমএল লাইব্রেরি "ক্যাবল ইনস্টল" করতে পারি তখন আমাকে জানান যাইহোক, কেবলমাত্র আমি আপনার পছন্দসই ভাষাগুলি সম্পর্কে খারাপ কিছু বলার অর্থ এই নয় যে আপনাকে এটি ব্যবহার বন্ধ করতে হবে। তাই আবেগের দরকার নেই।

5
না, আমি সাধারণভাবে প্রোগ্রামিং বলতে চাইছিলাম। আপনি যদি ক্রিয়ামূলক প্রোগ্রামিং বুঝতে না পারেন তবে আপনি সম্ভবত অন্যান্য ধারণাটি বুঝতে পারবেন না understand

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

8
এই লাইব্রেরিগুলির একটি লিঙ্ক সম্পর্কে কীভাবে?

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

22

আমি ওক্যামলকে ভাষা হিসাবে অনেক পছন্দ করি । কিন্তু ...

সরঞ্জাম সমর্থন ঠিক সেখানে নেই। ডিবাগারটি কেবল ঠিক কাজ করে তবে উইন্ডোতে কাজ করে না (শেষ পর্যন্ত আমি যাচাই করেছিলাম) এবং এটির জন্য এতগুলি বিকাশ সরঞ্জাম উপলব্ধ নেই।

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

স্ট্যান্ডার্ড লাইব্রেরিতে মাঝে মাঝে অসামঞ্জস্য অনুভূতি থাকতে পারে।

অবজেক্ট মডেলটি কিছুটা ট্যাকড-অন বলে মনে হচ্ছে এবং স্ট্যান্ডার্ড লাইব্রেরি সবেমাত্র এটি ব্যবহার করে, পরিবর্তে মডিউল ভিত্তিক লাইব্রেরিগুলির জন্য পছন্দ করে।

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

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


3
আমি বলব না এর টাইপ সিস্টেমটি খুব শক্তিশালী, তবে যথেষ্ট অভিব্যক্তিপূর্ণ নয়, টাইপ ক্লাস আলা হাস্কেল অনেক সাহায্য করবে।

2
হ্যাঁ তবে পলসিহড অনুভূত না হওয়া সম্পর্কে এই মন্তব্যগুলির বেশিরভাগই সি ++ তে আরও জোরালোভাবে প্রয়োগ করেন! আমি মনে করি এটি আপনার যুক্তিটিকে কিছুটা দুর্বল করে (যদিও আমি এটির সাথে একমত)।
Yttrill

2
ওসিএএমএল ডিবাগার, কেবলমাত্র আমিই জানি এটি ধাপে পিছনে, পাশাপাশি এগিয়েও যেতে পারে।
অক্টোদো

21

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


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

3
মূল প্রশ্নটি এম্বেড হওয়া সিস্টেমগুলির বিষয়ে জিজ্ঞাসা করেছিল তাই আমি এটি ব্যবহার না করার জন্য একটি নির্দিষ্ট কারণ সরবরাহ করেছি। এবং পার্শ্ব নোট হিসাবে আপনি জাভা ব্যবহার করতে পারেন - কেবল রিয়েল-টাইমের জন্য নয় (সি # তেও যায়)।

2
জাভা নিজেই আসল সময় নয়। কোনও আবর্জনা সংগ্রহ ব্যবস্থার সাথে কিছুই হতে পারে না।

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


18

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

[1] ন্যায্যতার সাথে, মূল এমএল ভাষা 70 এর দশক থেকেই রয়েছে। তবে ওসিএএমএল 1996 পর্যন্ত উপস্থিত হয়নি এবং এটি স্ট্যান্ডার্ড এমএল লাইব্রেরিগুলির উত্তরাধিকার সূত্রে পায় নি। এটি ব্যবহারিক ভাষায়, সি, সি ++, জাভা, পাইথন, হাস্কেল বা এমনকি রুবির চেয়েও কম ভাষা language


উইকিপিডিয়া অনুসারে, এমএল খুব বেশি ছোট নয়, এটি কেবল এক বছরের ছোট (সিএম বনাম 1973 এর জন্য এমএল 1973) younger আপনার ব্যাখ্যার বাকী অর্থ আমি সঠিক বলে মনে করি।

1
হাহ। আমি সি এর সাথে 60 এর দশকের শেষের দিকে এবং এমএল 80 এর দশকের শুরুর দিকে (এবং OCaml, বিশেষত, 90 এর দশকের শেষের দিকে ... জাভা, পাইথন এবং এমনকি রুবির চেয়ে ছোট), তবে আমার ধারণা আমি একটু দূরে।

এমএল ফিরে 1973 তারিখগুলি, OCaml 1996 থেকে
ocodo

15

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

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

আর একটি গ্রন্থাগার সমস্যা সংকলক রিলিজের মধ্যে বাইনারি সামঞ্জস্য। এটি বলা নিরাপদ যে সমস্ত গ্রন্থাগার কোড একটি সংকলক আপগ্রেডের পরে পুনরায় সংকলন করা উচিত। এটি মডিউল বা লাইব্রেরিগুলির বাইনারি রিলিজ সরবরাহ করা কঠিন করে তোলে।


সত্যিই ভাল পয়েন্ট
সিটি

11

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

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

এটি অবশ্যই গভীরভাবে অন্যায় এবং বিষয়ভিত্তিক। তবে সম্ভবত এটি বেশিরভাগ লোকেরই আসল গল্প হতে পারে।

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


হ্যাঁ, আপনি সম্ভবত এমএল থেকে হাস্কেলকে বেছে নিতে পারেন কারণ হাস্কেল বিভিন্ন উপায়ে কেবলমাত্র উন্নত এমএল L কেন আপনি উভয়ের উপরে এরলং বেছে নেবেন তা সম্পর্কে আমি নিশ্চিত নই: এরলং স্থিতিশীলভাবে টাইপ করা হয়নি এবং এটি নিয়ে কিছুটা হতাশার অভিজ্ঞতার পরেও আমি কোনও দিন এমএল নিয়ে যাব take

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

9

আমি বিশ্বাস করি যে মূল ইস্যুটি একটি আসল স্ট্যান্ডার্ড লাইব্রেরির অভাব। সুতরাং প্রকল্প ওসিএএমএল ব্যাটারি অন্তর্ভুক্ত রয়েছে , যা প্রত্যাশিতভাবে পরিস্থিতি উন্নত করে। কিছু দিনের মধ্যেই এটি বিটা পর্বে প্রবেশ করার কথা, সুতরাং এক বছর বা তার মধ্যে আপনাকে আবার প্রশ্ন জিজ্ঞাসা করতে হবে।


10
দু'বছর পরে, ওক্যামেল আরও জনপ্রিয় বলে মনে হচ্ছে না।

5
চার বছর পরে, ওক্যামেল আরও জনপ্রিয় বলে মনে হচ্ছে না।
ক্যামিলো মার্টিন

8

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

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

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


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

@ জর্জিও "আমি মনে করি যে ওসিএএমএল যদি আরও বেশি জনপ্রিয় হত তবে আরও লোকেরা এটি শেখার চেষ্টা করা স্বাভাবিক মনে করেছিল"। আমি মনে করি বেশি মানুষ পাইথন এবং রুবি শিখেন কারণ তারা তুলনামূলকভাবে শেখা সহজ।
জন হ্যারোপ

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

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

আমি আপনার বক্তব্যটি পেয়েছি "কেমব্রিজ বিশ্ববিদ্যালয়ে বৈজ্ঞানিক কম্পিউটিং করা লোকদের মধ্যে, আমার পরিচিত প্রায় 90% লোক ওসিএএমএল-তে সাবলীল ছিল।" খুবই আশ্চর্যজনক. একজন পদার্থবিজ্ঞানী হিসাবে যিনি প্রচুর মডেলিং করেন, সহকর্মীরা অনেকগুলি বিভিন্ন ভাষা ব্যবহার করতে দেখেছি: সি, সি ++, ফোর্টরান, জাভা, পাইথন, পার্ল, ম্যাটল্যাব, ম্যাথেমেটিকা, আর বেশ কিছু সাধারণভাবে। তবে আমি কখনই কাউকে ওসিএএমএল ব্যবহার করতে দেখিনি। আমি শুনেছি লোকেরা সম্ভবত এটি শেখার বিষয়ে কথা বলছে , তবে আমি কখনই এটি ব্যবহার করতে দেখিনি । Scicomp.stackexchange.com এ অনুসন্ধান করা আবার কিছুই করার পরে দেয়। এমএল এই ব্যবহারের জন্য আপনার এডভোকেসি করেনি ...
কাজ Szabolcs

6

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

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

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

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

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


পুনরাবৃত্তি সম্পর্ক এমন একটি জিনিস যা এফপিতে সর্বদা সুন্দরভাবে ম্যাপ করে।
জন হ্যারোপ

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

6

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

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

আমি ব্যাটারিগুলি ব্যবহার করব না কারণ লাইসেন্সটি সীমাবদ্ধ, সুতরাং আমি উত্সটি অনুলিপি করতে পারি না, এবং এটি স্ট্যান্ড একা পণ্য হিসাবে এটির দীর্ঘমেয়াদী व्यवहारের উপর আমার বিশ্বাস নেই: কেবলমাত্র যদি আমি এটি ব্যবহার করতে পারি তবে এটিই ছিল সরাসরি ওকামেলের স্ট্যান্ডার্ড বিতরণে অন্তর্ভুক্ত।

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

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


5

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

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


3

আইএমএইচও, আমি মনে করি ওক্যামেলের একটি বড় সমস্যা এটি ভাষায় নয় (এটি দুর্দান্ত) তবে যে লোকেরা এটি বিকাশ করে এবং ফলস্বরূপ, তার লাইসেন্স:

http://caml.inria.fr/ocaml/license.en.html

তারা সংকলনের জন্য কিউ পাবলিক লাইসেন্স ব্যবহার করে! হ্যাঁ, Qt লাইব্রেরির জন্য প্রাক্তন লাইসেন্স ট্রোলটেক ব্যবহৃত! এই জাতীয় লাইসেন্সের সাথে কোনও অবদান পাওয়ার কথা ভুলে যান।

যদি আপনি প্রায় 7-8 বছর আগে ল্যাঙ্গুয়েজ শ্যুটআউট ( http://shootout.alioth.debian.org/ ) পরীক্ষা করে দেখছিলেন, মৃত্যুর গতির জন্য ওক্যামেল সি এবং সি ++ এর ঠিক পিছনে ছিলেন। কিছু সময়ের মধ্যে, অন্যান্য ভাষা (যেমন হাস্কেল) আরও ভাল সংকলক পেয়েছিল (ভিন্ন সম্প্রদায়ের পদ্ধতির কারণে, আমি মনে করি) এবং এখন মৃত্যুদন্ড কার্যকর করার ওসিএএমএল গতি অতীতের মতো দুর্দান্ত নয়।

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


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

3

ঠিক আছে যদি এটি অর্থের বিষয়ে যেমন @ জ্রোকওয়ে বলেছে, আমরা দেখব যে এফ # জাভা বা সি # এর মতো জনপ্রিয়তা অর্জন করবে কিনা।

আমার জন্য আমি অনুমান করি যে বিকাশকারীরা কাজগুলি করার কার্যকরী পদ্ধতিতে নিজেকে অবিস্মরণীয় মনে করেন না (এটি ২০০৯ এর এফ # সেশন থেকে ২০০৯ যেখানে প্রায় ১০ জন বলেছিলেন যে তারা প্রায় ১০০ জনের মধ্যে ফাংশনাল প্রোগ্রামিং জানেন)।

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


10 বছর আগে এটি এফপি জেনে 100 জনের মধ্যে 1 জনের মতো হত। ;-)
জন হারপ

2

ঠিক আছে, সম্ভবত এফ # জনপ্রিয় হয়ে উঠেছে।


2

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


2

আপনি যদি রিয়েল-টাইম এম্বেড থাকা সিস্টেমে কোনও ভাষা ব্যবহার করতে চান তবে আপনার পয়েন্টার দরকার এবং আপনার একটি জিসি বহন করা সম্ভব নয়।


1

আমি মনে করি এর মূল কারণ হ'ল খুব কম বিকাশকারী ওসিএএমএলকে জানেন।

এবং অন্যান্য বিকাশকারীদের সাথে কথা বলার সময় (যারা ওকামল সম্পর্কে কিছু শুনেছেন) আমি সর্বদা এই ধারণাটি অনুভব করি যে তারা ওসিএএমএলকে একটি "কেবলমাত্র শিক্ষার" ভাষা হিসাবে মনে করে ... দুঃখজনক হলেও সত্য


আমি বিশ্বাস করি যে 20 টি ওসিএএমএল বিকাশকারী (জেন সেন্ট এবং সিট্রিক্স) সহ এখন দুটি সংস্থা রয়েছে।
জন হ্যারোপ

3
কি দারুন! পুরো দুটি সংস্থা? :)
Yttrill

0

আমি ওকামলকে অনেক পছন্দ করি ... আমি সি এর সাথে যোগাযোগের জন্য এটি ব্যবহার করে সংকলক, দোভাষী, সিস্টেম ...

যখন আমি এটি শিখলাম তখন মূল সমস্যাটি ছিল ত্রুটি বার্তাগুলি সত্যিই পরিষ্কার নয় ... সুতরাং উদাহরণস্বরূপ, শুরুতে আমি কখন নিশ্চিত করব না ';' এবং এটি সত্যই খুঁজে পাওয়া সত্যিই কঠিন ছিল; ভুল জায়গায় রাখা হয়েছিল ...

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