Thursday, September 26, 2013

6. వై2కె సమశ్య



వై2కె సమశ్య
వేమూరి వేంకటేశ్వరరావు

తెలుగువాళ్లు 1990 దశకంలో తంబ తంబలుగా అమెరికా రాడానికి, ఇండియాలో ఇన్‌ఫోసిస్, విప్రో, సత్యం వంటి కంపెనీలు అంతర్జాతీయ వ్యాపార రంగంలో కాలు నిలదొక్కుకుని లేవడానికి  ఈవై2కెసమశ్య ప్రత్యక్షంగాను, పరోక్షంగాను ఎంతో దోహదం చేసిందని నమ్మే వాళ్లల్లో నేను ఒకడిని. కనుక వై2కెసమశ్య కాదు; దేవుడు భారతీయులకి ఇచ్చిన ఒక వరం.



ఏమిటీ వై2కె సమశ్య?” ఏమా కథ?



ఈ సమశ్య ఏమిటో అర్థం చేసుకోవడం చాల తేలిక. మనందరికీ తేదీ రాసేటప్పుడు ఒక అలవాటు ఉంది. ఉదాహరణకి 17-1-38 అని ఇండియాలోను 1/17/38 అని అమెరికాలోనూ రాసినప్పుడు దాని అర్థం 17 జనవరి 1938 అని. బద్ధకించో, సోమరితనం వల్లో, కలంలో సిరా అయిపోతుందనే లోభత్వం వల్లో, కాగితం మీద చోటు సరిపోకో సవా లక్ష కారణాలు ఉండొచ్చు మనం 1938 అని రాయడానికి బదులు 38 అని రాసి ఊరుకుంటాం. రాసే వాళ్లు మానవులు, చదివి అర్థం చేసుకునే వాళ్లు మానవులు అయినంతసేపు ఈ అలవాటు వల్ల ఏ చిక్కులూ రావు; మన మెదడు పరిస్థితులని సందర్భోచితంగా అర్థం చేసుకోగలదు.



కంప్యూటర్లు  వచ్చిన కొత్త రోజులలో క్రమణికలు (programs) రాయవలసి వచ్చినప్పుడు ఈ అలవాటు వల్ల కొంతవరకు, మరెన్నో కారణాంతరాల వల్ల కొంతవరకు, తారీఖు రాయడానికి 17-1-38 వంటి పద్ధతే వాడేవారు; అంటే సంవత్సరాన్ని సూచించడానికి 1938 అని నాలుగు దశాంశ అంకెలు రాయడానికి బదులు 38 అని రెండే అంకెలు వేసి ఊరుకునేవారు. ఈ అలవాటు ఇంతలా నాటుకి పోడానికి బలవంతమైన కారణాలు ఉన్నాయి:

1.        మనం రోజూ తేదీలు అలానే వేస్తాం. ఆ అలవాటే క్రమణికలలోకి జొరబడింది.

2.        ఎప్పుడో 1960 దశకంలోను, 1970 దశకంలోను రాసిన క్రమణికలు 40 ఏళ్లు పైబడి వాడుకలో ఉంటాయని ఎవ్వరూ అనుకోలేదు. ఆ క్రమణికలు రాసినప్పుడు ఎవ్వరూ సంవత్సరం 1999 నుండి 2000 కి మారిన సందర్భంలో రాబోయే చిక్కుల గురించి పట్టించుకోలేదు. పట్టించుకున్నా ఎప్పుడో రాబోయే సమశ్యకి ఇప్పటి నుండీ డబ్బు ఖర్చు పెట్టడం ఎందుకని, మన రాజకీయ నాయకులలా, వెనకాడి ఉంటారు.

