Mpendwa Wingu la Google, kutokubalika nyuma kunakuua.

Jamani Google, sikutaka kublogi tena. Nina mengi ya kufanya. Kublogi kunahitaji muda, nguvu na ubunifu, ambayo ningeweza kutumia vizuri: vitabu vyangu, музыка, mchezo wangu na kadhalika. Lakini umenikera vya kutosha hadi niandike haya.

Basi tumalizie hili.

Acha nianze na hadithi fupi lakini yenye kufundisha kutoka nilipoanza kufanya kazi kwenye Google. Najua nimekuwa nikisema mambo mengi mabaya kuhusu Google hivi majuzi, lakini hunifadhaisha kampuni yangu inapofanya maamuzi ya kibiashara yasiyofaa mara kwa mara. Wakati huo huo, lazima tuipe haki yake: Miundombinu ya ndani ya Google ni ya kushangaza kweli, ni salama kusema kuwa hakuna kitu bora zaidi leo. Waanzilishi wa Google walikuwa wahandisi bora zaidi kuliko nitakavyowahi kuwa, na hadithi hii inathibitisha ukweli huo.

Kwanza, mandharinyuma kidogo: Google ina teknolojia ya kuhifadhi data inayoitwa Kubwa. Yalikuwa mafanikio ya kiufundi ya ajabu, mojawapo ya ya kwanza (ikiwa si ya kwanza) "yanayoweza kupita kiasi" duka la thamani ya ufunguo (K/V): kimsingi mwanzo wa NoSQL. Siku hizi Bigtable bado inafanya vizuri katika nafasi iliyosongamana ya K/V, lakini wakati huo (2005) ilikuwa poa sana.

Jambo moja la kuchekesha kuhusu Bigtable ni kwamba walikuwa na vitu vya ndege vya udhibiti wa ndani (kama sehemu ya utekelezaji) inayoitwa seva za kompyuta kibao, na faharisi kubwa, na wakati fulani wakawa kizuizi wakati wa kuongeza mfumo. Wahandisi wakubwa walikuwa wanatatanisha jinsi ya kutekeleza upanuzi, na ghafla wakagundua kuwa wangeweza kuchukua nafasi ya seva za kompyuta ya mkononi na uhifadhi mwingine wa Bigtable. Kwa hivyo Bigtable ni sehemu ya utekelezaji wa Bigtable. Vifaa hivi vya uhifadhi vipo katika viwango vyote.

Maelezo mengine ya kuvutia ni kwamba kwa muda Bigtable ilijulikana na kuenea ndani ya Google, na kila timu ikiwa na hazina yake. Kwa hivyo kwenye moja ya mikutano ya Ijumaa, Larry Page aliuliza bila kuchelewa: “Kwa nini tuna meza kubwa zaidi ya moja? Kwa nini isiwe moja tu?” Kwa nadharia, hifadhi moja inapaswa kutosha kwa mahitaji yote ya hifadhi ya Google. Kwa kweli, hawakuwahi kwenda kwa moja tu kwa sababu za maendeleo ya vitendo (kama matokeo ya kutofaulu), lakini nadharia hiyo ilivutia. Hifadhi moja ya Ulimwengu mzima (Kwa njia, kuna mtu yeyote anajua ikiwa Amazon ilifanya hivi na Sable yao?)

Hata hivyo, hapa kuna hadithi yangu.

Wakati huo, nilikuwa nikifanya kazi katika Google kwa zaidi ya miaka miwili, na siku moja nilipokea barua pepe kutoka kwa timu ya wahandisi ya Bigtable ambayo ilienda hivi:

Mpendwa Steve,

Habari kutoka kwa timu ya Bigtable. Tungependa kukuarifu kwamba katika [jina la kituo cha data] unatumia mfumo jozi wa zamani sana wa Bigtable. Toleo hili halitumiki tena na tunataka kukusaidia kupata toleo jipya zaidi.

Tafadhali nijulishe ikiwa mnaweza kupanga muda wa kufanya kazi pamoja kuhusu suala hili.

Kila la kheri,
Timu kubwa

Kwenye Google unapata barua nyingi, kwa hivyo kwa mtazamo wa kwanza nilisoma kitu kama hiki:

Mpendwa Mpokeaji,

Habari kutoka kwa timu fulani. Tunataka kuwasiliana kwamba blah blah blah blah blah. Blah blah blah blah blah blah, na blah blah blah mara moja.

Tafadhali tujulishe ikiwa unaweza kuratibu baadhi ya wakati wako wa thamani kwa blah blah blah.

Kila la kheri,
Aina fulani ya amri

Nilikaribia kuifuta mara moja, lakini kwenye ukingo wa fahamu zangu nilihisi hisia zenye uchungu na za kukasirisha kwamba sivyo inaonekana kama barua rasmi ingawa wazi, kwamba mpokeaji alikosea kwa sababu sikutumia Bigtable.

Lakini ilikuwa ajabu.

Nilitumia siku nzima nikifikiria juu ya kazi na ni aina gani ya nyama ya papa ya kujaribu kwenye jikoni ndogo, ambayo angalau tatu zilikuwa karibu vya kutosha kugonga kutoka kwa kiti changu na kurusha biskuti iliyokusudiwa vizuri, lakini mawazo ya kuandika hayakuniacha na wasiwasi mdogo unaokua.

Walisema jina langu waziwazi. Na barua pepe ilitumwa kwa anwani yangu ya barua pepe, sio ya mtu mwingine, na sio cc: au bcc:. Toni ni ya kibinafsi sana na wazi. Labda hii ni aina fulani ya makosa?

Hatimaye, udadisi ulinishinda na nikaenda kuangalia koni ya Borg katika kituo cha data walichotaja.

