জাভা বিকাশকারীরা স্কালার বিষয়ে কী ভাবেন? [বন্ধ]


19

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


3
পাইথন আমার ধর্ম, সুতরাং আমি কেবল গুডো স্কালাকে কী মনে করি সে বিষয়েই যত্নশীল। neopythonic.blogspot.com/2008/11/scala.html
চাকরী

7
স্কালা এমন একটি দুর্দান্ত ভাষা যে এটি স্কেল সম্প্রদায়ের এই সমস্ত মহান মনকে কেবল আকর্ষণ করে না, তবে দুঃখের বিষয় এছাড়াও অনেক viousর্ষা বিদ্বেষী যারা ভাষা এবং এটির ব্যবহারকারীদের আক্রমণ করার জন্য মূলত কিছু খুঁজে পাওয়ার চেষ্টা করে।
Soc

@ এসওসি: কেবল পরিষ্কার করে বলা: আমি স্কালাকে ঘৃণা করি না, এবং যে লোকেরা এটি ব্যবহার করে তারা সম্ভবত আমি এ সম্পর্কে যা ভাবি সে সম্পর্কে কম যত্ন নিতে পারে না । আমি মনে করি এটি খুব জটিল। এখানেই শেষ. যাদের জটিল মস্তিষ্ক রয়েছে তাদের পক্ষে জটিলতা সব ঠিক হতে পারে। আমি না :-)
জুনাস পুলক্কা

3
দুঃখিত, আমি তখনই বিরক্ত হই যখন লোকেরা তাদের দাবির ব্যাক আপ না করে মিথের পুনরাবৃত্তি করতে থাকে ating
soc

2
@ এসওসি: আচ্ছা, এই পুরো প্রশ্নটি সম্পূর্ণ বিষয়গত, সুতরাং কোনও উত্তর সঠিক, এটি মিথ হোক বা না হোক।
জুনাস পুলাক্কা

উত্তর:


18

আমি এখন এক বছরেরও বেশি সময় ধরে স্কালার প্রোগ্রামিং করছি, তাই আমি এই প্রশ্নের উত্তর দেওয়ার জন্য নিজেকে এক বছর পিছিয়ে রাখার চেষ্টা করব।

  • স্কাল কোড জাভা কোডের চেয়ে বেশি সংক্ষিপ্ত (কোনও সেটার বা গেটর নেই, প্রচুর ধরণের তথ্য অনুমান করা যায়)
  • এক্সএমএল আক্ষরিক জন্য অন্তর্নির্মিত সমর্থনটি খুব আবেদনময়ী।
  • জাভা লাইব্রেরির সামঞ্জস্যতা এবং আন্তঃক্রিয়াশীলতা দুর্দান্ত
  • নির্দিষ্ট ফাংশনাল আইডিয়ামগুলির জন্য সমর্থন সতেজ হয় (বোঝা, বন্ধ, ল্যাম্বদা ফাংশন, মানচিত্র, ভাঁজ, হ্রাস)
  • ভাষা নির্মাতা অন্তর্ভুক্ত করতে চান নি এমন দুর্দান্ত বৈশিষ্ট্য বলে মনে হয় না

উপরের পয়েন্টগুলি আমি কমলা শিখতে শুরু করার আগে স্ক্যালাকে নিয়ে যা ভেবেছিলাম তা কমবেশি ছিল।

