প্রথমে কিছু প্রসঙ্গ (এমন জিনিস যা আপনার বেশিরভাগরাই জানেন):
প্রতিটি জনপ্রিয় প্রোগ্রামিং ভাষার একটি স্পষ্ট বিবর্তন থাকে, বেশিরভাগ সময় এর সংস্করণ দ্বারা চিহ্নিত করা হয়: আপনার জাভা 5, 6, 7 ইত্যাদি রয়েছে, পিএইচপি 5.1, 5.2, 5.3 ইত্যাদি। নতুন সংস্করণ প্রকাশের ফলে নতুন এপিআই উপলব্ধ হয়, বাগগুলি সংশোধন করা হয়, যোগ হয় নতুন বৈশিষ্ট্য, নতুন ফ্রেমওয়ার্ক ইত্যাদি তাই সব মিলিয়ে: এটি ভাল।
তবে ভাষার (বা প্ল্যাটফর্মের) সমস্যাগুলি কী? যদি এবং যখন কোনও ভাষায় কোনও সমস্যা হয়, তবে বিকাশকারীরা হয় এড়িয়ে চলে (যদি তারা পারে) অথবা তারা এটির সাথে থাকতে শিখবে।
এখন, সেই ভাষাগুলির বিকাশকারীরা তাদের ব্যবহারকারী প্রোগ্রামারদের কাছ থেকে প্রচুর প্রতিক্রিয়া পান। সুতরাং এটি এক ধরণের বোঝায় যে সময় (এবং সংস্করণ সংখ্যা) যতই যায় ততই সেই ভাষাগুলির সমস্যাগুলি আস্তে আস্তে কিন্তু অবশ্যই দূরে চলে যাবে। সত্যিই ভাল না. কেন? পিছনে সামঞ্জস্য, যে কারণে। কিন্তু কেন এই হল? আরও দৃ concrete় পরিস্থিতির জন্য নীচে পড়ুন।
আমি আমার প্রশ্নটির সর্বোত্তম উপায়টি উদাহরণ হিসাবে পিএইচপি ব্যবহার করতে পারি:
পিএইচপি প্রিয় এবং হাজার হাজার মানুষ ঘৃণা করে। সমস্ত ভাষার ত্রুটি রয়েছে, তবে দৃশ্যত পিএইচপি বিশেষ। পরীক্ষা করে দেখুন এই ব্লগ পোস্টে । এটি পিএইচপি-তে তথাকথিত ত্রুটিগুলির একটি দীর্ঘ তালিকা রয়েছে। এখন, আমি পিএইচপি বিকাশকারী নই (এখনও নেই) তবে আমি এটির সমস্তটি পড়েছি এবং আমি নিশ্চিত যে সেই তালিকার একটি বড় অংশ সত্যই সত্যিকারের সমস্যা। (এগুলি সবই নয়, যেহেতু এটি সম্ভাব্য ব্যক্তিগত)।
এখন, আমি যদি পিএইচপি সক্রিয়ভাবে বিকাশকারী সেই ছেলেদের মধ্যে একজন হয়ে থাকি তবে আমি অবশ্যই একে একে এই সমস্যাগুলি সমাধান করতে চাই। যাইহোক, আমি যদি এটি করি তবে ভাষার কোনও নির্দিষ্ট আচরণের উপর নির্ভর করে এমন কোডটি নতুন সংস্করণে চলে গেলে তা ভেঙে যাবে। 2 টি শব্দে এটি সংক্ষেপ করে: পিছনের সামঞ্জস্য।
আমি যা বুঝতে পারি না তা হ'ল: কেন আমি পিএইচপি পিছন দিকে সামঞ্জস্যপূর্ণ রাখতে পারি? যদি আমি এই সমস্ত সমস্যার সংশোধন করে পিএইচপি 8 সংস্করণ প্রকাশ করি তবে আমি কী এটির উপরে একটি বড় সতর্কতা বলতে পারি না: "এই সংস্করণে পুরানো কোডটি চালাবেন না!"?
অবচয় বলে একটি জিনিস আছে। আমাদের এটি বছরের পর বছর ধরে ছিল এবং এটি কাজ করে। পিএইচপি প্রসঙ্গে: দেখুন কীভাবে এই দিনগুলিতে লোকেরা সক্রিয়ভাবে mysql_*
ফাংশনগুলির ব্যবহারকে নিরুৎসাহিত করে (এবং পরিবর্তে mysqli_*
পিডিওর প্রস্তাবনা দেয় )। অবচয় কাজ করে। আমরা এটি ব্যবহার করতে পারি। আমাদের এটি ব্যবহার করা উচিত। এটি যদি ফাংশনগুলির জন্য কাজ করে তবে এটি কেন সম্পূর্ণ ভাষার জন্য কাজ করবে না?
আসুন আমি (পিএইচপি এর বিকাশকারী) এটি করি:
- এই সমস্ত ত্রুটিগুলি স্থির করে পিএইচপি (নতুন করে 8 বলা যাক) এর একটি নতুন সংস্করণ চালু করুন
- নতুন প্রকল্পগুলি সেই সংস্করণটি ব্যবহার করা শুরু করবে, কারণ এটি আরও ভাল, পরিষ্কার, আরও সুরক্ষিত ইত্যাদি etc.
- তবে, পিএইচপি-র পুরানো সংস্করণগুলি বর্জন না করার জন্য, আমি এটিতে আপডেটগুলি অবিরত করে রাখি, সুরক্ষা সংক্রান্ত সমস্যাগুলি, বাগগুলি সংশোধন করে রাখি reasons এটি এখানে কারণগুলির তালিকা না রাখার কারণে বোঝা যায়। এটি সাধারণ অনুশীলন: উদাহরণস্বরূপ দেখুন কীভাবে ওরাকল মাইএসকিউএল এর 5.1.x সংস্করণ আপডেট করে রেখেছিল, যদিও এটি বেশিরভাগ সংস্করণ 5.5.x তে নিবদ্ধ ছিল।
- প্রায় 3 বা 4 বছর পরে, আমি পিএইচপি-র পুরানো সংস্করণগুলি আপডেট করা বন্ধ করি এবং সেগুলি মরে যেতে দেব। এটি ঠিক আছে, যেহেতু এই 3 বা 4 বছরে, বেশিরভাগ প্রকল্পগুলি যাইহোক পিএইচপি 8 এ স্যুইচ করবে।
আমার প্রশ্নটি: এই সমস্ত পদক্ষেপগুলি কী বোঝায়? এটা কি এত কঠিন হবে? যদি এটি করা যায়, তবে কেন এটি করা হয় না?
হ্যাঁ, খারাপ দিকটি হ'ল আপনি পিছনে সামঞ্জস্যতা ভেঙেছেন। কিন্তু যে মূল্য দেওয়ার মতো মূল্য নেই? উত্সাহ হিসাবে, 3 বা 4 বছরে আপনার এমন একটি ভাষা থাকবে যার 90% সমস্যা স্থির হয়েছে .... এমন একটি ভাষা যা কাজ করার জন্য আরও সুখকর। এর নাম এটির জনপ্রিয়তা নিশ্চিত করবে।
সম্পাদনা : ঠিক আছে, তাই আমি নিজেকে সঠিকভাবে প্রকাশ করি নি যখন আমি বলেছিলাম যে 3 বা 4 বছরে লোকেরা অনুমান পিএইচপি 8 এ চলে যাবে 8 আমার অর্থটি ছিল: 3 বা 4 বছরে লোকেরা পিএইচপি 8 ব্যবহার করবে যদি তারা একটি শুরু করে তবে নতুন প্রকল্প.
mysql_*
উদাহরণস্বরূপ, 5.5-এ অবমূল্যায়ন করা হয়েছিল), তবে এটি অপ্রাসঙ্গিক যদি হোস্টিং সরবরাহকারীদের মধ্যে বেশিরভাগই এক বা দুটি সংস্করণ ফিরে আসে (5.3 হয় - দুর্ভাগ্যক্রমে - এখনও সংখ্যাগরিষ্ঠটি কী সরবরাহকারী অফার)।