Na bila shaka, nilikuwa na hifadhi ya BigTable chini ya usimamizi. Samahani, je! Niliangalia yaliyomo, na wow! Ilikuwa kutoka kwa kitotoleo cha Codelab nilichoketi katika wiki yangu ya kwanza huko Google mnamo Juni 2005. Codelab ilikulazimisha kuendesha Bigtable kuandika maadili kadhaa hapo, na inaonekana sikuwahi kufunga hifadhi baada ya hapo. Ilikuwa bado inafanya kazi ingawa zaidi ya miaka miwili ilikuwa imepita.

Kuna mambo kadhaa muhimu katika hadithi hii. Kwanza, kazi ya Bigtable ilikuwa ndogo sana kwa kiwango cha Google hivi kwamba miaka miwili tu baadaye mtu yeyote aligundua hifadhi ya ziada, na kwa sababu tu toleo la mfumo wa jozi lilikuwa limepitwa na wakati. Kwa kulinganisha, niliwahi kufikiria kutumia Bigtable kwenye Google Cloud kwa mchezo wangu wa mtandaoni. Wakati huo, huduma hii iligharimu takriban $16 kwa mwaka. tupu Bigtable kwenye GCP. Sisemi kwamba wanakulaghai, lakini kwa maoni yangu binafsi, hizo ni pesa nyingi kwa hifadhidata tupu.

Kipengele kingine muhimu ni uhifadhi bado inafanya kazi baada ya miaka miwili. WTF? Vituo vya data huja na kuondoka; wanapata kukatika, wanapitia matengenezo yaliyopangwa, wanabadilika kila wakati. Vifaa vinasasishwa, swichi zinabadilishwa, kila kitu kinaboreshwa kila wakati. Je! ni kwa jinsi gani waliweza kudumisha programu yangu kwa miaka miwili na mabadiliko haya yote? Hii inaweza kuonekana kama mafanikio ya kawaida mnamo 2020, lakini mnamo 2005-2007 ilikuwa ya kuvutia sana.

Na jambo la kustaajabisha zaidi ni kwamba timu ya wahandisi wa nje katika jimbo lingine hunikaribia, mmiliki wa mfano mdogo, karibu tupu wa Bigtable, ambaye ana. trafiki sifuri kwa miaka miwili iliyopita - na wanatoa usaidizi wa kuisasisha.

Nikawashukuru, nikafuta hifadhi, na maisha yakaendelea kama kawaida. Lakini miaka kumi na tatu baadaye, bado ninaifikiria barua hiyo. Kwa sababu wakati mwingine mimi hupokea barua pepe kama hizo kutoka kwa Google Cloud. Wanaonekana kama hii:

Mpendwa Mtumiaji wa Wingu la Google,

Tunakukumbusha kuwa tutakuwa tukisimamisha huduma ya [huduma muhimu unayotumia] kuanzia Agosti 2020, na baada ya hapo hutaweza kusasisha hali zako. Tunapendekeza upate toleo jipya zaidi, ambalo liko katika majaribio ya beta, halina hati, hakuna njia ya uhamiaji na ambayo hapo awali ilipitwa na wakati kwa usaidizi wetu wa fadhili.

Tumejitolea kuhakikisha kuwa mabadiliko haya yana athari ndogo kwa watumiaji wote wa mfumo wa Wingu la Google.

Marafiki bora milele,
Google Cloud Platform

Lakini karibu sijawahi kusoma barua kama hizo, kwa sababu wanachosema ni:

Mpendwa Mpokeaji,

Nenda kuzimu. Fuck wewe, fuck wewe, fuck wewe. Acha kila kitu unachofanya kwa sababu haijalishi. Cha muhimu ni wakati wetu. Tunapoteza muda na pesa kudumisha upumbavu wetu na tumechoka kwa hivyo hatutaunga mkono tena. Kwa hivyo achana na mipango yako ya kihuni na uanze kuchambua hati zetu chafu, ukiomba mabaki kwenye vikao, na kwa njia, ujinga wetu mpya ni tofauti kabisa na ule wa zamani, kwa sababu tuliharibu muundo huu mbaya, heh, lakini hiyo ni yako. tatizo, si yetu.

Tunaendelea kufanya juhudi kuhakikisha kuwa maendeleo yako yote yanakuwa hayatumiki ndani ya mwaka mmoja.

Tafadhali cheza
Google Cloud Platform

Na ukweli ni kwamba mimi hupokea barua kama hizo mara moja kwa mwezi. Hii hutokea mara kwa mara na mara kwa mara kwamba wao inevitably kusukumwa mbali mimi kutoka GCP hadi kambi ya kuzuia wingu. Sikubali tena kutegemea maendeleo yao ya umiliki, kwa sababu kwa kweli ni rahisi kwa devops kudumisha mfumo wa programu huria kwenye mashine tupu ya mtandaoni kuliko kujaribu kuendana na Google na sera yake ya kufunga bidhaa "zisizopitwa na wakati".

Kabla sijarudi kwenye Google Cloud kwa sababu mimi hata karibu haijakamilika kuwakosoa, tuangalie utendaji wa kampuni katika maeneo mengine. Wahandisi wa Google wanajivunia taaluma yao ya uhandisi wa programu, na hii ndiyo hasa husababisha matatizo. Kiburi ni mtego kwa wasio na tahadhari, na imewafanya wafanyakazi wengi wa Google kufikiri kwamba maamuzi yao ni sahihi kila wakati na kwamba kuwa sahihi (kwa ufafanuzi fulani usioeleweka) ni muhimu zaidi kuliko kujali wateja.

Nitatoa mifano nasibu kutoka kwa miradi mingine mikubwa nje ya Google, lakini natumai unaona muundo huu kila mahali. Ni kama ifuatavyo: utangamano wa nyuma huweka mifumo hai na kusasishwa kwa miongo kadhaa.

