কেন এই প্রয়াসটি স্ক্যান্ডালকে জেজ্যান্ড এবং কোটলিনের সাথে নামিয়ে দেওয়ার চেষ্টা করছে? [বন্ধ]


26

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


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


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

8
সমাবেশটি কেবল মেশিন কোডের একটি ওয়াটারড সংস্করণ, তাই না?
বেন ব্রোকা

6
@ বেনব্রোকা: না, এটি মেশিন কোডের কাছে

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

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

উত্তর:


39

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

এক্সটেড জাওয়ার মতোই বেশি অনুভূত হয় এবং এর সাথে একটি সহজ অ্যাপ্লিকেশনটি আরও দ্রুত লিখতে সক্ষম হয়। মঞ্জুর যে আমি নিজেকে স্কালার সাথে পর্যাপ্ত সময় দিইনি তবে আমি অবশ্যই বুঝতে পারি যে এটির মাধ্যমে কিছু কেন বন্ধ হয়ে যেতে পারে।

এটি বলা হওয়ার সাথে সাথেই লোকেরা অপরিচিত স্বর্গের উপরে একটি পরিচিত নরকে বেছে নেবে।


19
+1: "লোকেরা অপরিচিত স্বর্গের উপরে একটি পরিচিত নরকে বেছে নেবে"।
জর্জিও

18

স্কটাকে কোটলিনের সাথে তুলনা করে জেটব্রেইনের একটি উইকি পৃষ্ঠা রয়েছে এবং কোটলিন যে কিছু জিনিস করে এবং স্কালা তা করে না এমন কিছু জিনিস রয়েছে বলে মনে হয়:

  • শূন্য-ওভারহেড নাল-সুরক্ষা। স্কালার অপশন রয়েছে যা একটি সিনট্যাকটিক এবং রান-টাইম র‍্যাপার
  • স্মার্ট কাস্ট
  • স্ট্যাটিক এক্সটেনশন ফাংশন। পরিবর্তে রানটাইম মোড়ানো
  • কোটলিনের ইনলাইন ক্রিয়াকলাপগুলি ননলোকাল জাম্পকে সহায়তা করে
  • স্ট্রিং টেম্পলেট। অনুরূপ কার্যকারিতা সহ স্কালার জন্য ২ য় পক্ষের সংকলক প্লাগইন রয়েছে: স্কেলাএইনহান্সড স্ট্রিংস
  • প্রথম শ্রেণির প্রতিনিধি। তৃতীয় পক্ষের প্লাগইনগুলির মাধ্যমেও প্রয়োগ করা হয়েছে: অটোপ্রক্সি মডিউল

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

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


13
স্বয়ংক্রিয় কাস্টগুলি ভীতিজনক শোনায়।
জোনাস

14
শিল্পে এই চক্রীয় বিপ্লব রয়েছে যেখানে বিকাশকারীরা এক চরম থেকে ফিরে আসবে এবং বার বার ফিরে আসবে। বৈশিষ্ট্যযুক্ত সমৃদ্ধ পাওয়ার কোডার ভাষাগুলি ভাল ছিল, তারপরে ইডিয়টসরা খারাপ কোড লিখেছিল এবং আমরা বিপদগুলি পেয়েছি যাতে লোকেরা জাভা হিসাবে অনুভূত সুরক্ষায় ফিরে যায়, এখন আবার পাওয়ার কোডারে ফিরে আসে। জাভাস্ক্রিপ্ট এবং ব্রাউজার ভিত্তিক কীভাবে ভাল ছিল তা দেখুন, তারপরে অ্যাপলেটগুলি এসেছিল এবং ব্রাউজার প্লাগইনগুলি সহ আরআইএ ভাল ছিল এবং জাভাস্ক্রিপ্ট খারাপ ছিল, তারপরে আধুনিক এজেএক্স ফ্রেমওয়ার্কগুলি এসেছিল এবং প্লাগইনগুলি সুরক্ষিত এবং খারাপ ছিল, তারপরে সিলভারলাইট এসেছিল এবং লোকেরা বলেছিল যে আজেএক্স মারা গেছে, এখন এইচটিএমএল 5 জনপ্রিয় এবং প্লাগইনগুলি আবার খারাপ! :)
ম্যাপেল_শ্যাফ্ট

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