3.        సంవత్సరాన్ని నాలుగంకెల సంఖ్యలా చూపినంత మాత్రాన్న ఎక్కువ ఖర్చు ఎందుకు అవుతుందా? కంప్యూటరు కొట్లో 38 అని రెండంకెల సంఖ్యని దాచడానికి రెండు అష్టాల (bytes)  చోటు పడుతుంది, నాలుగంకెల సంఖ్య అయిన 1938 దాచాలంటే 4 అష్టాల చోటు కావలసి ఉంటుంది. అంటే కొట్టు పరిమాణం పెరుగుతుంది. దానితో ఖర్చు పెరుగుతుంది. ఇప్పుడంటే సిలికాన్ చితుకలతో చేసిన కొట్ల ధర పడిపోయింది కాని, పూర్వం కొట్టు ధరలు చాల ఎక్కువగా ఉండేవి. ఎప్పటివరకో ఎందుకు? నేను 1980 పూర్వార్ధంలో ఒక కంపెనీలో పని చేసేవాడిని. అమెరికా మీద సోవియట్ యూనియన్ విమానాల దాడి చేస్తే, ఎదురు దెబ్బ తీయడానికి, రాబోయే దాడిని ముందుగానే పసికట్టే ప్రణాళిక మీద  పని చేస్తూన్నప్పుడు, మేము పదమూడు VAX11/780 కంప్యూటర్లని జోడించి రూపకల్పన చేశాం. ఒకొక్క కంప్యూటర్‌కి 4MB (నాలుగు మిలియన్ల అష్టాలు) ప్రాథమిక నిల్వ కేటాయించేరు. ఎన్ని తంటాలు పడ్డా ఆ 4MB అష్టాలలో మా క్రమణికలు, దత్తాంశాలు పట్టడం లేదు. క్షణక్షణమూ పళ్లేల దొంతర దగ్గరకి (అంటే, ద్వితీయ శ్రేణి కొట్లోకి) వెళ్లి అవసరమైన దత్తాంశాలని తెచ్చుకోవలసి వచ్చేది. అందువల్ల పని అనుకున్నంత జోరుగా అవటం లేదు. మరొక 4MB కొట్టుకి తగిలిస్తే పని సత్వరం అయిపోతుందనిన్నీ, ఆ 4MB కొనడానికి అనుమతి ఇమ్మని నేను అడిగేను. (మీ కంప్యూటరు నెమ్మదిగా నడుస్తూ ఉంటే ప్రాథమిక స్థాయి కొట్టు పరిమాణం పెంచితే జోరు పెరుగుతుంది.) మీరు ఒప్పందం ప్రకారం 4MB తో చేస్తామని ఒప్పుకున్నారు, అలా చేసి తీరవలసిందేఅని ప్రాథమిక కంట్రాక్టర్ పట్టుపట్టి, అలా చెయ్యలేకపోతే కోర్టుకి ఎక్కుతామని బెదిరించేరు. ఈ సవాళ్లకి, ఎదురు సవాళ్లకి, విమానాల మీద తిరగడానికి మాకు బోలెడంత ఖర్చు అయింది.  ఆ రోజుల్లో ఆ 4MB మేమే బజారులో కొనుక్కుంటే మా విమానాల ఖర్చు కంటె తక్కువే అయేది. ఈ రోజుల్లో అయితే 4MB బజారులో కొనుక్కుంటే ఒక డాలరు ఉంటుందేమో. మీరు 2,000 డాలర్లు పెట్టి కొని    వాడుతూన్న కంప్యూటర్ కొట్టు పరిమాణం 2.0 GB ఉంటుంది.

4.        కాని ఆ రోజులలో పరిస్థితులు వేరు. చిన్న కొట్లో ఎన్నో విషయాలని ఇరికించడానికి రంగం ఉత్తరంలా నానా గడ్డీ కరిచే వాళ్లం.



కనుక సంవత్సరాన్ని రెండంకెల సంఖ్యతో సూచించి సరిపెట్టుకునేవాళ్లం. ఇలా చెయ్యడం వల్ల సర్వసాధారణంగా ఏ ఇబ్బందులు వచ్చేవి కాదు; అప్పుడప్పుడు మాత్రం వచ్చేవి. ఉదాహరణకి 1999 తరువాత 2000 వస్తుంది కదా. ఈ 2000 ని రెండంకెల సంఖ్యలా సంక్షిప్త పరచినప్పుడు 00 అవుతుంది. ఇది 1900 అయినా కావచ్చు, 2000 అయినా కావచ్చు. కంప్యూటర్‌లో పని చేస్తూన్న క్రమణికలు 00 ని చూడగానే అంతవరకు అలవాటు పడ్డ 1900 అనుకుని లెక్కలు చేసుకుంటూ పోవచ్చు కదా. ఇలా చెయ్యడం వల్ల ఎటువంటి సమశ్యలు వస్తాయో చూద్దాం.



ఉదాహరణకి ఈ రోజు ఒక వ్యక్తి వయస్సు ఎంతో కంప్యూటర్‌ని అడిగేమనుకుందాం. వయస్సు లెక్క కట్టడానికి ఈ నాటి తేదీ నుండి పుట్టిన తేదీని తీసివెయ్యాలి. ఈ నాటి తేదీ, పుట్టిన రోజు ఒకే శతాబ్దంలో ఉంటే ఈ తీసివేత అతి సామాన్యంగా జరిగిపోతుంది; ఏ పేచీ ఉండదు. కాని పుట్టిన తేదీ ఒక శతాబ్దం లోను, నేటి తేదీ మరొక శతాబ్దం లోను పడ్డప్పుడు చిక్కులు వస్తాయి. ఉదాహరణకి ఈ నాటి తేదీ 17-1-2013 అనుకుందాం. ఇందులోంచి ఇందాకటి పుట్టిన రోజు, అనగా 17-1-1938, తీసెస్తే వయస్సు 75 వస్తుంది. కాని కంప్యూటర్‌లో పుట్టిన తేదీ 17-1-38 అనిన్నీ, ఈ నాటి తేదీ 17-1-13 అనిన్నీ  వేసి ఉంటే వయస్సు -25 (రుణ సంఖ్య) సంవత్సరాలు వస్తుంది. వయస్సు రుణ సంఖ్య ఉండదు కనుక కంప్యూటర్ కంగారు పడుతుంది, కలనం స్తంభించిపోతుంది. ఇలాంటి అవకతవక పరిస్థితులు ఇంకా రకరకాలు రావడానికి సావకాశం ఉందని పాఠకులే పరిశోధన చేసి తెలుసుకోగలరు. ఇదీ వై2కె సమశ్య.