Utangamano wa nyuma ndio lengo la muundo wa mifumo yote iliyofanikiwa iliyoundwa kwa ajili yake wazi tumia, yaani, kutekelezwa na msimbo wa chanzo huria na/au viwango vilivyo wazi. Ninahisi kama ninasema jambo dhahiri sana ambalo kila mtu hata hafurahii, lakini hapana. Hili ni suala la kisiasa, hivyo mifano inahitajika.

Mfumo wa kwanza nitakaochagua ni wa zamani zaidi: GNU Emacs, ambao ni aina ya mseto kati ya Windows Notepad, OS kernel, na International Space Station. Ni ngumu kidogo kuelezea, lakini kwa kifupi, Emacs ni jukwaa lililoundwa mnamo 1976 (ndio, karibu nusu karne iliyopita) kwa utayarishaji wa programu ili kukufanya uwe na tija zaidi, lakini unajifanya kama mhariri wa maandishi.

Ninatumia Emacs kila siku. Ndio, mimi pia hutumia IntelliJ kila siku, imekua jukwaa la zana lenye nguvu kwa njia yake yenyewe. Lakini kuandika viendelezi kwa IntelliJ ni kazi kubwa na ngumu zaidi kuliko kuandika viendelezi vya Emacs. Na muhimu zaidi, kila kitu kilichoandikwa kwa Emacs kinahifadhiwa milele.

Bado ninatumia programu niliyoandika kwa Emacs nyuma mnamo 1995. Na nina hakika mtu anatumia moduli zilizoandikwa kwa Emacs katikati ya miaka ya 80, ikiwa sivyo mapema. Wanaweza kuhitaji kurekebisha kidogo mara kwa mara, lakini hii ni nadra sana. Sijui chochote ambacho nimewahi kuandikia Emacs (na nimeandika mengi) ambacho kilihitaji usanifu upya.

Emacs ina chaguo za kukokotoa zinazoitwa make-obsolete kwa huluki zilizopitwa na wakati. Istilahi za Emacs za dhana za kimsingi za kompyuta (kama vile "dirisha" ni nini) mara nyingi hutofautiana na mikusanyiko ya tasnia kwa sababu Emacs ilizitambulisha muda mrefu uliopita. Hii ni hatari ya kawaida kwa wale ambao wako mbele ya wakati wao: masharti yako yote si sahihi. Lakini Emacs haina dhana ya kuacha kutumia huduma, ambayo katika jargon yao inaitwa obsolescence.

Lakini katika ulimwengu wa Emacs inaonekana kuna ufafanuzi tofauti wa kufanya kazi. Falsafa tofauti ya msingi, ikiwa utapenda.

Katika ulimwengu wa Emacs (na katika maeneo mengine mengi, ambayo tutashughulikia hapa chini), hali ya API iliyopunguzwa kimsingi inamaanisha: "Kwa kweli haupaswi kutumia njia hii, kwa sababu wakati inafanya kazi, inakabiliwa na mapungufu kadhaa ambayo tutaweza. orodha hapa. Lakini mwisho wa siku, ni chaguo lako."

Katika ulimwengu wa Google, kuwa kizamani kunamaanisha, "Tumekiuka ahadi yetu kwako." Hii ni kweli. Hii ndio maana yake kimsingi. Hii ina maana watakulazimisha mara kwa mara kufanya kazi fulani, labda kazi nyingi, kama adhabu kwa kuziamini matangazo ya rangi: Tuna programu bora zaidi. Ya haraka zaidi! Unafanya kila kitu kulingana na maagizo, uzindua programu au huduma yako, na kisha bam, baada ya mwaka mmoja au miwili huvunja.

Ni kama kuuza gari lililotumika ambalo hakika litaharibika baada ya kilomita 1500.

Hizi ni fasili mbili tofauti za kifalsafa za "kuzima." Ufafanuzi wa Google wa harufu uchakavu uliopangwa. Siamini hili Kwa kweli iliyopangwa kupitwa na wakati kwa maana sawa na Apple. Lakini kwa hakika Google inapanga kuvunja programu zako, kwa njia ya mzunguko. Ninajua hii kwa sababu nilifanya kazi huko kama mhandisi wa programu kwa zaidi ya miaka 12. Zina miongozo ya ndani isiyoeleweka kuhusu ni kiasi gani cha uoanifu cha nyuma kinapaswa kufuatwa, lakini hatimaye ni kwa kila timu au huduma. Hakuna mapendekezo ya kiwango cha biashara au uhandisi, na pendekezo la ujasiri zaidi katika suala la mizunguko ya kutotumika ni "kujaribu kuwapa wateja miezi 6-12 ya kuboresha kabla ya kuvunja mfumo wao wote."

Tatizo ni kubwa zaidi kuliko wanavyofikiri, na litaendelea kwa miaka ijayo kwa sababu huduma ya wateja haipo kwenye DNA zao. Zaidi juu ya hii hapa chini.

Kwa wakati huu nitatoa taarifa ya ujasiri kwamba Emacs imefanikiwa kwa kiasi kikubwa na hata zaidi kwa sababu wanachukulia utangamano wa kurudi nyuma kwa umakini sana. Kwa kweli, hii ni thesis ya makala yetu. Mifumo iliyofanikiwa na iliyodumu kwa muda mrefu inatokana na mafanikio yake kutokana na jumuiya ndogo ndogo ambazo zimeishi karibu nazo kwa miongo kadhaa. viendelezi/plugins. Huu ndio mfumo wa ikolojia. Tayari nimezungumza kuhusu asili ya majukwaa na jinsi yalivyo muhimu, na jinsi Google katika historia yake yote ya shirika haijawahi kuelewa kinachoendelea katika kuunda jukwaa la wazi lililofanikiwa nje ya Android au Chrome.

