প্রকল্পের স্কেল এবং ভাষার কঠোরতার মধ্যে কি কোনও সম্পর্ক আছে?


72

আমার একজন সহকর্মীর কাছে ভাষা এবং দৃষ্টান্তগুলির কঠোরতার মধ্যে পার্থক্য ব্যাখ্যা করে, আমি জোর দিয়ে বলেছিলাম:

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

    1. দ্রুত বিকাশ,

    2. হ্রাসকৃত বয়লারপ্লেট কোড,

    3. তরুণ, সৃজনশীল প্রোগ্রামারদের আকর্ষণ করার ক্ষমতা   যা জাভা এর মতো "কর্পোরেট ভাষায়" পালিয়ে যায়।

  • স্ট্যাটিকালি টাইপ করা / সংকলিত ভাষাগুলি অ্যাপ্লিকেশনগুলির জন্য সর্বোত্তম, যার জন্য উচ্চতর কঠোরতার প্রয়োজন হয় যেমন ব্যবসা-সমালোচনা অ্যাপ্লিকেশন বা মাঝারি থেকে বড় আকারের অ্যাপ্লিকেশনগুলির জন্য অ্যাপস।

    1. কয়েক দশক ধরে বিকশিত সুপরিচিত দৃষ্টান্ত এবং নিদর্শন,

    2. স্ট্যাটিক চেকিংয়ের সহজতা,

    3. দশকের অভিজ্ঞতার সাথে অনেক পেশাদার বিকাশকারীকে সন্ধান করার ক্ষমতা।

  • হ্যাস্কেল, অ্যাডা বা সি # তে কোড চুক্তির মতো কৌশলগুলি এমন সিস্টেমগুলির জন্য আরও ভাল যা নমনীয়তার চেয়ে সুরক্ষার পক্ষে হয় (এমনকি হাস্কেল চূড়ান্ত নমনীয়ও হতে পারে) যেমন জীবন সমালোচনা সিস্টেম এবং সিস্টেমগুলি যা অত্যন্ত স্থিতিশীল বলে আশা করা হয়। সুবিধাগুলি হ'ল:

    1. সংকলনের সময় যথাসম্ভব যতগুলি বাগ ধরার ক্ষমতা,

    2. স্ট্যাটিক চেকিংয়ের সহজতা,

    3. আনুষ্ঠানিক প্রমাণ সহজ।

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

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

তৃতীয় কোন বিষয় আছে যা আমি অ্যাকাউন্টে নিতে ভুলে গেছি?

আমি কোথায় ভুল করছি?


12
স্ট্রাইক টাইপ চেকিং এবং স্ট্যাটিক টাইপ চেকিং একই জিনিস নয়। পাইথনটি গতিশীলভাবে টাইপ করা হয় তবে এটি সি এর চেয়ে বেশি কঠোর stat অন্তর্নিহিত কাস্টিংয়ের কারণে আমি আমার ক্যারিয়ারে অনেক সি / সি ++ বিষয় নিয়ে কাজ করেছি।
স্টিভেন বার্নাপ

5
জীবনচক্র সম্পর্কে সম্ভবত কিছু বলার আছে: আপনার প্রথম বিভাগে শুরু হওয়া সফ্টওয়্যার অন্যদের মধ্যে বিকশিত হতে পারে, এটির সাথে ভাষাটি "টেনে নিয়ে" যায়।
মাদুর

11
জাভাস্ক্রিপ্ট সম্পর্কে মার্জিত একমাত্র জিনিস এটি বেশিরভাগ ব্রাউজারে চলমান।
জেফো

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

2
"পাইথন সফলভাবে বড় সিস্টেমে ব্যবহৃত হয়" - এখানে "সাফল্য" এর সংজ্ঞা কী? এটি বেশিরভাগ চালায় এবং কিছু ফলাফল দেয়? পরীক্ষার পরিমাণ এবং কর্মশক্তি প্রয়োজনীয় পরিমাণ অন্তর্ভুক্ত? রক্ষণাবেক্ষণের কী হবে?
ডেন

উত্তর:


39

একটি উত্সাহব্যঞ্জক কেস স্টাডি প্রকল্পের গতিশীল এবং ব্যাখ্যা ভাষা ব্যবহার স্কেলিং সম্পর্কে এক খুঁজে পাওয়া যেতে পারে Scala শুরুতে ডেভিড Pollak দ্বারা।

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

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

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

আমি একটি নতুন ভাষা এবং বিকাশের পরিবেশ খুঁজছিলাম। আমি এমন একটি ভাষার সন্ধান করছিলাম যা রুবির মতোই অভিব্যক্তিপূর্ণ তবে জাভার মতো নিরাপদ এবং উচ্চ-সম্পাদনা ...

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

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

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

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

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


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

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

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



