பைத்தான் ப்ரோக்ராம்மிங் – பாடம் – 1

Phyton

ப்ரோக்ராம்மிங் என்றாலே நாம், நமக்கு வேண்டிய காரியத்தை செய்ய, கணினிக்கு கொடுக்கும் instructions என்பதை முதலில் புரிந்துக்கொள்ளுங்கள். நாம் எப்படி communicate செய்வதற்கு ஒரு மொழியை சார்ந்திருக்கிறோமோ அதே போல, கணினி உடன் உரையாடவும் ஒரு மொழி தேவை. எப்படி உலகில் இன்று பல மொழிகள் உள்ளனவோ, அதே போல கணினியுடன் உரையாடவும் பல மொழிகள் உள்ளன.

ஆரம்ப காலங்களில் assembly எனப்படும் மிக கடுமையான, hardwareக்கு டைரக்டாக instruction கொடுக்கும் வகையில் மொழி இருந்தது. அதன் பின்னே, கணினி பல உபயோகங்களுக்கு பரவலாக பயன்பட ஆரம்பித்தபோது, சற்றே உயர்ந்த அளவில் ஒரு மொழி தேவைப்பட்டது. assembly அளவுக்கு இல்லையென்றாலும், இதுவும் கொஞ்சம் கடினம் தான். அந்த மொழி இன்றும் பெரிய அளவில் உபயோகப்பட்டுக்கொன்ட்டிருக்கும் “C” எனும் மொழி தான்.

எனக்கு இது ரொம்ப ஸ்பெஷல் ஏன் என்றால் 1996இல் நான் எனது ப்ரோக்ராம்மிங் வாழ்கையை இந்த மொழியில் தான் ஆரம்பித்தேன். மிகவும் சக்திவாய்ந்த மொழி. ஆனால் எழுதி, எழுதிய codeஐ maintain பண்ணுவது கொஞ்சம் கடினம். இன்று கிட்ட தட்ட இந்த மொழியை ஒரு சில கணினி துறைகளை தவிர, சொல்லிக்கொடுப்பதை மொத்தமாக நிறுத்திவிட்டார்கள். ஏன் என்றால் இதை விட பல வகையில் சுலபமான, கற்றுக்கொள்ள, ப்ரோக்ராம்மிங் செய்ய சுலபமான மொழிகள் வந்துவிட்டன அதனால்.

இன்னும் சொல்லப்போனால் எங்கெல்லாம் “C” உபயோகப்பட்டுகொண்டிருந்ததோ அங்கெல்லாம் இந்த புது மொழிகள், அதிலும் பைத்தான் எனும் மொழி, மிக அதிகமாக பயன்படுத்தபடுகிறது.

“C” க்குக் அப்புறம் தான் Object Oriented Programming எனும் concept வந்து அதில் பிரபலமான ஒரு மொழி C++. இதுவும் கற்றுக்கொள்ள, ப்ரோக்ராம்மிங் செய்ய கொஞ்சம் கடினமான மொழிதான். இந்த மொழிதான் என்னுடைய முதல் Object Oriented Programming Language. இதுவும் ரொம்பவே பிரபலம். இன்றும் பல ரொம்ப critical ஆன applications இந்த மொழியில் தான் எழுதப்பட்டு இருக்கிறது.

ஏன் “C” மற்றும் “C++” கடினம் என சொல்கிறேன் என்றால், ப்ரோக்ராம்மிங்இல் கணினியை எப்படி செயல்படுத்தி நமக்கு தேவையான விஷயங்களை செய்து முடிக்கிறோம் என்பது ரொம்ப முக்கியம். அதில் நமக்கு கணினியை செயல்படுத்துவதில் எத்தனை சுதந்திரம் இருக்கிறது என்பதை நாம் எந்த மொழியை உபயோகப்படுத்துகிறோம் தீர்மானம் செய்கிறது. “C” மற்றும் “C++” நமக்கு பரிபூரண சுதந்திரம் அளிக்கிறது. அதை சரியாக பயன்படுத்தி, வேலையை சாதித்துக்கொள்வது என்பது ரொம்ப பெரிய விஷயம். இதுக்கு ரொம்பவே ஆழ்ந்த புலமை தேவை. மற்றும், தவறாக உபயோகப்படுத்துவதும் சர்வ சாதாரணமா நடக்கும்.