Kwa kweli, ninapaswa kutaja Android kwa ufupi kwa sababu labda unaifikiria.

Kwanza, Android si Google. Hawana chochote karibu na kila mmoja. Android ni kampuni ambayo ilinunuliwa na Google mnamo Julai 2005, kampuni iliruhusiwa kufanya kazi zaidi au chini ya uhuru na kwa kweli imebakia bila kuguswa katika miaka iliyopita. Android ni mrundikano mashuhuri wa teknolojia na shirika lenye sifa mbaya sawa. Kama MwanaGoogle mmoja alivyosema, "Huwezi tu kuingia kwenye Android."

Katika makala iliyotangulia, nilijadili jinsi baadhi ya maamuzi ya awali ya Android yalivyokuwa mabaya. Heck, nilipoandika nakala hiyo walikuwa wakitoa upuuzi unaoitwa "programu za papo hapo" ambazo sasa ni (mshangao!) imepitwa na wakati, na nakuhurumia ikiwa ulikuwa mjinga vya kutosha kusikiliza Google na kuhamisha maudhui yako hadi kwenye programu hizi zinazofunguka papo hapo.

Lakini kuna tofauti hapa, tofauti kubwa, ambayo ni kwamba watu wa Android wanaelewa kweli jinsi majukwaa ni muhimu, wanajaribu wawezavyo kuweka programu za zamani za Android kufanya kazi. Kwa kweli, juhudi zao za kudumisha utangamano wa kurudi nyuma ni mbaya sana hata mimi, wakati wa kipindi changu kifupi kwenye kitengo cha Android miaka michache iliyopita, nilijikuta nikijaribu kuwashawishi kuacha msaada kwa baadhi ya vifaa vya zamani na API (nilikosea. , kama ilivyokuwa katika mambo mengine mengi ya zamani na ya sasa. Samahani watu wa Android! Kwa kuwa sasa nimekuwa Indonesia, ninaelewa kwa nini tunazihitaji).

Watu wa Android wanasukuma utangamano wa kurudi nyuma hadi viwango vya kupita kiasi visivyoweza kuwakilika, na kukusanya kiasi kikubwa cha deni la urithi wa kiufundi katika mifumo na minyororo yao ya zana. Ee mungu wangu, unapaswa kuona baadhi ya mambo ya kichaa wanayopaswa kufanya katika mfumo wao wa ujenzi, yote kwa jina la utangamano.

Kwa hili, ninaikabidhi Android tuzo inayotamaniwa ya "Wewe sio Google". Kwa kweli hawataki kuwa Google, ambayo haijui jinsi ya kuunda majukwaa ya kudumu, lakini Android anajua, jinsi ya kufanya hivyo. Na kwa hivyo Google ni smart sana katika hali moja: kuruhusu watu kufanya mambo kwa njia yao wenyewe kwenye Android.

Walakini, programu za papo hapo za Android zilikuwa wazo la kijinga. Na unajua kwa nini? Kwa sababu walidai andika upya na upange upya programu yako! Ni kana kwamba watu wataandika upya maombi milioni mbili. Nadhani Programu za Papo Hapo lilikuwa wazo la MwanaGoogle.

Lakini kuna tofauti. Utangamano wa nyuma huja kwa gharama kubwa. Android yenyewe hubeba mzigo wa gharama hizi, wakati Google inasisitiza kuwa mzigo huo ubebe wewe ni, mteja anayelipa.

Unaweza kuona dhamira ya Android ya uoanifu wa nyuma katika API zake. Unapokuwa na mifumo ndogo minne au mitano tofauti inayofanya kitu kimoja, ni ishara tosha kwamba kuna kujitolea kwa utangamano wa nyuma katika msingi. Ambayo katika ulimwengu wa majukwaa ni sawa na kujitolea kwa wateja wako na soko lako.

Tatizo kuu la Google hapa ni fahari yao katika usafi wao wa kihandisi. Hawapendi wakati kuna njia nyingi tofauti za kufanya jambo lile lile, na njia za zamani, zisizohitajika sana zikiwa karibu na njia mpya, za kupendeza zaidi. Inaongeza mkondo wa kujifunza kwa wale wapya kwenye mfumo, huongeza mzigo wa kudumisha API za urithi, inapunguza kasi ya vipengele vipya, na dhambi kuu ni kwamba sio nzuri. Google - kama Lady Ascot kutoka kwa Alice ya Tim Burton huko Wonderland:

Lady Ascot:
- Alice, unajua ninaogopa nini zaidi?
- Kupungua kwa aristocracy?
- Niliogopa kwamba ningekuwa nayo wajukuu wabaya.

Ili kuelewa biashara kati ya nzuri na ya vitendo, hebu tuangalie jukwaa la tatu la mafanikio (baada ya Emacs na Android) na tuone jinsi inavyofanya kazi: Java yenyewe.

Java ina API nyingi za kizamani. Kuacha kutumia programu ni maarufu sana kati ya watengeneza programu wa Java, hata maarufu zaidi kuliko katika lugha nyingi za programu. Java yenyewe, lugha ya msingi, na maktaba zinaacha kutumia API kila wakati.

Kuchukua moja tu ya maelfu ya mifano, kufunga nyuzi inachukuliwa kuwa ya kizamani. Imeacha kutumika tangu kutolewa kwa Java 1.2 mnamo Desemba 1998. Imepita miaka 22 tangu kusitishwa kwa huduma hii.