এক বছরের মধ্যে আমি এখানে যা পেয়েছি তা এখানে:

  • সিঁড়ির বই কেনা একটি দুর্দান্ত বিনিয়োগ ছিল এবং আমার নিজের শিখতে কয়েক ঘন্টা জিনিস বাঁচিয়েছে
  • সিনট্যাক্সটির কিছু বিড়ম্বনা রয়েছে এবং এমন কিছু সময় ছিল যেখানে আমি সত্যিই হতবাক হয়ে পড়েছিলাম কেন কিছু বৈধ নয়। বাণিজ্যটি বন্ধ হয়ে যাওয়ার পরে আপনি পরিচিত হয়ে উঠলে কোডের মধ্যে কম বিশৃঙ্খলা থাকে এবং এটি পড়া সহজ is নোট করুন যে কোডটি লেখার চেয়ে আপনি যদি পড়েন তবে এটি সত্যিই কোনও সমস্যা নয়।
  • ২.৮-তে সংগ্রহ লাইব্রেরিটি ব্যবহার করে আনন্দিত। জাভাতে ফিরে আসা কঠিন।
  • এক্সএমএল আক্ষরিক সুন্দর, তবে কিছু প্রাথমিক বিষয়গুলির বাইরে, আমাকে জাভা লাইব্রেরি ইকোসিস্টেমের কাছে পৌঁছাতে হয়েছিল। যদিও এটি সুবিধাজনক।
  • স্কালা থেকে জাভা লাইব্রেরি ব্যবহার করা অত্যন্ত সহজ এবং সুবিধাজনক। জাভা থেকে স্কালার ক্লাস ব্যবহার করা কিছুটা জটিল, তবে এটি কার্যকর হয়।
  • আমি ইন্টেলিজ আইডিইএ সম্প্রদায় সংস্করণে স্যুইচ করেছি এবং এটি নিখুঁত না হলেও এটি যথেষ্ট ভাল।
  • ভাষা নির্মাতা বৈশিষ্ট্যের সেট সম্পর্কে সত্যই চিন্তা করেছিলেন এবং সমস্ত কাজ একসাথে খুব সুন্দরভাবে করেছেন। জাভা (বৈশিষ্ট্য সহ) এর চেয়ে অবজেক্ট ওরিয়েন্টেড সমর্থনটি ভাল এবং আপনি ক্রিয়ামূলক প্রোগ্রামিং করতে পারেন।
  • এটি এমন একটি ভাষা যা স্পষ্টতই কিছু জাভা বিকাশকারী একটি আবেগের সাথে ঘৃণা করে। আমার জন্য এটি প্রোগ্রামিংয়ের আনন্দ ফিরিয়ে এনেছে।

21

ঠিক আছে, আমি মনে করি স্কালা খুব জটিল। এটি সি ++ এর মতো অনুভব করে যে এতে বিভিন্ন কাজ করার বিভিন্ন উপায়ে অগণিত রয়েছে। কেউ কেউ এটিকে "nessশ্বর্য", "ভাবপ্রবণতা" বা "শক্তি" বলবেন তবে আপনার মাইলেজটি আলাদা হতে পারে vary অনেক বাস্তব বিশ্বের প্রকল্পে আপনাকে কৃত্রিমভাবে সীমাবদ্ধ করতে হবে আপনি কোন ভাষা বৈশিষ্ট্যগুলি ব্যবহার করতে যাচ্ছেন এবং কোনটি নয়, যাতে জড়িত সমস্ত বিকাশকারী ভাষার একই উপসেটটি বলতে পারে।

ফাংশনাল প্রোগ্রামিংয়ের জন্য আমি ক্লোজারকে বেশি পছন্দ করি যা স্কালার চেয়ে সহজ simp

পবিত্র যুদ্ধ শুরু হোক ;-)


2
যদি কেবল রিচ হিকিই যতটা যত্নশীল হন। জেভিএম সম্পর্কে তিনি যেমন করেন তেমন ...
চাকরি

আপনি কী জিনিসগুলি খুব জটিল বলে মনে করেন সে সম্পর্কে যদি আপনি আরও কিছুটা ব্যাখ্যা করেন তবে এটি সহায়ক হবে।
রিচার্ড ওয়ারবার্টন

4
@ রিচার্ড ওয়ারবার্টন: স্কালার জটিলতার বিষয়গুলি (বা যেমন মার্টিন ওডারস্কি বলেছেন, "শক্তি এবং স্কেলার একটি সমস্যা: এর এক্সটেনসিবিলিটি") প্রচুর ফোরামে ব্যাপকভাবে আলোচিত হয়েছে। এরকম একটি আলোচনা এখানে । আমি যে জটিল বলছি না == প্রতি খারাপ । সমস্যা হলো, প্রোগ্রামারদের উজ্জ্বল 1% Scala সঙ্গে অলৌকিক কাজ করতে সক্ষম হতে পারে, বেশীরভাগ শুধু "এটা পাবেন" যাচ্ছে না, এবং যে হয় বাস্তব জগতে ব্যবহারের জন্য একটি সমস্যা। এটি একটি ফর্মুলা 1 কারের মতো: বিশাল সংখ্যক লোক এ জাতীয় জন্তু চালাতে পারবে না।
জুনাস পুলাক্কা

