"জুলিয়া" বৈজ্ঞানিক কম্পিউটিং ভাষা প্রকল্প কতটা পরিপক্ক?


55

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

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

আমি জুলিয়া প্রকল্প সম্পর্কে নির্দিষ্ট প্রাসঙ্গিক তথ্যগুলিকে কেন্দ্র করে এমন উত্তরগুলির প্রশংসা করব ; আমি অন্যান্য প্রকল্পের অভিজ্ঞতার ভিত্তিতে মতামত সম্পর্কে কম আগ্রহী।

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

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

সবশেষে, বর্তমানে জুলিয়াকে গুরুতর কাজের জন্য ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার ক্ষেত্রে কী এমন আরও কিছু বিষয় বিবেচনার জন্য উপযুক্ত হবে?


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

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

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

আপনি "ভাল সাবজেক্টিভেস বনাম খারাপ সাবজেক্টিভ" সম্পর্কে একদম ঠিক বলেছেন (আমার প্রিয় স্ট্যাক এক্সচেঞ্জ ব্লগ পোস্টগুলির মধ্যে একটি); আমি মন্তব্যটি পোস্ট করেছি কারণ আমি প্রতিক্রিয়া দেখার জন্য অপেক্ষা করছি। এই "আপনি _____ সম্পর্কে কি মনে করেন?" প্রশ্নগুলি, উত্তরগুলি খুব সুচিন্তিত পোস্টের মধ্যে সীমাবদ্ধ হতে পারে, বা সেগুলি ছড়িয়ে-ছিটিয়ে থাকতে পারে, সর্বত্র স্থান, পুনরাবৃত্তি "আমাকেও!" পোস্ট নেই। প্রাক্তন মহান; দ্বিতীয়টি নয়, তাই আমি আপনাকে সৌজন্যে মাথা তুলে বলছি: আসুন দেখি কীভাবে এটি খেলছে।
জেফ অক্সবেরি

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

উত্তর:


43

জুলিয়া, এই মুহুর্তে (মে 2019, জুলিয়া v1.1 সাথে v1.2 প্রকাশিত হবে) বৈজ্ঞানিক কম্পিউটিংয়ের জন্য যথেষ্ট পরিপক্ক। ভি 1.0 প্রকাশটি বার্ষিক কোড ভাঙ্গার সমাপ্তি নির্দেশ করেছে । এটির সাথে, প্রচুর বৈজ্ঞানিক কম্পিউটিং লাইব্রেরিগুলিকে ব্যত্যয় ছাড়াই কেবল বৃদ্ধি করার সময় এসেছে। জুলিয়া প্যাকেজগুলির একটি বিস্তৃত ওভারভিউ pkg.julialang.org এ পাওয়া যাবে

কোর বৈজ্ঞানিক কম্পিউটিং জন্য, DifferentialEquations.jl ডিফারেনশিয়াল সমীকরণ (কিসের জোরে দাঁড়ায়, SDEs, DAEs, DDEs, গিলেস্পি সিমিউলেশন, ইত্যাদি), জন্য লাইব্রেরী Flux.jl স্নায়ুর নেটওয়ার্ক জন্য, এবং তিড়িং লাফ গাণিতিক প্রোগ্রামিং (অপ্টিমাইজেশান জন্য গ্রন্থাগার: রৈখিক, দ্বিঘাত, মিশ্র পূর্ণসংখ্যা, ইত্যাদি প্রোগ্রামিং) বৈজ্ঞানিক কম্পিউটিং বাস্তুতন্ত্রের কোণে তিনটি। বিশেষত ডিফারেনশিয়াল সমীকরণ গ্রন্থাগারটি আপনি অন্যান্য ভাষায় যা দেখতে চাইছেন তার চেয়ে অনেক বেশি বিকাশিত, একটি বৃহত বিকাশকারী দল যার সাথে EPIRK ইন্টিগ্রেটারগুলি , রঞ্জ- কোট্টা -নাইস্ট্রোম , স্টিফ / ডিফারেনশিয়াল-বীজগণিত বিলম্বের ডিফারেনশিয়াল সমীকরণ এবংসংযোজক সংবেদনশীলতা বিশ্লেষণ , রাসায়নিক বিক্রিয়া ডিএসএল , ম্যাট্রিক্স ফ্রি নিউটন-ক্রিলোভ, এবং সম্পূর্ণ (ডেটা ট্রান্সফার ফ্রি) জিপিইউ সামঞ্জস্যতা সহ সমস্ত নিউরাল ডিফারেনশিয়াল সমীকরণের প্রশিক্ষণের সাথে অভিযোজিত সময় কঠোর স্টোকাস্টিক ডিফারেনশিয়াল সমীকরণ সংহতকারীগুলি চমত্কার বেঞ্চমার্ক ফলাফল (দাবি অস্বীকার: আমি নেতৃত্ব বিকাশকারী)।

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

