Java Applets: වෙබ් එකට ජාවා ගේම් එකක්! - SC Guide

ආයුබෝවන් යාළුවනේ! ඔයාලා කොහොමද? අද අපි කතා කරන්න යන්නේ Java වල තිබ්බ, දැන් ටිකක් පරණ වුණත්, තාක්ෂණ ලෝකයේ වැදගත් සන්ධිස්ථානයක් වුණු, හරිම රසවත් මාතෘකාවක් ගැන. ඒ තමයි Java Applets! අද වෙනකොට Applets එච්චර පාවිච්චි නොවෙනවා වුණත්, මේක තේරුම් ගැනීමෙන් Java වල මුල් අවධිය කොහොමද තිබ්බේ කියලත්, වෙබ් development වල මුල පිරීම් ගැනත් ඔයාලට හොඳ අවබෝධයක් ලැබෙයි.
අද කාලේ ඔයාලා HTML, CSS, JavaScript පාවිච්චි කරලා සුපිරි Web applications හදනවා නේද? ඒත් කාලෙකට කලින්, වෙබ් අඩවිවලට interactive functions එකතු කරන්න Applets කියන්නේ Game Changer කෙනෙක් වුණා. අපි අද බලමු මොනවද මේ Applets, ඒවා වැඩ කළේ කොහොමද, ඇයි ඒවාට මෙහෙම වුණේ, සහ ඇයි අපි තාමත් මේවා ගැන දැනගෙන ඉන්න ඕනේ කියලා. වැඩේ එලටම තේරෙන්න මම පුළුවන් තරම් සරලව විස්තර කරන්නම්!
Applets කියන්නේ මොනවද? (What are Applets?)
සරලවම කිව්වොත්, Applet එකක් කියන්නේ වෙබ් බ්රවුසර් එකක් ඇතුළේ වැඩ කරන්න පුළුවන් පොඩි Java program එකකට. අපි සාමාන්යයෙන් හදන standalone Java applications වගේ නෙවෙයි, Applets නිර්මාණය කරලා තිබුණේ වෙබ් පිටුවක් (web page) ඇතුළේ 'embed' කරන්න, එහෙම නැත්නම් 'කාවද්දන්න'.
ඔයාලට මතක ඇති සමහර වෙලාවට පරණ websites වල පොඩි games, animations, interactive diagrams වගේ දේවල් තිබුණා. ඔය ගොඩක් දේවල් වැඩ කළේ Applets පාවිච්චි කරලා තමයි. Java Applets වල තිබ්බ ප්රධානම වාසිය තමයි, write once, run anywhere කියන Java වල සංකල්පය නිසා, ඕනෑම OS (Windows, macOS, Linux) එකක, ඕනෑම Browser එකක වැඩ කරන්න පුළුවන් වීම.
Applets නිර්මාණය කරද්දී java.applet.Applet
කියන class එක extend කරන්න ඕනේ. අද කාලේ Swing Framework එකත් එක්ක වැඩ කරන නිසා, ගොඩක් වෙලාවට javax.swing.JApplet
කියන class එක තමයි පාවිච්චි කළේ. JApplet
කියන්නේ Applet
class එකේම extended version එකක්, graphics (GUI) වැඩ වලට හොඳටම ගැලපෙන විදියට හදපු එකක්.
Applet එකක් වැඩ කරන්නේ කොහොමද? (How does an Applet work?)
Applet එකක් වැඩ කරන විදිය සාමාන්ය Java application එකකට වඩා ටිකක් වෙනස්. මේවාට තමන්ගේම lifecycle methods (ජීවන චක්ර ක්රම) ටිකක් තිබුණා. මේ methods තමයි Applet එකක් browser එකේ load වෙනකොට, run වෙනකොට, නැවතී යනකොට, සහ browser එකෙන් ඉවත් කරනකොට ක්රියාත්මක වෙන්නේ.
Applet lifecycle methods පහක් තියෙනවා:
public void init()
: Applet එක load වුණ ගමන්, පළවෙනියටම execute වෙන්නේ මේ method එක. Variables initialize කරන, UI components load කරන වගේ දේවල් මෙතනදි කළා. මේක හරියට program එකක constructor වගේ.public void start()
:init()
එකෙන් පස්සේ, නැත්නම් user කෙනෙක් වෙන පිටුවකට ගිහින් ආයෙත් මේ Applet එක තියෙන පිටුවට ආවොත්,start()
method එක execute වෙනවා. Animations පටන් ගන්න, threads run කරන්න වගේ දේවල් මේක ඇතුළේ කළා.public void paint(Graphics g)
: මේක තමයි Applet එකේ graphics (අඳින වැඩ) කරන්න පාවිච්චි කරපු method එක. Applet එක screen එකේ පෙන්වන හැම වෙලාවකම, නැත්නම් Applet එකට යම්කිසි වෙනසක් කරන්න අවශ්ය වුණාම (උදා: window එක resize කරනකොට), මේ method එක execute වෙනවා.Graphics
object එක පාවිච්චි කරලා text, shapes, images වගේ දේවල් draw කරන්න පුළුවන්.public void stop()
: User කෙනෙක් Applet එක තියෙන page එකෙන් අයින් වුණොත් (වෙන page එකකට ගියොත්), මේ method එක execute වෙනවා.start()
එකෙන් පටන් ගත්ත animations, threads වගේ දේවල් නවත්වන්න මේක පාවිච්චි කළා.public void destroy()
: Applet එක browser එකෙන් සම්පූර්ණයෙන්ම ඉවත් කරනකොට, මේ method එක execute වෙනවා. Resources free කරන්න, cleanup operations කරන්න මේක පාවිච්චි කළා.
මේ lifecycle methods හරියට තේරුම් ගන්න එක Applet development වලට අත්යවශ්ය දෙයක් වුණා. මොකද මේවා තමයි Applet එකක හැසිරීම (behavior) පාලනය කළේ.
සරල Applet එකක් හදමු! (Let's create a simple Applet!)
අපි දැන් සරලම Applet එකක් හදලා බලමු. මේකෙන් කරන්නේ Applet window එකේ "Hello Applet, from Sri Lanka!" කියලා text එකක් display කරන එක.
පියවර 1: Java Code එක ලියමු
MyFirstApplet.java
කියලා file එකක් හදලා මේ code එක ඒකට copy කරන්න:
import java.applet.Applet;
import java.awt.Graphics;
public class MyFirstApplet extends Applet {
// Applet එක load වුණාම මුලින්ම execute වෙන්නේ මේ method එක.
public void init() {
System.out.println("Applet Initialized!");
}
// Applet එක visible වෙනකොට execute වෙනවා.
public void start() {
System.out.println("Applet Started!");
}
// Graphics අඳින්න මේක පාවිච්චි කරනවා.
public void paint(Graphics g) {
// "Hello Applet, from Sri Lanka!" කියලා text එකක් අඳිනවා.
// (50, 50) කියන්නේ x, y coordinates.
g.drawString("Hello Applet, from Sri Lanka!", 50, 50);
System.out.println("Applet Painted!");
}
// Applet එක නවත්තනකොට execute වෙනවා.
public void stop() {
System.out.println("Applet Stopped!");
}
// Applet එක browser එකෙන් අයින් කරනකොට execute වෙනවා.
public void destroy() {
System.out.println("Applet Destroyed!");
}
}
පියවර 2: Code එක Compile කරමු
දැන් ඔයාලගේ Command Prompt (Windows) හෝ Terminal (macOS/Linux) එක open කරලා, මේ Java file එක save කරපු directory එකට ගිහින් compile කරන්න:
javac MyFirstApplet.java
මේක සාර්ථක වුණා නම්, MyFirstApplet.class
කියලා file එකක් generate වෙලා තියේවි. මේක තමයි අපේ Applet එකේ compiled version එක.
පියවර 3: HTML File එකක් හදමු (Applet එක load කරන්න)
දැන් MyFirstApplet.class
file එක තියෙන තැනම index.html
කියලා file එකක් හදලා, මේ code එක ඒකට copy කරන්න:
<!DOCTYPE html>
<html>
<head>
<title>My First Java Applet</title>
</head>
<body>
<h1>Welcome to My Applet Page!</h1>
<p>අපේ පළවෙනි Java Applet එක මෙතන තියෙනවා:</p>
<!-- Applet එක embed කරන HTML tag එක -->
<applet code="MyFirstApplet.class" width="400" height="200">
<p>ඔබේ browser එක Java Applets support කරන්නේ නැහැ.</p>
</applet>
<p>වැඩේ එල නේද?</p>
</body>
</html>
මෙහිදී වැදගත් වන කොටස තමයි <applet>
tag එක. code
attribute එකෙන් Applet එකේ .class
file එකේ නම දෙනවා. width
සහ height
වලින් Applet එකට browser එකේ දෙන ඉඩ ප්රමාණය specify කරනවා.
පියවර 4: Applet එක Run කරලා බලමු
Applets run කරන්න සාමාන්යයෙන් Java Plugin එකක් browser එකේ install වෙලා තියෙන්න ඕනේ. ඒත් අද වෙනකොට ගොඩක් browsers Java Plugin එකට support කරන්නේ නැහැ. ඒ නිසා අපිට මේ Applet එක බලන්න පුළුවන් appletviewer
tool එකෙන්. මේක Java Development Kit (JDK) එක install කරනකොටම එන tool එකක්.
Command Prompt / Terminal එකේ index.html
file එක තියෙන directory එකට ගිහින් මේ command එක දෙන්න:
appletviewer index.html
ඔයාලට පොඩි window එකක් open වෙලා "Hello Applet, from Sri Lanka!" කියලා පෙන්වයි. නියමයි නේද? ඔයාලා සාර්ථකව Applet එකක් හදලා run කළා!
Applets වලට මොකද වුණේ? (What happened to Applets?)
හරි, දැන් ඔයාලා දන්නවා Applets කියන්නේ මොනවද, ඒවා වැඩ කළේ කොහොමද කියලා. එහෙනම්, ඇයි දැන් මේවා පාවිච්චි නොකරන්නේ? අද කාලේ Applets දකින්න නැති තරම්. මේකට ප්රධාන හේතු කීපයක්ම තියෙනවා:
- Security Concerns (ආරක්ෂක ගැටළු): Applets වලට පරිගණකයේ ගොඩක් දේවල් වලට access කරන්න පුළුවන්කම තිබ්බා. මේක නිසා malicious applets වලින් virus, malware වගේ දේවල් පැතිරෙන්න පුළුවන්කම තිබ්බා. මේක පාලනය කරන්න හැදුවත්, අවදානම එහෙමම තිබ්බා.
- Browser Compatibility and Plugins (Browser ගැළපීම සහ Plugins): Applets වැඩ කරන්න නම් browser එකේ Java Plugin එක install වෙලා තියෙන්න ඕනේ. මේ Plugin එක maintain කරන එකත්, browsers update වෙනකොට මේකේ compatibility එක තියාගෙන යන එකත් ටිකක් අමාරු වැඩක් වුණා. ගොඩක් users ලා මේ Plugin එක install කරලා තිබ්බේ නැහැ.
- Performance Issues (කාර්ය සාධන ගැටළු): Applets load වෙන්නත්, run වෙන්නත් වෙලාවක් ගියා. සමහර වෙලාවට Applet එකක් load වෙන්න යනකම් user ට බලාගෙන ඉන්න වෙනවා. මේක user experience එකට එච්චර හොඳ දෙයක් නෙවෙයි.
- Rise of Web Standards (වෙබ් ප්රමිතීන්ගේ නැඟීම): HTML5, CSS3, සහ JavaScript කියන technologies දියුණු වෙනකොට, Applets වලින් කරන්න පුළුවන් හැමදේම වගේ, ඒවාට වඩා හොඳට, ආරක්ෂිතව, සහ වේගවත්ව මේ technologies වලින් කරන්න පුළුවන් වුණා. JavaScript වල jQuery, React, Angular, Vue වගේ libraries/frameworks ආවට පස්සේ interactive web pages හදන එක තවත් ලේසි වුණා.
- Mobile Devices (ජංගම දුරකථන): Smart phones සහ tablets බහුල වෙනකොට, Java Applets වලට mobile browsers වල support එකක් තිබ්බේ නැහැ. අද කාලේ web applications ගොඩක්ම mobile friendly වෙන්න ඕනේ.
මේ හැම හේතුවක්ම එකතු වෙලා තමයි Java Applets ක්රමයෙන් ඉවත් වෙලා ගියේ. Oracle සමාගම 2016 දී Java Applets deprecated (භාවිතයෙන් ඉවත් කළ) බව නිල වශයෙන්ම ප්රකාශ කළා.
ඇයි අපි Applets ගැන ඉගෙන ගන්නේ? (Why do we learn about Applets?)
දැන් ඔයාලා හිතයි, "අයියෝ, මේවා දැන් වැඩක් නැත්නම් ඇයි අපි මේවා ගැන ඉගෙන ගන්නේ?" කියලා. ඒත් යාලුවනේ, මේක හරිම වැදගත් ප්රශ්නයක්.
- Historical Context (ඓතිහාසික පසුබිම): Applets කියන්නේ web development වල ඉතිහාසයේ ඉතාම වැදගත් කොටසක්. මේවා ගැන දැනගැනීමෙන් Internet එක දියුණු වුණේ කොහොමද, technologies evolve වුණේ කොහොමද කියලා තේරුම් ගන්න පුළුවන්.
- Foundational Concepts (මූලික සංකල්ප): Applets වල තිබ්බ lifecycle, event handling, threading වගේ concepts අදටත් modern web development (JavaScript frameworks), Android development, Desktop applications වගේ ගොඩක් තැන් වල පාවිච්චි වෙනවා. මේවා තේරුම් ගැනීමෙන් ඕනෑම new technology එකක් ඉක්මනින් තේරුම් ගන්න පුළුවන්.
- Understanding Deprecation (Deprecated වුණේ ඇයිදැයි තේරුම් ගැනීම): යම් technology එකක් deprecated වෙන්නේ ඇයි කියලා දැනගැනීමෙන්, හොඳ software design practices, security best practices, සහ scalable system architectures ගැන ඔයාලගේ දැනුම වැඩිදියුණු කරගන්න පුළුවන්.
නිගමනය (Conclusion)
ඉතින් යාලුවනේ, Java Applets කියන්නේ දැන් අපේ අතීතයට අයත් වුණත්, අපිට ගොඩක් දේවල් උගන්වන වැදගත් තාක්ෂණයක්. Web එක interactive කරන්න ගත්ත පළවෙනි උත්සාහයන්ගෙන් එකක් තමයි Applets. අද අපි දකින dynamic web වලට පාර කැපුවේ Applets වගේ technologies තමයි.
දැන් Applets පාවිච්චි නොකළත්, මේක තේරුම් ගැනීමෙන් web development වල ඉතිහාසය ගැනයි, Java වල හැකියාවන් ගැනයි ඔයාලට හොඳ අවබෝධයක් ලැබෙයි. මතක තියාගන්න, හොඳ software engineer කෙනෙක් වෙන්න නම් අලුත් දේවල් වගේම, පරණ දේවල් වලිනුත් පාඩම් ඉගෙන ගන්න ඕනේ.
මේ post එක ගැන ඔයාලා මොකද හිතන්නේ? Applets ගැන ඔයාලගේ අත්දැකීම් තියෙනවා නම්, නැත්නම් මේක තේරුම්ගන්න අමාරු තැනක් තිබ්බා නම්, පහළින් comment එකක් දාන්න. අපි ඊළඟ post එකෙන් තවත් සුපිරි මාතෘකාවක් ගැන කතා කරමු! ගැම්මක් තමා!