2
ক্লোজারকে বৈধ বিকল্প হিসাবে উল্লেখ করার জন্য +1 (যখন এটি কার্যকরী প্রোগ্রামিংয়ের কথা আসে)।
অলিভার ওয়েইলারের

ক্লোজার খুব দুর্দান্ত, তবে এটি কি স্কালার মতো পারফর্মেন্ট? এই সমস্ত স্থির টাইপিং ছাড়া, এটি কি রিফ্যাক্টর হিসাবে সহজ? (পাইথনকে রিফ্যাক্টরিং করা বেশ শক্ত, উদাহরণস্বরূপ - আমি এর জন্য রিফ্যাক্টরিংগুলি লিখেছিলাম।)
9000

13

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

আমি সত্যিই স্কেলা পছন্দ করার চেষ্টা করেছি, আমি সত্যিই করেছি, তবে আমি দেখতে পেয়েছি এটি সম্পূর্ণ কুৎসিত এবং বুঝতে খুব কঠিন। আমি নাটকীয়ভাবে ভেবেছিলাম যে স্কালার যদি জাভা সম্পর্কে আমাদের সেরা উত্তর হয় তবে অবশ্যই আমি ভুল হয়ে গিয়েছিলাম এবং এমন ভাষায় কাজ করা চালিয়ে যাওয়ার জন্য শাস্তি পেয়েছি যা আমার পছন্দ হয়নি ...

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

(আমি চালিয়ে যেতে পারলাম তবে এই পোস্টটি স্ক্যানাল সম্পর্কে বোঝানো হয়েছে, ফ্যান্টম নয়, তাই আমি এখানেই থামলাম My আমার পছন্দটি স্পষ্ট , তবুও এই পোস্টটির সাথে দুটিয়ের তুলনা করা যায় Sc স্ক্যানার তুলনায় ফ্যান্টম কেন এত কম মনোযোগ দেয় তা আমি কখনই বুঝতে পারি নি। তবে আপাতদৃষ্টিতে আমি একমাত্র নই, যদি আপনি শেষ পর্যন্ত এই পডকাস্ট [ এমপি 3 ] শোনেন ))


9

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

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

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

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

আইডিই প্রশ্ন সম্পর্কে: সমস্ত কিছুর জন্য ইমাস ব্যবহার করার পরে, আমার আইডিই সংক্রান্ত সমস্ত সমস্যা চলে গেল :-)


9

আমি অনেক কারণে স্কালাকে পছন্দ করি তবে এর মধ্যে একটি রয়েছে যা প্রায়শই উপেক্ষা করা হয়: এর সরলতা।

স্কেল ওবেরনের মতো সহজ হতে পারে না তবে এটি অন্য কয়েকটি ভাষার তুলনায় অনেক সহজ। স্কালাল ভাষা স্পেসিফিকেশনটি 160 ডলার পৃষ্ঠা, জাভা ভাষার স্পেসিফিকেশনটি 600 ডলার (কেবল ভাষা, জেভিএম বা লাইব্রেরি নয়!), ইসিএমএ -৩৪৪ সি # ল্যাঙ্গুয়েজ স্পেসিফিকেশন (যা আফাইক ভিজ্যুয়াল সি # ২.০ এর একটি উপসেটের সাথে মিলেছে) 40 440 পৃষ্ঠাগুলি (এটি লিনকিউ কোয়েরি বোধগম্যতা, ল্যাম্বডা এক্সপ্রেশন, এক্সটেনশন পদ্ধতি, জেনেরিক কো- এবং বিপর্যয়, dynamicডিফল্ট মানগুলির সাথে alচ্ছিক আর্গুমেন্ট, কীওয়ার্ড আর্গুমেন্টস ইত্যাদি var)) এমনকি ECMAScript 5.1 এর জন্য বর্তমান খসড়াটি 210 ডলার পৃষ্ঠায় বড়। এবং অবশ্যই আমার নিজের "ডিফল্ট" ভাষা, রুবি, যার বর্তমান আইএসও খসড়া 310 ডলার পৃষ্ঠাতে ওজনযুক্ত, যা কেবল রুবি ১.৮..6, ১.৯.১ এবং ১.৯.২ এর ছেদের প্রায় অসাধারণ ক্ষুদ্র উপসেটকে নির্দিষ্ট করে।


