কেউ দয়া করে স্কেলা, গ্রোভি এবং ক্লোজারের মধ্যে প্রধান পার্থক্য ব্যাখ্যা করতে পারেন। আমি এই সংকলনের প্রতিটি জেভিএম চালানোর জন্য জানি তবে আমি তাদের মধ্যে একটি সাধারণ তুলনা চাই।
কেউ দয়া করে স্কেলা, গ্রোভি এবং ক্লোজারের মধ্যে প্রধান পার্থক্য ব্যাখ্যা করতে পারেন। আমি এই সংকলনের প্রতিটি জেভিএম চালানোর জন্য জানি তবে আমি তাদের মধ্যে একটি সাধারণ তুলনা চাই।
উত্তর:
গ্রোভি হ'ল একটি গতিশীল টাইপ করা ভাষা, যার বাক্য গঠন জাভার খুব কাছাকাছি, বেশ কয়েকটি সিনট্যাক্স উন্নতি যা হালকা কোড এবং কম বয়লারপ্লেটের অনুমতি দেয়। এটি সংকলিত হওয়ার পাশাপাশি একটি দোভাষীর মাধ্যমে চালাতে পারে যা দ্রুত প্রোটোটাইপিং, স্ক্রিপ্টস এবং গতিশীল ভাষা শেখার জন্য একটি নতুন সিনট্যাক্স না শিখে (আপনার জাভা জেনে নিচ্ছে) ধরে নেওয়া ভাল করে তোলে। গ্রোভি ২.০ হিসাবে এটির স্থির সংকলনের জন্য ক্রমবর্ধমান সমর্থন রয়েছে । গ্রোভি ক্লোজারকে সমর্থন করে এবং কিছুটা কার্যকরী শৈলীতে প্রোগ্রামিংয়ের পক্ষে সমর্থন করে যদিও এটি এখনও কার্যকরী প্রোগ্রামিংয়ের traditionalতিহ্যবাহী সংজ্ঞা থেকে বেশ দূরে।
সফটওয়্যার ট্রানজেকশনাল মেমরির মতো কয়েকটি উন্নত বৈশিষ্ট্যযুক্ত ক্লজিউর লিস্পের একটি উপভাষা । আপনি যদি লিস্প পছন্দ করেন এবং জেভিএম এর আওতায় এটির মতো কিছু ব্যবহার করতে চান, ক্লোজার আপনার জন্য। এটি সম্ভবত JVM- এ চলমান সর্বাধিক কার্যকরী ভাষা এবং সম্ভবত সবচেয়ে বিখ্যাত ভাষা । এছাড়াও, এটি অন্যান্য লিস্প উপভাষার তুলনায় অপরিবর্তনীয়তার উপর আরও জোর দেয় , যা এটি কার্যকরী ভাষা উত্সাহীদের হৃদয়ের কাছাকাছি নিয়ে যায়।
স্কালা একটি সম্পূর্ণ অবজেক্ট ওরিয়েন্টেড ভাষা, যা জাভা থেকে অনেক বেশি, অ গবেষণা গবেষণা ভাষাগুলিতে উপলভ্য একটি সর্বাধিক উন্নত প্রকারের সিস্টেম এবং অবশ্যই জেভিএমের মধ্যে সবচেয়ে উন্নত টাইপ সিস্টেম। এটি অবজেক্ট অরিয়েন্টেশনের সাথে আপস না করে ক্রিয়ামূলক ভাষার অনেকগুলি ধারণা এবং বৈশিষ্ট্যগুলিও একত্রিত করে, তবে কার্যকরী ভাষার বৈশিষ্ট্যগুলির সাথে এটির সমঝোতা পরবর্তীকালের কিছু উত্সাহীদের বন্ধ করে দেয়।
গ্রোভির গ্রেইলে ভাল গ্রহণযোগ্যতা এবং একটি জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক রয়েছে। এটি গ্রেডল বিল্ড সিস্টেমকেও ক্ষমতা দেয়, যা মাভেনের একটি জনপ্রিয় বিকল্প হয়ে উঠছে। আমি ব্যক্তিগতভাবে মনে করি এটি সীমিত ইউটিলিটি সহ একটি ভাষা, বিশেষত জাইথন এবং জেউবি অন্যদের তুলনায় জেভিএম-জমিতে প্রবেশের সূচনা করে।
ক্লোজার, এমনকি কিছু খুব আকর্ষণীয় বৈশিষ্ট্য ছাড় দিয়ে, কেবল জেভিএম-এ লিস্পের উপভাষা হয়ে জোরালো আবেদন করেছে। এটির জনপ্রিয়তা সীমিত হতে পারে, মঞ্জুর করা হতে পারে তবে আমি আশা করি এটির দীর্ঘকাল ধরে এর আশেপাশের অনুগত সম্প্রদায় থাকবে।
স্কালা সরাসরি জাভার সাথে প্রতিযোগিতা করতে পারে এবং প্রায় সব দিক থেকে এটির অর্থের জন্য রান দেয়। এটি অবশ্যই এই মুহূর্তে জনপ্রিয়তায় প্রতিদ্বন্দ্বিতা করতে পারে না, এবং দৃ corporate় কর্পোরেট ব্যাকিংয়ের অভাব কর্পোরেট পরিবেশে এটির গ্রহণযোগ্যতাকে বাধা দিতে পারে। ভাষাটি কীভাবে বিকশিত হয় সেই অর্থে এটি জাভা থেকেও অনেক বেশি গতিশীল ভাষা। ভাষার দৃষ্টিকোণ থেকে, এটি একটি ভাল জিনিস। ব্যবহারকারীদের দৃষ্টিকোণ থেকে যারা এতে হাজার হাজার লাইনের কোড লিখিত থাকার পরিকল্পনা করেন, তা নয়।
চূড়ান্ত প্রকাশ হিসাবে, আমি স্কালার সাথে খুব পরিচিত, এবং কেবলমাত্র অন্য দুটি সাথে পরিচিত।
স্ক্যানা ফানেল নামে পরিচিত একটি শুদ্ধ কার্যকরী ভাষা থেকে উদ্ভূত হয়েছিল এবং প্রায় সমস্ত জাভা সিনট্যাক্সের একটি ক্লিন-রুম বাস্তবায়ন প্রতিনিধিত্ব করে, যেখানে কেবল একটি পরিষ্কার উন্নতি করা যেতে পারে বা যেখানে এটি ভাষাটির কার্যকরী প্রকৃতির সাথে আপস করে dif এ জাতীয় পার্থক্যগুলির মধ্যে স্থির পদ্ধতির পরিবর্তে সিঙ্গেলটন অবজেক্ট এবং টাইপ ইনফারেন্স অন্তর্ভুক্ত থাকে।
এর বেশিরভাগটি পিৎজা ভাষার সাথে মার্টিন ওডারস্কির পূর্ববর্তী কাজের উপর ভিত্তি করে ছিল । ওও / এফপি ইন্টিগ্রেশন নিছক বন্ধ হওয়ার চেয়ে বেশি এগিয়ে গেছে এবং ভাষাটিকে পোস্ট-ফাংশনাল হিসাবে বর্ণনা করা হয়েছে।
এটি সত্ত্বেও, এটি জাভা থেকে অনেক দিক থেকে নিকটতম। মূলত ওও সমর্থন এবং স্ট্যাটিক টাইপিংয়ের সংমিশ্রণের কারণে, তবে এটি ভাষা ডিজাইনের একটি স্পষ্ট লক্ষ্যের কারণে এটি জাভার সাথে খুব দৃly়ভাবে সংহত করা উচিত।
গ্রোভি স্পষ্টতই জাভা এর দুটি বৃহত্তম সমালোচনা দ্বারা মোকাবেলা করেছেন
এটি সম্ভবত জাভাটির নিকটতম নিকটবর্তী, ক্লোজার এবং স্কালার দ্বারা সরবরাহিত কিছু সমৃদ্ধ কার্যকরী নির্মাণের প্রস্তাব দিচ্ছে না, তবে এখনও একটি নির্দিষ্ট বিবর্তনীয় উন্নতি সরবরাহ করছে - বিশেষত স্ক্রিপ্ট-সিলে প্রোগ্রাম লেখার জন্য।
গ্রোভির তিনটি ভাষার সবচেয়ে শক্তিশালী বাণিজ্যিক সমর্থন রয়েছে, বেশিরভাগই স্প্রিংসোর্সের মাধ্যমে।
ক্লোজওর এলআইএসপি পরিবারে একটি কার্যকরী ভাষা, এটি গতিশীলভাবেও টাইপ করা হয়।
এসটিএম সহায়তার মতো বৈশিষ্ট্যগুলি এটিকে বক্সের একযোগে সম্মিলিত সহায়তা দেয়, অন্যদিকে স্কালাকে নকল করতে আক্কার মতো একটি তৃতীয় পক্ষের লাইব্রেরি প্রয়োজন requires
সিন্ট্যাক্টিক্যালি, এটি সাধারণত জাভা কোড থেকে তিনটি ভাষার সবচেয়ে দূরে।
আমি এটিও প্রকাশ করতে পারি যে আমি স্কালার সাথে সর্বাধিক পরিচিত :)
ক্লোজার নিয়ে খেলার মতো সময় আমার ছিল না কখনও। তবে স্কালা বনাম গ্রোভির জন্য এটি জেমস স্ট্রাচনের ভাষ্য - গ্রোভির স্রষ্টা
"যদিও জাভাকের দীর্ঘমেয়াদী প্রতিস্থাপনের জন্য আমার পরামর্শটি স্কালা is সম্ভবত গ্রোভিকে কখনও তৈরি করেনি।
আপনি পুরো গল্পটি এখানে পড়তে পারেন
তারা কোথা থেকে আসছে বা কোন বিকাশকারীরা তারা মূলত টার্গেট করছে তার সাথে তাদের পার্থক্য করা যেতে পারে।
গ্রোভি জাভা-র স্ক্রিপ্টিং সংস্করণের মতো। বড় আর্কিটেকচার সমর্থনযুক্ত চতুর অ্যাপ্লিকেশনগুলি তৈরি করার সময় জাভা প্রোগ্রামাররা দীর্ঘ সময় বাড়িতে বোধ করে। গ্রিলি অন গ্রিল হ'ল নামটি যেমন রেল ফ্রেমওয়ার্কের অনুরূপ বলে। এমন লোকদের জন্য যারা জাভাটির ভার্বোসটিটি সারাক্ষণ বিরক্ত করতে চান না।
স্কালা হ'ল একটি অবজেক্ট ওরিয়েন্টেড এবং ফাংশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং রুবি বা পাইথন প্রোগ্রামাররা এর সাথে আরও বেশি অনুভব করতে পারে। এই প্রোগ্রামিং ভাষাগুলিতে পাওয়া প্রচুর প্রচলিত ভাল ধারণাগুলি নিয়োগ করে।
ক্লোজওর লিস্প প্রোগ্রামিং ভাষার একটি উপভাষা তাই লিস্প, স্কিম বা হাস্কেল বিকাশকারীরা এই ভাষার বিকাশের সময় বাড়িতে থাকতে পারে।
আমি প্রাগমেটিক প্রোগ্রামারস বইটি "গ্রোভী রেসিপি: গ্রীসিং হুইল অফ জাভা" স্কট ডেভিস, কপিরাইট ২০০৮ দ্বারা এবং একই বছরের এপ্রিলে মুদ্রিত করছি।
এটি কিছুটা পুরানো but তবে বইটি স্পষ্ট করে দিয়েছে যে গ্রোভি আক্ষরিক অর্থে জাভার একটি এক্সটেনশন। আমি জাভা কোডটি লিখতে পারি যা জাভা ঠিক মত কাজ করে এবং * .groovy ফাইলটির নাম পরিবর্তন করতে পারে এবং এটি দুর্দান্ত কাজ করে। বই অনুসারে, আমি যদি প্রয়োজনীয় লাইব্রেরিগুলি অন্তর্ভুক্ত করি তবে বিপরীতটি সত্য। এখনও পর্যন্ত, পরীক্ষাগুলি এটি বহন করবে বলে মনে হচ্ছে।
স্পষ্টতই, বাক্য গঠনটি সম্পূর্ণ আলাদা (গ্রোভি জাভার সবচেয়ে নিকটতম), তবে আমি মনে করি এটি আপনি যা চাইছেন তা নয়।
আপনি যদি জাভা অ্যাপ্লিকেশনটির স্ক্রিপ্টে তাদের ব্যবহার করতে আগ্রহী হন তবে স্কেলা সম্ভবত ভাল পছন্দ নয়, কারণ জাভা থেকে এটি মূল্যায়নের কোনও সহজ উপায় নেই , তবে গ্রোভি বিশেষত সেই উদ্দেশ্যেই উপযুক্ত suited
eval
প্রয়োজন নেই।