Lakini nambari yangu halisi katika uzalishaji bado inaua nyuzi kila siku. Unafikiri hiyo ni nzuri kweli? Kabisa! Ninamaanisha, kwa kweli, ikiwa ningeandika tena nambari leo, ningeitekeleza kwa njia tofauti. Lakini kanuni ya mchezo wangu, ambayo imewafurahisha mamia ya maelfu ya watu katika miongo miwili iliyopita, imeandikwa kwa kipengele cha kufunga nyuzi zinazoning'inia kwa muda mrefu sana, na mimi. kamwe ilibidi kuibadilisha. Ninajua mfumo wangu bora kuliko mtu yeyote, nina uzoefu wa miaka 25 wa kufanya kazi nayo katika uzalishaji, na ninaweza kusema kwa hakika: kwa upande wangu, kufunga nyuzi hizi maalum za wafanyikazi ni kabisa. isiyo na madhara. Haifai wakati na juhudi kuandika tena msimbo huu, na kumshukuru Larry Ellison (pengine) kwamba Oracle haikunilazimisha kuiandika upya.

Oracle labda anaelewa majukwaa pia. Nani anajua.

Ushahidi unaweza kupatikana kote katika API kuu za Java, ambazo zimejaa mawimbi ya kuchakaa, kama mistari ya barafu kwenye korongo. Unaweza kupata kwa urahisi wasimamizi watano au sita tofauti wa kusogeza wa kibodi (KibodiFocusManager) kwenye maktaba ya Java Swing. Kwa kweli ni ngumu kupata API ya Java ambayo haijaahirishwa. Lakini bado wanafanya kazi! Nadhani timu ya Java itaondoa tu API ikiwa kiolesura kitaleta suala la usalama dhahiri.

Hili ndilo jambo, watu: Sisi watengenezaji programu sote tuna shughuli nyingi, na katika kila eneo la programu tunakabiliwa na njia mbadala zinazoshindana. Wakati wowote, watayarishaji programu katika lugha X wanazingatia lugha Y kama mbadala inayowezekana. Oh, huniamini? Je, unataka kuiita Swift? Kama, kila mtu anahamia Swift na hakuna mtu anayeiacha, sivyo? Wow, jinsi unajua kidogo. Kampuni zinahesabu gharama za timu mbili za ukuzaji wa vifaa vya rununu (iOS na Android) - na wanaanza kugundua kuwa mifumo hiyo ya ukuzaji ya majukwaa mtambuka yenye majina ya kuchekesha kama vile Flutter na React Native inafanya kazi na inaweza kutumika kupunguza saizi yao. timu za rununu mara mbili au, kinyume chake, huwafanya kuwa na tija mara mbili. Kuna pesa halisi hatarini. Ndiyo, kuna maelewano, lakini, kwa upande mwingine, pesa.

Wacha tufikirie dhahania kwamba Apple kwa ujinga ilichukua kidokezo kutoka kwa Guido van Rossum na kutangaza kwamba Swift 6.0 haiendani na Swift 5.0, kama vile Python 3 haiendani na Python 2.

Pengine nilisimulia hadithi hii yapata miaka kumi iliyopita, lakini kama miaka kumi na tano iliyopita nilienda kwenye Kambi ya Foo ya O'Reilly pamoja na Guido, tukaketi kwenye hema na Paul Graham na rundo la risasi kubwa. Tulikaa kwenye joto jingi tukimngoja Larry Page aruke nje kwa helikopta yake ya kibinafsi huku Guido akiruka juu ya "Python 3000," ambayo aliitaja baada ya idadi ya miaka ambayo ingechukua kwa kila mtu kuhamia huko. Tuliendelea kumuuliza kwa nini alikuwa akivunja utangamano, na akajibu: "Unicode." Na tuliuliza, ikiwa tungelazimika kuandika tena nambari yetu, ni faida gani zingine tutaona? Naye akajibu, “Yooooooooooooooouuniiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii”

Ukisakinisha SDK ya Google Cloud Platform (“gcloud”), utapokea arifa ifuatayo:

Mpendwa Mpokeaji,

Tungependa kukukumbusha kuwa usaidizi wa Python 2 umeacha kutumika, kwa hivyo jamani

… Nakadhalika. Mzunguko wa maisha.

Lakini uhakika ni kwamba kila msanidi ana chaguo. Na ikiwa utawalazimisha kuandika tena nambari mara nyingi vya kutosha, wanaweza kufikiria nyingine chaguzi. Sio mateka wako, haijalishi ni kiasi gani unaweza kutaka wawe. Ni wageni wako. Python bado ni lugha maarufu sana ya programu, lakini jamani, Python 3(000) iliunda fujo kama hiyo yenyewe, katika jamii zake na kati ya watumiaji wa jamii zake kwamba matokeo yake hayajafutwa kwa miaka kumi na tano.

Ni programu ngapi za Python zimeandikwa tena katika Go (au Ruby, au njia nyingine) kwa sababu ya kutopatana huku nyuma? Ni programu ngapi mpya imeandikwa katika kitu kingine isipokuwa Python, ingawa ni inaweza kuwa iliyoandikwa kwa Python, ikiwa Guido hangeteketeza kijiji kizima? Ni ngumu kusema, lakini Python imeteseka wazi. Ni fujo kubwa na kila mtu hupoteza.

Kwa hivyo, tuseme Apple inachukua kidokezo kutoka kwa Guido na kuvunja utangamano. Je, unadhani nini kitatokea baadaye? Kweli, labda 80-90% ya watengenezaji wataandika upya programu yao ikiwezekana. Kwa maneno mengine, 10-20% ya msingi wa watumiaji huenda moja kwa moja kwa lugha shindani, kama vile Flutter.

