Mastering Kotlin (Basics)

Bangla Kotlin language course - basics

Mastering Kotlin (Basics)

  • ভূমিকা 0/2

    কটলিন - এন্ড্রয়েড মোবাইল এ্যাপ ডেভলপমেন্ট ও সার্ভার সাইড স্প্রিং ফ্রেমওয়ার্কে অনলাইন সফটওয়্যার ডেভলপমেন্ট করার জন্য জনপ্রিয় প্রোগ্রামিং ল্যাঙ্গুয়েজ

  • প্রথম প্রজেক্ট - Hello World 0/8

    এখানে দেখবো কিভাবে JDK এবং Intellij IDEA ডাউনলোড ও ইনস্টল করে নতুন প্রজেক্ট নেয়া যায় ও রান করা যায়।

  • বিবিধ 0/6

    বিভিন্ন পারিপার্শিক বিষয় নিয়ে আলোচনা যেগুলো কোড করার সময় প্রয়োজন হয়।

  • ভেরিয়েবল ও ডাটা টাইপ 0/8

    ভেরিয়েবল ও ভেরিয়েবলের ডাটা টাইপ নিয়ে আলোচনা

  • অপারেটর + প্রজেক্ট 0/9

    বিভিন্ন ধরণের অপারেটর নিয়ে আলোচনা

  • কন্ট্রোল ফ্লো - if else & Loop + প্রজেক্ট 0/8

    কোড এক্সিকিউশন নিয়ন্ত্রণ করার জন্য if-else, when, for, forEach, while, break, continue ইত্যাদির ব্যবহার নিয়ে আলোচনা।

  • ফাংশন - Functions 0/8

    কটলিনে রয়েছে লাইব্রেরি ফাংশন এবং আমরা তৈরি করতে পারি ইউজার ডিফাইনড ফাংশন। এগুলো নিয়েই এই সেকশন।

    • Lecture 7.1
      স্ট্যান্ডার্ড লাইব্রেরি ফাংশন
      Preview
      10m
  • স্টিংয়ের বিস্তারিত - String in Detail 0/5

    স্ট্রিং নিয়ে প্রচুর অপারেশন করতে হয় আর এর ব্যাপ্তিও বেশ বড়, এখানে স্ট্রিংয়ের প্রোপার্টি ও ফাংশনগুলো নিয়ে আলোচনা করা হয়েছে।

  • এক্সেপশন হেন্ডলিং - Exception Handling 0/5

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

    • Lecture 9.1
      ট্রাই – ক্যাচ – পার্ট – ১
      Preview
      10m
  • রেঞ্জ - Range 0/5

    কটলিনে রেঞ্জের মাধ্যমে একটি ভ্যালু থেকে অন্য আরেকটি ভ্যালুর ব্যাপ্তি বুঝায়

    • Lecture 10.1
      রেঞ্জ – পার্ট – ১ (ফর লুপ)
      Preview
      6m
  • কালেকশন - Collections 0/11

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

  • উপসংহার 0/1

Mastering Kotlin (Basics)

JVM, JRE, JDK, JIT

 

কটলিন যেহেতু জাভা ভার্চুয়াল মেশিনের (JVM) উপর রান করে। তাই প্রথমে JVM, JRE এবং JDK এগুলো সম্পর্কে ধারণা থাকা জরুরি।

JVM = Java Virtual Machine
JRE = Java Runtime Environment
JDK = Java Development Kit