6
ভাষার নির্দিষ্টকরণের পৃষ্ঠাগুলির সংখ্যা এটির জটিলতার একটি আকর্ষণীয় পরিমাপ। এটি আশ্চর্যজনক যে কীভাবে স্কালা এই সম্পর্কে মতামত ভাগ করে। পাইথন জটিল, বা সি ++ সহজ বলে কেউই বলবে না, তবে স্কালা উভয় বলে মনে হচ্ছে :-) উদাহরণস্বরূপ স্কালা.এল.আর.গঙ্গ
জুনাস পুলাক্কা

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

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

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

3
কিসের অপেক্ষা ? আপনি কেন অনুমিত আকারের সাথে জটিলতা পরিমাপ করার চেষ্টা করবেন? এটি একটি ভয়ানক ধারণা।
স্মার্টনট 7007

9

স্ক্যালাকে নিয়ে যা সফল হয় তা এখানে:

  • নাল পয়েন্টারটি শুরু করার জন্য বেশ খারাপ ধারণা ছিল। হোয়ার এটিকে তার "বিলিয়ন ডলারের ভুল" হিসাবে অভিহিত করেছেন, তবে স্কালা আরও খারাপ। এটিতে নাল, নুল, নন এবং নীল নামের বস্তু রয়েছে। নাল জাভা সঙ্গে আন্তঃব্যবহারযোগ্যতা জন্য। নাল হ'ল নাল পয়েন্টার ফর্ম ডাব্লু 3 সি ডম স্পেসিফিকেশন, নলের সাথে প্রতিস্থাপন করা উচিত ছিল না এবং নীল একটি ফাঁকা জিনিস।

  • ভাষার কন্সট্রাক্টসগুলি যখন হ্যাকি হিসাবে দেখা দেয় তখন সাধারণত প্রোগ্রামারই ভাষাটিকে দোষী করে না, তাকেই দোষ দেওয়া হয়। স্কালায়, তবে, মূল ভাষাটিতে ইতিমধ্যে গ্রন্থাগার ক্লাস রয়েছে যার কেবলমাত্র নথিভুক্ত আচরণ "এটি একটি হ্যাক"। বিশ্বাস করবেন না? Scala.xml.Group এর জন্য স্কেলডোক অনুসন্ধান করুন।

  • সর্বশেষে, স্কালার খারাপভাবে নথিভুক্ত করা হয়। অফিসিয়াল ডকুমেন্টেশনে খুব কমই স্কাল ক্লাস উদাহরণ কোড সহ আসে। স্কালার জাভা থেকে শেখার জন্য উল্লেখযোগ্যভাবে কঠিন এবং কম্পিউটার বিজ্ঞানে গভীর জ্ঞানের প্রয়োজন।

স্কেল-হেটরের ভুল হওয়া এড়াতে, আমি এটি সম্পর্কে যা পছন্দ করি তা এখানে:

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

10
nullএটি জাভার নাল পয়েন্টার, Nullএটি এর "টাইপ"। Noneসম্ভাব্য একটি "রাষ্ট্র" Option[T], একটি বা শূন্য উপাদানগুলির সহ একটি সংগ্রহ। Nilএকটি খালি তালিকা। আপনি এটিকে ভয়ঙ্কর করে তুলতে চাইলে তা হয় না। এই ধরনেরগুলি একে অপরের সাথে প্রতিস্থাপনযোগ্য বা বিনিময়যোগ্য নয় এবং তাদের যেমন করা উচিত ঠিক তেমন আচরণ করে।
Soc