Fanya hivi mara kadhaa na utapoteza nusu ya watumiaji wako. Kama vile katika michezo, katika ulimwengu wa programu, fomu ya sasa pia ni muhimu. kila kitu. Yeyote anayepoteza nusu ya watumiaji wake katika miaka mitano atachukuliwa kuwa Mpotezaji Mkubwa wa Mafuta. Lazima uwe mtindo katika ulimwengu wa majukwaa. Lakini hapa ndipo kutounga mkono matoleo ya zamani kutakuharibu kwa wakati. Kwa sababu kila wakati unapoondoa baadhi ya wasanidi programu, (a) unawapoteza milele kwa sababu wanakukasirikia kwa kuvunja mkataba, na (b) kuwapa washindani wako.

Kwa kushangaza, pia nilisaidia Google kuwa prima donna ambayo inapuuza utangamano wa nyuma wakati nilipounda Grok, mfumo wa uchanganuzi wa nambari ya chanzo na uelewa ambao hurahisisha kuweka kiotomatiki na kutumia msimbo yenyewe - sawa na IDE, lakini hapa duka la huduma ya wingu. uwasilishaji halisi wa mabilioni ya laini zote za msimbo wa chanzo wa Google katika ghala kubwa la data.

Grok aliwapa WanaGoogle mfumo madhubuti wa kutekeleza urekebishaji kiotomatiki kwenye msingi wao wote wa msimbo (halisi kote kwenye Google). Mfumo hauhesabu tu utegemezi wako wa juu (ambao unategemea), lakini pia kushuka (ambayo ni juu yako) kwa hivyo unapobadilisha API unajua kila mtu unayevunja! Kwa njia hii, unapofanya mabadiliko, unaweza kuthibitisha kuwa kila mtumiaji wa API yako amesasisha hadi toleo jipya, na kwa kweli, mara nyingi na zana ya Rosie waliyoandika, unaweza kuhariri mchakato kabisa.

Hii inaruhusu codebase ya Google kuwa safi ndani kwa njia isiyo ya kawaida, kwa kuwa wana watumishi hawa wa roboti wanaozunguka nyumbani na kusafisha kiotomatiki kila kitu ikiwa wamebadilisha jina la SomeDespicablyLongFunctionName kuwa SomeDespicablyLongMethodName kwa sababu mtu fulani aliamua kuwa ni mjukuu mbaya na anahitaji kulazwa.

Na kusema ukweli, inafanya kazi vizuri kwa Google ... ndani. Ninamaanisha, ndio, jumuiya ya Go kwenye Google huwa na kicheko kizuri na jumuiya ya Java huko Google kwa sababu ya tabia yao ya kuchagiza upya mara kwa mara. Ukianzisha tena kitu mara N, hiyo inamaanisha kuwa haukuiharibu mara N-1 tu, lakini baada ya muda inakuwa wazi kuwa labda uliiharibu kwenye jaribio la Nth pia. Lakini, kwa kiasi kikubwa, wanabaki juu ya ugomvi huu wote na kuweka kanuni "safi".

Tatizo huanza wanapojaribu kulazimisha mtazamo huu kwa wateja wao wa wingu na watumiaji wa API zingine.

Nimekuletea kidogo kwenye Emacs, Android na Java; hebu tuangalie jukwaa la hivi punde la mafanikio la muda mrefu: Wavuti yenyewe. Je, unaweza kufikiria ni marudio mangapi ambayo HTTP imepitia tangu 1995 tulipotumia lebo zinazomulika? na ikoni za "Chini ya Ujenzi" kwenye kurasa za wavuti.

Lakini bado inafanya kazi! Na kurasa hizi bado zinafanya kazi! Ndiyo, watu, vivinjari ni mabingwa wa dunia katika utangamano wa nyuma. Chrome ni mfano mwingine wa jukwaa adimu la Google ambalo vichwa vyake vimefungwa ipasavyo, na kama unavyoweza kuwa umekisia, Chrome inafanya kazi kwa ufanisi kama kampuni ya sandbox iliyojitenga na Google.

Pia ninataka kuwashukuru marafiki zetu katika watengenezaji wa mfumo wa uendeshaji: Windows, Linux, NOT APPLE FUCK YOU APPLE, FreeBSD, n.k., kwa kufanya kazi kubwa kama hiyo ya utangamano wa nyuma kwenye majukwaa yao yaliyofaulu (Apple hupata C bora zaidi na The upande wa chini ni kwamba wanavunja kila kitu wakati wote bila sababu nzuri, lakini kwa namna fulani jamii huizunguka kwa kila toleo, na vyombo vya OS X bado havijapitwa na wakati ... bado).

Lakini subiri, unasema. Je, si tunalinganisha tufaha na machungwa - mifumo ya programu inayojitegemea kwenye mashine moja kama vile Emacs/JDK/Android/Chrome dhidi ya mifumo ya seva nyingi na API kama vile huduma za wingu?

Kweli, nilitweet kuhusu hili jana, lakini kwa mtindo wa Larry Wall (muundaji wa lugha ya programu Perl - takriban. per.) kwa kanuni ya "sucks / sheria" niliangalia neno. imeshindwa kwenye tovuti za Google na Amazon. Na ingawa AWS ina mamia mara zaidi ya matoleo ya huduma kuliko GCP, hati za wasanidi programu wa Google hutaja uachaji huduma takriban mara saba mara nyingi zaidi.

Ikiwa mtu yeyote katika Google anasoma hili, labda yuko tayari kutoa chati za mtindo wa Donald Trump zinazoonyesha kwamba kwa kweli wanafanya kila kitu sawa, na kwamba sipaswi kulinganisha vibaya kama "idadi ya kutajwa kwa neno lililokataliwa dhidi ya. idadi ya huduma""

Lakini baada ya miaka hii yote, Google Cloud bado ni huduma nambari 3 (sijawahi kuandika makala kuhusu jaribio lisilofaulu la kuwa nambari 2), lakini ikiwa watu wa ndani wataaminika, kuna wasiwasi ambao wanaweza kuacha hivi karibuni. Nambari 4.