2
@ জোনাস ওয়েল, কেবলমাত্র একটি প্রযুক্তিগত বিবর্তনের চূড়ান্ত উচ্চ স্তরের ওভারসিম্প্লিফিকেশন একটি মন্তব্যে মাপসই হবে। আমি ম্যাপেল_শ্যাফটের সাথে একমত নই, প্রযুক্তিগত বিবর্তনে পুনরাবৃত্তি অনুভূতি রয়েছে
ইয়ানিস

3
@ জোনাস এই কাস্টগুলি স্বয়ংক্রিয় নয় তবে স্মার্ট কাস্টস: আপনি যদি দেখেন তবে দেখতে পাবেন যে এটি এক নয়: কোটলিংলং.আর্গ
ডকস

11

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

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

আমি অবশ্যই জাভার চেয়ে স্কালায় বেশি উত্পাদনশীল এবং কোডটি আরও কমপ্যাক্ট এবং স্পষ্টতই কার্যকর (একবার আপনি যদি একটু স্ক্যালাকে জানেন) তবে) এর জটিলতা আমাকে অন্যের কাছে এটির প্রস্তাব দিতে দ্বিধা বোধ করে makes 20% জটিলতার সাথে এমন একটি ভাষা তবে দক্ষতার 80% একটি স্বাগত বিকল্প হতে পারে।

[লিগ্যাসি কোডের উল্লেখ মুছে ফেলার জন্য সম্পাদিত, নীচে মন্তব্য দেখুন]]

[২০১ add সংযোজন: স্কালা এখন জাভাস্ক্রিপ্টকে বিল্ড টার্গেট হিসাবে সমর্থন করে, কোটলিন এমন স্কেল-জাতীয় জাভা / গ্রোভি / জাভাস্ক্রিপ্ট প্রতিস্থাপনের জন্য এমন বৈশিষ্ট্য যুক্ত করা অবিরত করেছে। আমি এটি প্রথম যখন লিখেছিলাম তখন তার চেয়ে বেশি স্বতন্ত্র ভাষা]


আপনি কি দয়া করে "লেগেসি অংশ" আরও কিছুটা ব্যাখ্যা করতে পারেন? উদাহরণস্বরূপ, কোন পদ্ধতিগুলির অর্থ আপনি সেকসের পরিবর্তে তালিকাগুলি গ্রহণ করছেন?
কিরিতসুকু

আমি এটি সম্পাদন করতে যাচ্ছি, যেহেতু প্রতিবিম্বের পরে, স্ট্যান্ডার্ড স্ক্যালার লাইব্রেরিটি খুব কমই এটি করে। JSONArray একটি তালিকা নেয়, তবে বেশিরভাগ নির্মাতারা তা করেন না। নির্বিশেষে, তালিকাগুলির পক্ষে ডকুমেন্টেশনে এখনও একটি পক্ষপাতিত্ব রয়েছে, বিশেষত স্কালার ২ য় সংস্করণে প্রোগ্রামিংয়ের পরে কেবল স্কেলা ২.৮ রয়েছে যা ভেক্টরদের পূর্বাভাস দেয়। এবং এর কোড উদাহরণগুলিতে এমন কনস্ট্রাক্টর রয়েছে যা সেক আরও ভাল হবে এমন তালিকা তৈরি করে।
ডেভিড লেপপিক

হ্যাঁ, ২.১০ এর জন্য কিছু জিনিস ভাল ( +:উদাহরণস্বরূপ এক্সট্র্যাক্টর)। আমি আশা করি অদূর ভবিষ্যতে স্কালায় প্রোগ্রামিং আপডেট হবে। 2.11 এর জন্য কিছু জিনিস আরও উন্নতি করে। Stdlib ইতিমধ্যে অবচয় থেকে মুক্তি পেয়েছে এবং কিছুটা সঙ্কুচিত হবে। সম্ভবত scala.util.parsingstdlib এর বাইরেও সরানো হবে। আমরা দেখতে পাব ...
কিরিতসুকু

