দ্রষ্টব্য: নিম্নলিখিত পোস্টে বিতর্কিত মতামত অন্তর্ভুক্ত থাকতে পারে, সুতরাং দয়া করে মনে রাখবেন যে এগুলি কেবল আমার মতামত, এবং কাউকে আপত্তি করার উদ্দেশ্যে নয়।
আমি ১৯৯৯ সাল থেকে কোনও না কোনও রূপে প্রোগ্রামিং করছি I আমি প্রথমে আর ব্যবহার করেছি এবং তারপরে, ২০০৪-এর দিকে প্রায়শই পাইথনে চলে এসেছি।
অনেকগুলি বৈজ্ঞানিক অ্যাপ্লিকেশনগুলির জন্য, উদাহরণস্বরূপ, সিমুলেশন, এমসিএমসির মতো জিনিসগুলি সহ, আর এবং পাইথন উভয়ই খুব ধীর এবং দ্রুত গতিতে হবে। এটি করার স্বাভাবিক উপায় হ'ল সি বা সি ++ দিয়ে প্রসারিত করা। আর এবং পাইথন উভয়ের জন্যই, আমি এটিই করেছি, সি ++ এর সাথে আর এর সি এপিআই এবং পাইথনের বুস্ট পাইথন লাইব্রেরি ব্যবহার করে।
তবে বিভিন্ন কারণে এই সমন্বয়টি আদর্শ সমাধান নয়। প্রোগ্রামিংয়ে বিশেষত অ্যালগরিদম কী গুরুত্বপূর্ণ? উদ্বেগ এবং গতি, যা অবশ্যই সম্পর্কিত। যে ভাষাটি যত বেশি সংবেদনশীল, তত দ্রুত এতে লেখা যায়।
1) যতদূর ভাববাদিতা যায়, আর আর পাইথন উভয়ই আমার মতে বৈজ্ঞানিক অ্যালগরিদম লেখার জন্য সত্যই আদর্শ নন। তারা অন্তর্নিহিত অ্যালগরিদমের নিকট থেকে মানচিত্র দেয় না। তবে তারা উভয়ই সি ++ এর চেয়ে যথেষ্ট উন্নত better
2) আমি পাইথনে লেখা উপভোগ করি যা একটি মনোরম ভাষা, যদিও উপরে উল্লিখিত রয়েছে এটি অ্যালগরিদমিক কাজের জন্য আদর্শ নয়। যাইহোক, যখন গতি সমস্যার কারণে যখন পাইথন / সি ++ সংমিশ্রণের সাথে কাজ করতে হয়, তখন এই মিশ্রণটি কাজ করতে যথেষ্ট কম আনন্দদায়ক হয়ে ওঠে। সাধারণত যা ঘটে তা হ'ল আমি প্রথমে পাইথনে লিখি, এবং আমার কিছু ভাল কাজ করার পরে প্রায়শই আবিষ্কার করুন যে এটি খুব ধীর (কিছুটা ধীরের স্বার্থগত মানের জন্য)। আমি তখন সি ++ এ পুনর্লিখনের জন্য কিছু অযৌক্তিক পরিমাণ সময় ব্যয় করব কিনা বা অলসতা সহ্য করব কিনা সেই সিদ্ধান্তের মুখোমুখি আমি। অন্ধকারে আমি প্রায়শই অনুভব করি যেহেতু আমি স্বচ্ছলতা বজায় রেখে ভাল ছিলাম, বিশেষত প্রাপ্ত স্পিডআপগুলি অনাকাঙ্ক্ষিত as এছাড়াও, দুজনের মধ্যে বুস্ট পাইথন ইন্টারফেসটি একটি গুরুত্বপূর্ণ রক্ষণাবেক্ষণের মাথাব্যথা, এবং দুটি খুব আলাদা ভাষায় কোড থাকা যেমন একসাথে আটকানো কেবল বিভ্রান্তিকর। বুস্ট পাইথনের কোনও সমালোচনা উদ্দেশ্য নয়, এটি এমন একটি শক্তিশালী ইন্টারফেস যা কেউ কল্পনা করতে পারে, এবং বেশিরভাগ সময় ঠিক কাজ করে।
সীমাহীন সময় এবং সংস্থান সহ এখন একটি আদর্শ বিশ্বে এই সমস্যাগুলির কোনওটিই বড় চুক্তি হবে না। তবে, বৈজ্ঞানিক প্রকল্পগুলিতে আমি কাজ করেছি, আমি নিম্নলিখিত অভিজ্ঞতা পেয়েছি।
প্রকল্পে আমার সহযোগী থাকুক বা না থাকুক, আমি সবসময় কমপিউটিংয়ের বিস্তৃত অংশটি শেষ করে দেই বলে মনে করি। মোট ৫ টি উল্লেখযোগ্য প্রকল্পে আমার কেবলমাত্র একটি প্রকল্পে একজনের কাছ থেকে যথেষ্ট অংশগ্রহণ ছিল। একজন ব্যক্তি তার ওজন টানানোর চেয়ে আরও বেশি কিছু করেছেন; তিনি আমার বা তার চেয়ে বেশি কিছু করেছেন। তবে একাধিক সহযোগীর সাথে প্রকল্প সহ অন্যান্য সমস্ত ক্ষেত্রে আমি সমস্ত গণনার কাজ করেছি (কার্যত)। যদিও আমি বলতে পারি যে আমাকে সেরা সহযোগীদের দ্বারা আশীর্বাদ করা হয়নি (এটি অলসতা এবং অযোগ্যতার মিশ্রণ বলে মনে হয়) ভবিষ্যতে এই অবস্থার পরিবর্তন হওয়ার সম্ভাবনা রয়েছে কিনা তা আমার কাছে পরিষ্কার নয়।
গণনামূলক বৈজ্ঞানিক কাজ প্রচুর পরিশ্রমের কাজ, এবং যদি আমার সহযোগীরা কীভাবে আচরণ করে তা যদি আমি পরিবর্তন করতে না পারি তবে আমি আমার কাজের পদ্ধতি পরিবর্তন করতে পারি। কাজগুলি আরও দ্রুত সম্পন্ন করা সবচেয়ে গুরুত্বপূর্ণ উন্নতি হবে। যা আমাকে এখানে মূল বিবেচনায় নিয়ে আসে, এটি হ'ল ভাষাগুলি কম গোঁড়া কিছুতে স্যুইচিংয়ে সহায়তা করতে পারে। অতীত গবেষণার ভিত্তিতে, সম্ভাব্যতার সর্বাধিক সম্ভাব্য প্রার্থীরা হলেন কমন লিস্প এবং ওক্যামল। আমি বছরের পর বছর ধরে এটি সম্পর্কে ভাবছি, তবে সম্প্রতি এটি আরও গুরুত্বের সাথে ভাবছিলাম।
আমি যতদূর বলতে পারি, খুব কম লোকই বৈজ্ঞানিক গণনার জন্য সিএল বা ওক্যামল ব্যবহার করেন। এই সাইটটি অনুসন্ধান করতে গিয়ে, আমি সিএল (একটি আমার) এবং দুটি ওকামেলের (খনি) এর দুটি উল্লেখ পেয়েছি। ফ্রাঞ্জের উপর কাজ করা দু: সাহসিক কাজ করার লোকের সাথে আমি কয়েক বছর ধরে উত্সাহী যোগাযোগ করেছি। ২০০৮ সালে আমি পিটার সিবেলের "প্রাকটিক্যাল কমন লিস্প" (যার মালিকানাধীন), তমাস কে। প্যাপের একটি বই পর্যালোচনা পেয়েছিলাম । এটি আমার দৃষ্টি আকর্ষণ করেছে, যেহেতু লিস্পের জন্য বৈজ্ঞানিক কম্পিউটিংয়ের কয়েকটি উল্লেখের মধ্যে এটি ছিল যে আমি নেট থেকে এসেছি। আমি তমাসকে লিখেছিলাম, যিনি তাত্ক্ষণিকভাবে সহায়ক ও উত্সাহ দিয়ে জবাব দিয়েছেন। তাকে উদ্ধৃত করা
আমার প্রোগ্রামিংয়ের উত্পাদনশীলতা সম্ভবত লিস্পের সাথে দশগুণ বেড়েছে, তবে এটি ঘটতে প্রায় এক বছর সময় লেগেছে এবং আমি এখনও শিখছি (যদিও 2 মাস পরে আমি বেশ ভাল করছি)। সুতরাং আপনি যদি সময়-সমালোচনামূলক কোনও বিষয়ে কাজ করে থাকেন তবে স্যুইচটি স্থগিত করুন।
আপনার লোকেরা সিএল-তে জিজ্ঞাসা করা বিবেচনা করা উচিত, আমি কেবল এই বিষয়গুলি সম্পর্কে জানি না, অন্যরা লিস্পে বৈজ্ঞানিক কম্পিউটিং করেন।
তাঁর একটি ব্লগ এবং একটি গিটহাব পৃষ্ঠা রয়েছে ।
আমি আরেকজনের সাথে সংক্ষিপ্তভাবে চিঠিটি দিয়েছিলাম (২০০ 2006 সালের ডিসেম্বরে) ছিলেন ইরা কালেট , যিনি রেডিয়েশন অনকোলজির প্রসঙ্গে কমন লিস্প ব্যবহার করেছেন।
সম্ভবত এমন আরও অনেকে আছেন যারা লিস্পে বৈজ্ঞানিক কম্পিউটিং করেন তবে আমি কারও সম্পর্কে চিনি না।
লোকেরা সিএল-এর মাধ্যমে দেখা সবচেয়ে সাধারণ সমস্যা হ'ল গ্রন্থাগারের অভাব। এটি সাধারণ উদ্দেশ্যে কম্পিউটিংয়ের ক্ষেত্রে একটি গুরুতর সমস্যা, তবে বৈজ্ঞানিক কম্পিউটিংয়ে বিশেষত অ্যালগরিদমের গ্রাউন্ড আপ বাস্তবায়ন থেকে এতটা নাও হতে পারে। বিশেষত, আমি সম্ভাব্যতা বন্টন ফাংশন, একটি বহুমাত্রিক অ্যারে লাইব্রেরি এবং সি ++ এবং পাইথন স্ট্যান্ডার্ড লাইব্রেরিতে পাওয়া যেমন মানচিত্র, সেট, তালিকা ইত্যাদির সাথে একটি প্রাথমিক গণিত গ্রন্থাগার সহ বেশিরভাগ সময় পেতে পারি।
আমি সিএল সম্পর্কে আমার চেয়ে ওকামল সম্পর্কে আরও কম জানি, তবে বিকল্প হিসাবে এটি ছুঁড়েছি। এটি অনুমান করা খুব দ্রুত, ফরাসী গবেষকরা এটির একটি নিখরচায় বাস্তবায়ন করেছেন এবং এটি বৈজ্ঞানিক কম্পিউটিংয়ের জন্য ভাষার এমএল পরিবারের সবচেয়ে কার্যকর হিসাবে দেখা যায়।
উপসংহারে, আমি ভাবছি যে অন্যদের সাথে এটির অভিজ্ঞতা আছে কিনা, এবং তাদের যদি কোন চিন্তাভাবনা থাকে তবে।
সম্পাদনা: আমি বেশিরভাগ প্রথম হাতের অভিজ্ঞতায় আগ্রহী, আমি উপরে উল্লিখিত বিষয়গুলির প্রসঙ্গে। উদাহরণস্বরূপ আপনি যদি পাইথন এবং সি ++ (বা আর এবং সি ++) ব্যবহার করেন এবং আরও অস্পষ্ট ভাষায় সরিয়ে থাকেন তবে আমি আপনার অভিজ্ঞতাগুলি শুনতে সবচেয়ে আগ্রহী হব।