diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md index b8e6006a6..40dceaf08 100644 --- a/1-js/01-getting-started/1-intro/article.md +++ b/1-js/01-getting-started/1-intro/article.md @@ -1,11 +1,7 @@ # ജാവാസ്ക്രിപ്റ്റ് ഒരു ഇൻട്രൊഡകഷൻ, നമുക്ക് നോക്കാം ജാവാസ്ക്രിപ്റ്റ് എന്താണെന്നും അതിന്റെ പ്രെത്യേകതയെന്നുo,നമുക്ക് അതുകൊണ്ടു എന്തൊക്കെ നേടാം, പിന്നെ ഏതൊക്കെ മറ്റു ടെക്നോളജിസ് അതിന്റെ കൂടെ വർക് ചെയ്യുമെന്ന്. -<<<<<<< HEAD ## എന്താണ് ജാവാസ്ക്രിപ്റ്റ് -======= -Let's see what's so special about JavaScript, what we can achieve with it, and what other technologies play well with it. ->>>>>>> 97ef86242f9f236b13152e1baf52a55c4db8728a *ജാവാസ്ക്രിപ്റ്റ്* ആദ്യമായി ഉപയോഗിച്ചു തുടങ്ങിയത് വെബ്‌പേജുകൾക്ക് ജീവൻ കൊടുക്കാനാണ്. @@ -23,13 +19,8 @@ Javascript ആദ്യമായി പുറത്തിറക്കിയപ ഇന്ന്, javascript ബ്രൗസർകളിൽ മാത്രമല്ല സെർവർകളിൽ വരെ ഉപയോഗിക്കാൻ പറ്റും, ചുരുക്കിപ്പറഞ്ഞാൽ[the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine) ഉള്ള ഏതൊരു ഡിവൈസിലും അതു ഉപയോഗിക്കാൻ പറ്റും. -<<<<<<< HEAD ബ്രൗസറുകൾക് സ്വന്തമായി ഒരു ജാവസ്ക്രിപ്റ് എൻജിൻ ഉണ്ടായിരിക്കും "JavaScript virtual machine". -======= -- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome and Opera. -- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox. -- ...There are other codenames like "Chakra" for IE, "ChakraCore" for Microsoft Edge, "Nitro" and "SquirrelFish" for Safari, etc. ->>>>>>> 97ef86242f9f236b13152e1baf52a55c4db8728a + പല എഞ്ചിനുകൾക്കും പല "കോഡുനെയിം" ആയിരിക്കും. ഉദാഹരണത്തിന്: @@ -47,7 +38,7 @@ Engines നല്ല ബുദ്ധിമുട്ടുള്ള ഒരു വ 2.പിന്നെ അത് ട്രാൻസ്ലേറ്റ ചെയ്തു മെഷീനിന്റെ ഭാഷയിലോട്ടാക്കും. 3.അതിനു ശേഷം മെഷിൻ കോഡു വളരെ വേഗത്തിൽ റണ് ചെയ്യും. പ്രക്രിയയുടെ ഓരോ ഘട്ടത്തിലും എഞ്ചിൻ ഒപ്റ്റിമൈസേഷനുകൾ ചെയ്‌ത് വെക്കും. കംപൈൽ ചെയ്ത സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുമ്പോൾ പോലും അത് കാണുകയും അതിലൂടെ വരുന്ന ഡാറ്റ വിശകലനം ചെയ്ത് ആ അറിവിനെ അടിസ്ഥാനമാക്കി മെഷീൻ കോഡ് കൂടുതൽ ഒപ്റ്റിമൈസ് ചെയ്യും. -`` ```` +``` ## ബ്രൗസറിൽ ജവസ്ക്രിപ്റ്റന് എന്തു ചെയ്യാൻ സാധിക്കും? ഇപ്പോഴത്തെ ജാവാസ്ക്രിപ്റ്റ് ഒരു "സുരക്ഷിത" പ്രോഗ്രാമിംഗ് ഭാഷയാണ്. ഇത് ഡിവൈസിന്റെ മെമ്മോറിയിലേക്കോ സിപിയുവിലേക്കോ ഒന്നും ആക്സസ് നൽകുന്നില്ല, കാരണം ഇത് ആദ്യകാലങ്ങളിൽ ഇതൊന്നും ഇല്ലാതിരുന്ന ബ്രൗസർകൾക്കായി ഉണ്ടാക്കിയതാണ്. @@ -63,7 +54,6 @@ Engines നല്ല ബുദ്ധിമുട്ടുള്ള ഒരു വ - ക്ലയന്റ് ഭാഗത്തുള്ള ഡാറ്റ ഓർക്കുക ("ലോക്കൽ സ്റ്റോറേജ്"). ## ബ്രൗസറിൽ ജാവസ്ക്രിപ്റ്റന് എന്തു ചെയ്യാൻ കഴിയില്ല? -![](limitations.svg) ഉപയോക്താവിന്റെ സുരക്ഷയ്ക്കായി ബ്രൗസറിലെ ജാവാസ്ക്രിപ്റ്റിന്റെ കഴിവുകൾ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. ഒരു ദുഷിച്ച വെബ്‌പേജ് സ്വകാര്യ വിവരങ്ങൾ‌ ആക്‌സസ് ചെയ്യുന്നതിൽ‌ നിന്നും അല്ലെങ്കിൽ‌ ഉപയോക്താവിൻറെ ഡാറ്റയെ ദോഷകരമായി ബാധിക്കുന്നതിൽ‌ നിന്നും തടയുക എന്നതാണ് ലക്ഷ്യം. @@ -81,14 +71,14 @@ Engines നല്ല ബുദ്ധിമുട്ടുള്ള ഒരു വ ഈ പരിധി വീണ്ടും ഉപയോക്താവിന്റെ സുരക്ഷയ്ക്കായിരിക്കും. ഒരു ഉപയോക്താവ് തുറന്ന `http: // anysite.com` ൽ നിന്നുള്ള ഒരു പേജിന്` http: // gmail.com` URL ഉള്ള മറ്റൊരു ബ്രൗസർ ടാബ് ആക്സസ് ചെയ്യാനും അവിടെ നിന്ന് വിവരങ്ങൾ മോഷ്ടിക്കാനും കഴിയില്ല. - നിലവിലെ പേജ് വന്ന സെർവറിലേക്ക് ജാവാസ്ക്രിപ്റ്റിന് നെറ്റിലൂടെ എളുപ്പത്തിൽ ആശയവിനിമയം നടത്താൻ കഴിയും. എന്നാൽ മറ്റ് സൈറ്റുകളിൽ നിന്നും ഡൊമെയ്‌നുകളിൽ നിന്നും ഡാറ്റ സ്വീകരിക്കാനുള്ള അതിന്റെ കഴിവ് തകരാറിലാകുന്നു. സാധ്യമാണെങ്കിലും, വിദൂര ഭാഗത്ത് നിന്ന് വ്യക്തമായ കരാർ (http header) ആവശ്യമാണ്. ഒരിക്കൽ കൂടി, അതൊരു സുരക്ഷാ പരിമിതിയാണ്. -! [] (limit.svg) + ![](limitations.svg) ജാവാസ്ക്രിപ്റ്റ് ബ്രൗസർ ന് പുറത്ത് ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ അത്തരം പരിധികൾ ഒരു പ്രശ്‌നമല്ല, ഉദാഹരണത്തിന് ഒരു സെർവറിൽ, വിപുലീകൃത അനുമതികൾ ആവശ്യപ്പെടുന്ന പ്ലഗിൻ / വിപുലീകരണങ്ങളും ആധുനിക ബ്രൗസർ അനുവദിക്കുന്നു. ## എന്താണ് ജാവസ്ക്രിപ്റ്റിനെ വ്യത്യസ്തമാക്കുന്നത്? -ജാവാസ്ക്രിപ്റ്റിനെക്കുറിച്ച് കുറഞ്ഞത് ഒരു* മൂന്ന് * കാര്യങ്ങളുണ്ട്: +ജാവാസ്ക്രിപ്റ്റിനെക്കുറിച്ച് കുറഞ്ഞത് ഒരു *മൂന്ന്* പ്രധാനപ്പെട്ട കാര്യങ്ങളുണ്ട്. -`` `താരതമ്യം ചെയ്യുക +``` + HTML / CSS യുമായുള്ള പൂർണ്ണ സംയോജനം. + ലളിതമായ കാര്യങ്ങൾ ലളിതമായി ചെയ്യുന്നു. + എല്ലാ പ്രധാന ബ്രൗസറുകളുടെയും പിന്തുണ തനിയെ ഉണ്ട്. @@ -106,37 +96,24 @@ Engines നല്ല ബുദ്ധിമുട്ടുള്ള ഒരു വ അത് പ്രതീക്ഷിക്കേണ്ടതാണ്, കാരണം പ്രോജക്റ്റുകളും ആവശ്യകതകളും എല്ലാവർക്കും വ്യത്യസ്തമാണ്. -ബ്രൗസറിൽ പ്രവർത്തിക്കുന്നതിനുമുമ്പ് ജാവാസ്ക്രിപ്റ്റിലേക്ക് * കൈമാറ്റം ചെയ്യപ്പെട്ട * (പരിവർത്തനം ചെയ്ത) പുതിയ ഭാഷകളുടെ എണ്ണം അടുത്തിടെ കൂടിയിട്ടുണ്ട്. +ബ്രൗസറിൽ പ്രവർത്തിക്കുന്നതിനുമുമ്പ് ജാവാസ്ക്രിപ്റ്റിലേക്ക് *കൈമാറ്റം ചെയ്യപ്പെട്ട* (പരിവർത്തനം ചെയ്ത) പുതിയ ഭാഷകളുടെ എണ്ണം അടുത്തിടെ കൂടിയിട്ടുണ്ട്. ആധുനിക ഉപകരണങ്ങൾ ട്രാൻസ്പ്ലൈസേഷനെ വളരെ വേഗതയുള്ളതും സുതാര്യവുമാക്കുന്നു, ഇത് യഥാർത്ഥത്തിൽ ഡവലപ്പർമാരെ മറ്റൊരു ഭാഷയിൽ കോഡ് ചെയ്യാൻ അനുവദിക്കുകയും അത് "വികസിതമായി" സ്വയo പരിവർത്തനം ചെയ്യുകയും ചെയ്യുന്നു. -അത്തരം ഭാഷകളുടെ ഉദാഹരണങ്ങൾ: +അത്തരം ചില ഉദാഹരണങ്ങളാണ്: -- [കോഫിസ്ക്രിപ്റ്റ്] (http://coffeescript.org/) ജാവാസ്ക്രിപ്റ്റിനായുള്ള ഒരു "സിന്റാക്‌സ്" ആണ്. ഇത് ഹ്രസ്വമായ സിന്റാക്‌സ് അവതരിപ്പിക്കുന്നു, വ്യക്തവും കൃത്യവുമായ കോഡ് എഴുതാൻ ഞങ്ങളെ അനുവദിക്കുന്നുo. സാധാരണയായി, റൂബി ഡെ ഡെവെലോപെർസ് ഇത് ഇഷ്ടപ്പെടുന്നു. +- [കോഫിസ്ക്രിപ്റ്റ്] (http://coffeescript.org/) ജാവാസ്ക്രിപ്റ്റിനായുള്ള ഒരു "സിന്റാക്‌സ്" ആണ്. ഇത് ഹ്രസ്വമായ സിന്റാക്‌സ് അവതരിപ്പിക്കുന്നു, വ്യക്തവും കൃത്യവുമായ കോഡ് എഴുതാൻ ഞങ്ങളെ അനുവദിക്കുന്നതും. സാധാരണയായി, റൂബി ഡെ ഡെവെലോപെർസ് ഇത് ഇഷ്ടപ്പെടുന്നു. - [ടൈപ്പ്സ്ക്രിപ്റ്റ്] (http://www.typescriptlang.org/) സങ്കീർണ്ണമായ സിസ്റ്റങ്ങളുടെ വികസനവും പിന്തുണയും ലളിതമാക്കുന്നതിന് "കർശനമായ ഡാറ്റ ടൈപ്പിംഗ്" ചേർക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിച്ചിരിക്കുന്നു. ഇത് വികസിപ്പിച്ചെടുത്തത് മൈക്രോസോഫ്റ്റ് ആണ്. - [ഫ്ലോ] (http://flow.org/) ഡാറ്റ ടൈപ്പിംഗും ചേർക്കുന്നു, പക്ഷേ മറ്റൊരു രീതിയിൽ. ഫേസ്ബുക്ക് വികസിപ്പിച്ചെടുത്തത്. - [ഡാർട്ട്] (https://www.dartlang.org/) ബ്രൗസർ ഇതര പരിതസ്ഥിതികളിൽ (മൊബൈൽ അപ്ലിക്കേഷനുകൾ പോലെ) പ്രവർത്തിക്കുന്ന സ്വന്തം എഞ്ചിൻ ഉള്ള ഒരു ഒറ്റപ്പെട്ട ഭാഷയാണ്, മാത്രമല്ല ഇത് ജാവാസ്ക്രിപ്റ്റിലേക്ക് കൈമാറാനും കഴിയും. Google വികസിപ്പിച്ചെടുത്തത്. -<<<<<<< HEAD -കൂടുതൽ ഉണ്ട്. തീർച്ചയായും, ഞങ്ങൾ‌ ട്രാൻ‌സ്‌പൈൽ‌ ചെയ്‌ത ഭാഷകളിലൊന്ന്‌ ഉപയോഗിച്ചാലും, ഞങ്ങൾ‌ ചെയ്യുന്നതെന്താണെന്ന് ശരിക്കും മനസിലാക്കാൻ‌ ഞങ്ങൾ‌ JavaScript നെ അറിഞ്ഞിരിക്കണം. -======= -- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it. -- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft. -- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook. -- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google. -- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript. -- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node. ->>>>>>> 97ef86242f9f236b13152e1baf52a55c4db8728a + +കൂടുതൽ ഉണ്ട്. തീർച്ചയായും, നമ്മൾ ട്രാൻ‌സ്‌പൈൽ‌ ചെയ്‌ത ഭാഷകളിലൊന്ന്‌ ഉപയോഗിച്ചാലും, നമ്മൾ ചെയ്യുന്നതെന്താണെന്ന് ശരിക്കും മനസിലാക്കാൻ‌ നമ്മൾ JavaScript നെ അറിഞ്ഞിരിക്കണം. ## സംഗ്രഹം -- ജാവാസ്ക്രിപ്റ്റ് തുടക്കത്തിൽ ഒരു ബ്രൌസർ മാത്രമുള്ള ഭാഷയായി സൃഷ്ടിക്കപ്പെട്ടു, പക്ഷേ ഇപ്പോൾ മറ്റ് പല പരിതസ്ഥിതികളിലും ഇത് ഉപയോഗിക്കുന്നു. +- ജാവാസ്ക്രിപ്റ്റ് തുടക്കത്തിൽ ഒരു ബ്രൌസർ മാത്രമുള്ള ഭാഷയായി സൃഷ്ടിക്കപ്പെട്ടു, പക്ഷേ ഇപ്പോൾ മറ്റ് പല ആവശ്യങ്ങൾക്കും ഇത് ഉപയോഗിക്കുന്നു. - ഇന്ന്, HTML / CSS മായി പൂർണ്ണമായി സംയോജിപ്പിച്ച് ഏറ്റവും വ്യാപകമായി സ്വീകരിച്ച ബ്രൌസർ ഭാഷയായി ജാവാസ്ക്രിപ്റ്റിന് സവിശേഷമായ ഒരു സ്ഥാനമുണ്ട്. -- ജാവാസ്ക്രിപ്റ്റിലേക്ക് "കൈമാറ്റം ചെയ്യപ്പെടുകയും" ചില സവിശേഷതകൾ നൽകുകയും ചെയ്യുന്ന നിരവധി ഭാഷകളുണ്ട്. ജാവാസ്ക്രിപ്റ്റ് മാസ്റ്റേഴ്സ് ചെയ്തതിനുശേഷം, ചുരുക്കത്തിൽ, അവ പരിശോധിക്കുന്നത് നല്ലതായിരിക്കും. - -<<<<<<< HEAD -======= -- JavaScript was initially created as a browser-only language, but it is now used in many other environments as well. -- Today, JavaScript has a unique position as the most widely-adopted browser language with full integration in HTML/CSS. -- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript. ->>>>>>> 97ef86242f9f236b13152e1baf52a55c4db8728a +- ജാവാസ്ക്രിപ്റ്റിലേക്ക് "കൈമാറ്റം ചെയ്യപ്പെടുകയും" ചില സവിശേഷതകൾ നൽകുകയും ചെയ്യുന്ന നിരവധി ഭാഷകളുണ്ട്. ജാവാസ്ക്രിപ്റ്റ്നെ നന്നായി അറിഞ്ഞതിനു ശേഷം, അവ പരിശോധിക്കുന്നത് നല്ലതായിരിക്കും. + +