রচনাটি সর্বাধিক কার্যকর হওয়ার একটি উপায় লিনিয়ার বীজগণিত। উদাহরণস্বরূপ ওডিই সল্ভকারীরা আপনাকে নির্দিষ্ট করার অনুমতি দেয়, যাকোবীয়দের জন্য jac_prototypeএটি আপনাকে অভ্যন্তরীণভাবে ব্যবহৃত হবে type অবশ্যই সেখানে অনেক কিছু এর LineraAlgebra মান গ্রন্থাগার মত Symmetricএবং Tridiagonalআপনি এখানে ব্যবহার করতে পারেন, কিন্তু টাইপ জেনেরিক আলগোরিদিম composibility উপযোগ, মানুষ এখন চলে এবং সমগ্র অ্যারের টাইপ লাইব্রেরি নির্মাণ করেছি দেওয়া। ব্যান্ডেডম্যাট্রিকেস.জেএল এবং ব্লকব্যান্ডেডম্যাট্রিক্স.জেএল এমন লাইব্রেরি যা (ব্লক) ব্যান্ডেড ম্যাট্রিক্স প্রকারকে দ্রুত luওভারলোড বলে সংজ্ঞা দেয়, আংশিক ডিফারেনশিয়াল সমীকরণের সিস্টেমগুলির কঠোর এমএলএল বিবেচনার সমাধানকে ত্বরান্বিত করার একটি দুর্দান্ত উপায় হিসাবে তৈরি করে। PDMats.jlইতিবাচক-নির্দিষ্ট ম্যাট্রিকগুলির স্পেসিফিকেশনের অনুমতি দেয়। এলিমেন্টাল.জেএল আপনাকে বিতরিত স্পার্স জ্যাকবিয়ানকে সংজ্ঞায়িত করতে দেয়। CuArrays.jl জিপিইউতে অ্যারেগুলি সংজ্ঞায়িত করে। প্রভৃতি

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

যৌগিকতার সুবিধাগুলি এবং জেনেরিক জুলিয়া ফাংশনে নতুন ও দক্ষ কোড তৈরি করতে যে ধরণের পদ্ধতি ব্যবহার করা যেতে পারে সেগুলি দেওয়া, মূল বৈজ্ঞানিক কম্পিউটিং কার্যকারিতা খাঁটি জুলিয়ায় বাস্তবায়নের জন্য প্রচুর কাজ হয়েছে। Optim.jl অরৈখিক অপ্টিমাইজেশান জন্য, NLsolve.jl অরৈখিক ব্যবস্থা সমাধানের জন্য, IterativeSolvers.jl রৈখিক সিস্টেম ও eigensystems পৌন solvers জন্য, BlackBoxOptim.jl কালো বাক্স অপ্টিমাইজেশান, ইত্যাদি এমনকি স্নায়ুর নেটওয়ার্ক লাইব্রেরির জন্য Flux.jl শুধু CuArrays ব্যবহার করে। জিপিইউর ক্ষমতার জন্য জিপিইউতে কোডটির স্বয়ংক্রিয় সংকলন জিএলইউ। এই সামঞ্জস্যতা ডিফেকএফএফএলএক্স.জেএল-তে নিউরাল ডিফারেনশিয়াল সমীকরণের মতো জিনিস তৈরি করেছিল তার মূল বিষয় ছিল compটিউরিং.জেএল এর মতো সম্ভাব্য প্রোগ্রামিং ভাষাও এখন যথেষ্ট পরিপক্ক এবং একই অন্তর্নিহিত সরঞ্জামটি ব্যবহার করে।

