আমার মন স্থির হয়েছে যে আমি জাভা আমার দ্বিতীয় ভাষা হিসাবে শিখছি (আমি পার্ল বিকাশকারী)। তবে কেবলমাত্র অনলাইন টিউটোরিয়ালগুলির কিছু পড়তে পেরে আমি সত্যিই দুজনের মধ্যে কোনও মিল খুঁজে পাই না। জাভা শেখার সময় আমার কী সহজ সময় বোঝা যাবে?
আমার মন স্থির হয়েছে যে আমি জাভা আমার দ্বিতীয় ভাষা হিসাবে শিখছি (আমি পার্ল বিকাশকারী)। তবে কেবলমাত্র অনলাইন টিউটোরিয়ালগুলির কিছু পড়তে পেরে আমি সত্যিই দুজনের মধ্যে কোনও মিল খুঁজে পাই না। জাভা শেখার সময় আমার কী সহজ সময় বোঝা যাবে?
উত্তর:
পার্ল একটি উচ্চ-স্তরের, সাধারণ-উদ্দেশ্য, বহু-দৃষ্টান্ত, ব্যাখ্যা, গতিশীল প্রোগ্রামিং ভাষা। জাভা একটি উচ্চ-স্তরের, সাধারণ-উদ্দেশ্য, বেশিরভাগ একক দৃষ্টান্ত, স্ট্যাটিকালি টাইপড প্রোগ্রামিং ভাষা।
সুতরাং, উভয়ই উচ্চ-স্তরের :
একটি উচ্চ-স্তরের প্রোগ্রামিং ল্যাঙ্গুয়েজ একটি প্রোগ্রামিং ভাষা যা কম্পিউটারের বিবরণ থেকে শক্তিশালী বিমূর্ততা থাকে।
এবং সাধারণ উদ্দেশ্য :
কম্পিউটার সফ্টওয়্যারটিতে একটি সাধারণ উদ্দেশ্যমূলক প্রোগ্রামিং ল্যাঙ্গুয়েজ (জিপিএল) এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা বিভিন্ন অ্যাপ্লিকেশন ডোমেনে বিবিধ সফ্টওয়্যার লেখার জন্য ব্যবহৃত হয়।
মূলত এর অর্থ হ'ল পার্লের সাথে আপনি যা করতে পারেন তা আপনি জাভা দিয়েও করতে পারেন। এবং @ কাইলহডসন উল্লেখ করেছেন যে , তাদের উভয় বাক্য গঠন সি এবং সি ++ থেকে প্রাপ্ত এবং for
লুপ এবং if
স্টেটমেন্টের মতো সরল স্টাফের জন্য সিনট্যাক্সগুলি মূলত একই - এবং @ দিপানমেতা নোট হিসাবে , উভয়ই আবর্জনা সংগ্রহ করা । এবং অবশ্যই উভয়ই অত্যন্ত জনপ্রিয় এবং প্রাণবন্ত সম্প্রদায় রয়েছে।
কিন্তু সেখানেই মিলগুলি থেমে যায়। পার্ল হ'ল বহু-দৃষ্টান্ত, প্রোগ্রামিং প্যারাডাইমগুলির বিস্তৃত পরিসরকে সমর্থন করে:
পার্ল একটি একক দৃষ্টান্তকে উত্সাহ দেয় না, এগুলি মূলত সমান এবং আপনি যেটাকেই সেরা স্যুট মনে করছেন তা বেছে নিতে আপনি নির্দ্বিধায়, অবশ্যই আপনাকে কোনও একক দৃষ্টান্তের মধ্যে সীমাবদ্ধ না রেখেই আপনি মিশ্রণ করতে এবং মিলিয়ে নিতে পারেন। অন্যদিকে, জাভা বেশিরভাগ শ্রেণিভিত্তিক অবজেক্ট ওরিয়েন্টেড ভাষা। জেনেরিক প্রোগ্রামিংয়ের জন্য সমর্থন রয়েছে তবে শিক্ষানবিস হিসাবে আপনার জাভা সম্পর্কে কঠোরভাবে একটি শ্রেণিভিত্তিক অবজেক্ট ওরিয়েন্টেড ভাষা হিসাবে ভাবা উচিত।
সুতরাং পার্ল আপনার কোড 1 গঠনের একাধিক উপায়ের অনুমতি দেয় , যেখানে জাভা কেবল একটি। এটি কোনও খারাপ জিনিস নয় (বা একটি ভাল জিনিস), এটি একেবারেই আলাদা। আপনি যদি কোনও অবজেক্ট ওরিয়েন্টেড পার্ল কোড না লিখে থাকেন তবে প্রথমে জাভা কিছুটা এলিয়েন বলে মনে হতে পারে। হতাশ হবেন না, অবজেক্ট অরিয়েন্টেশন এমন কিছু যা আপনাকে শেষ পর্যন্ত শিখতে হবে, আপনি যদি সফ্টওয়্যার বিকাশের ক্ষেত্রে ক্যারিয়ার বিবেচনা করছেন, এবং জাভা শেখা কোনও অবজেক্ট অরিয়েন্টেশনের প্রাথমিক ধারণাগুলি শেখার একটি ভাল উপায় - তবে নিখুঁত উপায় নয়, তবে অবশ্যই একটি ভাল উপায়।
এবং যেমনটি আপনি জানেন, পার্লকে ব্যাখ্যা করা হয়েছে, যেখানে জাভা ভাল ... পুরোপুরি একটি আলাদা জন্তু । জাভাতে আপনি আপনার কোডটি পার্লের মতোই লিখেছেন এবং তারপরে আপনি এটি সংকলন করেন । ফলাফল কার্যকর করা যায় না, তবে জাভা বাইটকোড । এই মধ্যস্থতাকারী বিন্যাসটি জাভা ভার্চুয়াল মেশিনে (শেষ পর্যন্ত!) কার্যকর করা হয় যা পার্ল দোভাষী এর সাথে কিছুটা সাদৃশ্যপূর্ণ। একজন জেভিএম চালানোর জন্য একটি জাভা প্রোগ্রামের জন্য পূর্বেই ইনস্টল করা আবশ্যক, simirarly আপনি একটি পার্ল স্ক্রিপ্ট চালানোর জন্য একটি পার্ল অনুবাদক ইনস্টল করতে হবে উপর 2 ।
পার্ল ব্যাকগ্রাউন্ড থেকে আসা, সবচেয়ে গুরুত্বপূর্ণ বিষয়টি মনে রাখতে হবে বাইটোকোড পদক্ষেপের সংকলন: প্রতিবার আপনি জাভা উত্স ফাইলে কোনও পরিবর্তন আনলে আপনাকে এটি পুনরায় সংকলন করতে হবে। এটি প্রথমে ক্রেজি মনে হতে পারে তবে সংকলনের খুব সুন্দর পরিণতি হয়েছে: আপনার কোডটি এই পর্যায়ে বিভিন্ন ত্রুটির জন্য পরীক্ষা করা হয় এবং সংকলকটি যদি কিছু থাকে তবে প্রক্রিয়াটি শেষ করতে অস্বীকার করে এবং কখনও কখনও আপনাকে ত্রুটিগুলি চিহ্নিত করতে সহায়তা করে সহায়ক বার্তা (সর্বদা বার্তা থাকে তবে কেবল কখনও কখনও সেগুলি সহায়ক)।
যা আমাদের শেষ বড় পার্থক্যে নিয়ে আসে:
পার্ল গতিশীল 3 :
ডায়নামিক প্রোগ্রামিং ল্যাঙ্গুয়েজ একটি শব্দ যা কম্পিউটার বিজ্ঞানে বিস্তৃতভাবে ব্যবহৃত হয় এমন একটি শ্রেণীর উচ্চ স্তরের প্রোগ্রামিং ভাষার বর্ণনার জন্য যা রানটাইম সময়ে চালিত করে এমন অনেকগুলি সাধারণ আচরণ যা অন্য ভাষাগুলি সংকলনের সময় সম্পাদন করতে পারে, যদি তা হয় তবে। এই আচরণগুলি প্রোগ্রামের এক্সটেনশন অন্তর্ভুক্ত করতে পারে, নতুন কোড যুক্ত করে, বস্তু এবং সংজ্ঞা প্রসারিত করে বা টাইপ সিস্টেমটি সংশোধন করে, সমস্ত প্রোগ্রামের সঞ্চালনের সময়।
এবং গতিশীলভাবে টাইপ করা 4 :
একটি প্রোগ্রামিং ল্যাঙ্গুয়েজটি গতিশীল টাইপড বলা হয় যখন বেশিরভাগ টাইপ চেকিং রান-টাইমে সংকলন-সময়ের বিপরীতে সঞ্চালিত হয়।
এবং জাভা স্থিরভাবে টাইপ করা হয় :
একটি প্রোগ্রামিং ল্যাঙ্গুয়েজটি রান-টাইমের বিপরীতে কম্পাইল-টাইম চলাকালীন টাইপ চেকিংয়ের সময় স্ট্যাটিক টাইপিং ব্যবহার করার কথা বলে।
কোনটি এটি যথাসম্ভব সহজলভ্য করার অর্থ, জাভাতে আপনাকে ব্যবহার করার আগে আপনার ভেরিয়েবল এবং পদ্ধতিগুলির ধরণটি ঘোষণা করতে হবে। অন্যান্য পার্থক্য রয়েছে, তবে আমি সেগুলি নিজের দ্বারা আবিষ্কার করার মজাটি নষ্ট করতে চাই না :)
এবং, অবশেষে, একটি খুব গুরুত্বপূর্ণ পার্থক্য রয়েছে: জাভা হলেন একাডেমিয়া 5 এবং কর্পোরেট বিশ্বের স্নেহময় ভাষা , যখন আপনি খুব কমই কোনও একাডেমিক সেটিংয়ে মিলিত হবেন (যেখানে আমি তার সাথে প্রথম দেখা হয়েছিল), এবং এর ক্যারিয়ারের দৃষ্টিভঙ্গিগুলি সঙ্কুচিত হচ্ছে (এখনও বেশ কয়েকটি কাজ, তবে জাভা,। নেট ভাষা বা পিএইচপি যতটা কাছে নেই)। আমি কারণগুলির বিষয়ে মন্তব্য করব না, আমি কেবল (দুঃখজনক) ঘটনাগুলি বলছি। যেহেতু আপনি এখনও খুব অল্প বয়স্ক, তাই জাভা শিখার পরে আপনি কম্পিউটার সায়েন্স ডিগ্রির জন্য কিছুটা প্রস্তুত হবেন, যদি আপনি সেই পথটি অনুসরণ করতে চান তবে।
অবশ্যই পার্লকে ছেড়ে দিবেন না, তবে জাভা অন্বেষণ করুন। এগুলির তুলনায় এগুলি তুলনায় পৃথক পৃথক হ'ল এর অর্থ হ'ল আপনি একেবারে ভিন্ন পদ্ধতি এবং প্রোগ্রামিং মানসিকতা শিখবেন, এটি একটি কঠিন পথ তবে শেষ পর্যন্ত আপনাকে আরও উন্নত প্রোগ্রামার করে তুলবে।
2 পার্ল সম্প্রদায় পার্টের মাধ্যমে পার্ল ভার্চুয়াল মেশিনের সম্ভাব্যতা সক্রিয়ভাবে অনুসন্ধান করছে ।
3 ডায়নামিক মানে সর্বদা ডায়নামিক টাইপ করা হয় না।
৪ পার্ল ব্যবহারকারীর সংজ্ঞায়িত প্রকারের জন্য গতিশীলভাবে টাইপ করা হয়, স্থায়ীভাবে অ্যারে, হ্যাশ, স্কেলার এবং সাবরুটাইনগুলির মধ্যে পৃথকভাবে টাইপ করা হয় এবং এর মাধ্যমে দৃ strongly়ভাবে টাইপ করা হয় use strict
, তাই মূলত এটি একটি ভেরিয়েবল টাইপ সিস্টেমের ভাষা, তবে কিছুটা বোধগম্যতা বজায় রাখার জন্য এটিকে গতিশীল বলি টাইপ করা।
5 আপত্তিজনক বিষয় হিসাবে, জোল স্পলস্কি জাভাস্কুলগুলির দ্য বিপদগুলিতে লিখেছেন ।
ঠিক আছে, তারা উভয় সি বাক্সের মতো সি ব্যবহার করে - সেমিকোলন, কোঁকড়া ধনুর্বন্ধনী এবং এর মতো। ব্যক্তিগতভাবে, যখন আমি বেশ কয়েক বছর আগে পার্ল থেকে জাভাতে স্যুইচ করার চেষ্টা করেছি - সবচেয়ে বড় জিনিস যা আমাকে ট্রিপ করেছিল তা হ'ল অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং। আমি পার্লে কিছু বস্তুর বিকাশ করেছি, তবে Nouns কিংডমের জীবন কল্পনা করার চেষ্টা করে এটি আমার মাথাতে আঘাত করেছিল।
বর্তমানে নির্বাচিত একজন যেহেতু বিকল্প উত্তরে ছুরিকাঘাত করা দু'জনের মধ্যে পার্থক্যের দিকে মনোযোগ দিচ্ছে বলে মনে হচ্ছে (পার্ল এবং জাভার মধ্যে সত্যিকারের অনেক মিল নেই)।
যদি আপনার পার্ল কোডটি খুব কঠোর এবং অরথোগোনাল (ভাল-পরীক্ষিত, ভাল-নথিভুক্ত, মূস বা কঠোর অবজেক্ট-ওরিয়েন্টেশন ব্যবহার করে), তবে জাভাতে প্রচলিত অরথোগোনাল এবং তেমন মত প্রকাশযোগ্য নয় বলে এই ধারণাগুলি খুব ভালভাবে জাভাতে বহন করবে।