JVM:
জাভা ভার্চুয়াল মেশিন হলো জাভার জন্য একটা কৃত্রিম যন্ত্র। ভার্চুয়াল মেশিন বা কৃত্রিম যন্ত্র বলার কারন হলো এটার বাস্তব অস্তিত্ব নেই, আমরা এটাকে ছুঁতে বা ধরতে পারি না, এটা শুধু একটা সফটওয়্যার। জাভা/কটলিন/গ্রুভি/স্কেলা ইত্যাদি আরো অনেক ল্যাঙ্গুয়েজ আছে যেগুলি জাভা বাইটকোডে কম্পাইল হয়। এই বাইট কোড JVM এর উপর চালানো হলে তা মেশিন কোডে রুপান্তরিত হয়। হার্ডওয়্যার এবং অপারেটিং সিস্টেম (উইন্ডোজ/ম্যাক/লিনাক্স) যাই থাকুক না কেন যদি এই JVM থাকে তবে তাতে এই কম্পাইল করা বাইট কোড রান করানো যাবে। এজন্য এই সকল ল্যাঙ্গুয়েজ দিয়ে লেখা প্রোগ্রাম প্লাটফর্ম ইন্ডিপেন্ডেন্ট হয়। এটা জাভার প্রধান কিছু কাজ করে যেমন: মেমোরি ম্যানেজমেন্ট, গার্বেজ কালেকশন, সিকিউরিটি ইত্যাদি। JVM হলো JRE এর একটা অংশ। তাই JVM ইনস্টল হবে JRE ইনস্টল করলে।

JRE:
জাভা রানটাইম এনভায়রনমেন্ট হলো জাভা ভার্চুয়াল মেশিনে বাইটকোড রান করার জন্য একটা মাধ্যম বা প্লাটফর্ম। JRE হলো JVM সহ Java Binaries এবং অন্যান্য class এর সমন্বিত ব্যবস্থা যার মাধ্যমে প্রোগ্রাম রান করতে পারে। জাভা/কটলিন এর প্রোগ্রাম রান করার জন্য সিস্টেমে JRE ইনস্টল করা থাকতে হবে।

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

JRE, JDK হলো প্লাটফর্ম ভিত্তিক। উইন্ডোজ, ম্যাক আর লিনাক্সের জন্য আলাদা আলাদা বাইনারি বা ইনস্টলেশন ফাইল রয়েছে। ইনস্টল করার পর তাতে যে প্রোগ্রাম রান করা হবে তা অপারেটিং সিস্টেম বা প্লাটফর্মের ভিন্নতার উপর নির্ভরশীল নয়। যেমন: উইন্ডোজে কম্পাইল করা জাভা/কটলিনের প্রোগ্রাম লিনাক্সে কিংবা ম্যাকে চালানো যাবে যদি তাতে JRE ইনস্টল করা থাকে।

JVM, JRE, JDK এদের মধ্যে পার্থক্য:

  • JVM হলো জাভা ভিত্তিক প্রোগ্রামের মূল বিষয় কারন এটাই প্লাটফর্মের উপর নির্ভরশীলতা দূর করে প্রোগ্রাম রান করে।
  • JDK এবং JRE দুটিতেই থাকে JVM, তাই প্রোগ্রাম রান করার জন্য JDK অথবা JRE যে কোন একটি থাকলেই হবে।
  • JDK ডেভলপমেন্টের কাজে এবং JRE জাভা ভিত্তিক প্রোগ্রাম রান করার কাজে প্রয়োজন হয়।

JIT Compiler:
জাভা ভিত্তিক প্রোগ্রাম কম্পাইল হয়ে যে বাইট কোড হয় সেটা রান করে একটা ভার্চুয়াল মেশিনের উপর সরাসরি মেশিনে রান হয় না, এজন্য এক্সিকিউশন ধীরগতির হয়। এই গতি বাড়ানোর জন্য JIT কম্পাইলার JVM এর সাথে কাজ করে। এটা JRE এর একটা অংশ বা উপাদান। এটা বাইটকোডকে মেশিন কোডে কম্পাইল করে। মেশিন কোড সরাসরি মেশিন বুজতে পারে বলে গতি বাড়ে।

JIT কম্পাইলেশন ডায়নামিক ট্রান্সলেশন অথবা রানটাইম কম্পাইলেশন হিসেবে পরিচিত।

JIT কম্পাইলার বাইট কোড বিভিন্ন ভাগে ভাগ করে (file/function) এবং এগুলি ডায়নামিক ভাবে মেশিন কোডে কম্পাইল করে এতে প্রোগ্রাম দ্রুত রান হয়। এটা কম্পাইল করা কোড ক্যাশিং(Cach) করে পরবর্তিতে পুনরায় কম্পাইল করা ছাড়াই রান করাতে পারে।

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Price

Free
Login to Enroll
X