যেহেতু জুলিয়ার লাইব্রেরিগুলি কোড জেনারেশন সরঞ্জামগুলির ভিত্তিতে এতটা মৌলিক, তাই কোড উত্পন্নকরণের আশেপাশে অনেকগুলি সরঞ্জামাদি পাওয়া অবাক হওয়ার কিছু নেই। জুলিয়ার সম্প্রচার সিস্টেমটি ফ্লাইতে ফিউজড কার্নেলগুলি তৈরি করে যা উপরে বর্ণিত বৈশিষ্ট্যগুলির জন্য প্রচুর পরিমাণে অ্যারে টাইপ করে ওভারলোড হয়CUDAnative.jl জুলিয়া কোডটি জিপিইউ কার্নেলগুলিতে সংকলনের অনুমতি দেয়। ModelingToolkit.jl গাণিতিক কোডকে রূপান্তর করার জন্য স্বয়ংক্রিয়ভাবে এএসটিগুলিকে একটি এসএমএসকে একটি প্রতীকী সিস্টেমে ডি-সুগার দেয়। Cassette.jlসংকলনের সময় পূর্বে তাদের কার্যাবলী পরিবর্তন করার নিয়ম ব্যবহার করে আপনাকে অন্য কারোর বিদ্যমান ফাংশনটিকে "ওভারডব" করতে দেয় (উদাহরণস্বরূপ: তাদের অ্যারে বরাদ্দগুলির সমস্তটি স্ট্যাটিক অ্যারে বরাদ্দে পরিবর্তন করুন এবং জিপিইউতে ক্রিয়াকলাপ সরিয়ে দিন)। এটি আরও উন্নত টুলিং (আমি বৈজ্ঞানিক কম্পিউটিং করা প্রত্যেকেরই সংকলকের সরাসরি নিয়ন্ত্রণ নেওয়ার আশা করি না) তবে পরবর্তী প্রজন্মের টুলিংগুলি এভাবেই নির্মিত হচ্ছে (বা বরং কীভাবে বৈশিষ্ট্যগুলি নিজেরাই লিখছেন)।

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

জুলিয়াতে এমন একটি বেসিক অন্তর্নিহিত বাস্তুসংস্থান রয়েছে যা আপনি বৈজ্ঞানিক অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত সাধারণ উদ্দেশ্যে ভাষা আশা করতে পারেন। এতে ব্রেকোপয়েন্ট সহ বিল্ট-ইন ডিবাগার সহ জুনো আইডিই রয়েছে , এতে সব ধরণের প্লট তৈরির জন্য প্লটস.জেএল রয়েছে । অনেকগুলি নির্দিষ্ট সরঞ্জামও দুর্দান্ত, যেমন Revise.jl কোনও ফাইল সংরক্ষণ করলে আপনার ফাংশন / গ্রন্থাগারটি স্বয়ংক্রিয়ভাবে আপডেট হয়। আপনার কাছে আপনার ডেটাফ্রেমস.জেল , পরিসংখ্যান লাইব্রেরি ইত্যাদি রয়েছে n সর্বোত্তম পাঠাগারগুলির মধ্যে একটি আসলে ডিস্ট্রিবিউশনস.জেএল যা আপনাকে বিতরণে জেনেরিক অ্যালগরিদম লিখতে দেয় (উদাহরণস্বরূপ:rand(dist)যা কিছু বিতরণ পাস হয়েছিল তার একটি এলোমেলো সংখ্যা নেয়) এবং অবিচ্ছিন্ন এবং মাল্টিভারিয়েট বিতরণগুলির পুরো বোঝা রয়েছে (এবং অবশ্যই প্রেরণটি সংকলন সময়ে ঘটে থাকে, যা বিতরণের জন্য নির্দিষ্ট একটি ফাংশনকে হার্ডকোডিংয়ের মতো দ্রুত করে তোলে)। আপনি নাম রেখেছেন এমন একাধিক ডেটা হ্যান্ডলিং সরঞ্জাম , ওয়েব সার্ভার ইত্যাদি রয়েছে। এই মুহুর্তে এটি যথেষ্ট পরিপক্ক যে যদি কোনও মৌলিক বৈজ্ঞানিক জিনিস থাকে এবং আপনি যদি এটির উপস্থিতির প্রত্যাশা করেন তবে আপনি কেবল এটি জেএল বা জুলিয়া দিয়ে গুগল করেন এবং এটি প্রদর্শিত হবে।

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

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