సమశ్య అర్థం అయితే పరిష్కారానికి పెక్కు మార్గాలు దొరుకుతాయి.



క్రమణికలలోకి వెళ్లి ఎక్కడ సంవత్సరం కనిపిస్తుందో అక్కడ రెండంకెల సంవత్సరానికి బదులు నాలుగంకెల సంవత్సరం పడేటట్లు మార్పులు చెయ్యడం. ఇది చెప్పడం సుళువే కాని చెయ్యడం కష్టం. ఎందుకంటే ఈ రకం మార్పులు ఒక చోట కాదు, రెండు చోట్ల కాదు మిలియన్లు పైబడి చెయ్యవలసి రావచ్చు. మార్పు చెయ్యగానే సరిపోదే. ఎక్కడా తప్పకుండా అన్ని చోట్లా మార్పులు జరిగేయో లేదో చూసుకోవాలి. తరువాత చేసిన మార్పు అనుకున్నట్లు పనిచేస్తోందా లేదా అని పరీక్ష చేసి చూసుకోవాలి. ఈ పరీక్షకి చాల సమయం పట్టెస్తుంది. దీనికి బోలెడంత సిబ్బంది కావాలి. బోలెడంత డబ్బు ఖర్చు అవుతుంది.



ఒక సుబ్బిశెట్టి  చిట్టాలో ఒకందుకు 100, అందుకందుకుగాను 1000అని గుంభనంగా రాసుకున్నాడుట. అదే ధోరణిలో, క్రమణికలో తప్పుని పట్టి సరి చెయ్యడానికి 100 ఖర్చయితే మనం చేసిన సవరణ వల్ల మనం ఊహించని దుష్‌పరిణామాలు ఉన్నాయో, లేదో చూసుకోడానికి 1000 అవుతుంది. కనుక పని చేస్తూన్న క్రమణికని చిన్న చిన్న మార్పులే కదా అని మార్చడం ప్రమాదం. కంప్యూటర్ రంగంలో ఉన్న బ్రహ్మ సూత్రం ఒకటి ఏమిటంటే, “పని చేస్తూన్న క్రమణికని బాగు చెయ్యడానికి వేలు పెట్టి కెలక వద్దు!



మరొక విధంగా చెబుతాను. ఒక తప్పుని పట్టి, దానిని సరిదిద్ది, అంతా సవ్యంగా ఉందో లేదో పరీక్ష చెయ్యడానికి ఒక మనిషికి ఒక రోజు (8 గంటలు) పడుతుందని అనుకుందాం. ఒక క్రమణికలో 100,000 మంది పేర్లు, పుట్టిన తేదీలు ఉన్నాయనుకుందాం. వీరందరి పుట్టిన రోజులు మార్చడానికి 100,000 రోజులు (లేదా 800,000 గంటలు) పడుతుంది. వెయ్యి మంది ప్రోగ్రామర్లు పని చేస్తే ఈ పని 800 గంటలలో తెముల్తుంది. ఇంతమంది మనుష్యులకి పెద్ద పెద్ద జీతాలిచ్చి పని చేయించడం అంటే తడిపి మోపెడు ఖర్చు అవుతుంది.



ఈ సమశ్యని పరిష్కరించడానికి పైన చెప్పినది ఒక పద్ధతి. ఇలాంటి పద్ధతులు, చిటకాలు చాల ఉన్నాయి. సందర్భోచితంగా వీటిని వాడి ఈ సమశ్య వల్ల పెద్ద తలనొప్పులు రాకుండా జాగ్రత్త పడ్డారు. ఏ పరిష్కార మార్గం వాడినా ఆ రోజుల్లో కంపెనీలకి ప్రోగ్రాములు రాయడంలో కాని, రాసిన ప్రోగ్రాములు చదివి అర్థం చేసుకోగలగడం కాని వచ్చి, కొద్దో గొప్పో ఇంగ్లీషు మాట్లాడడం  వస్తే ఉద్యోగాలు దొరికేవి. అందువల్ల మన దేశం పాలిటి ఈ సమశ్య ఒక వరమే అయింది.