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