9

স্কলা হয় জটিল। এর আশেপাশে কোন উপায় নেই! এর সিনট্যাক্সটি অত্যন্ত নমনীয় এবং অসংখ্য উপায়ে কাস্টমাইজ করা যায় (সমস্ত অপারেটর / ইনফিক্স স্বরলিপি উপরে) - এবং টাইপ সিস্টেমে আমার জানা অন্য ভাষার চেয়ে আলাদা বৈশিষ্ট্য রয়েছে।

সুতরাং জিনিসগুলি যেমন সোজা নয় যেমন হাস্কেল: টাইপচ্লাসগুলি সমস্ত coverেকে রাখার জন্য।

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

  • অন্তর্নিহিত মান
  • অন্তর্নিহিত ফাংশন
  • Existentials
  • ওয়াইল্ডকার্ড
  • বৈশিষ্ট
  • ইন্টারফেস
  • বিমূর্ত ক্লাস
  • কেস ক্লাস
  • কাঠামোগত প্রকার
  • জেনেরিক বাধা
  • সীমা দেখুন
  • নামবিহীন প্রকারের

তাদের মধ্যে বাছাই করা প্রথমে কঠিন বলে মনে হচ্ছে এবং কেউ যদি সহজেই ভাবতে পারে যে কোনও সমস্যার সঠিক সমাধান খুঁজে পেয়েছে । এমনকি অপব্যবহার করে হ্যাকি স্টাফ উত্পাদন করা খুব সহজ implicit

তবে মজার বিষয় হ'ল: স্কালা কাজ করে। কখনও কখনও কেন এটি বুঝতে অসুবিধা হয় (বিশেষত কী অন্তর্নিহিত রূপান্তরগুলি + উত্তরাধিকার + ... কিছু বস্তুর কার্যকারিতা পেয়েছে তা আবিষ্কার করে X) তবে আপনাকে বেশিরভাগ সময় বিরক্ত করার দরকার নেই।

স্ক্যালাকে যতটা সম্ভব সোজা করে লিখুন এবং এটি কার্যকর হবে। সম্ভব সমস্ত কিছুর দ্বারা বিভ্রান্ত হবেন না এবং আপনার যা প্রয়োজন কেবল তা ব্যবহার করুন। এবং আপনার যদি কিছু প্রয়োজন হয় তবে আপনি নিশ্চিত হতে পারেন যে কোনওভাবে স্কালায় এটি রয়েছে;)

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

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


1
"সমস্ত অপারেটর / ইনফিক্স স্বরলিপি উপরে" - কেবলমাত্র স্কেলে অপারেটরদের অভাব রয়েছে। :) এটা ঠিক পদ্ধতি।
ব্যবহারকারী অজানা

6

এটি একটি দুর্দান্ত ভাষা যা জাভা থেকে অনেক উপায়ে সহজ।

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

যদি আপনি কোনও ভাষা সি ++ এর মতো জটিল হওয়ার বিষয়ে উদ্বিগ্ন হন তবে আমি ক্লজুর মতো প্লেগের মতো এড়িয়ে যাব। ক্লোজারের চেয়ে স্কালা আরও জটিল বলে মনে করা যে কোনও একটি বা উভয় ভাষা সম্পর্কে সম্পূর্ণ অজ্ঞ যারা তাদের পক্ষে ফ্যালব্যাক যুক্তিতে পরিণত হয়েছে।

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

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


6
আপনার স্কালা বনাম ক্লোজার ইনপুটটির জন্য ধন্যবাদ, তবে ওপি আমি কী সম্পর্কে জিজ্ঞাসা করছি?
মার্টিন উইকম্যান

আকর্ষণীয় পয়েন্ট পুনরায়: ম্যাক্রোস। কিছুটা চিন্তিতও। ম্যাক্রো বা অনুরূপ স্কেলে পাওয়া যায়, বা পুরো "কৃত্রিমভাবে সীমাবদ্ধ" জিনিসটি কোনও বিভ্রান্তি?
আরমান্ড

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

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

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

4

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


2

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.