24

আপনার দাবি ভুল নয়। আপনার কেবল একটু গভীর খনন করা দরকার।

সরলভাবে বলা যায়, বড় সিস্টেমগুলি কেবল একটি ভাষা নয়, একাধিক ভাষা ব্যবহার করে। "কড়া" ভাষা ব্যবহার করে নির্মিত এমন কিছু অংশ থাকতে পারে এবং গতিশীল ভাষা ব্যবহার করে নির্মিত এমন কিছু অংশ থাকতে পারে।

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

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

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


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

এখানে লক্ষণীয় যে গুগল এবং পাইথনের মতো, পিএইচপি ব্যবহারের জন্য ফেসবুকের ব্যবহার বেশিরভাগ আঠালো হিসাবে রয়েছে ... আমার বোঝার বিষয় যে বেশিরভাগ ফাংশনের জন্য, পিএইচপি বেশিরভাগ জটিল সার্ভার সিস্টেমে তুলনামূলক সহজ ক্লায়েন্ট হিসাবে ব্যবহৃত হয় যা সাধারণত প্রয়োগ করা হয় যেমন জাভা, সি ++, Haskell,, OCaML, ইত্যাদি আরো একটি প্রথাগত "হেভিওয়েট" ভাষা, এ
জুলে

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

3

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

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

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

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

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

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

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


3

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

এই কথাটি বলার পরে, যে কোনও ভাষা যা আপনাকে উল্লেখযোগ্যভাবে কম কোড লিখতে দেয় , সেটির দিকে নজর রাখা উচিত (যেমন পাইথন বনাম জাভা)। সম্ভবত ভবিষ্যত উন্নত টাইপ-ইনফারেন্স (যেমন স্কালার ছাঁচে) সহ চতুর, স্ট্যাটিকালি-টাইপযুক্ত ভাষায়। বা হাইব্রিড, যেমন সি # এর dynamicকোয়ালিফায়ার দিয়ে চেষ্টা করছে ...?

এবং আসুন "অন্যান্য" স্ট্যাটিক টাইপিং সুবিধাটি ভুলে যাবেন না: যথাযথ আইডিই কোড-সমাপ্তি / ইন্টেলিসেন্স, যা আমার দৃষ্টিতে একটি অপরিহার্য বৈশিষ্ট্য, কোনও সুন্দর-তা-ই নয়।


1
"কোড-সমাপ্তি / ইন্টেলিজেন্স" - স্বয়ংক্রিয় রিফ্যাক্টরিংও বেশ গুরুত্বপূর্ণ।
ডেন

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

0

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

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

সি শার্প এবং জাভা করছে বিশ্বস্ত সঙ্গে ভাষার বিশ্বস্ত প্ল্যাটফর্মের। রুবি এবং পাইথন বিশ্বস্ত ভাষা নয়।


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

1
গতিশীল ভাষাগুলি সুরক্ষার জন্য খারাপ, তবে "ওপেন সোর্স" ভাল কারণ নয়। হতে পারে তাদের অর্থ "কোডের সম্পূর্ণ ভিন্ন অংশ থেকে কোডের একটি অংশকে প্রভাবিত করা সহজ" meant প্রোগ্রামার.সটাকেক্সচেঞ্জ
সেকশনগুলি

1
মনে রাখবেন যে প্রকৃতপক্ষে, "ওপেন সোর্সনেস" একটি ভাষা নির্বাচনের অন্যতম দিক। উদাহরণস্বরূপ, ডিসকর্স রুবিকে কেন ব্যবহার করে তা বোঝানোর জন্য জেফ আতউডের দেওয়া তিনটি কারণে একটি one
আর্সেনী মোরজেনকো

সি # এখন সম্পূর্ণ ওপেন সোর্স, তবুও এটি এখনও পেশাদার ডিভস দ্বারা সৃজনশীল, পরিকল্পনাযুক্ত এবং বিকাশযুক্ত যা আমার ধারণা ভাল। আসুন আশা করি "পাইথন 3 বনাম 2" ধরণের জিনিসটি এখানে ঘটবে না।
ডেন

বাগ এবং সুরক্ষা গর্তগুলি ভাষা দ্বারা নয় প্রোগ্রামারদের দ্বারা প্রবর্তিত হয়েছিল , এবং রেকর্ডের জন্য আমি ওপেন সোর্স প্রকল্পগুলিতে বেশ কয়েকটি সুরক্ষা সংশোধন করেছি contrib বন্ধ কয়টি প্রকল্প আমি সাহায্য করেছি ??? শূন্য!
প্রতিক্রিয়াশীল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.