1
আমার যুক্ত হওয়া উচিত যে তালিকা বনাম ভেক্টরগুলির সাথে আমার আসল সমস্যাটি হ'ল তালিকায় আইটেম যুক্ত করা (উদাহরণস্বরূপ স্কালায় সেক) একটি প্রচলিত ক্রিয়াকলাপ, এবং এটি করার অনেকগুলি সমতুল্য উপায় রয়েছে, সবগুলিই মজাদার চিহ্নগুলির সাথে খুব কঠিন to মনে রাখবেন। ক্যানোনিকাল উপায়টি হ'ল ::, ::=বা +:=কোনটি প্রিপেন্ড করা যায় তবে বেশিরভাগ লোকেরা :+=কোনটি সংযোজন করে তা চায় তবে এটি কোনও তালিকার পক্ষে কার্যকর নয়।
ডেভিড লেপপিক

10

জেটব্রেইনস কোটলিনের পক্ষে তাদের উদ্দেশ্যগুলি খুব স্পষ্ট করে বলেছে :

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


8

আমি প্লে ফ্রেমওয়ার্কের সাথে কয়েক মাস গ্রহনে স্ক্যালাকে ব্যবহার করেছি। আমি ভাষা পছন্দ করি তবে এমন কিছু জিনিস রয়েছে যা আমি পছন্দ করি না।

আমার জন্য, জাভা থেকে অন্য ভাষায় স্যুইচ করার কারণটি আরও উত্পাদনশীল হতে হবে।

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


2
সম্ভবত আপনি পর্যাপ্ত পরিমাণ স্ক্যালাল আইডিয়ম শিখেন নি। আমি স্কালাকে ছোট প্রকল্পগুলির জন্য (সরঞ্জাম) ব্যবহার করেছি এবং আমি স্ক্যালায় (<2 বছর) এর চেয়ে জাভাতে (> 10 বছর) অনেক বেশি অভিজ্ঞতা অর্জন করার পরেও জাভার তুলনায় স্কালায় অনেক বেশি উত্পাদনশীল।
জর্জিও

4

কোটলিন সম্পর্কে জানেন না, তবে স্কালা এবং জেন্ড্যান্ড দুটি খুব আলাদা জন্তু।

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

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

আমি মনে করি যে উভয় পদ্ধতিই সঠিক, যদিও আলাদা different আমি স্কালাকে পছন্দ করি না (একটি ভাষা হিসাবে), তবে আমার প্রকল্পগুলিতে স্কালা জার যুক্ত করা পছন্দ করি না। আমি অ্যান্ড্রয়েডে স্কালাকে সঠিকভাবে ব্যবহার করতে পারি না, এটির (এটি ওজন এবং পারফরম্যান্সের সমস্যাও যুক্ত করে)। এক্সেন্ডেটি তেমন বৈশিষ্ট্যযুক্ত নয়, তবে এটি আমার জন্য ঠিক আছে (জাভা ভাষার চেয়ে এটি ব্যবহার করার পক্ষে অনেক বেশি মূল্যবান) এবং এটি প্রতিটি প্ল্যাটফর্মে এমনভাবে কাজ করে যেন আমি সরাসরি জাভাতে লিখছি।

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

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

এবং অ্যালিপিস সমর্থনটি দুর্দান্ত ...


… এবং এটি কেবলমাত্র গ্রহসে সমর্থিত। রাইট?
এবংগ্রহণটি

এক্সটেন্ডের একটি অতিরিক্ত রানটাইম আছে। প্রায় 3MB সর্বশেষ আমি পরীক্ষা করেছিলাম।
mm2001

@ মিম ২০০1 হ্যাঁ নির্ভরতা রয়েছে: আমার ছোট পরীক্ষা প্রকল্পে এক্সেন্ডেন্ডের জন্য প্রায় 300 কো এবং পেয়ার জন্য 2 এমও ( github.com/pdemanget/example/tree/master/xtend/message-send ) তবে এটি রানটাইম নয়, থিসগুলি ইনপুট আউটপুট, সংযোজন টীকা হিসাবে জিনিস জন্য অতিরিক্ত ক্লাস। এটি আমার কাছে মূল পয়েন্টটি সরিয়ে দেয় না যে স্ক্যালা এবং এক্সএন্ডেট 2 খুব আলাদা আলাদা ভাষা যা এই উত্তরে বলেছে।
পিডেমি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.