Sina hoja zozote za kulazimisha "kuthibitisha" nadharia yangu. Nilicho nacho ni mifano ya kupendeza ambayo nimekusanya kwa zaidi ya miaka 30 kama msanidi programu. Tayari nimetaja asili ya kina ya kifalsafa ya tatizo hili; kwa njia fulani inatiwa siasa katika jumuiya za wasanidi. Wengine wanaamini hivyo waumbaji majukwaa yanapaswa kujali juu ya utangamano, wakati wengine wanafikiria kuwa hii ni wasiwasi watumiaji (watengenezaji wenyewe). Mmoja kati ya wawili. Kweli, si ni suala la kisiasa tunapoamua ni nani anayepaswa kubeba gharama za matatizo ya kawaida?

Kwa hivyo hii ni siasa. Na pengine kutakuwa na majibu ya hasira kwa hotuba yangu.

Kama user Google Cloud Platform, na kama mtumiaji wa AWS kwa miaka miwili (huku nikifanya kazi kwa Grab), naweza kusema kwamba kuna tofauti kubwa kati ya Amazon na falsafa za Google linapokuja suala la vipaumbele. Siendelezi kikamilifu kwenye AWS, kwa hivyo sijui vizuri ni mara ngapi wanaondoa API za zamani. Lakini kuna shaka kwamba hii haifanyiki karibu mara nyingi kama ilivyo kwa Google. Na ninaamini kweli kwamba chanzo hiki cha mabishano na kufadhaika mara kwa mara katika GCP ni mojawapo ya sababu kubwa zinazorudisha nyuma maendeleo ya jukwaa.

Ninajua kuwa sikutaja mifano maalum ya mifumo ya GCP ambayo haitumiki tena. Ninaweza kusema kwamba karibu kila kitu ambacho nimetumia, kutoka kwa mitandao (kutoka kongwe hadi VPC) hadi uhifadhi (Cloud SQL v1-v2), Firebase (sasa Firestore na API tofauti kabisa), Injini ya Programu (wacha hata tusianze) , sehemu za mwisho za wingu na hadi... sijui - kabisa haya yote ilikulazimisha kuandika tena msimbo baada ya muda usiozidi miaka 2-3, na hawakuwahi kukufanyia uhamishaji kiotomatiki, na mara nyingi. hakukuwa na njia ya uhamiaji iliyoandikwa hata kidogo. Kana kwamba ilipaswa kuwa hivyo.

Na kila wakati ninapoangalia AWS, ninajiuliza kwa nini bado niko kwenye GCP. Kwa wazi hawahitaji wateja. Wanahitaji wanunuzi. Je, unaelewa tofauti? Hebu nielezee.

Google Cloud ina sokoni, ambapo watu wanapendekeza ufumbuzi wa programu zao, na ili kuepuka athari tupu ya mgahawa, walihitaji kuijaza na baadhi ya mapendekezo, kwa hiyo walifanya mkataba na kampuni inayoitwa Bitnami kuunda rundo la ufumbuzi ambao hutumwa kwa "bofyo moja", au lazima. Ninaiandika mwenyewe "suluhisho," kwa sababu hizi hazisuluhishi jambo mbaya. Zinapatikana tu kama visanduku vya kuteua, kama vijazaji vya uuzaji, na Google haijawahi kujali ikiwa zana yoyote inafanya kazi kweli. Najua wasimamizi wa bidhaa ambao wamekuwa kwenye kiti cha udereva, na ninaweza kukuhakikishia kwamba watu hawa hawajali.

Chukua, kwa mfano, suluhisho la kupeleka linalodaiwa kuwa "bofya-moja". percona. Nilikuwa mgonjwa hadi kufa kutokana na shenanigans za SQL za Wingu la Google, kwa hivyo nilianza kuangalia kuunda nguzo yangu ya Percona kama njia mbadala. Na wakati huu Google ilionekana kuwa imefanya kazi nzuri, wangeenda kuniokoa wakati na bidii kwa kubofya kitufe!

Sawa mkuu, twende. Hebu kufuata kiungo na bonyeza kifungo hiki. Chagua "Ndiyo" ili ukubali mipangilio yote chaguo-msingi na utumie kikundi katika mradi wako wa wingu wa Google. Haha, haifanyi kazi. Hakuna ujinga huu unaofanya kazi. Chombo hicho hakijajaribiwa na kilianza kuoza kutoka dakika ya kwanza, na haitanishangaza ikiwa zaidi ya nusu ya "suluhisho" ni uwekaji wa kubofya mara moja (sasa tunaelewa kwa nini nukuu) kwa ujumla haifanyi kazi. Hii ni giza lisilo na tumaini kabisa, ambapo ni bora kutoingia.

Lakini Google ni sahihi inatia moyo wewe kuzitumia. Wanataka wewe kununuliwa. Kwao ni shughuli. Hawataki chochote msaada. Si sehemu ya DNA ya Google. Ndio, wahandisi wanasaidiana, kama inavyothibitishwa na hadithi yangu na Bigtable. Lakini katika bidhaa na huduma kwa watu wa kawaida wao daima walikuwa wakorofi ndani kufunga huduma yoyote, ambayo haifikii upau kwa faida hata ikiwa ina mamilioni ya watumiaji.

Na hii inatoa changamoto kwa GCP kwa sababu hii ndiyo DNA nyuma ya matoleo yote ya wingu. Hawajaribu kuunga mkono chochote; Inajulikana kuwa wanakataa kupangisha (kama huduma inayosimamiwa) programu yoyote ya wahusika wengine mpaka, hadi AWS ifanye vivyo hivyo na kuunda biashara yenye mafanikio karibu nayo, na wakati wateja wanadai sawa. Hata hivyo, inachukua juhudi fulani kupata Google kuauni kitu.

