મને મોટા ભાગના સોફ્ટવેર ગમતા નથી
આ એક ભાષાંતરીત લેખ છે. જેનું ભાષાંતર Ryan Dahlએ લખેલ I hate almost all software લેખ ઉપર થી કરવામાં આવ્યું છે. બધા જ હક્કો Ryan Dahlને આધીન છે અને અહીં આ ભાષાંતરીત લેખ મૂળ લેખકની પરવાનગી બાદ મુકવામાં આવ્યો છે.
તે લગભગ દરેક સ્તરે બિનજરૂરી અને જટિલ છે. હું એવા વ્યક્તિને ધન્યવાદ આપવાં માંગુ છું જે ઝડપથી અને સરળ રીતથી આપેલા કામને પતાવી શકે આ ખીચડામાં. મને એવા જ સોફ્ટવેર પસંદ છે, જેને હું સરળતાથી સમજી શકું છું અને મારુ કામ પતાવી શકું છું. જો એ જટિલ હોય તો એને હું સહન કરવા (સમજવા) તૈયાર છું પણ પછી એ મારા કામના પ્રમાણમાં હોવી જોઈએ.
ગયા વર્ષે મને લાગ્યું કે આખરે હું યુનિક્સના સિદ્ધાંતો સમજી શક્યો છું: ફાઇલ ડિસ્ક્રિપ્ટર અને પ્રોસેસ, જે C દ્વારા સંચાલિત થાય છે. આ એક સુંદર વિચાર છે. પરંતુ આપણે જેની સાથે કામ કરીએ છીએ, એ આ નથી. જટિલતા કાબૂમાં રહી નથી. એની જગ્યાએ DBus અને /usr/lib અને Boost અને ioctls અને SMF અને signals અને volatile variables અને prototypal inheritance અને _C99_FEATURES_ અને dpkg અને autoconf સાથે કામ કરવું પડે છે.
આપણામાંથી જેઓ આ સિસ્ટમ પર કામ કરી રહ્યા છે તેઓ એની જટિલતામાં વધારો કરી રહ્યા છે. જેમકે, તમારે તમારું સિસ્ટમ ચાલે એ માટે $LD_LIBRARY_PATH સમજવું પૂરતું નથી, હવે તમારે $NODE_PATH પણ સમજવું પડશે – આ રહ્યો મારો નાનો ઉમેરો, જે જટિલતા તમારે હવે શીખવી પડશે! વપરાશકર્તાઓ - જે ફક્ત વેબપેજ જોવા માંગે છે - એમને કોઈ ફરક પડતો નથી. એમને કોઈ ફરક પડતો નથી કે તમે /usr કેવી રીતે ગોઠવ્યું છે, એમને કોઈ ફરક પડતો zombie processesથી , એમને કોઈ ફરક પડતો bash tab completionનો , એમને કોઈ ફરક પડતો કે Node સાથે zlib dynamically જોડાયેલ છે કે statically. એક સમય એવો આવશે કે હાલમાં રહેલી સિસ્ટમની જટિલતા એ હદે વધી જશે કે કાંઈક એમાં નવાનો ઉમેરો કરવાનું અશક્ય બની જશે. જ્યારે આવું થશે, ત્યારે આ બધું કચરામાં જશે. આપણે boost, glib અને autoconf ને ટોયલેટમાં વહાવી દેશું અને કદી એની તરફ નજર પણ નહીં કરીએ.
તમારામાંથી જેઓને હજીપણ પ્રોગ્રામિંગ ભાષાની નાની-નાની વિગતો શીખવામાં આનંદ આવે છે - જેમકે જે લોકો ખુશી અનુભવે છે NaN અને null વચ્ચેના તફાવતની વાતો કરવામાં - એ લોકોને ખબર નથી કે આખું સિસ્ટમ કેટલું ખરાબ હાલતમાં છે. જો તમને કોડમાં બધી = સાઇન સરખી લાઇનમાં ગોઠવવી “ક્યૂટ” લાગે છે, જો તમે વિન્ડો મેનેજર કે એડિટરને કન્ફિગર કરવામાં સમય વેડફો છો, જો ટેસ્ટ રનરમાં યુનિકોડ ચેક માર્ક મૂકો છો, જો કોડ ડિરેક્ટરીઝમાં બિનજરૂરી hierarchy બનાવો છો, અથવા જો તમે ફક્ત સમસ્યા હલ કરવાને બદલે બીજું બધું કરો છો – તો તમે હજી સમજ્યા નથી કે આખું સિસ્ટમ કેટલું ખરાબ હાલતમાં છે. glib ઓબ્જેક્ટ મોડેલની કોઈને કાંઈ જ પડી નથી.
સોફ્ટવેરમાં મહત્વની એક જ વસ્તુ છે – વપરાશકર્તાનો અનુભવ.
---