উত্তর:
ভাষা হিসাবে পিএইচপি অবশ্যই এটি থাকতে পারে তবে আমি মনে করি সমস্যাটি বিদ্যমান প্রোগ্রামগুলির সাথে সামঞ্জস্যের সাথে। ইউনিকোড সমর্থন তাদের সূক্ষ্ম উপায়ে ভেঙে ফেলতে পারে, এটি হ'ল সবচেয়ে বিরক্তিকর বাগ।
বর্তমানে পিএইচপি-র বেশিরভাগ স্ট্রিং-প্রসেসিং ফাংশনগুলি হ'ল "বাইনারি-সেফ", যার অর্থ আপনি এগুলিকে কোনও এনকোডিংয়ের সাথে ফাইলের পাশাপাশি ইমেজ ডেটা ইত্যাদির মতো বাইনারি ফর্ম্যাটগুলি প্রক্রিয়া করতে ব্যবহার করতে পারেন means
ইউনিকোড স্ট্রিং যুক্ত করার সাথে আপনাকে ইউনিকোড স্ট্রিংগুলিকে বাইনারি স্ট্রিংগুলির সাথে মিশ্রিত না করতে খুব সতর্কতা অবলম্বন করতে হবে (আপনার স্ট্রিংগুলি যখন বিভিন্ন উত্স থেকে আসে এবং আপনাকে এর আগে কখনও চিন্তা করতে হত না)। এবং আপনি আর এনকোডিংগুলি সম্পর্কে অজ্ঞ হতে পারবেন না (এবং প্রচুর স্ক্রিপ্টগুলি এ সম্পর্কে অজ্ঞ রয়েছেন!)
আর একটি শক্ত, তবে সমাধানযোগ্য সমস্যা হ'ল ইউনিকোড স্ট্রিংগুলিতে এলোমেলো অ্যাক্সেস। $string[$offset]
তুচ্ছ থেকে খুব ধীর বা সামান্য ধীর এবং খুব জটিলতে পরিবর্তনের বাস্তবায়ন ।
এছাড়াও আমি মনে করি পিএইচপি-র জন্য অভ্যন্তরীণ এনকোডিং হিসাবে ইউটিএফ -16 নির্বাচন করা ভুল ছিল। এটি ইউটিএফ -8 (সারোগেট জোড়গুলির কারণে পরিবর্তনশীল প্রস্থ) এবং ইউসিএস -২ এর অদক্ষতার মতো একই সমস্যা রয়েছে has হতে পারে তাদের এটিকে স্ক্র্যাপ করে ইউটিএফ -8 দিয়ে আবার শুরু করা উচিত?
</speculation>
টিএলডিআর: অনেকগুলি পিএইচপি লাইব্রেরি হ'ল দেশীয় সি লাইব্রেরিগুলির তুলনায় কেবল একটি পাতলা স্তর যা ইউনিকোড সমর্থন করে না বা একে অপরের সাথে বেমানান নয় এমনভাবে সমর্থন করে। এই পরিস্থিতি সংশোধন করার ফলে পশ্চাদপটে বেমানান পরিবর্তনগুলি প্রবর্তিত হতে পারে।
অস্বীকৃতি: কয়েক বছর আগে যেমন আমি পিএইচপি থেকে পাইথন (কখনও ফিরে ফিরে তাকানোর জন্য) পরিবর্তন করেছি, আমার মতামত স্পষ্টভাবে পক্ষপাতদুষ্ট।
আমার মনে হয় পিএইচপি একটি দুর্দান্ত এবং চতুর হ্যাক। হ্যাক হিসাবে, এটি নজিরবিহীন শুরু হয়েছিল এবং একগুচ্ছ বিরল গ্রন্থাগার থেকে বিশৃঙ্খলা বৃদ্ধি পেয়েছিল - একটি ভাল চিন্তাভাবনা এবং একীভূত নকশার অভাব (কম্পিউটার ভাষা তত্ত্বের দৃষ্টিকোণ থেকে)।
ম্যাকিয়াভেলির কথায় যেমন বলা হয়েছে, "যিনি প্রথমে তার ভিত্তি স্থাপন করেননি সে পরে সেগুলি স্থাপনের যথেষ্ট দক্ষতার সাথে সক্ষম হতে পারে তবে তারা স্থপতিদের কাছে সমস্যায় পড়বে এবং ভবনের জন্য বিপদ হবে"।
একটি প্রোগ্রামিং ভাষার জন্য, আরও জনপ্রিয়, পরিবর্তন করা আরও কঠিন। এজন্য সি এর মতো ভাষা প্রতি দশ বছরে একবার পরিবর্তিত হয়। উদাহরণস্বরূপ, পাইথন 3 বহু পিছনে বেমানান পরিবর্তন করেছে এবং এটি খুব সুন্দর ছিল না। পূর্ববর্তী পাইথন অবতারগুলিতে ইউনিকোড সমর্থনটি ইতিমধ্যে পিএইচপি-র বর্তমান অবস্থার তুলনায় উচ্চতর হিসাবে বিবেচিত হয়েছিল, তবে অনুমান করুন: পাইথন 3-এ সর্বাধিক মেরু পরিবর্তনগুলি ইউনিকোড পরিচালনার সাথে সম্পর্কিত। এই গলাবাজি থেকে আরমিন Ronacher পাইথন সম্প্রদায়ের বিপুল অংশ থেকে হতাশা সংক্ষিপ্ত বিবরণ।
পিএইচপি "সর্বব্যাপী ওয়েব প্ল্যাটফর্ম" হওয়া এটিকে নিজের সাফল্যের শিকার করে তোলে। পিএইচপি-তে ইউনিকোডের জন্য একীভূত সমর্থন আনতে অনিবার্য, তবে প্রচুর রক্ত, ঘাম এবং অশ্রু লাগবে।
পুরাতন পিএইচপি 6 কাজ বন্ধ করার প্রাথমিক কারণগুলির মধ্যে একটি হ'ল এটি আনা অভ্যন্তরীণ জটিলতা এবং কাজ করার পরিমাণ, যা সবেই সম্পূর্ণরূপে অবিজ্ঞ।
কিছুটা ইতিহাস: পিএইচপি 6 এর ইউনিকোড কার্যকরকরণটি বৃহত্তর পিএইচপি ব্যবহারকারীর প্রয়োজন অনুসারে ডিজাইন করা হয়েছিল এবং ইউনিকোড "ডান" করার চেষ্টা করেছিলেন। কিছু মূল্যায়নের পরে পিএইচপি-র-হতে-ইউনিকোড-সমর্থনের প্রাথমিক ডিজাইনার একটি নতুন স্ট্রিং প্রকার যুক্ত করতে বেছে নিয়েছেন যা অভ্যন্তরীণভাবে ইউটিফ -16 এবং বিভিন্ন জায়গায় বিভিন্ন এনকডিং ব্যবহার করার অনুমতি দেয়। সুতরাং কোডটি একটি এনকোডিংয়ে লিখিত হতে পারে, আউটপুটটিতে অন্য একটি এনকোডিং এবং "রুটমে অপারেশন" ব্যবহার করা হতে পারে অন্য কোনও এনকোডিং। ইউটিএফ -16 বেছে নেওয়ার কারণটি ছিল কাজটি আইসিইউ লিভেরির উপর ভিত্তি করে হওয়া উচিত যা ইউটিএফ -16 ব্যবহার করে এবং এটি পাওয়া গেছে যে এই এনকোডিংটি দ্রুত স্ট্রিংয়ে সাধারণ স্ট্রিং অপারেশন করে যখন ইউএফএফ এবং ইউএফ -16 এর মধ্যে রূপান্তর তুলনামূলকভাবে সস্তা । এ পর্যন্ত সব ঠিকই.
এখন এটি করার ফলাফলটি সর্বাধিক নতুন স্ট্রিং টাইপের প্রবর্তন। পিএইচপি-র অভ্যন্তরীণ প্রকারের সিস্টেমে কয়েকটি প্রকার ছিল (এনইউএল, বুল, ইনট / লং, ফ্লোট / ডাবল, স্ট্রিং, অ্যারে, রিসোর্স, অবজেক্ট) এবং প্রচুর কোডের ক্ষেত্রে এই বিষয়টি নিয়ে কিছু ধারণা ছিল। এই ধরনের অনুমানগুলি ছাড়াও স্ট্রিংগুলিতে চলমান সমস্ত ফাংশন, এবং সেগুলির অনেকগুলি রয়েছে, স্বতন্ত্রভাবে মূল্যায়ন করতে হবে এবং কীভাবে এনকোডিংগুলি পরিচালনা করবেন তা সিদ্ধান্ত নিতে হবে। তাদের কি বাইনারি স্ট্রিং বা ইউনিকোড স্ট্রিংয়ের কাজ করা উচিত? যদি কোনও রূপান্তর প্রয়োজন হয় যা কোন এনকোডিংটি ব্যবহার করা উচিত ইত্যাদি and এবং এটি অনেক কাজ এবং কিছু ক্ষেত্রে সঠিকভাবে করা বেশ জটিল। অতিরিক্তভাবে অভ্যন্তরীণ এপিআইগুলি বেশ জটিল হয়ে ওঠে, কারণ পিএইচপি-র বেশিরভাগ কী এপিআইগুলিকে বাইনারি স্ট্রিংগুলির (পুরানো একটি) সংস্করণ এবং তারপরে প্রায়শই "রানটাইম এনকোডড" স্ট্রিংয়ের সংস্করণ পাওয়া যায়,
অনেকগুলি বিকাশকারীরা জনগণের উপরে হোঁচট খেয়েছে এমনটি করার প্রক্রিয়া চলাকালীন, ইউটিএফ -১ by দ্বারা বিরক্ত হয়ে পড়েছিল এবং এটি পছন্দ করে না যে এটি বেশিরভাগ বিদ্যমান অ্যাপ্লিকেশনগুলি ভেঙে যাওয়ার সময় ডাবল মেমরির ব্যবহারের চেয়ে বেশি পরিমাণে ব্যয় করবে এবং স্ট্রিংকে রূপান্তর করতে প্রচুর সময় ব্যয় করবে। সুতরাং, পিএইচপি স্বেচ্ছাসেবীদের দ্বারা পরিচালিত, কম এবং কম বিকাশকারী এটিতে কাজ করছে এবং অন্যান্য জিনিসগুলি স্তূপীকৃত হয়েছিল এবং অবদানকারীরা অসন্তুষ্ট হয়ে পড়েছিল এবং শেষ পর্যন্ত এটি ত্যাগ করতে হয়েছিল।
এখন ভবিষ্যতে কী নিয়ে আসতে পারে? - পিএইচপি আরও অনেক কিছু utf-8 এর আশেপাশে তৈরি হয়েছে এমন একটি ধীর বিবর্তন ঘটছে। কোনও কাস্টম টাইপের সাথে শক্তিশালী উপায়ে নয় এবং সমস্ত কিছুতে বাধ্য করা এবং বর্তমানে বিকাশকারীরা এই গরম লোহাটি স্পর্শ করতে উদ্বুদ্ধ হয় না। কেউ আশা করতে পারেন যে কারও কাছে এটি সুন্দরভাবে কাজ করার জন্য একটি ভাল প্রস্তাব রয়েছে তবে বর্তমানে "প্রত্যেকে" কেবল শব্দটি শুনলে পালিয়ে যাবে। :)
আমি অনুমান করি যে আসল কারণ হ'ল পিএইচপি বিকাশকারী টিমের পিএইচপি উন্নয়নের জন্য সুস্পষ্ট রোডম্যাপের অভাব রয়েছে (আসুন কেবল একটি চমত্কার উত্তপ্ত আলোচনার কথা উল্লেখ করুন যখন পিএইচপি-ইন্টার্নালগুলির মধ্যে কেউ 5.4 বৈশিষ্ট্যগুলি কী থাকতে হবে সে বিষয়ে আগেই একমত না হয়ে পিএইচপি 5.4 শাখা শুরু করার সিদ্ধান্ত নিয়েছিল)। আমি এই ভাষাটি খুব পছন্দ করি তবে এটি যেভাবে বিকশিত হচ্ছে তা আমাকে কিছুটা চিন্তিত করে তোলে।