Ukosefu huu wa tamaduni ya usaidizi, pamoja na mtazamo wa "hebu tuivunje ili kuifanya iwe nzuri zaidi", huwatenga watengenezaji.

Na hiyo sio jambo zuri ikiwa unataka kujenga jukwaa la muda mrefu.

Google, amka, jamani. Ni 2020 sasa. Bado unapoteza. Ni wakati wa kuangalia kwa bidii kwenye kioo na kujibu ikiwa unataka kabisa kukaa katika biashara ya wingu.

Ukitaka kubaki basi acha kuvunja kila kitu. Jamani, nyinyi ni matajiri. Sisi watengenezaji hatufanyi hivyo. Kwa hivyo linapokuja suala la nani atakayebeba mzigo wa utangamano, unahitaji kujitwika mwenyewe. Si kwa ajili yetu.

Kwa sababu kuna angalau mawingu mengine matatu mazuri. Wanaashiria.

Na sasa nitaendelea kurekebisha mifumo yangu yote iliyovunjika. Mh.

Mpaka wakati ujao!

Sasisho la PS baada ya kusoma baadhi ya majadiliano kwenye nakala hii (majadiliano ni mazuri, btw). Usaidizi wa Firebase haujakomeshwa na hakuna mipango ambayo ninajua. Walakini, wana hitilafu mbaya ya utiririshaji ambayo husababisha mteja wa Java kukwama kwenye Injini ya Programu. Mmoja wa wahandisi wao alinisaidia kutatua tatizo hili, nilipofanya kazi katika Google, lakini hawakuwahi kusawazisha hitilafu, kwa hivyo nina kazi ngumu ya kulazimika kuanzisha tena programu ya GAE kila siku. Na hivyo imekuwa kwa miaka minne! Sasa wana Firestore. Itachukua kazi nyingi kuhamia humo kwani ni mfumo tofauti kabisa na hitilafu ya Firebase haitarekebishwa kamwe. Ni hitimisho gani linaweza kutolewa? Unaweza kupata msaada ikiwa unafanya kazi katika kampuni. Labda mimi ndiye pekee ninayetumia Firebase kwenye GAE kwa sababu ninaweka chini ya funguo 100 kwenye programu asilia 100% na huacha kufanya kazi kila siku kadhaa kwa sababu ya mdudu anayejulikana. Ninaweza kusema nini zaidi ya kuitumia kwa hatari yako mwenyewe. Ninabadilisha hadi Redis.

Nimeona pia watumiaji wengine wenye uzoefu zaidi wa AWS wakisema kwamba AWS kawaida huwa haachi kuunga mkono huduma zozote, na SimpleDB ni mfano mzuri. Mawazo yangu kwamba AWS haina mwisho sawa wa ugonjwa wa usaidizi kama Google inavyoonekana kuwa sawa.

Zaidi ya hayo, niligundua kuwa siku 20 zilizopita timu ya Google App Engine ilivunja upangishaji wa maktaba muhimu ya Go, na kuzima programu ya GAE kutoka kwa mmoja wa wasanidi wa msingi wa Go. Ilikuwa ni ujinga kweli kweli.

Hatimaye, nimesikia WanaGoogle tayari wakijadili suala hili na kwa ujumla kukubaliana nami ( nawapenda!). Lakini wanaonekana kufikiria kuwa tatizo haliwezi kusuluhishwa kwa sababu utamaduni wa Google haujawahi kuwa na muundo sahihi wa motisha. Nilidhani itakuwa vyema kuchukua muda kujadili uzoefu wa ajabu kabisa niliokuwa nao kufanya kazi na wahandisi wa AWS nilipokuwa nikifanya kazi Grab. Siku moja katika siku zijazo, natumai!

Na ndio, mnamo 2005 walikuwa na aina tofauti za nyama ya papa kwenye buffet kubwa katika jengo la 43, na niliyopenda zaidi ilikuwa nyama ya papa ya nyundo. Walakini, kufikia 2006, Larry na Sergei waliondoa vitafunio vyote visivyo na afya. Kwa hivyo wakati wa hadithi ya Bigtable mnamo 2007 kweli hakukuwa na papa na nilikudanganya.

Nilipoangalia cloud Bigtable miaka minne iliyopita (toa au chukua), hapa ndipo gharama ilikuwa. Inaonekana imeshuka kidogo sasa, lakini hiyo bado ni mbaya sana kwa ghala tupu la data, haswa kwani hadithi yangu ya kwanza inaonyesha jinsi meza kubwa tupu haina maana kwa kiwango chao.

Samahani kwa kuwaudhi jumuiya ya Apple na kutosema lolote zuri kuhusu Microsoft n.k. Uko sawa, ninashukuru sana mjadala wote ambao makala hii imetoa! Lakini wakati mwingine unahitaji kufanya mawimbi kidogo ili kuanza majadiliano, unajua?

Asante kwa kusoma.

Sasisha tarehe 2, 19.08.2020/XNUMX/XNUMX. Mstari inasasisha API kwa usahihi!

Sasisha tarehe 3, 31.08.2020/2/2. Niliwasiliana na mhandisi wa Google katika Cloud Marketplace ambaye aligeuka kuwa rafiki yangu wa zamani. Alitaka kujua ni kwa nini CXNUMXD haifanyi kazi, na hatimaye tukagundua kuwa ni kwa sababu nilikuwa nimeunda mtandao wangu miaka iliyopita, na CXNUMXD haikuwa ikifanya kazi kwenye mitandao ya urithi kwa sababu kigezo cha subnet kilikosekana kwenye violezo vyao. Nadhani ni vyema kwa watumiaji wa GCP kuhakikisha kuwa wanafahamu wahandisi wa kutosha kwenye Google...

Chanzo: mapenzi.com