புராணம் என்பது உரை, எனவே அணுகக்கூடியது
பார்வையுள்ள டெவலப்பர்கள் மத்தியில் ஒரு தொடர்ச்சியான தவறான கருத்து உள்ளது: ஒரு பயன்பாடு டெர்மினலில் இயங்கினால், அது இயல்பாகவே அணுகக்கூடியது. கிராபிக்ஸ், சிக்கலான DOM மற்றும் WebGL கேன்வாஸ்கள் இல்லாததால், உள்ளடக்கமானது ஸ்க்ரீன் ரீடர் எளிதாக அலசக்கூடிய ASCII உரை மட்டுமே என்று தர்க்கம் கருதுகிறது.
யதார்த்தம் வேறு. பெரும்பாலான நவீன உரை பயனர் இடைமுகங்கள் (TUIகள்) மோசமாக குறியிடப்பட்ட வரைகலை இடைமுகங்களைக் காட்டிலும் அணுகல்தன்மைக்கு மிகவும் விரோதமானவை. டெர்மினலில் டெவலப்பர் அனுபவத்தை (DX) மேம்படுத்த வடிவமைக்கப்பட்ட கருவிகள் – Ink (JS/React), Bubble Tea (Go) அல்லது tcell போன்ற கட்டமைப்புகள் – பார்வையற்ற பயனர்களின் அனுபவத்தை தீவிரமாக அழிக்கின்றன.
கட்டிடக்கலை குறைபாடு: ஸ்ட்ரீம் vs கிரிட்
தோல்வியைப் புரிந்துகொள்வதற்கு, “டெர்மினல் அப்ளிகேஷன்களில்” அடிக்கடி இணைக்கப்பட்ட இரண்டு வேறுபட்ட கருத்துகளை நாம் வேறுபடுத்திப் பார்க்க வேண்டும்: CLI (கட்டளை வரி இடைமுகம்) மற்றும் TUI.
-
CLI (தி ஸ்ட்ரீம்): இது ஒரு நிலையான உள்ளீடு/வெளியீட்டு மாதிரியில் வேலை செய்கிறது (
stdin/stdout) நீங்கள் ஒரு கட்டளையைத் தட்டச்சு செய்கிறீர்கள், கணினி கீழே உள்ள வெளியீட்டைச் சேர்க்கிறது, மேலும் கர்சர் கீழே நகரும். இது நேரியல் மற்றும் காலவரிசை. ஸ்கிரீன் ரீடருக்கு, குறிப்பாக ஸ்பீக்கப் போன்ற கர்னல்-நிலை வாசகர்களுக்கு, இது சிறந்தது. -
TUI (தி கிரிட்): இது டெர்மினல் விண்டோவை உரையின் ஸ்ட்ரீமாக அல்ல, ஆனால் பிக்சல்களின் 2D கட்டமாக கருதுகிறது, இதில் ஒவ்வொரு எழுத்துக் கலமும் ஒரு பிக்சல் ஆகும். இது ஒரு இடஞ்சார்ந்த அம்சத்திற்கான தற்காலிக ஓட்டத்தை கைவிடுகிறது.
வழக்கு ஆய்வு: தி gemini-cli பைத்தியக்காரத்தனம்
ஒரு உறுதியான உதாரணத்தைப் பார்ப்போம்: gemini-cliமை கட்டமைப்பைப் பயன்படுத்தி Node.js இல் எழுதப்பட்ட ஒரு கருவி. மேலோட்டமாக, இது ஒரு எளிய அரட்டை இடைமுகம் போல் தெரிகிறது. ஆனால் அடியில், மை ரியாக்ட் கூறுகளின் ஒரு மரத்தை டெர்மினல் கிரிட்டில் சமரசம் செய்ய முயற்சிக்கிறது.
ஸ்பீக்கப் (லினக்ஸ்) அல்லது என்விடிஏ (விண்டோஸ்) உடன் இந்தக் கருவியைப் பயன்படுத்தும் போது, பயன்பாடு வெறுமனே செயலிழக்காது; உங்களை தீவிரமாக ஸ்பேம் செய்கிறது.
கட்டமைப்பானது திரையை ஒரு எதிர்வினை கேன்வாஸாகக் கருதுவதால், ஒவ்வொரு புதுப்பித்தலும் மீண்டும் வரையத் தூண்டுகிறது. AI “நினைக்கும்போது”, கருவி ஒரு டைமர் அல்லது ஸ்பின்னரை புதுப்பிக்கிறது. இதைச் செய்ய, இது வன்பொருள் கர்சரை டைமர் இருப்பிடத்திற்கு நகர்த்துகிறது, புதிய நேரத்தை எழுதுகிறது மற்றும் அதை மீண்டும் நகர்த்துகிறது.
பார்வையுள்ள பயனருக்கு, இது உடனடியாக நடக்கும். ஸ்கிரீன் ரீடர் பயனருக்கு, நீங்கள் கேட்பது இங்கே:
“பதில்… நேரம் கழிந்தது 1 வினாடி… பதில் சொல்கிறது… நேரம் கழிந்தது 2 வினாடி… [Fragment of chat history]… பதிலளிக்கிறேன்…”
இது ஸ்கிரீன் ரீடரை பைத்தியமாக்குகிறது. நிலை குறிகாட்டிகள், ஸ்பின்னர்கள் மற்றும் வரலாற்றைப் புதுப்பிக்க கர்சர் திரை முழுவதும் டெலிபோர்ட் செய்கிறது. ஸ்பீக்அப் கர்சரின் கீழ் உள்ளதை சரியாக அந்த மில்லி வினாடியில் படிக்க முயல்கிறது. டைமர் புதுப்பிப்புகளுடன் குறுக்கிடப்பட்ட உரையாடலின் சீரற்ற பிட்களைக் கேட்கிறீர்கள், நீங்கள் உண்மையில் தட்டச்சு செய்கிறீர்கள் என்பதில் கவனம் செலுத்த முடியாது.
மோசமான விஷயம் என்னவென்றால், நீங்கள் இதுவரை ஸ்பீக்கப்பை சரியாகச் செய்து வருகிறீர்கள் என்று வைத்துக்கொள்வோம், ஆனால் நீங்கள் என்விடாவில் வேலை செய்ய விரும்புகிறீர்கள். விண்டோஸில் நீங்கள் பெறும் பிழையை நீங்கள் ஒட்டுகிறீர்கள். எனவே டெர்மினலைத் திறந்து, லினக்ஸ் பெட்டியில் ssh ஐத் திறந்து, திரை அமர்வில் இணைத்து உரையை ஒட்டவும்.
இதன் விளைவாக உடனடி ஸ்கிரீன் ரீடர் (என்விடிஏ) செயலிழப்பு அல்லது பாரிய கணினி உறுதியற்ற தன்மை. ஏன்? ஒவ்வொரு முறையும் நீங்கள் ஒரு எழுத்தை தட்டச்சு அல்லது உரையை ஒட்டும்போது, பயன்பாடு நிலை மாற்றத்தைத் தூண்டும். கட்டமைப்பானது இடைமுகத்தை வழங்க வேண்டும் என்பதை தீர்மானிக்கிறது. உரையாடல் வரலாறு இந்த நிலையின் ஒரு பகுதியாக இருப்பதால், ஆயிரக்கணக்கான உரைகளின் தளவமைப்பை உடனடியாக மீண்டும் வரையவோ அல்லது மீண்டும் கணக்கிடவோ ஆப்ஸ் முயற்சிக்கிறது. உரையாடலில் அதிக செய்திகள் இருந்தால், அதிகமாக நடக்கும். மேலும் இல்லை, டைனமிக் உள்ளடக்க மாற்றத்தை அறிவிப்பதைத் தவிர்க்க வேண்டிய முக்கிய கலவையான insert+5 ஐப் பயன்படுத்தி இதைத் தவிர்க்க முடியாது.
தாமத வளையம்
கூடுதலாக, ஒற்றை-திரிக்கப்பட்ட சூழல்களில் (Node.js போன்றவை) இயங்கும் மை போன்ற கட்டமைப்புகள் வரலாறு வளரும் போது பாரிய செயல்திறன் சிதைவால் பாதிக்கப்படுகின்றன. நீங்கள் ஒரு பெரிய தொகுதி உரையை ஒட்டினால், ஆயிரக்கணக்கான வரிகளுக்கான வித்தியாசத்தை கணினி கணக்கிட வேண்டும்.
இது உள்ளீடு தாமதத்தை ஏற்படுத்துகிறது. ஒரு விசையை அழுத்தி காத்திருக்கவும். வரை காத்திருக்கலாம் 10 வினாடிகள் ஒரு பாத்திரம் பதிலளிக்க வேண்டும். உங்கள் உள்ளீட்டை உண்மையில் செயலாக்க திரையை எப்படி மீண்டும் வரைவது என்பதைக் கண்டுபிடிப்பதில் கணினி மிகவும் பிஸியாக உள்ளது.
தொலைநோக்கு டெவலப்பர்கள் அடிக்கடி கேட்கிறார்கள்: “TUIகள் மோசமாக இருந்தால், ஏன் nano, vim அல்லது menuconfig ஐப் பயன்படுத்த வேண்டும்?”
பதில் இல்லை, இந்த கருவிகள் முன்னிருப்பாக கர்சரை சரியாக கையாளுகின்றன. அவர்கள் உங்களை அனுமதிக்கிறார்கள் என்பதே பதில் கர்சரை முழுமையாக மறைக்கவும்.
1. கர்சரை மறைத்தல் (nano, vim)
போன்ற கருவிகளில் nano அல்லது vimகர்சர் நிலையைக் கண்காணிக்கும் அம்சங்களை முடக்குவதைப் பொருத்து உபயோகம். ஓடினால் nano கர்சரின் நிலையைக் காட்டும் விருப்பங்களுடன் (போன்ற --constantshow), அல்லது நீங்கள் பயன்படுத்தினால் vim குறிப்பிட்ட கட்டமைப்பு இல்லாமல், அனுபவம் உடைந்துவிட்டது.
கர்சர் தெரியும் மற்றும் கண்காணிப்பு செயலில் இருக்கும் போது, ஸ்பீக்அப், கர்சரை எதிரொலிப்பதை விட கர்சரின் இருப்பிடத்தைப் புதுப்பிப்பதற்கு முன்னுரிமை அளிக்கிறது. நீங்கள் தட்டச்சு செய்யும் போது “a” என்ற எழுத்தைக் கேட்பதற்குப் பதிலாக, “நெடுவரிசை 2” என்று கேட்கிறீர்கள். “b” என டைப் செய்து “நெடுவரிசை 3” என்று கேட்கவும்.
இந்த பழைய கருவிகள் வெற்றி பெறுகின்றன, ஏனெனில் அவை இந்த சத்தத்தை அணைக்க அனுமதிக்கின்றன. விஷுவல் கர்சர் அல்லது ஸ்டேட்டஸ் பார் புதுப்பிப்புகளை அடக்க நீங்கள் அவற்றை உள்ளமைக்கலாம், சத்தமில்லாத ஒருங்கிணைப்பு புதுப்பிப்புகளுக்குப் பதிலாக எழுத்து உள்ளீட்டு ஸ்ட்ரீமில் தங்கியிருக்க ஸ்கிரீன் ரீடரை கட்டாயப்படுத்துகிறது. நவீன கட்டமைப்புகள் அரிதாக “கர்சர் இல்லாத” அல்லது “ஹெட்லெஸ்” பயன்முறையை வழங்குகின்றன; காட்சி கர்சர் அவசியம் என்று அவர்கள் கருதுகின்றனர்.
2. ஒற்றை நெடுவரிசையில் கவனம் செலுத்துங்கள் (menuconfig)
லினக்ஸ் கர்னல் போன்ற கருவிகள் menuconfig அவை கடுமையான, ஒற்றை-நெடுவரிசை மையத்தை செயல்படுத்துவதால் அவை செயல்படுகின்றன. எல்லைகள் மற்றும் தலைப்புகள் இருந்தாலும், செயலில் உள்ள பகுதி ஒரு செங்குத்து பட்டியல். அந்த பட்டியலில் கர்சர் நிலையாக உள்ளது. கடிகாரத்தைப் புதுப்பிக்க கீழ் வலதுபுறம் செல்லாது, தலைப்பைப் புதுப்பிக்க மேல் இடதுபுறம் செல்லாது. ஸ்கிரீன் ரீடர் ஒருபோதும் தொலைந்து போகாத அளவுக்கு இடஞ்சார்ந்த சிக்கலானது குறைவாக வைக்கப்பட்டுள்ளது.
Irssi மலிவான அரட்டைக்கு தங்கத் தரமாக உள்ளது, ஆனால் அதிர்ஷ்டம் காரணமாக அல்ல. VT100 ஸ்க்ரோல் பகுதிகளைப் பயன்படுத்தும் தனிப்பயன் ரெண்டரிங் இயந்திரத்துடன் Irssi 20 ஆண்டுகளுக்கும் மேலாக உருவாக்கப்பட்டுள்ளது.
Irssi இல் ஒரு புதிய செய்தி வரும்போது:
-
இது டெர்மினல் டிரைவரிடம் கூறுகிறது: “வரிசை 1 முதல் 23 வரை சுருள் பகுதியை வரையறுக்கவும்.”
-
ஒரு ஆர்டரைச் சமர்ப்பிக்கவும்: “மேலே உருட்டவும்.” முனையம் பிட்களை மேலே மாற்றுகிறது.
-
அந்தப் பகுதியின் கீழே புதிய உரையை வரைகிறது.
முக்கியமாக, உள்ளீட்டு வரியில் குறுக்கீட்டைக் குறைக்கும் விதத்தில் இது கையாளுகிறது. இது திரையில் உள்ள ஒவ்வொரு எழுத்தையும் கைமுறையாக மீண்டும் எழுதுவதை விட, டெர்மினலின் வன்பொருள் திறன்களை நம்பியுள்ளது. நவீன கட்டமைப்புகள் இந்த வன்பொருள் அம்சங்களைப் புறக்கணிக்கின்றன.
“ஸ்டேல் பாட்” சாக்கு: அலட்சியத்தில் ஒரு வழக்கு ஆய்வு
கூகுள் மற்றும் ஜெமினி-கிளை பராமரிப்பாளர்கள் அணுகல்தன்மையில் அக்கறை காட்டுவதாகக் கூறுகின்றனர். “பாசாங்கு” என்பது இங்கே செயல்படும் சொல். நீங்கள் களஞ்சியத்தைப் பார்த்தால், சிக்கல் #3435 மற்றும் வெளியீடு #11305 போன்ற முக்கியமான அணுகல்தன்மை பின்னடைவுகள் அழுக விடப்பட்டுள்ளன. விவாதங்கள் இல்லை, சாலை வரைபடங்கள் இல்லை, திருத்தங்கள் இல்லை. இந்த அணுகல் பிழைகளைக் கண்காணிக்கும் #1553 இதழின் விதி இன்னும் மோசமானது. அது தீர்க்கப்படவில்லை; அமைதியாகிவிட்டார். இந்த பொதுவான பணிநீக்கத்துடன் இது தானாக ஒரு போட் மூலம் மூடப்பட்டது:
வணக்கம்! எங்களின் முயற்சியின் ஒரு பகுதியாக, பேக்லாக் சமாளிப்பது மற்றும் மிகவும் செயலில் உள்ள சிக்கல்களில் கவனம் செலுத்துவது, நாங்கள் பழைய அறிக்கைகளை சரிசெய்கிறோம். இந்தச் சிக்கல் சில காலமாக செயல்படவில்லை என்பது போல் தெரிகிறது, எனவே இப்போதைக்கு அதை மூடுகிறோம்.”
இது ஏற்றுக்கொள்ள முடியாதது. அணுகல்தன்மை அறிக்கையை பராமரிப்பவர்கள் பல மாதங்களாக தொடாததால் அதை மூடுவது “பராமரிப்பு” அல்ல; ஆதாரத்தை மறை இது ஒரு பிழையை நீண்ட நேரம் புறக்கணித்தால், அது இல்லாமல் போய்விடும் என்று கூறுகிறது. பார்வையற்ற பயனர்களுக்கு தற்போதைய மென்பொருளைப் பயன்படுத்த முடியாத நிலையில், திட்டத்தின் “மூடப்பட்ட சிக்கல்கள்” மதிப்பை இது மேம்படுத்துகிறது.
முடிவுரை
நீங்கள் டெர்மினலை உருவாக்கி அணுகல்தன்மை குறித்து அக்கறை கொண்டிருந்தால், டெர்மினலை கேன்வாஸாகக் கருதும் அறிவிப்பு UI கட்டமைப்பைப் பயன்படுத்துவதை நிறுத்துங்கள்.
“நவீன” TUI ஸ்டேக் ஆனது, டெவலப்பரின் திறனுக்காக, வினைத்திறன் போன்ற குறியீட்டை எழுதும் திறனுக்காக, மெஷினின் உரையை திறமையாக வழங்குவதற்கான திறனைக் குறைக்கிறது.
கர்சரை மறைக்க உங்கள் ஆப்ஸ் பயனரை அனுமதிக்கிறது என்று உங்களால் உத்தரவாதம் அளிக்க முடியாவிட்டால் அல்லது ரோட்டேட்டர்கள் மற்றும் டைமர்களைக் காட்ட ஆக்ரோஷமான ரீடிராவை நீங்கள் நம்பினால், நீங்கள் அணுக முடியாத கருவியை உருவாக்குகிறீர்கள்.
பார்வையற்ற பயனருக்கு, “ஸ்மார்ட்” TUI ஐ விட மோசமான, நேர்கோட்டு CLI ஓட்டமானது, திரை முழுவதும் கர்சரை லேக் செய்து, ஸ்பேம் செய்து, சிதறடிக்கும்.









Leave a Reply