പണിസഞ്ചിഇതര ഭാഷകളില്
|
ജാവ പ്രോഗ്രാമിങ് ഭാഷ
ജെയിംസ് ഗോസ്ലിങ്ങ്, ബില് ജോയ് മുതലായവരുടെ നേതൃത്വത്തില് സണ് മൈക്രോസിസ്റ്റംസ് വികസിപ്പിച്ചെടുത്ത ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷയാണ് ജാവ. ഇന്ന് വെബ് സെര്വറുകള്, കമ്പ്യൂട്ടറുകള്, മൊബൈല് ഫോണുകള് തുടങ്ങി ഒട്ടനവധി ഇലക്ട്രോണിക് ഉപകരണങ്ങളില് ജാവ ഉപയോഗിക്കപ്പെടുന്നു. വെബ് പ്രോഗ്രാമിങിനാണ് കൂടുതല് ഉപയോഗിക്കുന്നതെങ്കിലും അതിലേറെ കാര്യങ്ങള് ചെയ്യാന് ഉപയോഗിക്കുന്ന വിവിധോദ്ദേശ പ്രോഗ്രാമിങ് ഭാഷയാണിത്[3]. കമ്പ്യൂട്ടറുകളില് തന്നെ സെര്വറുകളിലും ക്ലൈന്റുകളിലും പ്രത്യേകം പ്രത്യേകം പ്രവര്ത്തിക്കാന് പ്രാപ്തമായ പ്രോഗ്രാമുകള് സൃഷ്ടിക്കാന് ജാവ ഉപയോഗപ്പെടുത്താം. ഇതിനുപുറമേ സ്വതന്ത്രമായി പ്രവര്ത്തിക്കുന്ന ആപ്ലിക്കേഷനുകള് നിര്മ്മിക്കാനും ജാവ ഉപയോഗിക്കുന്നു. ഓരോ ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിനുമായി വെവ്വേറെ സോഫ്റ്റ്വെയറുകള് നിര്മ്മിക്കുക എന്ന മറ്റു പല പ്രോഗ്രാമിങ് ഭാഷകള്ക്കും ഉള്ള പരിമിതി ജാവക്കില്ല. പ്ലാറ്റ്ഫോം സ്വാതന്ത്ര്യം (Platform Independence) എന്ന ഈ ഗുണം ജാവ സാധ്യമാക്കുന്നത് ജെ.വി.എം (JVM-Java Virtual Machine) എന്ന സാങ്കേതികത ഉപയോഗിച്ചാണ്. ജാവയില് സോഫ്റ്റ്വെയറുകള് സൃഷ്ടിക്കാന് സണ് മൈക്രോസിസ്റ്റംസ് ജെ.ഡി.കെ. അഥവാ എസ്.ഡി.കെ(JDK-Java Development Kit, SDK-Software Development Kit) എന്നൊരു വികസനോപാധിയും സൃഷ്ടിച്ചിട്ടുണ്ട്. പ്രോഗ്രാമിങ് താരതമ്യേന എളുപ്പമാക്കാന് എക്ലിപ്സ്, നെറ്റ്ബീന്സ്, ബോര്ലാന്ഡ് ജെബില്ഡര് തുടങ്ങിയ ഐ.ഡി.ഇകളും ഇന്ന് ലഭ്യമാണ്. ഇന്ന് ജാവയുടെ പതിപ്പ് 6 (ജാവ 6) ഉം, ജെ.ഡി.കെ പതിപ്പ് 1.6 ഉം ആണ്. ജാവയുടെ പ്രധാന പതിപ്പുകളില് ഏഴാമത്തേതാണിത്. 45 ലക്ഷം ആളുകള് ജാവ പഠിക്കുകയോ പ്രോഗ്രാമിങിനായി ഉപയോഗിക്കുകയോ ചെയ്തിട്ടുണ്ട്. 25 ലക്ഷം ഉപകരണങ്ങളില് ഇന്ന് ജാവ ഉപയോഗിക്കപ്പെടുന്നു [4]. ഏറക്കുറേ സി, സി++ എന്നീ പ്രോഗ്രാമിങ് ഭാഷകളുടെ ലേഖനവ്യവസ്ഥ (syntax) തന്നെയാണ് ജാവയിലും ഉപയോഗിക്കുന്നത്. മൈക്രോസോഫ്റ്റിന്റെ സി# (സി ഷാര്പ്പ്, മുമ്പ് ജെ++) പോലുള്ള ഭാഷകളില് ജാവയുടെ സ്വാധീനം ഏറെയുണ്ട്. സി ഷാര്പ്പില് നിന്നും ജാവയും ചില പ്രത്യേകതകള് കടംകൊണ്ടിട്ടുണ്ട്. പേരിലും, ലേഖനരീതിയിലും സാമ്യങ്ങളുണ്ടെങ്കിലും ജാവാസ്ക്രിപ്റ്റ് എന്ന സ്ക്രിപ്റ്റിങ്ങ് ഭാഷയ്ക്ക് ജാവയുമായി ബന്ധമൊന്നുമില്ല. 1990 കളുടെ ആദ്യപാദത്തില് സണ് മൈക്രോസിസ്റ്റംസ് വികസിപ്പിച്ച ജാവാ കമ്മ്യൂണിറ്റി പ്രോസസിന്റെ നിര്ദ്ദേശങ്ങള്ക്കനുസൃതമായി ജാവാ കംപൈലര്, ജാവാ വിര്ച്ച്വല് മെഷീന് എന്നിവയ്ക്ക് സണ് മൈക്രോസിസ്റ്റംസ് ഗ്നൂ സാര്വ്വജനിക അനുവാദപത്രം നല്കിയിട്ടുണ്ട്[5].
[തിരുത്തുക] ചരിത്രം[തിരുത്തുക] പശ്ചാത്തലംസി പ്രോഗ്രാമിങ് ഭാഷയില് നിന്നും 1980-ല് ബ്യാന് സ്ട്രൗസ്ട്രെപ് അവതരിപ്പിച്ച സി++-ഉം അതിനോടൊപ്പം രൂപം കൊണ്ട വസ്തുതാധിഷ്ഠിത പ്രോഗ്രാമിങ് രീതിയും 1990 ആയപ്പോഴേക്കും വന്തോതില് ജനകീയമായി. പ്രോഗ്രാം പ്രവര്ത്തിക്കാനാവശ്യമായ മെമ്മറി പ്രത്യേകം കുറിച്ചുകൊടുക്കണം എന്നുള്ളതുകൊണ്ടും, അതു കൊണ്ടു തന്നെ ഹാര്ഡ്വെയറിനനുസൃതമായി പ്രോഗ്രാം പുതുക്കേണ്ടി വരുമെന്നതും പില്ക്കാലത്ത് സി++നു തിരിച്ചടിയായി. മെമ്മറിയുടെ കൈകാര്യം പ്രോഗ്രാമറുടെ കൈയ്യിലായിരുന്നതിനാല് വിനാശബുദ്ധികള്ക്ക് ദോഷകരങ്ങളായ പ്രോഗ്രാമുകള് എഴുതാന് സി, സി++ ഭാഷകളില് എളുപ്പമായിരുന്നു. [തിരുത്തുക] ജാവയുടെ സൃഷ്ടി
ജെയിംസ് ഗോസ്ലിങ്ങ്. ജാവയുടെ പിതാവ്
1990-ല് പരസ്പര സംവേദനക്ഷമമായ ഒരു ടിവി പരിപാടി നിര്മ്മിക്കാനുള്ള പദ്ധതിക്കിടയില് ജെയിംസ് ഗോസ്ലിങ്ങ് എന്ന സോഫ്റ്റ്വെയര് വിദഗ്ദ്ധന് സി++ന്റെ ചില പ്രത്യേകതകളില് സംതൃപ്തനാകാതെ പദ്ധതിക്കനുസരിച്ച ഒരു പ്രോഗ്രാമിങ് ഭാഷ നിര്മ്മിക്കാനുള്ള ശ്രമം തുടങ്ങിയെന്നാണ് ചരിത്രം[6]. സി യില് നിന്നും സി++ ഉണ്ടാക്കിയതുപോലെ സി++ല് അനുബന്ധങ്ങള് ചേര്ത്ത് പുതിയൊരു ഭാഷയും, ഏതൊരു ഹാര്ഡ്വെയറുമായി ആശയവിനിമയം നടത്താന് കഴിവുള്ള ഒരു ഇടനിലപ്രോഗ്രാമും നിര്മ്മിക്കാനായിരുന്നു ആദ്യശ്രമമെങ്കിലും അത് വളരെ പെട്ടന്നു തന്നെ തികച്ചും പുതിയൊരു ഭാഷയെന്ന ലക്ഷ്യത്തിലെത്തിച്ചേര്ന്നു. 1991ല് ‘ ഓക് ’ എന്ന പേരിലാണ് ഗോസ്ലിങ് പുതിയ പ്രോഗ്രാമിങ് ഭാഷയ്ക്കുള്ള ശ്രമം തുടങ്ങിയത്. സി, സി++ പ്രോഗ്രാമിംഗ് ഭാഷകളോട് സാമ്യമുള്ള ഒരു പ്രോഗ്രാമിംഗ് ഭാഷ സൃഷ്ടിക്കുകയും, ആ ഭാഷയിലെഴുതുന്ന പ്രോഗ്രാമുകള് എല്ലാത്തരം കമ്പ്യൂട്ടറുകളിലും, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിലും എന്നതിനുപരിയായി ഏത് ഇലക്ട്രോണിക് ഉപകരണത്തിലും പ്രവര്ത്തിപ്പിക്കുവാന് സഹായിക്കുന്ന ഒരു വിര്ച്ച്വല് മെഷീന് നിര്മ്മിക്കുകയുമായിരുന്നു അദ്ദേഹത്തിന്റെ ലക്ഷ്യം. ബില് ജോയ്, ആര്തര് വാന് ഹോഫ്, ജോനാതന് പെയ്ന്, ഫ്രാങ്ക് യെല്ലിന്, റ്റിം ലിന്ഡോം തുടങ്ങിയവര് മറ്റു പ്രധാന സഹസ്രഷ്ടാക്കളാണ്[7]. 18 മാസം കൊണ്ട് ഇതിന്റെ ആദ്യരൂപം 1992-ല് പുറത്തിറങ്ങി. ജാവ ആദ്യം എംബഡഡ് സിസ്റ്റങ്ങളേയും കമ്പ്യൂട്ടറുകളേയും ആയിരുന്നു ലക്ഷ്യം വച്ചിരുന്നത്. എംബഡഡ് സിസ്റ്റങ്ങള് ഒന്നിനൊന്നു വ്യത്യസ്തങ്ങളായിരുന്നതിനാല് ഒരേ പ്രോഗ്രാമിന്റെ വിതരണം എപ്പോഴും പ്രശ്നങ്ങളെ നേരിട്ടു, അതേ പ്രോഗ്രാം തന്നെ കമ്പ്യൂട്ടറില് ഉപയോഗിക്കുക എന്നത് പലപ്പോഴും അസാധ്യമായിത്തീര്ന്നു. അപ്പോഴേക്കും ഇന്റര്നെറ്റിന് ഒരു പൂര്ണ്ണത കൈവന്നിരുന്നു. അതോടെ സ്രഷ്ടാക്കളുടെ ശ്രദ്ധ പുതിയമേഖലയിലേക്കു തിരിഞ്ഞു. പുതിയ ലക്ഷ്യം ജാവയുടെ വളര്ച്ചയില് നിര്ണ്ണായകമായി. ആര്ക്കിറ്റെക്ചറല് നിഷ്പക്ഷത(Architectural neutral) എന്ന ഗുണം ഏവരുടേയും ശ്രദ്ധ ആദ്യം തന്നെ ജാവയിലേക്കു തിരിയാന് കാരണമായിരുന്നുവെന്നാലും ആത്യന്തികമായി ഇന്റര്നെറ്റാണ് ജാവയുടെ വന്വിജയത്തിന് കാരണമായത്[8]. സണ്ണിന്റെ സംവേദനക്ഷമമായ ടി.വി. എന്ന പദ്ധതി വിജയിച്ചില്ലെങ്കിലും പുതിയൊരു കഴിവുറ്റ ഭാഷയുടെ ഉദയത്തിനതു കാരണമായി. 'ഓക്' 1995-മെയ് മാസത്തില് ജാവ എന്ന പുതിയ പേരില് താരതമ്യേന പൂര്ണ്ണരൂപത്തില് പുറത്തിറങ്ങി[8]. “ ഒരിക്കലെഴുതൂ എവിടെയും പ്രവര്ത്തിപ്പിക്കൂ ” ( Write Once, Run Anywhere -WORA) എന്ന ആപ്തവാക്യവുമായാണ് ജാവ വന്നത്. ജാവയുടെ ആദ്യപതിപ്പ് കേവലമൊരു ഫ്ലോപ്പി ഡിസ്കില് ഉള്ക്കൊള്ളിക്കാമായിരുന്നു. കാതലായ ഭാഗം കേവലം നൂറ് കെ.ബി. ആണുണ്ടായിരുന്നത്. ഗണിത പ്രശ്നങ്ങള് കൈകാര്യം ചെയ്യാനുള്ള ഭാഗമായ മാത് ലൈബ്രറി (math library) 20 കെ.ബി. മാത്രമാണുണ്ടായിരുന്നത്. മിക്ക ക്ലാസ് ലൈബ്രറികളും കൂടെ 375 കെ.ബി. മാത്രമായിരുന്നു ഉണ്ടായിരുന്നത്. ചിത്രീകരണങ്ങള്ക്കായി വ്യത്യസ്ത പ്ലാറ്റ്ഫോമുകള്ക്കായുണ്ടായിരുന്ന ഭാഗങ്ങളും കൂടി ചേര്ത്താല് ഒരു എം.ബി. അടുത്തായിരുന്നു ജാവയുടെ വലിപ്പം[9]. [തിരുത്തുക] പ്രത്യേകതകള്[തിരുത്തുക] ബൈറ്റ്കോഡ്സി, സി++ തുടങ്ങിയ ഭാഷകളെല്ലാം കംപൈല് ചെയ്യുമ്പോള് പ്രവര്ത്തനക്ഷമമായ (executable) കോഡാണ് ലഭിക്കുന്നത്. എന്നാല് ജാവ ഒരു ബൈറ്റ്കോഡ് ആണ് സൃഷ്ടിക്കുന്നത്[10][11]. ക്ലാസ് (ഉദാ: Hello.class) എന്നായിരിക്കും ഈ ബൈറ്റ്കോഡ് ഫയലിന്റെ എക്സ്റ്റെന്ഷന്. ഈ ബൈറ്റ്കോഡ് പ്രവര്ത്തിപ്പിക്കണമെങ്കില് ഒരു വിര്ച്ച്വല് മെഷീന് അത്യന്താപേക്ഷമാണ്. അങ്ങെയറ്റം ക്ലിഷ്ടമാക്കിയ നിര്ദ്ദേശങ്ങളുടെ ഗണമാണ് ബൈറ്റ്കോഡ്[12]. പ്രോഗ്രാമിനെ പ്രവര്ത്തിപ്പിക്കുന്ന ബാധ്യത ബൈറ്റ്കോഡിനില്ല, പ്രവര്ത്തിപ്പിക്കുകയെന്നത് ജാവ വിര്ച്ച്വല് മെഷീന്റെ ഉത്തരവാദിത്തമാണ്. അതുകൊണ്ട് തന്നെ ബൈറ്റ്കോഡ് വളരെ ചെറുതും നെറ്റുവര്ക്കുകളിലൂടെ എളുപ്പം കൈമാറ്റം ചെയ്യാനാവുന്നതുമായിരിക്കും. ജാവ സാങ്കേതിക വിദ്യയില് ജാവ പ്രോഗ്രാമിങ് ഭാഷ ഇഴുകിച്ചേര്ന്നിട്ടുള്ളതാണ്. എന്നിരുന്നാലും മറ്റുഭാഷകള് കമ്പൈല് ചെയ്യുമ്പോള് ജാവ ബൈറ്റ്കോഡ് സൃഷ്ടിക്കാനും അവ ജാവ വിര്ച്ച്വല് മെഷീനുപയോഗിച്ചു പ്രവര്ത്തിപ്പിക്കാനുമുള്ള ശ്രമങ്ങള് നടന്നിട്ടുണ്ട്[13][14]. അവയൊന്നും വേണ്ടത്ര പിന്തുണ നേടിയില്ല. പൈത്തണ് ഭാഷ ഉപയോഗിച്ച് ജാവ ബൈറ്റ്കോഡ് സൃഷ്ടിക്കാനുള്ള ശ്രമമായ "ജൈത്തണ്"[15] ആണ് അക്കൂട്ടത്തില് കുറച്ചെങ്കിലും ശ്രദ്ധ നേടിയത്. [തിരുത്തുക] വിര്ച്ച്വല് മെഷീന്ജാവയില് എഴുതിയ പ്രോഗ്രാമിനെ കമ്പ്യൂട്ടറുമായി ബന്ധപ്പെടുത്തുന്ന ഇടനില സോഫ്റ്റ്വെയറാണ് ജാവ വിര്ച്വല് മഷീന്. ഒരു പ്രോഗ്രാമിനെ പ്രവര്ത്തിപ്പിക്കുവാന് പറ്റിയ അന്തരീക്ഷം സൃഷ്ടിക്കുക എന്നതാണ് വിര്ച്ച്വല് മെഷീന്റെ കടമ, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റവുമായി സംവദിച്ച് യന്ത്രഭാഗങ്ങളെ അഥവാ കമ്പ്യൂട്ടര് ഹാര്ഡ്വെയറിനെ, പ്രവര്ത്തിച്ചു കൊണ്ടിരിക്കുന്ന പ്രോഗ്രാമിന്റെ ആവശ്യാനുസരണം ലഭ്യമാക്കുക, ഒരു കവചം പോലെ നിലനിന്നു കൊണ്ട് പ്രോഗ്രാം ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തില് അനാവശ്യ ഇടപെടലുകള് നടത്താതെ നോക്കുക എന്നിങ്ങനെയുള്ള കാര്യങ്ങളാണ് വിര്ച്ച്വല് മെഷീന് ചെയ്യുന്നത്. വിര്ച്ച്വല് മെഷീന് അധിഷ്ഠിതമായ പ്രോഗ്രാമിങ്ങ് ഭാഷകള് സൃഷ്ടിക്കുന്നതിന്റെ ഉദ്ദേശ്യം ഏതു തരം ഹാര്ഡ്വെയറിലും, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തിലും പ്രവര്ത്തിക്കുന്ന പ്രോഗ്രാമുകള് എഴുതുക എന്നുള്ളതാണ്. ഇത്തരം പ്രോഗ്രാമുകള് ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തെയോ, ഹാര്ഡ്വെയറിനെയോ കാണുന്നില്ല കാരണം ഇവ വിര്ച്ച്വല് മെഷീനുമായി മാത്രമേ ബന്ധപ്പെടുന്നുള്ളൂ. ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റവും ഹാര്ഡ്വെയറും മാറുന്നതിനനുസരിച്ച് പ്രോഗ്രാമുകള് അപ്പോള് മാറ്റിയെഴുതേണ്ടി വരില്ല, പകരം എല്ലാ സാഹചര്യങ്ങള്ക്കും വേണ്ടിയുള്ള വിര്ച്ച്വല് മെഷീനുകള് ആദ്യം വികസിപ്പിക്കുകയാണ് ചെയ്യുന്നത്. ബൈറ്റ്കോഡ് ഇക്കാരണം കൊണ്ട് വഹനീയം (portable) ആണെന്നു പറയുന്നു. മെമ്മറിയില് പ്രോഗ്രാമര് നടത്തുന്ന അനാവശ്യ കൈകടത്തലുകളെ ജാവ വിര്ച്ച്വല് മെഷീന് അനുവദിക്കുന്നില്ല. അതുകൊണ്ട് ജാവയില് വൈറസുകള് എഴുതുക തീരെ എളുപ്പമല്ല. ഓപ്പറേറ്റിങ് സിസ്റ്റത്തെ അമിതമായി സ്വാധീനിക്കാന് വിര്ച്ച്വല് മെഷീന് അനുവദിക്കാത്തതിനാല് ജാവ ഏറെ സുരക്ഷിതമായ പ്രോഗ്രാമിങ് ഭാഷയാണ്. പ്രോഗ്രാമുകള് പ്രവര്ത്തിപ്പിക്കാനായി 'ജാവ വിര്ച്ച്വല് മെഷീന്' പ്രോഗ്രാമിനെ പ്രവര്ത്തനക്ഷമമായി കമ്പൈല് ചെയ്യുകയും പ്രവര്ത്തിപ്പിക്കുകയുമാണ് ചെയ്യുന്നത്. ഇത് പ്രോഗ്രാം പ്രവര്ത്തിക്കുന്നത് മെല്ലെയാക്കുമെങ്കിലും ജാവയില് ഈ വൈകല് തുലോം നിസ്സാരമാണ്. ഒരു പ്രോഗ്രാം പ്രവര്ത്തിക്കുമ്പോള് വേണ്ട പലതരത്തിലുള്ള പരിശോധനകള് നടത്തുക, പ്രവര്ത്തിക്കാനുള്ള സ്ഥലം അനുവദിച്ചുകൊടുക്കുക തുടങ്ങി ഒട്ടനവധി കാര്യങ്ങള് ചെയ്യണം, അതിന്റെ കൂടെ ബൈറ്റ്കോഡ് കമ്പൈല് ചെയ്യുകയും പ്രോഗ്രാം പ്രവര്ത്തിപ്പിക്കുകയും ചെയ്യേണ്ടതുണ്ട്. ഒരു വലിയ പ്രോഗ്രാമില് ഇതെല്ലാം ഒരുമിച്ചു ചെയ്യുക എന്നത് ഏറെ സമയമെടുക്കുന്ന ഒന്നാണ്. അതുകൊണ്ട് സണ് ജെ.വി.എമ്മില് ബൈറ്റ്കോഡിനായി ജസ്റ്റ് ഇന് റ്റൈം കമ്പൈലര് (Just In Time Compiler - JIT) എന്നൊരു കമ്പൈലര് ചേര്ത്തിരിക്കുന്നു. ഒരു പ്രോഗ്രാം പ്രവര്ത്തിക്കുമ്പോള് പ്രോഗ്രാമിന്റെ ഭാഗങ്ങളെ ആവശ്യമുള്ളപ്പോള് മാത്രം കമ്പൈല് ചെയ്തു പ്രവര്ത്തിപ്പിക്കുന്നതിനാണ് ജെ.ഐ.റ്റി. ഉപയോഗിക്കുന്നത്[16][17]. ഇത് ഉപയോക്താക്കള്ക്ക് യാതൊരുവിധ താമസവും അനുഭവപ്പെടാതെ തന്നെ പ്രോഗ്രാം പ്രവര്ത്തിക്കുന്നതിനു സഹായിക്കുന്നു. ജാവ 2-ലാണ് ജെ.ഐ.റ്റി. രംഗപ്രവേശം ചെയ്തത്. ജാവ റണ്റ്റൈം എന്വിയറന്മെന്റ് അഥവാ ജെ.ആര്.ഇ. എന്നും ജാവ സോഫ്റ്റ്വെയര് എന്നും അറിയപ്പെടുന്ന സോഫ്റ്റ്വെയറിലാണ് വിര്ച്ച്വല് മെഷീനുള്ളത്. ജെ.ആര്.ഇ. ആര്ക്കും സണ്ണിന്റെ സൈറ്റില് നിന്നും ശേഖരിക്കാനും പുനര്വിതരണം ചെയ്യാനും കഴിയും. ജാവയുടെ അതേ സിന്റാക്സ് ഉപയോഗിക്കുന്ന ജി.സി.ജെ. (GCJ - Gnu Compiler for Java) കമ്പൈലറിന് ജാവാ പ്രോഗ്രാമുകളെ ഒബ്ജക്റ്റ് കോഡ് അഥവാ കമ്പ്യൂട്ടറുമായി സംവദിക്കാന് പ്രാപ്തമായ കോഡായും ബൈറ്റ്കോഡ് ആയും കംപൈല് ചെയ്യാന് കഴിയും[18]. ജി.സി.ജെ ഉപയോഗിച്ച് ഒബ്ജക്റ്റ്കോഡ് ആണ് സൃഷ്ടിക്കുന്നതെങ്കില് വിര്ച്ച്വല് മെഷീന്റെ ആവശ്യമില്ല. പക്ഷേ ഇങ്ങനെ ചെയ്യുമ്പോള് ജാവപ്രോഗ്രാമുകളുടെ വഹനീയത(portability) എന്ന ഗുണം നഷ്ടപ്പെടുന്നു. [തിരുത്തുക] പ്രോഗ്രാമിങ്ക്ലൈന്റ് കമ്പ്യൂട്ടറുകളില് ബ്രൗസറുകളില് പ്രവര്ത്തിക്കുന്ന ജാവാ പ്രോഗ്രാമിനെ ആപ്ലറ്റ് എന്നു വിളിക്കുന്നു. സ്വതന്ത്രമായി പ്രവര്ത്തിക്കുന്ന പ്രോഗ്രാമുകളെ ആപ്ലിക്കേഷന് എന്ന് വിളിക്കുന്നു. റ്റി.സി.പി/ഐ.പി. അനുസരിച്ച് ആപ്ലറ്റുകളും, ആപ്ലിക്കേഷനുകളും എല്ലാം സമഞ്ജസമായി ഒരുമിപ്പിച്ച് ഒരു നെറ്റ്വര്ക്കില് പടര്ന്നു കിടക്കുന്ന പ്രോഗ്രാമെഴുതാനും ജാവ ഉപയോഗിക്കുന്നു. പ്രോഗ്രാമിങ് ഭാഷയുടെ ആവശ്യമുള്ള ഭാഗങ്ങള് മാത്രമേ ഒരു പ്രത്യേക പ്രോഗ്രാമിലുണ്ടാകൂ. ഇത് പ്രോഗ്രാം വളരെ ചെറുതായിരിക്കാന് സഹായിക്കുന്നു. ഉദാഹരണത്തിന് ഒരു ജാവ ആപ്ലിക്കേഷനില് ആപ്ലറ്റിന്റെ അംശം ഉണ്ടായിരിക്കില്ല. പാക്കേജുകള് എന്നറിയപ്പെടുന്ന ജാവയുടെ പ്രോഗ്രാമിങ് ഭാഷാശകലങ്ങള് ആവശ്യാനുസരണം ചേര്ത്താണിത് സാധ്യമാക്കുന്നത്. ഇരുനൂറിലധികം എ.പി.ഐകള് ജാവ സ്റ്റാന്ഡേര്ഡ് എഡിഷനില് ലഭ്യമാണ്. ഒരു പ്രോഗ്രാമറെ സംബന്ധിച്ച് ഇത് പ്രോഗ്രാമിങ് കൂടുതല് എളുപ്പമാക്കാനും പ്രോഗ്രാമിന്റെ ഘടന പുനരുപയോഗത്തിനായി ആര്ക്കും മനസ്സിലാകുന്നതരത്തില് എഴുതാനും കാരണമാകുന്നു. വെബ് പ്രോഗ്രാമിങ്ങിനായി ജാവയെ ഉപജീവിച്ച് സൃഷ്ടിച്ചിട്ടുള്ള കമ്പ്യൂട്ടര് ഭാഷയാണ് ജെ.എസ്.പി. . ജാവയുടെ നിര്മ്മാണത്തില് സൃഷ്ടിച്ചിട്ടുള്ള പ്രത്യേകതകള്കൊണ്ട് ആര്ക്കും അനുബന്ധങ്ങള് അഥവാ മറ്റ് എ.പി.ഐ.കള് ഉണ്ടാക്കാനും അവയുടെ സഹായത്തോടെ പ്രോഗ്രാമിങ് കൂടുതല് എളുപ്പമാക്കാനും കഴിയും. ജാവമെയില് (ഇ-മെയിലുകളുടെ കൈകാര്യത്തിനായുള്ള എ.പി.ഐ.), സ്റ്റ്രറ്റ്സ്, ജെ.എസ്.എഫ്. (രണ്ടും വെബ് പ്രോഗ്രാമിങ്ങിനായുള്ള ഫ്രെയിംവര്ക്കുകള് ) തുടങ്ങിയവ ഇത്തരത്തിലുള്ള അനുബന്ധങ്ങള്ക്കുദാഹരണമാണ്. ജാവാമെയില്, ജാവ 3ഡി, ജാവ സെര്വ്ലറ്റ്സ്, ജാവ മീഡിയ, ജാവ ക്രിപ്റ്റോഗ്രാഫി എന്നിങ്ങനെ ഒരു പിടി അനുബന്ധങ്ങള് ഔദ്യോഗികങ്ങളായി ലഭ്യമാണ്. ഉപയോഗത്തിനനുസരിച്ച് വ്യത്യസ്ത ക്രമീകരണങ്ങള് അനുവദിക്കുന്ന സോഫ്റ്റ്വെയറുകള് ഔദ്യോഗികമായി തന്നെ സണ് നിര്മ്മിച്ചിട്ടുണ്ട്. എന്റര്പ്രൈസ് ആപ്ലിക്കേഷനുകള്ക്കായി ജാവ ഇ.ഇ.(Java EE - Java Enterprise Edition), മൊബൈല് ആപ്ലിക്കേഷനുകള്ക്കായി ജാവ എം.ഇ. (Java ME-Java Mobile Edition) എന്നിങ്ങനെ; മാനക പതിപ്പിനെ ജാവ എസ്.ഇ. (Java SE-Java Standard Edition) എന്നുവിളിക്കുന്നു. ജാവ എസ്.ഇ., ജെ.ഡി.കെ. ആയി ലഭ്യമാകുന്നു. ജെ.ഡി.കെ.യില് ജാവ കമ്പൈലര്, ഡീബഗ്ഗര്, ജാവാഡോക്, ജാര് ഫയല് നിര്മ്മാണത്തിനുള്ള സോഫ്റ്റ്വെയര് തുടങ്ങി 23 ഉപകരണങ്ങള് ഉള്ക്കൊള്ളിച്ചിരിക്കുന്നു [തിരുത്തുക] എഴുത്തു രീതിജാവയുടെ എഴുത്തു രീതി സി പ്ലസ് പ്ലസ്സില് നിന്നും രൂപപ്പെടുത്തിയിട്ടുള്ളതാണ്. എങ്കിലും, സി പ്ലസ് പ്ലസില് നിന്നും വ്യത്യസ്തമായി, ജാവ, വസ്തുതാ അധിഷ്ഠിത പ്രോഗ്രാമുകള്ക്കു (Object Oriented Programs) മാത്രമായാണ് രൂപപ്പെടുത്തിയിരിക്കുന്നത്. താഴെ ജാവയില് ഉള്ള ഒരു ഹലോ വേള്ഡ് പ്രോഗ്രാം കൊടുത്തിരിക്കുന്നു. കമാന്ഡ് ലൈനില് “Hello, World!" എന്നു പ്രിന്റ് ചെയ്യുകയാണ് ഈ പ്രോഗ്രാം ചെയ്യുക. // Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); } } ജി.യു.ഐ. സൃഷ്ടിക്കാനും ജാവ ഉപയോഗിച്ചു സാധിക്കും. import javax.swing.*; //HelloWorld.java public class HelloWorld { public static void main( String[] args ) { JFrame frame = new JFrame( "ലോകമേ വന്ദനം" ); JLabel label = new JLabel("Hello World!", JLabel.CENTER ); frame.add( label ); frame.setSize( 300, 300 ); frame.setVisible( true ); } } [തിരുത്തുക] ജാവ പ്ലാറ്റ്ഫോമുകള്ജാവയില് പ്രോഗ്രാമുകള് നിര്മ്മിക്കാനായും അവ സുസജ്ജമായ രീതിയില് വിവിധ ഉപകരണങ്ങളില് വിന്യസിക്കാനും ഒരു പ്രോഗ്രാമര്ക്ക് തിരഞ്ഞെടുക്കാന് പാകത്തില് സണ് മൂന്നു മണ്ഡലങ്ങള് അഥവാ പ്ലാറ്റ്ഫോമുകള് ഔദ്യോഗികമായി സജ്ജീകരിച്ചിട്ടുണ്ട്. ജാവ എസ്.ഇ, ജാവ ഇ.ഇ, ജാവ എം.ഇ. എന്നിവയാണവ. ജാവ 2, 1.4 -നു ശേഷം കമ്യൂണിറ്റി പ്രോസസ് വിളിക്കപ്പെടുന്ന പ്രവര്ത്തനത്തിലൂടെയാണ് പ്ലാറ്റ്ഫോമുകള് പുറത്തിറങ്ങുന്നത്. [തിരുത്തുക] ജാവ എസ്.ഇ.പൊതു ഉപയോഗത്തിനുള്ള സോഫ്റ്റ്വെയറുകള് നിര്മ്മിക്കാന് സാധാരണ ഉപയോഗിക്കുന്ന പ്ലാറ്റ്ഫോമാണ് ജാവ എസ്.ഇ. (Java SE - Java Platform, Standard Edition). ജാവ എസ്.ഇ.യില് ജെ.വി.എം., പ്രോഗ്രാമിങ്ങിനായുള്ള ശേഖരം (ലൈബ്രറി അഥവാ പാക്കേജ്) തുടങ്ങിയവ ഉള്ക്കൊള്ളുന്നു. ജാവയുടെ മാനകപതിപ്പാണ് ജാവ എസ്.ഇ. . ജാവയുടെ പുതിയ വേര്ഷന് നിശ്ചയിക്കപ്പെടുന്നത് ജാവ എസ്.ഇ. പുറത്തിറങ്ങുന്നതോടെയാണ്. ‘ജാവ 5‘ വരെ ഇത് ജെ2എസ്.ഇ (J2SE) എന്നാണ് ജാവ എസ്.ഇ. അറിയപ്പെട്ടിരുന്നത്. [തിരുത്തുക] ജാവ ഇ.ഇ.ജാവ പ്രോഗ്രാമിങ് ഭാഷ ഉപയോഗിച്ചുള്ള സെര്വര് സൈഡ് പ്രോഗ്രാമിങ്ങിനായി സൃഷ്ടിച്ചിട്ടുള്ള പ്ലാറ്റ്ഫോമാണ് ജാവ ഇ.ഇ. അഥവാ ജാവ എന്റര്പ്രൈസ് എഡിഷന് (Java EE - Java Platform, Enterprise Edition), വിവിധ കമ്പ്യൂട്ടറുകളിലേക്കായി വിന്യസിക്കാന് പ്രാപ്തമായ രീതിയില് പ്രോഗ്രാമുകളെ ഒരുക്കാനുള്ള കഴിവ് ഈ മണ്ഡലത്തില് ഉള്ക്കൊള്ളിച്ചിരിക്കുന്നു. ജാവ ഇ.ഇ.യെ അതിന്റെ മാനദണ്ഡങ്ങള്ക്കനുസരിച്ചുമാത്രമേ ഉപയോഗിക്കാന് കഴിയുകയുള്ളു. അതുകൊണ്ട് തന്നെ ജാവ കമ്മ്യൂണിറ്റി പ്രോസസ് നിര്ദ്ദേശിച്ചിട്ടുള്ള മാര്ഗ്ഗരേഖകള് പ്രകാരം നിര്മ്മിച്ച ജാവ ഇ.ഇ. ആപ്ലിക്കേഷന് മാത്രമേ അതിനു യോജ്യമായി കണക്കാക്കാറുള്ളു. ജാവ എസ്.ഇ.യിലുള്ള എ.പി.ഐ.കള്ക്കു പുറമേ സെര്വ്ലറ്റ്, എന്റര്പ്രൈസ് ജാവാബീന് തുടങ്ങി ഒരു കൂട്ടം എ.പി.ഐകള് ജാവ ഇ.ഇ.യില് കൂടുതലായി ഉണ്ട്. ജാവ 5-നു മുമ്പ് ജാവ ഇ.ഇ., ജെ2ഇ.ഇ (J2EE) എന്നറിയപ്പെട്ടു വന്നു. [തിരുത്തുക] ജാവ എം.ഇ.പ്രവര്ത്തനശേഷികുറഞ്ഞ ഉപകരണങ്ങള്ക്കായുള്ള ജാവയുടെ ഒരു ഉപഗണമാണ് ജാവ എം.ഇ. (Java ME - Java Platform, Micro Edition). മറ്റ് പ്ലാറ്റ്ഫോമുകളില് നിന്നും ജാവ എം.ഇ.യ്ക്കുള്ള പ്രധാനവ്യത്യാസം ജാവ എം.ഇ. പ്രോഗ്രാമുകള് പ്രവര്ത്തിക്കാനാവശ്യമായ റണ്റ്റൈം എന്വിയഴന്മെന്റ് സൌജന്യമായി സണ് നല്കുന്നില്ല എന്നതാണ്. ഇന്ന് റഫ്രിജറേറ്റര്, അലക്കുയന്ത്രം, മൊബൈല് ഫോണ് തുടങ്ങി ഒട്ടനവധി നിത്യോപയോഗ ഉപകരണങ്ങളില് ജാവ. എം.ഇ. ഉപയോഗിക്കുന്നു. 'ജാവ 5' പുറത്തിറങ്ങുന്നതിനുമുമ്പ് ജാവ എം.ഇ.യും ജെ2എം.ഇ.(J2ME) എന്നാണ് അറിയപ്പെട്ടിരുന്നത്. [തിരുത്തുക] ഗുണങ്ങള്ജാവയെ നിര്വ്വചിച്ചവര് ജാവയുടെ ഗുണങ്ങള് എന്തൊക്കെയാണെന്ന് വ്യക്തമായി പറഞ്ഞിട്ടുണ്ട്[19]:- ലളിതം : ഒരു നല്ലപ്രോഗ്രാമര്ക്ക് ജാവയിലെഴുതിയ പ്രോഗ്രാം എന്താണെന്ന് പെട്ടന്നു മനസ്സിലാക്കാന് കഴിയും. ജാവയില് പരിചയമില്ലങ്കില് തന്നെയും സി, സി++ തുടങ്ങിയ പ്രോഗ്രാമിങ് ഭാഷകള് ഏതെങ്കിലും വശമുള്ളയാളാണെങ്കില് ജാവയുടെ കോഡിങ് രീതി അപ്രാപ്യമായിരിക്കില്ല. ഒബ്ജക്റ്റ് ഓറിയന്റഡ് : ജാവ പോഗ്രാമുകള് പൂര്ണ്ണമായും ഒബ്ജക്റ്റ് ഓറിയന്റഡാണ്. ഇത് പ്രോഗ്രാമുകള് ലളിതവും പുനരുപയോഗത്തിനു സഹായകരമായും തെറ്റുകള് കണ്ടെത്താനും സഹായിക്കുന്നു. എന്നാല് സി++ല് ഉണ്ടായിരുന്നതു പോലെ മള്ട്ടിപ്പിള് ഇന്ഹെറിറ്റന്സ് ജാവയില് നേരിട്ട് അനുവദിക്കുന്നില്ല. അത് പ്രോഗ്രാം കൂടുതല് സങ്കീര്ണ്ണമാകാതിരിക്കാന് സഹായിക്കുന്നു. ചിതറിക്കിടക്കുന്നത് (Distributed) : റ്റി.സി.പി./ഐ.പി. ഉപയോഗിച്ച് ഒരു നെറ്റ്വര്ക്കിനാവശ്യമുള്ള പ്രോഗ്രാമുകള് എഴുതാന് ജാവ ഉപയോഗിച്ചു കഴിയും. അതിനായുള്ള വിപുലമായ ശേഖരങ്ങള് ജാവയില് ഇണക്കിച്ചേര്ത്തിരിക്കുന്നു. ജാവ ആപ്ലിക്കേഷനുകള്ക്ക് യൂ.ആര്.എല്ലുകള് ഉപയോഗിച്ച് ഫയല് സിസ്റ്റങ്ങളെ സമീപിക്കാന് കഴിയും. അബദ്ധരഹിതം (Robust) : പ്രോഗ്രാമുകളിലെ തെറ്റുകുറ്റങ്ങള് എപ്രകാരമെല്ലാം കുറയ്ക്കാമോ ആ വഴികളെല്ലാം ജാവയില് ചേര്ത്തിട്ടുണ്ട്. ഉണ്ടാകാനിടയുള്ള തെറ്റുകളെ മുമ്പേ തിരിച്ചറിയാനും അവയെ ഒഴിവാക്കാനുമുള്ള വഴികള് ജാവയിലുണ്ട്. മെമ്മറിയുടെ കൈകാര്യം മുമ്പൊക്കെ പ്രോഗ്രാമറുടെ മുന്നിലെ കീറാമുട്ടികളായിരുന്നുവെങ്കില് ജാവ അതു സ്വയം കൈകാര്യം ചെയ്യുന്നതിനാല് ഉപയോഗം ഏറെ ഏളുപ്പമാക്കുന്നു. ഉപയോഗിച്ചശേഷം പ്രയോജനരഹിതമാകുന്ന മെമ്മറിയെ പുനരുപയോഗിക്കാന് ഓട്ടോമാറ്റിക് ഗാര്ബേജ് കളക്ഷന് എന്ന വിദ്യ ജാവ ഉപയോഗിക്കുന്നു. കമ്പൈല് ചെയ്യുമ്പോഴും പ്രവര്ത്തിപ്പിക്കുമ്പോഴും ജാവ കോഡിങ് പരിശോധിക്കുന്നുണ്ട്. ഇത് പ്രോഗ്രാമറുടെ കണ്ണില് പെടാതെ പോകുന്ന തെറ്റുകളെ തിരിച്ചറിയാന് സഹായകമാകുന്നു. വ്യത്യസ്തമായ സാഹചര്യങ്ങളില് ഒരേ ജാവ പ്രോഗ്രാം എപ്രകാരമൊക്കെ പ്രവര്ത്തിക്കാനിടയുണ്ടെന്നു മുന്കൂട്ടി പറയാന് കഴിയും. പ്രവര്ത്തന സമയത്തുണ്ടാകാവുന്ന ഒഴിവാക്കേണ്ട പ്രശ്നങ്ങള് അഥവാ എക്സെപ്ഷനുകള് (Exceptions- ഉദാ:പൂജ്യം കൊണ്ട് ഹരിക്കുക) തികച്ചും ഒബ്ജക്റ്റ് ഓറിയന്റഡ് രീതിയില് കൈകാര്യം ചെയ്യാന് ഈ പ്രോഗ്രാമിങ് ഭാഷയില് കഴിയും. സുരക്ഷിതം : വ്യത്യസ്ത വ്യവസ്ഥകളില്നിന്നും നെറ്റ്വര്ക്കുകളിലും പ്രവര്ത്തിക്കാന് പ്രാപ്തമായ പ്രോഗ്രാമുകളാണ് ജാവയില് എഴുതുന്നത്, അതുകൊണ്ട് ജാവ സുരക്ഷിതമായ ഒരു ഭാഷയായാണ് സൃഷ്ടിച്ചിരിക്കുന്നത്[20]. ആര്ക്കിറ്റെക്ചര് നിഷ്പക്ഷം: ജാവ കമ്പൈലര് ബൈറ്റ്കോഡിനെ സൃഷ്ടിക്കുകയും ആ ബൈറ്റ്കോഡിനെ ഒരു ജെ.വി.എം പ്രവര്ത്തിപ്പിക്കുകയും ചെയ്യുന്നതുകൊണ്ട് പ്രോസസറിന്റേയോ മറ്റേതെങ്കിലും ഹാഡ്വെയറിലോ ഉണ്ടാകുന്ന മാറ്റം ജാവ പ്രോഗ്രാമുകളെ തെല്ലും ബാധിക്കില്ല. മറ്റുഭാഷകളില് ഒരു പ്രത്യേക യന്ത്രത്തിനായി കമ്പൈല് ചെയ്യുന്ന പ്രോഗ്രാം അതേ യന്ത്രത്തിന്റെ ഭാഗങ്ങള് മാറിയാല് പോലും പ്രവര്ത്തിക്കാതെ വരാം. എന്നാല് ജാവയ്ക്കീ പ്രശ്നമില്ല. ജാവ വിര്ച്ച്വല് മെഷീനുമായി മാത്രമേ ആശയവിനിമയം നടത്തുന്നുള്ളു എന്നതാണിതിനു കാരണം. ജാവ വിര്ച്ച്വല് മെഷീനുള്ള ഏതൊരു കമ്പ്യൂട്ടറിലും യന്ത്രത്തിലും ഏതൊരു ജാവാ പ്രോഗ്രാമും പ്രവര്ത്തിക്കും. വഹനീയം (Portable) : ജാവ പ്രോഗ്രാമുകള് ബൈറ്റ്കോഡായതിനാല് ജെ.വി.എം. ഉള്ള ഏതൊരു ഉപകരണത്തിലേക്കും മാറ്റാനും അവിടെ വച്ച് പ്രവര്ത്തിപ്പിക്കാനും കഴിയും. ഇടനിലവത്കരിക്കപ്പെട്ടത് (Interpreted) : ജാവ പ്രോഗ്രാമുകള് കമ്പ്യൂട്ടര് ഹാഡ്വെയറിനേയോ ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിനേ തന്നെയോ പ്രവര്ത്തിക്കാനായി കാണുന്നില്ല. ഇത് പ്രോഗ്രാമുകള് സുരക്ഷിതവും, വഹനീയവും, ആര്ക്കിറ്റെക്ചര് നിഷ്പക്ഷവുമാക്കുന്നു. അതിവേഗ പ്രവര്ത്തനം : സാധാരണഗതിയില് ഇടനിലവത്കരിക്കപ്പെട്ട പ്രോഗ്രാമുകള് അത്രവേഗത്തില് പ്രവര്ത്തികാനിടയില്ല. എന്നാല് ജാവ ജെ.ഐ.റ്റി. തുടങ്ങിയ വിദ്യകള് ഉപയോഗിച്ച് മറ്റ് പ്രോഗ്രാമിങ് ഭാഷകളോട് കിടപിടിക്കത്തക്ക വേഗത്തില് പ്രോഗ്രാമുകളെ പ്രവര്ത്തിപ്പിക്കുന്നു. മള്ട്ടി ത്രെഡെഡ് : ഒരു പ്രോഗ്രാമര്ക്ക് പ്രോഗ്രാമിനെ വിവിധ ഭാഗങ്ങളായി തിരിക്കാനും ഈ ഭാഗങ്ങളെ ഒരേസമയം പ്രവര്ത്തിപ്പിക്കാനും അങ്ങിനെ പ്രോഗ്രാമിന്റെ വേഗത വര്ദ്ധിപ്പിക്കാനും കഴിയും, പ്രോഗ്രാം ഭാഗങ്ങള്ക്ക് ഫലപ്രദമായ രീതിയില് പ്രോസസ്സറില് പ്രവര്ത്തിക്കാനുള്ള സമയം പങ്ക് വെച്ചു നല്കിയാണിത് സാധ്യമാക്കുന്നത്. ജാവയുടെ ഈ ഗുണമാണ് മള്ട്ടിത്രെഡിങ്. കാലാനുസൃതം (Dynamic) : ഉദിച്ചുവന്നുകൊണ്ടിരിക്കുന്നതോ വന്നേക്കാവുന്നതോ ആയ ഏതൊരു സാങ്കേതികവിദ്യയേയും സ്വാംശീകരിക്കാന് പ്രാപ്തമായ വിധത്തിലാണ് ജാവ സൃഷ്ടിച്ചിരിക്കുന്നത്. അതുകൊണ്ട് ജാവ കാലഹരണപ്പെട്ട് പോകാനിടയില്ല. ഉദാഹരണത്തിന് മുന് പ്രോഗ്രാമിങ് ഭാഷകള് ആസ്കി അക്ഷരങ്ങളെയായിരുന്നു ഉപയോഗിച്ചിരുന്നത്. അതുകൊണ്ട് അവയ്ക്ക് ലാറ്റിന് അക്ഷരങ്ങള്ക്കപ്പുറത്തേയ്ക്ക് പോകാന് കഴിയില്ലായിരുന്നു. ജാവ യൂണീകോഡ് അംഗീകരിച്ചിട്ടുള്ള അക്ഷരങ്ങളെയെല്ലാം പിന്തുണയ്ക്കുന്നു. അതുകൊണ്ട് ഒരു ഉപയോക്താവിനാവശ്യമുള്ള ഭാഷയില് സോഫ്റ്റ്വെയര് നിര്മ്മിച്ചു നല്കാന് ജാവ ഉപയോഗിച്ചു കഴിയും. [തിരുത്തുക] ജാവയും വെബുംഇന്ന് ജാവയുടെ സാന്നിദ്ധ്യം ഏറ്റവും കൂടുതലുള്ളത് വെബ്ബിലാണ്. ജാവയുടെ ആരംഭകാലത്ത് വെബ്ബില് ക്ലയന്റ് ഭാഗത്തുനിന്നും ജാവയ്ക്ക് നല്ല പിന്തുണലഭിച്ചിരുന്നു. പിന്നീട് മൈക്രോസോഫ്റ്റുമായുണ്ടായ തര്ക്കത്തെത്തുടര്ന്ന് ക്ലയന്റ് ഭാഗത്തു നിന്നുമുള്ള പിന്തുണ കുറഞ്ഞുപോയി. പ്രധാനമായും ആപ്ലറ്റുകള് എന്നറിയപ്പെടുന്ന ജാവ പ്രോഗ്രാമുകള് വെബ് ക്ലയന്റില് ഉപയോഗിക്കുന്നു. ജാവയുടെ ഔദ്യോഗിക അനുബന്ധമായി ലഭിക്കുന്ന സെര്വ്ലറ്റോ സെര്വ്ലറ്റുകളുടെ കൂടുതല് വിപുലീകരിച്ച ഫ്രെയിംവര്ക്കുകളോ വെബ് സെര്വ | |||||||||||||||||||||||||