ஆகையினாலே தான் இந்த முக்கிய பொறுப்புகளை operating systemக்கு மேல் இன்னொரு குட்டி operating system உருவாக்கி அதுக்கு virtual machine என பெயர் சூட்டி அந்த virtual machine இல் ஒரு மொழியின் instructions ஐ execute பண்ணுமாறு செய்திருக்கிறார்கள். அந்த virtual machineக்கு தெரியும் எந்த operating system, அதுக்கு என்ன மாதிரி instructions தேவை என. நாம் கொடுக்கும் instructionsஐ தனக்கு ஏற்ற மாதிரி மாற்றி (இதனை byte code என்பார்கள்) அந்த instructions ஐ பின் operating systemக்கு ஏத்த மாதிரி மாற்றி, இயக்கி, திரும்ப வரும் அவுட்புடை நமக்கு கொடுக்கும் வேலையை கச்சிதமா செய்யும்.

நிற்க.

என்னங்க virtual machineன்னு சொல்றீங்க, byte codeன்றீங்க, மண்டை காயுதேன்னு நினைகிறீங்களா?

இது பெரிய விஷயம் தான், ஆனா இதோட அடிப்படை செயல்பாடுகளை புரிந்துக்கொள்ள பெரிசா பயப்பட வேண்டாம்.

virtual machine – கூகிள்ல தமிழ் மொழி மாற்றம் செஞ்சா மெய்நிகர் இயந்திரம்ன்னு வருது. மெய்நிகர் என்றால் உண்மை போலவே, அல்லது உண்மைக்கு நிகராக, ஆனால் உண்மை கிடையாது. virtual machine, operating systemக்கு நிகரான ஒரு மூளை, ஆனால் operating system கிடையாது.

என்னத்துக்கு இந்த அக்கப்போர் அப்படின்னு கேட்டிங்கன்னா…

1. பல operating system இருக்கு. ஒரு operating சிஸ்டம்ல எழுதப்படற application, இன்னொரு operating systemல ஓட்டணும்னா, அந்த operating systemக்கு எத்த மாதிரி இந்த applicationஐ மாத்தி எழுதணும். இதனால பல தவறுகள் நடக்கும், நேர விரையம், பண விரையம், ஆட்கள் கிடைக்க மாட்டாங்க. இப்படி பல காஸ்ட்லி தொல்லைகள். virtual machine வந்த பின்னாடி, ஒவ்வோரு operating systemக்கும் ஒரு virtual machine இருக்கும், உங்க applictionஐ அந்த virtual machineஇல் ஒரு முறை compile (இது என்னனு பின்னாடி பாப்போம்) பண்ணா போதும். நேர மிச்சம், செலவு மிச்சம், தவறுகள் நடப்பது குறையும்.

2. செக்யூரிட்டி – ஆமாம் கணினியை தவறான instructions கொடுத்து தப்பான வழியில் செயல்படுத்த, அல்லது தெரியாமல் செய்த தவறு மிகப்பெரிய இழப்பை ஏற்படுத்துவது போன்ற விஷயங்கள் சர்வ சாதாரணமா நடக்கும். இதை தடுக்க மிகப்பெரிய உதவியை செய்யுது virtual machine ( இதையும் பின்னாடி பாப்போம், இப்போ இந்த அளவுக்கு புரிஞ்சுக்கிட்டிங்கன்னா போதும். )

3. ப்ரோக்ராம்மிங்ஐ எளிதாக்குதல். முன்னே ப்ரோக்ராம்மர்கள் செய்த பல வேலைகளை இன்று virtual machine செய்கிறது. இதனால் ப்ரோக்ராம்மர்களின் வேலை சுலபமா ஆகிடுது. ப்ரோக்ராம்மர்கள் இன்று எந்த வேலைக்கு program செய்ய முனைந்துல்லார்களோ அதை மட்டும் செய்தால் போதும் என்ற அளவுக்கு சுலபமாக்கப்படிருக்கிறது. இதற்கும் virtual machine ஒரு காரணம்.

