History of Ruby
રૂબી પ્રોગ્રામિંગ ભાષાનો ઇતિહાસ ત્યારે શરૂ થયો જ્યારે યુકીહિરો માત્સુમોટોએ સૌપ્રથમ 1993 માં આ ભાષાની કલ્પના કરી, પછી તેને 1995 માં રજૂ કરી. ભાષાનું વાર્ષિક પ્રકાશન ઘણીવાર નાતાલના દિવસે થાય છે. રૂબી ઓન રેલ્સ માળખાને કારણે 2005ની આસપાસ ભાષામાં રસ વધ્યો હતો. કન્સેપ્શન રૂબીના નિર્માતા યુકીહિરો માત્સુમોટોએ કહ્યું છે કે રૂબીની કલ્પના 1993 માં કરવામાં આવી હતી. રૂબી-ટોક મેઇલિંગ લિસ્ટની 1999ની પોસ્ટમાં, તેઓ ભાષા વિશેના તેમના કેટલાક પ્રારંભિક વિચારોનું વર્ણન કરે છેઃ માત્સુમોટો રુબીની રચનાને તેના મૂળમાં એક સરળ લિસ્પ ભાષા જેવી હોવાનું વર્ણવે છે, જેમાં સ્મોલટૉક જેવી ઓબ્જેક્ટ સિસ્ટમ, ઉચ્ચ-ક્રમના કાર્યોથી પ્રેરિત બ્લોક અને પર્લ જેવી વ્યવહારુ ઉપયોગિતા છે. "રૂબી" નામની ઉત્પત્તિ 24 ફેબ્રુઆરી, 1993 ના રોજ માત્સુમોટો અને કેઇજુ ઇશિત્સુકા વચ્ચેના ઓનલાઇન ચેટ સત્ર દરમિયાન થઈ હતી, તે પહેલાં ભાષા માટે કોઈ કોડ લખવામાં આવ્યો હતો. શરૂઆતમાં બે નામો પ્રસ્તાવિત કરવામાં આવ્યા હતાઃ "કોરલ" અને "રૂબી". માત્સુમોટોએ ઇશિત્સુકાને પછીના ઈ-મેલમાં બાદમાં પસંદ કર્યું. માત્સુમોટોએ પાછળથી "રૂબી" નામ પસંદ કરવામાં એક પરિબળની નોંધ લીધી-તે તેમના એક સાથીદારનો જન્મસ્તંભ હતો. પ્રથમ પ્રકાશન રૂબી 0.95 નું પ્રથમ જાહેર પ્રકાશન 21 ડિસેમ્બર, 1995 ના રોજ જાપાની સ્થાનિક સમાચાર જૂથો પર જાહેર કરવામાં આવ્યું હતું. ત્યારબાદ, રૂબીની વધુ ત્રણ આવૃત્તિઓ બે દિવસમાં રજૂ કરવામાં આવી હતી. આ પ્રકાશન જાપાનીઝ ભાષાની રૂબી-સૂચિ મેઇલિંગ સૂચિના પ્રકાશન સાથે થયું હતું, જે નવી ભાષા માટેની પ્રથમ મેઇલિંગ સૂચિ હતી. વિકાસના આ તબક્કે પહેલેથી જ હાજર રૂબીના પછીના પ્રકાશનોમાં પરિચિત ઘણી સુવિધાઓ હતી, જેમાં ઓબ્જેક્ટ-ઓરિએન્ટેડ ડિઝાઇન, વારસો સાથેના વર્ગો, મિક્સિન, ઇટરેટર, ક્લોઝર્સ, અપવાદ હેન્ડલિંગ અને કચરો સંગ્રહનો સમાવેશ થાય છે. 1995માં રૂબી 0.95ના પ્રકાશન પછી, પછીના વર્ષોમાં રૂબીની કેટલીક સ્થિર આવૃત્તિઓ રજૂ કરવામાં આવી હતીઃ રૂબી 1ઃ ડિસેમ્બર 25,1996 રૂબી 2ઃ ડિસેમ્બર 1998 રૂબી 4ઃ ઓગસ્ટ 1999 રૂબી 1.6: સપ્ટેમ્બર 2000 1997માં, રૂબી વિશેનો પ્રથમ લેખ વેબ પર પ્રકાશિત થયો હતો. તે જ વર્ષે, માત્સુમોટોને netlab.jp દ્વારા રૂબી પર પૂર્ણ-સમયના વિકાસકર્તા તરીકે કામ કરવા માટે રાખવામાં આવ્યા હતા. 1998માં, માત્સુમોટો દ્વારા રૂબી એપ્લિકેશન આર્કાઇવની શરૂઆત કરવામાં આવી હતી, જેમાં રૂબી માટે એક સરળ અંગ્રેજી ભાષાનું હોમપેજ પણ હતું. 1999 માં, પ્રથમ અંગ્રેજી ભાષાની મેઇલિંગ સૂચિ રુબી-ટોક શરૂ થઈ, જેણે જાપાનની બહારની ભાષામાં વધતા રસનો સંકેત આપ્યો. આ જ વર્ષે, માત્સુમોટો અને કેઇજુ ઇશિત્સુકાએ રૂબી, ધ ઓબ્જેક્ટ-ઓરિએન્ટેડ સ્ક્રિપ્ટીંગ લેંગ્વેજ રૂબી પર પ્રથમ પુસ્તક લખ્યું હતું, જે ઓક્ટોબર 1999માં જાપાનમાં પ્રકાશિત થયું હતું. તે પછી 2000ના દાયકાની શરૂઆતમાં જાપાનીઝમાં રૂબી પર લગભગ 20 પુસ્તકો પ્રકાશિત થયા હતા. 2000 સુધીમાં, રૂબી જાપાનમાં પાયથોન કરતાં વધુ લોકપ્રિય હતી. સપ્ટેમ્બર 2000 માં, પ્રથમ અંગ્રેજી ભાષાનું પુસ્તક પ્રોગ્રામિંગ રૂબી છાપવામાં આવ્યું હતું, જે પાછળથી જાહેર જનતા માટે મુક્તપણે રજૂ કરવામાં આવ્યું હતું, જે અંગ્રેજી બોલનારાઓમાં રૂબીને અપનાવવાનું વધુ વિસ્તૃત કરે છે. 2002ની શરૂઆતમાં, અંગ્રેજી ભાષાની રૂબી-ટોક મેઇલિંગ સૂચિને જાપાની ભાષાની રૂબી-સૂચિ કરતાં વધુ સંદેશાઓ મળી રહ્યા હતા, જે બિન-જાપાનીઝ બોલતા વિશ્વમાં રૂબીની વધતી લોકપ્રિયતા દર્શાવે છે. રૂબી 1.8 રૂબી 1.8 શરૂઆતમાં ઓગસ્ટ 2003માં રજૂ કરવામાં આવી હતી, જે લાંબા સમય સુધી સ્થિર રહી હતી અને જૂન 2013માં નિવૃત્ત થઈ હતી. નાપસંદ હોવા છતાં, હજુ પણ તેના પર આધારિત કોડ છે. રૂબી 1.8 માત્ર રૂબી 1.9 સાથે આંશિક રીતે સુસંગત છે. રૂબી 1.8 ઘણા ઉદ્યોગ ધોરણોનો વિષય રહ્યો છે. રૂબી માટેની ભાષાની વિશિષ્ટતાઓ ઇન્ફર્મેશન-ટેક્નોલોજી પ્રમોશન એજન્સી (એક જાપાની સરકારી એજન્સી) ના ઓપન સ્ટાન્ડર્ડ્સ પ્રમોશન સેન્ટર દ્વારા જાપાનીઝ ઔદ્યોગિક ધોરણો સમિતિ (જેઆઇએસસી) અને પછી આંતરરાષ્ટ્રીય માનકીકરણ સંસ્થા (આઇએસઓ) ને રજૂ કરવા માટે વિકસાવવામાં આવી હતી. તેને 2011માં જાપાનીઝ ઔદ્યોગિક ધોરણ (JIS X 3017) અને 2012માં આંતરરાષ્ટ્રીય ધોરણ (ISO/IEC 30170) તરીકે સ્વીકારવામાં આવ્યું હતું. 2005ની આસપાસ, રૂબી ભાષામાં રસ રૂબી ઓન રેલ્સ સાથે વધ્યો, જે રૂબીમાં લખાયેલ વેબ માળખું છે. રુબી વિશે જાગૃતિ વધારવાનો શ્રેય રેલ્સને વારંવાર આપવામાં આવે છે. રૂબી 1.9 રૂબી 1.9 2007માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. 31 ઓક્ટોબર, 2011ના રોજ રજૂ થયેલ રૂબી 1.9.3 સાથે અસરકારક, રૂબી લાઇસન્સ અને જી. પી. એલ. હેઠળ બેવડા લાઇસન્સથી રૂબી લાઇસન્સ અને બે-કલમ બીએસડી લાઇસન્સ હેઠળ બેવડા લાઇસન્સમાં ફેરવાઈ ગઈ. 1. 1 નો સ્વીકાર 1.8 માંથી ફેરફારોને કારણે ધીમો પડ્યો હતો જેમાં ઘણા લોકપ્રિય તૃતીય પક્ષ રત્નોને ફરીથી લખવાની જરૂર હતી. રૂબી 1.9 એ 1.8 શ્રેણીમાં ઘણા નોંધપાત્ર ફેરફારો રજૂ કર્યા છે. ઉદાહરણોમાં નીચેનાનો સમાવેશ થાય છેઃ બ્લોક લોકલ વેરિયેબલ્સ (વેરિયેબલ્સ કે જે બ્લોકમાં તેઓ જાહેર કરવામાં આવે છે તેના માટે સ્થાનિક છે) એક વધારાનું લેમ્બડા વાક્યરચનાઃ પ્રતીક કીઓ માટે કોલોનનો ઉપયોગ કરીને વધારાનું હેશ શાબ્દિક વાક્યરચનાઃ પ્રતિ-સ્ટ્રિંગ અક્ષર એન્કોડિંગને નવા સોકેટ API (IPv6 આધાર) ની જરૂર છે સંબંધિત આયાત સુરક્ષા રૂબી 1.9 23 ફેબ્રુઆરી, 2015 થી અપ્રચલિત છે, અને તે હવે બગ અને સુરક્ષા સુધારાઓ પ્રાપ્ત કરશે નહીં. વપરાશકર્તાઓને વધુ તાજેતરના સંસ્કરણમાં અપગ્રેડ કરવાની સલાહ આપવામાં આવે છે. રૂબી 2 રૂબી 2 એ કેટલીક નવી સુવિધાઓ ઉમેરી, જેમાં નીચેનાનો સમાવેશ થાય છેઃ મેથડ કીવર્ડ આર્ગ્યુમેન્ટ્સ, એક નવી પદ્ધતિ, Module#prepend, વર્ગને વિસ્તારવા માટે, પ્રતીકોની શ્રેણી બનાવવા માટે એક નવું શાબ્દિક, એન્યુમરેબલ્સના આળસુ મૂલ્યાંકન માટે નવું API, અને ઓબ્જેક્ટ્સને હેશમાં રૂપાંતરિત કરવા માટે #to_h નો ઉપયોગ કરવાની નવી પરંપરા. રૂબી 2 નો હેતુ રૂબી 1.9.3 સાથે સંપૂર્ણપણે પછાત સુસંગત બનવાનો હતો. 24 ફેબ્રુઆરી, 2013ના રોજ સત્તાવાર 2.0 પ્રકાશન મુજબ, માત્ર પાંચ જાણીતી (નાની) અસંગતતાઓ હતી. રૂબી 2 24 ફેબ્રુઆરી, 2016 થી અપ્રચલિત છે, અને તે હવે બગ અને સુરક્ષા સુધારાઓ પ્રાપ્ત કરશે નહીં. વપરાશકર્તાઓને વધુ તાજેતરના સંસ્કરણમાં અપગ્રેડ કરવાની સલાહ આપવામાં આવે છે. રૂબી 2.1 રૂબી 2013માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. પ્રકાશનમાં સ્પીડ-અપ્સ, બગફિક્સ અને લાઇબ્રેરી અપડેટ્સનો સમાવેશ થાય છે. 2. 1. 0 થી શરૂ કરીને, રૂબીની સંસ્કરણ નીતિ સિમેન્ટીક સંસ્કરણ જેવી છે. સમાન હોવા છતાં, રૂબીની સંસ્કરણ નીતિ સિમેન્ટીક સંસ્કરણ સાથે સુસંગત નથીઃ સિમેન્ટીક સંસ્કરણ પણ પૂર્વ-પ્રકાશન માટે વધારાના લેબલો પ્રદાન કરે છે અને બિલ્ડ મેટાડેટા MAJOR.MINOR.PATCH ફોર્મેટમાં વિસ્તરણ તરીકે ઉપલબ્ધ છે, જે રૂબી પર ઉપલબ્ધ નથી. રૂબી 2,1 એપ્રિલ, 2017 થી અપ્રચલિત છે, અને તે હવે બગ અને સુરક્ષા સુધારાઓ પ્રાપ્ત કરશે નહીં. વપરાશકર્તાઓને વધુ તાજેતરના સંસ્કરણમાં અપગ્રેડ કરવાની સલાહ આપવામાં આવે છે. રૂબી 2.2 રૂબી 2014માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. પ્રકાશનમાં સ્પીડ-અપ્સ, બગફિક્સ અને લાઇબ્રેરી અપડેટ્સનો સમાવેશ થાય છે અને કેટલાક નાપસંદ કરેલા API ને દૂર કરે છે. સૌથી નોંધપાત્ર બાબત એ છે કે, રૂબી 2.2.0 વૃદ્ધિશીલ કચરો સંગ્રહકર્તાને સંભાળતી મેમરીમાં ફેરફારો, પ્રતીકોના કચરો સંગ્રહ માટે ટેકો અને સીધા જેમેલોક સામે સંકલન કરવાનો વિકલ્પ રજૂ કરે છે. તેમાં સિસ્ટમ () અને સ્પૉન () સાથે વીફોર્ક (2) નો ઉપયોગ કરવા માટે પ્રાયોગિક આધાર પણ છે, અને યુનિકોડ 7 સ્પષ્ટીકરણ માટે વધારેલ આધાર છે. જે સુવિધાઓ અપ્રચલિત કરવામાં આવી હતી અથવા દૂર કરવામાં આવી હતી તેમાં કોલસીસી, ડીએલ લાઇબ્રેરી, ડાયજેસ્ટઃઃ એચએમએસી, લિબ/રેશનલ. આર. બી., લિબ/કોમ્પ્લેક્સ. આર. બી., જીસરવર, લોગરઃ એપ્લિકેશન તેમજ વિવિધ સી એપીઆઈ કાર્યોનો સમાવેશ થાય છે. રૂબી 2.2,1 એપ્રિલ, 2018 થી અપ્રચલિત છે, અને તે હવે બગ અને સુરક્ષા સુધારાઓ પ્રાપ્ત કરશે નહીં. વપરાશકર્તાઓને વધુ તાજેતરના સંસ્કરણમાં અપગ્રેડ કરવાની સલાહ આપવામાં આવે છે. પાવરપીસી64 પ્રદર્શન આવૃત્તિ 2.2.1 થી, પાવરપીસી64 પર રૂબી એમઆરઆઈ પ્રદર્શનમાં સુધારો કરવામાં આવ્યો હતો. રૂબી 2.3 રૂબી 2015માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. કેટલાક નોંધપાત્ર ફેરફારોમાં નીચેનાનો સમાવેશ થાય છેઃ તમામ શબ્દમાળા અક્ષરોને મૂળભૂત રીતે સ્થિર તરીકે ચિહ્નિત કરવાની ક્ષમતા, પરિણામે શબ્દમાળા કામગીરીમાં મોટા પ્રદર્શનમાં વધારો થાય છે. માત્ર કીઓને બદલે કી/મૂલ્ય જોડીઓની સીધી તપાસને મંજૂરી આપવા માટે હેશ સરખામણી. એક નવું સલામત નેવિગેશન ઓપરેટર &. જે શૂન્ય સંચાલનને સરળ બનાવી શકે છે (દા. ત. તેના બદલે, આપણે 'ઇફ્ ઓબીજે એન્ડ. ફૂ એન્ડ. બાર') નો ઉપયોગ કરી શકીએ છીએ. ડીડ _ યુ _ મીન રત્ન હવે મૂળભૂત રીતે બંડલ કરવામાં આવ્યું છે અને સ્ટાર્ટઅપ પર આપમેળે નેમ એરર અથવા નોમેથોડ એરર પર સમાન નામ મેળ સૂચવવા માટે જરૂરી છે. Hash#dig અને Array#dig સરળતાથી ઊંડા નેસ્ટેડ મૂલ્યોને બહાર કાઢવા માટે (દા. ત. આપેલ, મૂલ્ય ફૂ બાઝ હવે profile.dig (: સામાજિક,: વિકિપીડિયા,: નામ) દ્વારા પુનઃપ્રાપ્ત કરી શકાય છે. . grep _ v (રેગેક્સપ) જે અન્ય નવી સુવિધાઓ ઉપરાંત આપેલ નિયમિત અભિવ્યક્તિના તમામ નકારાત્મક ઉદાહરણો સાથે મેળ ખાશે. 2. 3 શાખામાં ઘણા પ્રદર્શન સુધારાઓ, સુધારાઓ અને બગફિક્સનો પણ સમાવેશ થાય છે જેમાં Proc#call માં ફેરફારો, સોકેટ અને IO અપવાદ કીવર્ડ્સનો ઉપયોગ, Thread#name હેન્ડલિંગ, મૂળભૂત નિષ્ક્રિય નેટઃ: FTP જોડાણો અને રેકને stdlib માંથી દૂર કરવામાં આવે છે. રૂબી 2.4 રૂબી 2016માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. કેટલાક નોંધપાત્ર ફેરફારોમાં નીચેનાનો સમાવેશ થાય છેઃ Binding#irb: binding.pry યુનિફાઈ ફિક્સનમ અને બિગ્નમ જેવા REPL સત્રને પૂર્ણાંક વર્ગમાં શરૂ કરો સ્ટ્રિંગ યુનિકોડ કેસ મેપિંગ્સને સપોર્ટ કરે છે, માત્ર ASCII જ નહીં. એક નવી પદ્ધતિ, Regexp#match?, જે Regexp#match થ્રેડ ડેડલોક ડિટેક્શનનું ઝડપી બુલિયન વર્ઝન છે, હવે તેમના બેકટ્રેસ અને નિર્ભરતા સાથે થ્રેડો બતાવે છે. રૂબી 2.5 રૂબી 2017માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. કેટલાક નોંધપાત્ર ફેરફારોમાં નીચેનાનો સમાવેશ થાય છેઃ બચાવ અને ખાતરી કરો કે નિવેદનો આપમેળે આસપાસના ડુ-એન્ડ બ્લોકનો ઉપયોગ કરે છે (વધારાના સ્ટાર્ટ-એન્ડ બ્લોકની ઓછી જરૂરિયાત) યીલ્ડ-સેલ્ફ સપોર્ટ શાખા કવરેજ સાથે પદ્ધતિ-સાંકળ અને પદ્ધતિ કવરેજ માપન Hash#slice અને Hash#transform_keys સાથે સરળ હેશ પરિવર્તન તેની ટોચ પર ઝડપી બ્લોક પાસિંગ (3 ગણો ઝડપી), ઝડપી મ્યુટેક્સ, ઝડપી ERB નમૂનાઓ અને કેટલીક સંયોજન પદ્ધતિઓ પર સુધારાઓ જેવા ઘણા પ્રદર્શન સુધારાઓ આવે છે. રૂબી 2.6 રૂબી 2018માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. કેટલાક નોંધપાત્ર ફેરફારોમાં નીચેનાનો સમાવેશ થાય છેઃ જેઆઈટી (પ્રાયોગિક) રૂબીવીએમઃ: એબ્સ્ટ્રેક્ટસિંટેક્સટ્રી (પ્રાયોગિક) રૂબી 2.7 રૂબી 2.7 વર્ષ 2019માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. કેટલાક નોંધપાત્ર ફેરફારોમાં નીચેનાનો સમાવેશ થાય છેઃ પેટર્ન મેચિંગ (પ્રાયોગિક) આર. ઇ. પી. એલ. સુધારણા કોમ્પેક્શન જી. સી. સ્થિતિગત અને મુખ્ય શબ્દ દલીલોનું વિભાજન રૂબી 3.0 રૂબી 3.0 2020માં નાતાલના દિવસે રજૂ કરવામાં આવી હતી. તેને રૂબી 3x3 તરીકે ઓળખવામાં આવે છે. તેનો એક મુખ્ય ઉદ્દેશ કાર્યક્રમોને ઝડપી બનાવવા માટે દુભાષિયાને જસ્ટ-ઇન-ટાઇમ કમ્પાઇલર પર ફેરવવાનો હતો. રૂબી 3.1 આવૃત્તિ 3.1.0 2021 ના નાતાલ પર રજૂ કરવામાં આવી હતી. તેમાં ઓટો કમ્પ્લીટ સુવિધાનો સમાવેશ થતો હતો. રૂબી 3.2 રૂબી 2022ના નાતાલના દિવસે રજૂ કરવામાં આવી હતી. તેમાં વેબએસેમ્બલી માટે સમર્થન સામેલ છે. આવૃત્તિઓનું કોષ્ટક સંદર્ભો રૂબી (પ્રોગ્રામિંગ ભાષા)