2
দুর্দান্ত উত্তর। একটি প্রশ্ন: জুলিয়া কি গবেষণা কোড থেকে কোনও উত্পাদন সিস্টেমে মনোমুগ্ধ বিবর্তনের অনুমতি দেয়? না মাতলাবের মতো যেখানে আশা নেই সেখানে?
ব্যবহারকারীর 14717 14

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

29

যদি তা না হয়, তবে এটি পুনরায় বিবেচনা করার আগে আমার আরও কতক্ষণ অপেক্ষা করা উচিত, তার পক্ষে মোটামুটি অর্ডার-অফ-প্রশস্ততার প্রাক্কলন দেওয়া সম্ভব?

গণ্য বিজ্ঞান ভাষাগুলি পরিপক্ক হতে কত সময় নেয় তার আমার মোটামুটি, অর্ডার অফ-মাত্রার প্রাক্কলন এক দশকের কাছাকাছি।

উদাহরণ 1: SciPy 2001 বা ততক্ষণে শুরু হয়েছিল। ২০০৯ সালে স্কিপি ০.০.০ প্রকাশিত হয়েছিল, এবং ওডিই ইন্ডিগ্রেটারের ভিওডিএর সাথে একটি ইন্টারফেস ছিল (যা ode15sমোটামুটি, ode15sএনডিএফ-ভিত্তিক, ভিওডিইটি বিডিএফ / অ্যাডামস-বাশফোর্থ নির্ভর করে)। সায়পাই 0.10.0 এর সাথে একটি ইন্টারফেস dopri5, যা প্রায় ম্যাটল্যাবের সমতুল্য ode45, একটি রানেজ-কত্তা ৪ র্থ অর্ডার পদ্ধতি সাধারণত স্নাতকদের স্নাতকদের প্রথম ব্যবহারিক সংখ্যাগত ইন্টিগ্রেশন পদ্ধতি হিসাবে চালু হয়। সাইপাই 0.10.0 ডিসেম্বর ২০১১ এ প্রকাশিত হয়েছিল এবং আমি জানি প্রতিটি ইঞ্জিনিয়ারিং আন্ডারগ্রাডের সাথে পরিচিত ম্যাটল্যাবের একটি বৈশিষ্ট্য অন্তর্ভুক্ত করতে প্রায় 10 বছর লেগেছিল।

উদাহরণ 2: ম্যাথ ওয়ার্কস প্রতিষ্ঠিত হয়েছিল 1984 সালে their 2000 সাল পর্যন্ত তারা এটিকে ল্যাপ্যাকের সাথে প্রতিস্থাপন করেনি।

জুলিয়া কম সময় নিতে পারে, তবে আমি মূলধারার হয়ে উঠা থেকে 10 বছর অনুমান করতে পারি। (এটি ইতিমধ্যে এক বছর বা তার বাইরে চলে গেছে; সম্ভবত 9-10 বছর পরে, তারপর?)

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

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

সম্পাদনা: অরেলিয়াস একটি ভাল বিষয় নিয়ে আসে:

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

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

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

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

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

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


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

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

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

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

21

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

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

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

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

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


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

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

9

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

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

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

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