4. byte code என்று ஒண்ணு சொன்னேன் இல்லையா? அது நாம் ஆங்கிலத்தில் ஒரு மொழியின் சூத்திரத்திற்கு எத்த மாதிரி program செய்வது நமக்கு புரியும். கணினிக்கு புரியாது. கணினிக்கு வெறும் 1 மற்றும் 0 தான் புரியும். அதனால் நாம் எழுதும் programஐ virtual machine தனக்கு புரியும்படி ஒரு மொழியில் மாற்றி, பின் அதை operating systemக்கு எத்த மாதிரி மாற்றி கொடுத்து, அதை வாங்கும் operating system, அதை மேலும் மாற்றி, கணினிக்கு புரியும்படி, செயல்படுத்தி நமக்கு தேவையான அவுட்புட் கொடுக்கிறது. ஆக byte code virtual machine பேசும் மொழி என புரிந்துக்கொள்ளுங்கள். அதே சமயம், உங்கள் ப்ரோக்ராம்மிங் வாழ்க்கையில் நீங்கள் byte code எல்லாம் பார்க்க போவதே இல்லை என்பதுதான் நிச்சயம். உங்கள் program எப்படி byte code ஆக மாறுகிறது, என்ன மாதிரி instruction என்ன மாதிரி அது operating system instruction ஆக மாறுகிறது என்பதெல்லாம் நொண்டி நொண்டி கற்றுக்கொண்டால் நீங்கள் ஆக சிறந்த ப்ரோக்ராமர் ஆவீர்கள். இது தெரிந்தால் தான் நீங்க எழுதும் program எப்படி efficient ஆக செயல்படும் என்பது உங்களுக்கு புரியும். ஆனால் இன்று பெரிதாக யாரும் இதை கண்டுகொள்வதில்லை.

5. இவ்வளவு சமாசாரம் நடக்குதே, இதெல்லாம் நேரம் எடுக்காதான்னு நீங்க கேட்கிறது எனக்கு கேட்குது. ஒரு வினாடியின் சில துளிகளில் இவைகளை கணினி நடத்தி காட்டிவிடும். காரணம், இன்று hardware ரொம்ப சீப்பாக மாறி ஒவ்வொரு கணினியும் ரொம்ப சக்திவாய்ந்ததாக இருக்கிறது, மற்றொன்று virtual machine எழுதின ஜாம்பவான்கள், தொடர்து அதை மேம்படுத்தி, அதை கிட்ட தட்ட ஒரு operating system எந்த அளவுக்கு வேகமா செயல்படுதோ, அதே அளவுக்கு செயல்படற மாதிரி பண்ணிட்டாங்க.

virtual machineக்கு ஆக சிறந்த உதாரணம் நாம சாதரணமா தினமும் உபயோகிக்கும் வெப் ப்ரௌசெர். ஆமாம் இந்த ப்ரௌசெரில் தான் ஜாவஸ்க்ரிப்ட் எனும் மொழி இயக்கப்படுகிறது. இன்று இந்த மொழி program இல்லாத வெப்சைட்டே இல்லை எனலாம்.

இன்று மிகப் பிரபலமா இருக்கும் சில virtual machine சார்ந்த கணினி மொழிகள், ஜாவா, பைத்தான், சீஷார்ப் (இது மைக்ரோசாப்ட் மொழி), ஜாவஸ்க்ரிப்ட் (உங்க ப்ரௌசெர் தான் இதனோட virtual machine)

என்னடா ப்ரோக்ராம்மிங் சொல்லிக்கொடுகிரேன்னானே அத வுட்டுட்டு வள வளன்னு எதோ இழுத்துகிட்டு போறானேன்னு நினைக்காதீங்க. இதெல்லாம் பால பாடம். ஓரளவுக்கு புரிஞ்சா தான் நீங்க நல்ல ப்ரோக்ராமர் ஆக முடியும்.

இதை படிங்க, உங்களுக்கு ஏதாகிலும் கேள்விகள் இருந்தா, கமென்ட்ல போடுங்க இல்லைன்னா எனக்கு WhatsApp பண்ணுங்க 8778723474

தயங்காதீங்க நிறைய கேளுங்க, நல்லா புரிஞ்சுகோங்க. கற்றுக்கொள்ளும் ஆர்வமும், புரிந்துக்கொள்ளவேண்டும் எனும் முயற்சியுமே ஒருவரை நல்ல ப்ரோக்ராமரா மாற்றும்.

நன்றி: அனுஷம் ஸ்ரீராம்

Please follow and like us:

Be the first to comment

  Type Comments in Indian languages (Press Ctrl+g to toggle between English and Tamil OR just Click on the letter)

Leave a Reply

Your email address will not be published.


*