Annwyl Google Cloud, mae peidio â bod yn gydnaws yn ôl yn eich lladd chi.

Damn Google, doeddwn i ddim eisiau blogio eto. Mae gen i gymaint i'w wneud. Mae blogio yn cymryd amser, egni a chreadigrwydd, y gallwn i wneud defnydd da ohono: fy llyfrau, музыка, fy ngêm ac ati. Ond rydych chi wedi pissed fi off ddigon bod yn rhaid i mi ysgrifennu hwn.

Felly gadewch i ni gael hyn drosodd gyda.

Gadewch imi ddechrau gyda stori fer ond addysgiadol o'r adeg y dechreuais weithio yn Google am y tro cyntaf. Rwy'n gwybod fy mod wedi bod yn dweud llawer o bethau drwg am Google yn ddiweddar, ond mae'n fy ypsetio pan fydd fy nghwmni fy hun yn gwneud penderfyniadau busnes anghymwys yn rheolaidd. Ar yr un pryd, rhaid inni roi ei ddyled: mae seilwaith mewnol Google yn wirioneddol ryfeddol, mae'n ddiogel dweud nad oes dim byd gwell heddiw. Roedd sylfaenwyr Google yn beirianwyr llawer gwell nag y byddaf byth, ac nid yw'r stori hon ond yn cadarnhau'r ffaith honno.

Yn gyntaf, ychydig o gefndir: mae gan Google dechnoleg storio data o'r enw Bwrdd Mawr. Roedd yn gyflawniad technegol rhyfeddol, un o'r storfa gwerth allweddol “anfeidrol raddadwy” (K/V) gyntaf (os nad y cyntaf): dechrau NoSQL yn y bôn. Y dyddiau hyn mae Bigtable yn dal i wneud yn dda yn y gofod storio K/V braidd yn orlawn, ond ar y pryd (2005) roedd yn rhyfeddol o cŵl.

Un peth doniol am Bigtable yw bod ganddyn nhw wrthrychau awyren rheolaeth fewnol (fel rhan o’r gweithredu) o’r enw gweinyddion tabled, gyda mynegeion mawr, ac ar ryw adeg daethant yn dagfa wrth raddio’r system. Roedd peirianwyr Bigtable yn ddryslyd ynghylch sut i weithredu scalability, a sylweddolasant yn sydyn y gallent ddisodli gweinyddwyr tabled gyda storfa Bigtable arall. Felly mae Bigtable yn rhan o weithrediad Bigtable. Mae'r cyfleusterau storio hyn yno ar bob lefel.

Manylion diddorol arall yw bod Bigtable wedi dod yn boblogaidd ac yn hollbresennol o fewn Google am gyfnod, gyda phob tîm â'i ystorfa ei hun. Felly yn un o’r cyfarfodydd dydd Gwener, gofynnodd Larry Page yn ddigywilydd: “Pam fod gennym ni fwy nag un Bigtable? Pam ddim un yn unig?” Mewn egwyddor, dylai un storfa fod yn ddigon ar gyfer holl anghenion storio Google. Wrth gwrs, nid oeddent byth yn mynd i un yn unig am resymau datblygiad ymarferol (fel canlyniadau methiant posibl), ond roedd y ddamcaniaeth yn ddiddorol. Un ystorfa ar gyfer y Bydysawd cyfan (Gyda llaw, oes unrhyw un yn gwybod a wnaeth Amazon hyn gyda'u Sable?)

Beth bynnag, dyma fy stori.

Ar y pryd, roeddwn wedi bod yn gweithio yn Google ers ychydig dros ddwy flynedd, ac un diwrnod derbyniais e-bost gan dîm peirianneg Bigtable a aeth rhywbeth fel hyn:

Annwyl Steve,

Helo gan dîm Bigtable. Hoffem eich hysbysu eich bod yn [enw'r ganolfan ddata] yn defnyddio Bigtable deuaidd hen iawn, iawn. Nid yw'r fersiwn hon yn cael ei chefnogi bellach ac rydym am eich helpu i uwchraddio i'r fersiwn diweddaraf.

Rhowch wybod i mi os gallwch drefnu rhywfaint o amser i gydweithio ar y mater hwn.

Pob hwyl,
Tîm Bigtable

Ar Google rydych chi'n cael llawer o bost, felly ar yr olwg gyntaf darllenais rywbeth fel hyn:

Annwyl Dderbynnydd,

Helo gan rai tîm. Rydym am gyfleu hynny blah blah blah blah blah. Blah blah blah blah blah, a blah blah blah ar unwaith.

Rhowch wybod i ni os gallwch chi drefnu rhywfaint o'ch amser gwerthfawr ar gyfer blah blah blah.

Pob hwyl,
Rhyw fath o orchymyn

Bu bron i mi ei ddileu ar unwaith, ond ar ymyl fy ymwybyddiaeth roeddwn i'n teimlo teimlad poenus, swnllyd ohono ddim mewn gwirionedd yn edrych fel llythyr ffurfiol serch hynny yn amlwg, bod y derbynnydd yn camgymryd oherwydd ni ddefnyddiais Bigtable.

Ond yr oedd yn rhyfedd.

Treuliais weddill y diwrnod bob yn ail yn meddwl am waith a pha fath o gig siarc i roi cynnig arno yn y meicro-gegin, yr oedd o leiaf dri ohonynt yn ddigon agos i daro o fy sedd gyda thafliad o fisged wedi'i anelu'n dda, ond roedd y Nid oedd meddwl am ysgrifennu erioed wedi fy ngadael â theimlad cynyddol o bryder ysgafn.

Dywedasant fy enw yn glir. Ac anfonwyd yr e-bost i fy nghyfeiriad e-bost, nid i gyfeiriad rhywun arall, ac nid yw'n cc: neu bcc:. Mae'r naws yn bersonol ac yn glir iawn. Efallai bod hyn yn rhyw fath o gamgymeriad?

Yn olaf, cafodd chwilfrydedd y gorau ohonof ac es i edrych ar y consol Borg yn y ganolfan ddata y soniwyd amdani.

Ac wrth gwrs, roedd gen i storfa BigTable dan reolaeth. Mae'n ddrwg gen i, beth? Edrychais ar ei gynnwys, a waw! Daeth o ddeorydd Codelab yr eisteddais ynddo yn ystod fy wythnos gyntaf yn Google ym mis Mehefin 2005. Fe wnaeth Codelab eich gorfodi i redeg Bigtable i ysgrifennu rhai gwerthoedd yno, ac mae'n debyg na wnes i erioed gau'r storfa ar ôl hynny. Roedd yn dal i weithio er bod mwy na dwy flynedd wedi mynd heibio.

Mae sawl agwedd nodedig i'r stori hon. Yn gyntaf, roedd gwaith Bigtable mor ddibwys ar raddfa Google fel mai dim ond dwy flynedd yn ddiweddarach y sylwodd unrhyw un ar y storfa ychwanegol, a dim ond oherwydd bod fersiwn y deuaidd yn hen ffasiwn. Er mwyn cymharu, yr wyf unwaith yn ystyried defnyddio Bigtable ar Google Cloud ar gyfer fy gêm ar-lein. Ar y pryd, roedd y gwasanaeth hwn yn costio tua $16 y flwyddyn. gwag Bigtable ar GCP. Dydw i ddim yn dweud eu bod yn sgamio chi, ond yn fy marn bersonol i, mae hynny'n llawer o arian ar gyfer cronfa ddata ffycin wag.

Agwedd nodedig arall yw bod y storfa dal i weithio ar ôl dwy flynedd. WTF? Mae canolfannau data yn mynd a dod; maent yn profi toriadau, maent yn cael gwaith cynnal a chadw wedi'i drefnu, maent yn newid drwy'r amser. Mae caledwedd yn cael ei ddiweddaru, mae switshis yn cael eu cyfnewid, mae popeth yn cael ei wella'n gyson. Sut roedden nhw'n gallu cadw fy rhaglen i redeg am ddwy flynedd gyda'r holl newidiadau hyn? Gall hyn ymddangos fel cyflawniad cymedrol yn 2020, ond yn 2005-2007 roedd yn eithaf trawiadol.

A'r agwedd fwyaf gwych yw bod tîm peirianneg allanol mewn rhyw dalaith arall yn dod ataf, perchennog rhyw enghraifft fach, bron yn wag o Bigtable, sydd wedi dim traffig am y ddwy flynedd diwethaf - ac yn cynnig cymorth i'w ddiweddaru.

Diolchais iddynt, dileu'r storfa, ac aeth bywyd ymlaen fel arfer. Ond dair blynedd ar ddeg yn ddiweddarach, rwy'n dal i feddwl am y llythyr hwnnw. Oherwydd weithiau dwi'n derbyn e-byst tebyg gan Google Cloud. Maen nhw'n edrych fel hyn:

Annwyl Ddefnyddiwr Google Cloud,

I'ch atgoffa, byddwn yn dod â'r gwasanaeth [gwasanaeth hanfodol rydych chi'n ei ddefnyddio] i ben ym mis Awst 2020, ac ar ôl hynny ni fyddwch yn gallu uwchraddio'ch achosion. Rydym yn argymell uwchraddio i'r fersiwn ddiweddaraf, sydd mewn profion beta, heb unrhyw ddogfennaeth, dim llwybr mudo ac mae'n hen ffasiwn o'r blaen gyda'n cymorth caredig.

Rydym wedi ymrwymo i sicrhau bod y newid hwn yn cael yr effaith leiaf bosibl ar holl ddefnyddwyr platfform Google Cloud.

Ffrindiau gorau am byth,
Llwyfan Cwmwl Google

Ond ni wnes i erioed ddarllen llythyrau o'r fath, oherwydd yr hyn maen nhw'n ei ddweud mewn gwirionedd yw:

Annwyl Dderbynnydd,

Ewch i uffern. Ystyr geiriau: Fuck chi, fuck chi, fuck chi. Gollwng popeth a wnewch oherwydd does dim ots. Yr hyn sy'n bwysig yw ein hamser. Rydym yn gwastraffu amser ac arian yn cynnal ein crap ac rydym wedi blino arno felly ni fyddwn yn ei gefnogi mwyach. Felly rhoi'r gorau i'ch cynlluniau ffycin a dechrau cloddio trwy ein dogfennaeth shitty, cardota am sgrapiau ar y fforymau, a gyda llaw, mae ein cachu newydd yn hollol wahanol i'r hen cachu, oherwydd fe wnaethon ni sgriwio'r dyluniad hwn yn eithaf drwg, heh, ond dyna chi broblem, nid ein.

Rydym yn parhau i ymdrechu i sicrhau na fydd modd defnyddio eich holl ddatblygiadau o fewn blwyddyn.

Os gwelwch yn dda fuck off
Llwyfan Cwmwl Google

A'r ffaith yw fy mod yn derbyn llythyrau o'r fath tua unwaith y mis. Mae hyn yn digwydd mor aml ac mor gyson nes eu bod yn anochel gwthio i ffwrdd fi o GCP i'r gwersyll gwrth-gwmwl. Nid wyf bellach yn cytuno i ddibynnu ar eu datblygiadau perchnogol, oherwydd mewn gwirionedd mae'n haws i devops gynnal system ffynhonnell agored ar beiriant rhithwir noeth na cheisio cadw i fyny â Google gyda'i bolisi o gau cynhyrchion “hen ffasiwn”.

Cyn i mi fynd yn ôl i Google Cloud oherwydd fy mod ddim hyd yn oed yn agos heb ei wneud yn eu beirniadu, gadewch i ni edrych ar berfformiad y cwmni mewn rhai meysydd eraill. Mae peirianwyr Google yn ymfalchïo yn eu disgyblaeth peirianneg meddalwedd, a dyma sy'n achosi problemau mewn gwirionedd. Mae balchder yn fagl i'r anwyliadwrus, ac mae wedi arwain llawer o weithwyr Google i feddwl bod eu penderfyniadau bob amser yn gywir a bod bod yn iawn (yn ôl rhyw ddiffiniad niwlog amwys) yn bwysicach na gofalu am gwsmeriaid.

Byddaf yn rhoi rhai enghreifftiau ar hap o brosiectau mawr eraill y tu allan i Google, ond gobeithio y gwelwch y patrwm hwn ym mhobman. Mae fel a ganlyn: mae cydnawsedd yn ôl yn cadw systemau'n fyw ac yn gyfredol am ddegawdau.

Cydweddoldeb ôl yw nod dylunio'r holl systemau llwyddiannus y dyluniwyd ar eu cyfer agored defnyddio, hynny yw, gweithredu gyda chod ffynhonnell agored a/neu safonau agored. Rwy'n teimlo fy mod yn dweud rhywbeth rhy amlwg bod pawb hyd yn oed yn anghyfforddus, ond na. Mater gwleidyddol yw hwn, felly mae angen enghreifftiau.

Y system gyntaf y byddaf yn ei dewis yw'r hynaf: GNU Emacs, sy'n fath o hybrid rhwng Windows Notepad, cnewyllyn yr AO, a'r Orsaf Ofod Ryngwladol. Mae ychydig yn anodd ei esbonio, ond yn gryno, mae Emacs yn blatfform a grëwyd yn 1976 (ie, bron i hanner canrif yn ôl) ar gyfer rhaglennu i'ch gwneud chi'n fwy cynhyrchiol, ond yn ffugio fel golygydd testun.

Rwy'n defnyddio Emacs bob dydd. Ydw, rydw i hefyd yn defnyddio IntelliJ bob dydd, mae wedi tyfu i fod yn blatfform offer pwerus ynddo'i hun. Ond mae ysgrifennu estyniadau ar gyfer IntelliJ yn dasg llawer mwy uchelgeisiol a chymhleth nag ysgrifennu estyniadau ar gyfer Emacs. Ac yn bwysicach fyth, mae popeth a ysgrifennwyd ar gyfer Emacs yn cael ei gadw am byth.

Rwy'n dal i ddefnyddio'r meddalwedd ysgrifennais ar gyfer Emacs yn ôl yn 1995. Ac rwy’n siŵr bod rhywun yn defnyddio modiwlau a ysgrifennwyd ar gyfer Emacs yng nghanol yr 80au, os nad ynghynt. Efallai y bydd angen ychydig o newid arnynt o bryd i'w gilydd, ond mae hyn yn eithaf prin mewn gwirionedd. Nid wyf yn gwybod am unrhyw beth yr wyf erioed wedi ysgrifennu ar gyfer Emacs (a dwi wedi ysgrifennu llawer) a oedd angen ail-bensaernïaeth.

Mae gan Emacs swyddogaeth a elwir yn make-obsolete ar gyfer endidau darfodedig. Mae terminoleg Emacs ar gyfer cysyniadau cyfrifiadurol sylfaenol (fel beth yw "ffenestr") yn aml yn wahanol i gonfensiynau diwydiant oherwydd i Emacs eu cyflwyno amser maith yn ôl. Mae hyn yn berygl nodweddiadol i'r rhai sydd o flaen eu hamser: mae eich holl delerau yn anghywir. Ond mae gan Emacs gysyniad o ddibrisiant, a elwir yn eu jargon darfodiad.

Ond ym myd Emacs mae'n ymddangos bod yna ddiffiniad gweithio gwahanol. Athroniaeth sylfaenol wahanol, os dymunwch.

Ym myd Emacs (ac mewn llawer o feysydd eraill, y byddwn yn ymdrin â nhw isod), mae statws API anghymeradwy yn y bôn yn golygu: "Ni ddylech ddefnyddio'r dull hwn mewn gwirionedd, oherwydd tra ei fod yn gweithio, mae'n dioddef o ddiffygion amrywiol y byddwn yn eu gwneud. rhestr yma. Ond ar ddiwedd y dydd, eich dewis chi yw e."

Ym myd Google, mae bod yn anarferedig yn golygu, "Rydym yn torri ein hymrwymiad i chi." Mae hyn yn wir. Dyma beth mae'n ei olygu yn y bôn. Mae hyn yn golygu y byddant yn eich gorfodi yn rheolaidd gwneud rhyw waith, efallai llawer o waith, fel cosb am gredu ynddynt hysbysebu lliwgar: Mae gennym y meddalwedd gorau. Y cyflymaf! Rydych chi'n gwneud popeth yn ôl y cyfarwyddiadau, yn lansio'ch cais neu wasanaeth, ac yna'n bam, ar ôl blwyddyn neu ddwy mae'n torri.

Mae fel gwerthu car ail law a fydd yn bendant yn torri i lawr ar ôl 1500 km.

Dyma ddau ddiffiniad athronyddol hollol wahanol o “ddarfodiad.” Diffiniad Google o arogl darfodiad cynlluniedig. Dydw i ddim yn credu hyn mewn gwirionedd darfodiad cynlluniedig yn yr un ystyr ag Apple. Ond mae Google yn bendant yn bwriadu torri'ch rhaglenni, mewn ffordd gylchfan. Rwy'n gwybod hyn oherwydd bûm yn gweithio yno fel peiriannydd meddalwedd am dros 12 mlynedd. Mae ganddynt ganllawiau mewnol amwys ar faint o gydnawsedd tuag yn ôl y dylid ei ddilyn, ond mater i bob tîm neu wasanaeth unigol yn y pen draw. Nid oes unrhyw argymhellion ar lefel menter na pheirianneg, a’r argymhelliad mwyaf beiddgar o ran cylchoedd darfodedigrwydd yw “ceisio rhoi 6-12 mis i gwsmeriaid uwchraddio cyn torri eu system gyfan.”

Mae'r broblem yn llawer mwy nag y maent yn ei feddwl, a bydd yn parhau am flynyddoedd i ddod oherwydd nad yw gofal cwsmeriaid yn eu DNA. Mwy am hyn isod.

Ar y pwynt hwn rydw i'n mynd i wneud datganiad beiddgar bod Emacs yn llwyddiannus i raddau helaeth a hyd yn oed yn bennaf oherwydd eu bod yn cymryd cydnawsedd tuag yn ôl mor ddifrifol. Mewn gwirionedd, dyma draethawd ymchwil ein herthygl. Mae systemau agored llwyddiannus, hirhoedlog yn ddyledus i'r micro-gymunedau sydd wedi byw o'u cwmpas ers degawdau am eu llwyddiant. estyniadau/ategion. Dyma'r ecosystem. Rwyf eisoes wedi siarad am natur platfformau a pha mor bwysig ydyn nhw, a sut nid yw Google erioed yn ei holl hanes corfforaethol wedi deall beth sy'n mynd i mewn i greu platfform agored llwyddiannus y tu allan i Android neu Chrome.

Mewn gwirionedd, dylwn sôn am Android yn fyr oherwydd mae'n debyg eich bod chi'n meddwl amdano.

Yn gyntaf, mae'r Nid Google yw Android. Nid oes ganddynt bron ddim yn gyffredin â'i gilydd. Mae Android yn gwmni a brynwyd gan Google ym mis Gorffennaf 2005, caniatawyd i'r cwmni weithredu fwy neu lai yn ymreolaethol ac mewn gwirionedd mae wedi aros yn ddigyffwrdd i raddau helaeth yn y blynyddoedd ers hynny. Mae Android yn bentwr technoleg drwg-enwog ac yn sefydliad pigog yr un mor ddrwg-enwog. Fel y dywedodd un Googler, “Ni allwch fewngofnodi i Android yn unig.”

Mewn erthygl flaenorol, trafodais pa mor ddrwg oedd rhai o benderfyniadau dylunio cynnar Android. Heck, pan ysgrifennais yr erthygl honno roedden nhw'n cyflwyno crap o'r enw "apps instant" sydd nawr (syndod!) hen ffasiwn, a dwi'n cydymdeimlo os oeddech chi'n ddigon dwp i wrando ar Google a symud eich cynnwys i'r apps sydyn hyn.

Ond mae gwahaniaeth yma, gwahaniaeth sylweddol, sef bod y bobl Android wir yn deall pa mor bwysig yw llwyfannau, maen nhw'n ceisio eu gorau i gadw hen apps Android yn gweithio. Mewn gwirionedd, mae eu hymdrechion i gynnal cydnawsedd tuag yn ôl mor eithafol nes i mi, hyd yn oed, yn ystod fy nghyfnod byr yn adran Android ychydig flynyddoedd yn ôl, ganfod fy hun yn ceisio eu darbwyllo i ollwng cefnogaeth i rai o'r dyfeisiau a'r APIs hynaf (roeddwn i'n anghywir , fel oedd mewn llawer o bethau eraill ddoe a heddiw. Sori bois Android! Nawr fy mod i wedi bod i Indonesia, dwi'n deall pam mae eu hangen).

Mae pobl Android yn gwthio cydnawsedd yn ôl i eithafion annirnadwy bron, gan bentyrru symiau enfawr o ddyled dechnegol etifeddol yn eu systemau a'u cadwyni offer. O fy duw, dylech chi weld rhai o'r pethau gwallgof y mae'n rhaid iddynt eu gwneud yn eu system adeiladu, i gyd yn enw cydnawsedd.

Am hyn, dyfarnaf y wobr chwenychedig "You're Not Google" i Android. Nid ydynt wir eisiau dod yn Google, nad yw'n gwybod sut i greu llwyfannau gwydn, ond Android yn gwybod, sut i wneud hynny. Ac felly mae Google yn bod yn smart iawn mewn un ffordd: caniatáu i bobl wneud pethau eu ffordd eu hunain ar Android.

Fodd bynnag, roedd apps ar unwaith ar gyfer Android yn syniad eithaf dwp. Ac ydych chi'n gwybod pam? Oherwydd eu bod yn mynnu ailysgrifennu ac ailgynllunio eich cais! Mae fel pe bai pobl yn syml yn ailysgrifennu dwy filiwn o geisiadau. Rwy'n dyfalu mai syniad Googler oedd Instant Apps.

Ond mae gwahaniaeth. Daw cydnawsedd ôl am gost uchel. Mae Android ei hun yn ysgwyddo baich y costau hyn, tra bod Google yn mynnu bod y baich yn cael ei ysgwyddo yn, talu cleient.

Gallwch weld ymrwymiad Android i gydnawsedd tuag yn ôl yn ei APIs. Pan fydd gennych bedwar neu bum is-system wahanol yn gwneud yr un peth yn llythrennol, mae'n arwydd sicr bod ymrwymiad i gydnawsedd tuag yn ôl yn greiddiol. Sydd ym myd platfformau yn gyfystyr ag ymrwymiad i'ch cwsmeriaid a'ch marchnad.

Prif broblem Google yma yw eu balchder yn eu hylendid peirianneg. Nid ydynt yn ei hoffi pan fo llawer o wahanol ffyrdd o wneud yr un peth, gyda'r hen ffyrdd llai dymunol yn eistedd wrth ymyl y ffyrdd newydd, mwy ffansi. Mae'n cynyddu'r gromlin ddysgu ar gyfer y rhai sy'n newydd i'r system, mae'n cynyddu'r baich o gynnal APIs etifeddiaeth, mae'n arafu cyflymder nodweddion newydd, a'r pechod cardinal yw nad yw'n bert. Google - fel Lady Ascot o Alice in Wonderland Tim Burton:

Arglwyddes Ascot:
- Alice, a ydych chi'n gwybod beth mae arnaf ofn fwyaf?
- Dirywiad y bendefigaeth?
- Yr oedd arnaf ofn y byddai gennyf wyrion hyll.

I ddeall y cyfaddawd rhwng hardd ac ymarferol, gadewch i ni edrych ar y trydydd platfform llwyddiannus (ar ôl Emacs ac Android) a gweld sut mae'n gweithio: Java ei hun.

Mae gan Java lawer o APIs hen ffasiwn. Mae dibrisiant yn boblogaidd iawn ymhlith rhaglenwyr Java, hyd yn oed yn fwy poblogaidd nag yn y mwyafrif o ieithoedd rhaglennu. Mae Java ei hun, yr iaith graidd, a'r llyfrgelloedd yn dilorni APIs yn gyson.

I gymryd dim ond un o filoedd o enghreifftiau, edafedd cau yn cael ei ystyried yn ddarfodedig. Mae wedi'i anghymeradwyo ers rhyddhau Java 1.2 ym mis Rhagfyr 1998. Mae 22 mlynedd ers i hyn gael ei ddiystyru.

Ond mae fy nghod gwirioneddol wrth gynhyrchu yn dal i ladd edafedd bob dydd. Ydych chi wir yn meddwl bod hynny'n dda? Yn hollol! Yr wyf yn golygu, wrth gwrs, pe bawn yn ailysgrifennu'r cod heddiw, byddwn yn ei weithredu'n wahanol. Ond mae'r cod ar gyfer fy ngêm, sydd wedi gwneud cannoedd o filoedd o bobl yn hapus dros y ddau ddegawd diwethaf, wedi'i ysgrifennu gyda swyddogaeth i gau edafedd sy'n hongian yn rhy hir, a minnau erioed wedi gorfod ei newid. Rwy'n gwybod fy system yn well nag unrhyw un, yn llythrennol mae gen i 25 mlynedd o brofiad yn gweithio gydag ef wrth gynhyrchu, a gallaf ddweud yn sicr: yn fy achos i, mae cau'r edafedd gweithwyr penodol hyn yn llwyr diniwed. Nid yw'n werth yr amser a'r ymdrech i ailysgrifennu'r cod hwn, a diolch i Larry Ellison (mae'n debyg) na wnaeth Oracle fy ngorfodi i'w ailysgrifennu.

Mae'n debyg bod Oracle yn deall platfformau hefyd. Pwy a wyr.

Mae tystiolaeth i'w chael ym mhob rhan o'r API craidd Java, sy'n frith o donnau darfodedig, fel llinellau rhewlif mewn canyon. Gallwch chi ddod o hyd i bump neu chwe rheolwr llywio bysellfwrdd gwahanol yn hawdd (KeyboardFocusManager) yn llyfrgell Java Swing. Mewn gwirionedd mae'n anodd dod o hyd i API Java nad yw'n anghymeradwy. Ond maen nhw'n dal i weithio! Rwy'n credu mai dim ond os yw'r rhyngwyneb yn peri problem ddiogelwch amlwg y bydd tîm Java yn cael gwared ar API mewn gwirionedd.

Dyma'r peth, Folks: Rydym ni ddatblygwyr meddalwedd i gyd yn brysur iawn, ac ym mhob maes o feddalwedd rydym yn wynebu dewisiadau amgen cystadleuol. Ar unrhyw adeg benodol, mae rhaglenwyr yn iaith X yn ystyried iaith Y fel un arall o bosibl. O, dydych chi ddim yn fy nghredu? Ydych chi am ei alw'n Swift? Fel, mae pawb yn mudo i Swift a does neb yn cefnu arno, iawn? Waw, cyn lleied rydych chi'n ei wybod. Mae cwmnïau'n cyfrif costau timau datblygu symudol deuol (iOS ac Android) - ac maen nhw'n dechrau sylweddoli bod y systemau datblygu traws-lwyfan hynny sydd ag enwau doniol fel Flutter ac React Native yn gweithio mewn gwirionedd ac y gellir eu defnyddio i leihau maint eu timau symudol ddwywaith neu, i'r gwrthwyneb, eu gwneud ddwywaith mor gynhyrchiol. Mae arian go iawn yn y fantol. Oes, mae yna gyfaddawdau, ond, ar y llaw arall, arian.

Gadewch i ni dybio'n ddamcaniaethol i Apple gymryd ciw yn ffôl gan Guido van Rossum a datgan bod Swift 6.0 yn ôl yn anghydnaws â Swift 5.0, yn debyg iawn i Python 3 yn anghydnaws â Python 2.

Mae'n debyg i mi adrodd y stori hon rhyw ddeng mlynedd yn ôl, ond tua phymtheg mlynedd yn ôl es i Foo Camp O'Reilly gyda Guido, eistedd mewn pabell gyda Paul Graham a chriw o ergydion mawr. Eisteddom yn y gwres chwyddedig yn aros i Larry Page hedfan allan yn ei hofrennydd personol tra bod Guido yn drolio ymlaen tua “Python 3000,” a enwodd ar ôl y nifer o flynyddoedd y byddai'n ei gymryd i bawb fudo yno. Fe wnaethon ni ddal i ofyn iddo pam ei fod yn torri cydnawsedd, ac atebodd: “Unicode.” A gofynasom, pe bai'n rhaid inni ailysgrifennu ein cod, pa fanteision eraill y byddem yn eu gweld? Ac atebodd “Yoooooooooooooouuuuuniiiiiiicooooooode.”

Os ydych chi'n gosod Google Cloud Platform SDK (“gcloud”), byddwch yn derbyn yr hysbysiad canlynol:

Annwyl Dderbynnydd,

Hoffem eich atgoffa bod cefnogaeth i Python 2 wedi'i anghymeradwyo, felly fuck chi

… ac yn y blaen. Cylch bywyd.

Ond y pwynt yw bod gan bob datblygwr ddewis. Ac os ydych chi'n eu gorfodi i ailysgrifennu cod yn ddigon aml, efallai y byddan nhw'n meddwl amdano eraill opsiynau. Nid eich gwystlon chi ydyn nhw, ni waeth faint yr hoffech chi iddyn nhw fod. Nhw yw eich gwesteion. Mae Python yn dal i fod yn iaith raglennu boblogaidd iawn, ond damn, creodd Python 3(000) gymaint o lanast ynddo’i hun, yn ei gymunedau ac ymhlith defnyddwyr ei gymunedau fel nad yw’r canlyniadau wedi’u clirio ers pymtheng mlynedd.

Faint o raglenni Python sydd wedi'u hailysgrifennu yn Go (neu Ruby, neu ryw ddewis arall) oherwydd yr anghydnawsedd tuag yn ôl hwn? Faint o feddalwedd newydd sydd wedi'i ysgrifennu mewn rhywbeth heblaw Python, er ei fod gallai fod wedi ei ysgrifennu yn Python, oni bai Guido wedi llosgi'r pentref cyfan i lawr? Mae'n anodd dweud, ond mae Python yn amlwg wedi dioddef. Mae'n llanast enfawr ac mae pawb ar eu colled.

Felly gadewch i ni ddweud bod Apple yn cymryd ciw gan Guido ac yn torri cydnawsedd. Beth ydych chi'n meddwl fydd yn digwydd nesaf? Wel, efallai y bydd 80-90% o ddatblygwyr yn ailysgrifennu eu meddalwedd os yn bosibl. Mewn geiriau eraill, mae 10-20% o'r sylfaen defnyddwyr yn mynd yn awtomatig i ryw iaith sy'n cystadlu, fel Flutter.

Gwnewch hyn sawl gwaith a byddwch yn colli hanner eich sylfaen defnyddwyr. Yn union fel mewn chwaraeon, ym myd rhaglennu, mae ffurf gyfredol hefyd yn bwysig. popeth. Bydd unrhyw un sy'n colli hanner eu defnyddwyr mewn pum mlynedd yn cael ei ystyried yn Collwr Braster Mawr. Rhaid i chi fod yn ffasiynol ym myd y llwyfannau. Ond dyma lle bydd peidio â chefnogi fersiynau hŷn yn eich difetha dros amser. Oherwydd bob tro y byddwch chi'n cael gwared ar rai datblygwyr, rydych chi (a) yn eu colli am byth oherwydd maen nhw'n ddig arnoch chi am dorri'r contract, a (b) yn eu rhoi i ffwrdd i'ch cystadleuwyr.

Yn eironig, fe wnes i hefyd helpu Google i ddod yn fath prima donna sy'n anwybyddu cydnawsedd tuag yn ôl pan wnes i greu Grok, system dadansoddi a deall cod ffynhonnell sy'n ei gwneud hi'n hawdd awtomeiddio ac offeryn y cod ei hun - yn debyg i IDE, ond yma mae'r gwasanaeth cwmwl yn storio cynrychioliadau sylweddol o bob biliynau o linellau o god ffynhonnell Google mewn warws data mawr.

Darparodd Grok fframwaith pwerus i Googlers ar gyfer perfformio atgyweiriadau awtomataidd ar draws eu cronfa godau gyfan (yn llythrennol ledled Google). Mae'r system yn cyfrifo nid yn unig eich dibyniaethau i fyny'r afon (yr ydych yn dibynnu arnynt), ond hefyd disgynnol (sydd i fyny i chi) felly pan fyddwch chi'n newid APIs rydych chi'n adnabod pawb rydych chi'n torri! Fel hyn, pan fyddwch chi'n gwneud newidiadau, gallwch chi wirio bod pob defnyddiwr o'ch API wedi diweddaru i'r fersiwn newydd, ac mewn gwirionedd, yn aml gyda'r offeryn Rosie a ysgrifennwyd ganddyn nhw, gallwch chi awtomeiddio'r broses yn llwyr.

Mae hyn yn caniatáu i sylfaen cod Google fod yn fewnol bron yn oruwchnaturiol o lân, gan fod ganddyn nhw'r gweision robotig hyn yn sgwrio o amgylch y tŷ ac yn glanhau popeth yn awtomatig os ydyn nhw'n ailenwi SomeDespicablyLongFunctionName i SomeDespicablyLongMethodName oherwydd bod rhywun wedi penderfynu ei fod yn wyres hyll a bod angen rhoi ei anghenion i gysgu.

Ac a dweud y gwir, mae'n gweithio'n eithaf da i Google ... yn fewnol. Hynny yw, ydy, mae cymuned Go yn Google yn cael hwyl fawr gyda'r gymuned Java yn Google oherwydd eu harferiad o ailffactorio parhaus. Os byddwch chi'n ailgychwyn rhywbeth N gwaith, mae hynny'n golygu eich bod chi nid yn unig wedi ei sgriwio i fyny amseroedd N-1, ond ar ôl ychydig mae'n dod yn eithaf amlwg eich bod yn ôl pob tebyg wedi'i sgriwio ar yr Nfed cais hefyd. Ond, ar y cyfan, maent yn parhau uwchlaw’r ffwdan hwn i gyd ac yn cadw’r cod yn “lân”.

Mae'r broblem yn dechrau pan fyddant yn ceisio gosod yr agwedd hon ar eu cleientiaid cwmwl a defnyddwyr APIs eraill.

Rwyf wedi cyflwyno ychydig i chi i Emacs, Android a Java; gadewch i ni edrych ar y llwyfan hirhoedlog llwyddiannus diweddaraf: y We ei hun. Allwch chi ddychmygu faint o iteriadau mae HTTP wedi mynd drwyddynt ers 1995 pan wnaethom ddefnyddio tagiau fflachio? ac eiconau "Yn cael eu Adeiladu" ar dudalennau gwe.

Ond mae'n dal i weithio! Ac mae'r tudalennau hyn yn dal i weithio! Ie, bois, porwyr yw pencampwyr y byd o ran cydnawsedd tuag yn ôl. Mae Chrome yn enghraifft arall o'r platfform Google prin sydd â'i bennau wedi'u sgriwio'n gywir, ac fel y gallech fod wedi dyfalu, mae Chrome i bob pwrpas yn gweithredu fel cwmni blwch tywod ar wahân i weddill Google.

Rwyf hefyd am ddiolch i'n ffrindiau yn natblygwyr y system weithredu: Windows, Linux, NOT APPLE FUCK YOU APPLE, FreeBSD, ac ati, am wneud gwaith mor wych o gydnawsedd tuag yn ôl ar eu platfformau llwyddiannus (Afal yn cael C ar y gorau gyda The yr anfantais yw eu bod yn torri popeth drwy'r amser heb unrhyw reswm da, ond rywsut mae'r gymuned yn mynd o'i chwmpas hi gyda phob rhyddhad, ac nid yw cynwysyddion OS X yn gwbl ddarfodedig eto... eto).

Ond arhoswch, meddwch. Onid ydym yn cymharu afalau ag orennau - systemau meddalwedd annibynnol ar un peiriant fel Emacs/JDK/Android/Chrome yn erbyn systemau aml-weinydd ac APIs fel gwasanaethau cwmwl?

Wel, mi wnes i drydar am hyn ddoe, ond yn null Larry Wall (creawdwr yr iaith raglennu Perl - tua. per.) ar yr egwyddor o "sucks/rules" edrychais i fyny'r gair yn ddiamwys ar wefannau datblygwyr Google ac Amazon. Ac er bod gan AWS cannoedd gwaith yn fwy o gynigion gwasanaeth na GCP, mae dogfennaeth datblygwr Google yn sôn am ddibrisiant tua saith gwaith yn amlach.

Os oes unrhyw un yn Google yn darllen hwn, mae'n debyg eu bod yn barod i dynnu allan siartiau tebyg i Donald Trump yn dangos eu bod yn gwneud popeth yn iawn mewn gwirionedd, ac na ddylwn wneud cymariaethau annheg fel "nifer y cyfeiriadau at y gair anghymeradwy yn erbyn nifer o wasanaethau" "

Ond ar ôl yr holl flynyddoedd hyn, mae Google Cloud yn dal i fod yn wasanaeth Rhif 3 (ni wnes i erioed ysgrifennu erthygl am yr ymgais aflwyddiannus i ddod yn Rhif 2), ond os yw pobl fewnol i'w credu, mae rhai pryderon y gallent alw heibio iddynt yn fuan. Rhif 4 .

Nid oes gennyf unrhyw ddadleuon cymhellol i "brofi" fy nhraethawd ymchwil. Y cyfan sydd gen i yw'r enghreifftiau lliwgar rydw i wedi'u cronni dros 30 mlynedd fel datblygwr. Soniais eisoes am natur hynod athronyddol y broblem hon; mewn rhai ffyrdd caiff ei wleidyddoli mewn cymunedau datblygwyr. Mae rhai yn credu hynny crewyr dylai llwyfannau ofalu am gydnawsedd, tra bod eraill yn meddwl bod hyn yn bryder defnyddwyr (y datblygwyr eu hunain). Un allan o ddau. Yn wir, onid yw’n fater gwleidyddol pan fyddwn yn penderfynu pwy ddylai ysgwyddo costau problemau cyffredin?

Felly dyma wleidyddiaeth. Ac mae'n debyg y bydd ymatebion blin i'm haraith.

Fel y defnyddiwr Google Cloud Platform, ac fel defnyddiwr AWS am ddwy flynedd (tra'n gweithio i Grab), gallaf ddweud bod gwahaniaeth enfawr rhwng athroniaethau Amazon a Google pan ddaw i flaenoriaethau. Nid wyf yn datblygu'n weithredol ar AWS, felly nid wyf yn gwybod yn iawn pa mor aml y maent yn dileu hen APIs. Ond mae yna amheuaeth nad yw hyn yn digwydd bron mor aml ag yn Google. Ac rydw i wir yn credu bod y ffynhonnell hon o ddadlau a rhwystredigaeth gyson yn GCP yn un o'r ffactorau mwyaf sy'n atal datblygiad y platfform.

Gwn na enwais enghreifftiau penodol o systemau GCP nad ydynt yn cael eu cefnogi mwyach. Gallaf ddweud bod bron popeth rydw i wedi'i ddefnyddio, o rwydweithiau (o'r hynaf i VPC) i storio (Cloud SQL v1-v2), Firebase (Firestore nawr gydag API hollol wahanol), App Engine (peidiwn â dechrau hyd yn oed) , pwynt terfyn cwmwl Cloud Endpoint a hyd at... wn i ddim - hyn oll yn hollol eich gorfodi i ailysgrifennu'r cod ar ôl uchafswm o 2-3 blynedd, ac nid oeddent byth yn awtomeiddio'r mudo i chi, ac yn aml nid oedd unrhyw lwybr mudo dogfenedig o gwbl. Fel pe bai i fod felly.

A phob tro dwi'n edrych ar AWS, dwi'n gofyn i mi fy hun pam y uffern dwi dal ar GCP. Mae'n amlwg nad oes angen cleientiaid arnynt. Mae angen prynwyr. Ydych chi'n deall y gwahaniaeth? Gadewch i mi egluro.

Mae gan Google Cloud Marketplace, lle mae pobl yn cynnig eu datrysiadau meddalwedd, ac er mwyn osgoi'r effaith bwyty gwag, roedd angen iddynt ei lenwi â rhai cynigion, felly fe wnaethant gontractio gyda chwmni o'r enw Bitnami i greu criw o atebion sy'n cael eu defnyddio gydag “un clic”, neu dylent Rwy'n ei ysgrifennu fy hun yn “atebion,” oherwydd nid yw'r rhain yn datrys peth damn. Yn syml, maen nhw'n bodoli fel blychau gwirio, fel llenwad marchnata, ac nid yw Google erioed wedi poeni a yw unrhyw un o'r offer yn gweithio mewn gwirionedd. Rwy'n adnabod rheolwyr cynnyrch sydd wedi bod yn sedd y gyrrwr, a gallaf eich sicrhau nad oes ots gan y bobl hyn.

Cymerwch, er enghraifft, ateb defnyddio “un clic” yn ôl y sôn. percona. Roeddwn yn sâl i farwolaeth shenanigans Google Cloud SQL, felly dechreuais edrych ar adeiladu fy nghlwstwr Percona fy hun fel dewis arall. A'r tro hwn roedd yn ymddangos bod Google wedi gwneud gwaith da, roedden nhw'n mynd i arbed rhywfaint o amser ac ymdrech i mi gyda chlicio botwm!

Wel gwych, gadewch i ni fynd. Gadewch i ni ddilyn y ddolen a chlicio ar y botwm hwn. Dewiswch “Ie” i gytuno i'r holl osodiadau diofyn a defnyddio'r clwstwr yn eich prosiect cwmwl Google. Haha, nid yw'n gweithio. Nid oes dim o'r crap hwn yn gweithio. Ni chafodd yr offeryn ei brofi erioed a dechreuodd bydru o'r funud gyntaf, ac ni fyddai'n syndod i mi os yw mwy na hanner yr "atebion" yn ddefnyddiau un clic (bellach rydyn ni'n deall pam mae'r dyfyniadau) yn gyffredinol ddim yn gweithio. Mae hwn yn dywyllwch cwbl anobeithiol, lle mae'n well peidio â mynd i mewn.

Ond mae Google yn iawn yn annog i chi eu defnyddio. Maen nhw eisiau i chi wneud hynny prynu. Iddynt hwy mae'n drafodiad. Nid ydynt eisiau dim cefnogaeth. Nid yw'n rhan o DNA Google. Ydy, mae peirianwyr yn cefnogi ei gilydd, fel y gwelir yn fy stori gyda Bigtable. Ond mewn cynhyrchion a gwasanaethau i bobl gyffredin maen nhw bob amser yn ddidostur yn cau unrhyw wasanaeth, nad yw'n bodloni'r bar am broffidioldeb hyd yn oed os oes ganddo filiynau o ddefnyddwyr.

Ac mae hyn yn her wirioneddol i GCP oherwydd dyma'r DNA y tu ôl i'r holl offrymau cwmwl. Nid ydynt yn ceisio cefnogi dim; Mae'n hysbys eu bod yn gwrthod cynnal (fel gwasanaeth a reolir) unrhyw feddalwedd trydydd parti nes, nes bod AWS yn gwneud yr un peth ac yn adeiladu busnes llwyddiannus o'i gwmpas, a phan fydd cwsmeriaid yn llythrennol yn mynnu'r un peth. Fodd bynnag, mae'n cymryd peth ymdrech i gael Google i gefnogi rhywbeth.

Mae'r diffyg diwylliant cymorth hwn, ynghyd â'r meddylfryd “gadewch i ni ei dorri i'w wneud yn fwy prydferth”, yn dieithrio datblygwyr.

Ac nid yw hynny'n beth da os ydych chi am adeiladu platfform hirhoedlog.

Google, deffro, damn it. Mae'n 2020 nawr. Rydych chi'n dal i golli. Mae'n bryd edrych yn galed yn y drych ac ateb a ydych chi wir eisiau aros yn y busnes cwmwl.

Os ydych chi eisiau aros wedyn rhoi'r gorau i dorri popeth. Bois, rydych chi'n gyfoethog. Nid ydym datblygwyr yn ei wneud. Felly o ran pwy fydd yn ysgwyddo baich cydnawsedd, mae angen ichi ei gymryd arnoch chi'ch hun. Nid i ni.

Achos mae yna o leiaf dri chwmwl da iawn. Maent yn galw.

Ac yn awr byddaf yn symud ymlaen i drwsio fy holl systemau sydd wedi torri. Eh.

Tan tro nesa!

Diweddariad PS ar ôl darllen rhai o'r trafodaethau ar yr erthygl hon (mae'r trafodaethau'n wych, btw). Nid yw cymorth Firebase wedi dod i ben ac nid oes unrhyw gynlluniau yr wyf yn ymwybodol ohonynt. Fodd bynnag, mae ganddyn nhw nam ffrydio cas sy'n achosi i'r cleient Java stopio yn App Engine. Fe wnaeth un o'u peirianwyr fy helpu i ddatrys y broblem hon, pan oeddwn i'n gweithio yn Google, ond wnaethon nhw byth atgyweirio'r byg mewn gwirionedd, felly mae gen i brofiad crappy o orfod ailgychwyn yr app GAE bob dydd. Ac felly mae wedi bod ers pedair blynedd! Mae ganddyn nhw Firestore nawr. Bydd yn cymryd llawer o waith i ymfudo iddi gan ei bod yn system hollol wahanol ac ni fydd byg Firebase byth yn cael ei drwsio. Pa gasgliad y gellir ei dynnu? Gallwch gael help os ydych yn gweithio mewn cwmni. Mae'n debyg mai fi yw'r unig un sy'n defnyddio Firebase ar GAE oherwydd rydw i'n mewngofnodi llai na 100 allwedd mewn ap brodorol 100% ac mae'n stopio gweithio bob cwpl o ddyddiau oherwydd nam hysbys. Beth alla i ei ddweud heblaw ei ddefnyddio ar eich menter eich hun. Rwy'n newid i Redis.

Rwyf hefyd wedi gweld rhai defnyddwyr AWS mwy profiadol yn dweud nad yw AWS fel arfer byth yn stopio cefnogi unrhyw wasanaethau, ac mae SimpleDB yn enghraifft wych. Mae'n ymddangos bod cyfiawnhad dros fy rhagdybiaethau nad oes gan AWS yr un clefyd diwedd cymorth ag y mae Google.

Yn ogystal, sylwais fod tîm Google App Engine 20 diwrnod yn ôl wedi torri cynnal llyfrgell Go hanfodol, gan gau cais GAE gan un o ddatblygwyr craidd Go. Roedd yn wirion iawn.

Yn olaf, rwyf wedi clywed Googlers eisoes yn trafod y mater hwn ac yn gyffredinol yn cytuno â mi (caru chi bois!). Ond mae'n ymddangos eu bod yn meddwl bod y broblem yn un na ellir ei datrys oherwydd nad oedd gan ddiwylliant Google erioed y strwythur cymhelliant cywir. Roeddwn i'n meddwl y byddai'n dda cymryd peth amser i drafod y profiad hollol anhygoel a gefais yn gweithio gyda pheirianwyr AWS tra'n gweithio yn Grab. Rhyw ddydd yn y dyfodol, gobeithio!

Ac ie, yn 2005 roedd ganddyn nhw wahanol fathau o gig siarc ar y bwffe anferth yn adeilad 43, a fy ffefryn oedd y cig siarc pen morthwyl. Fodd bynnag, erbyn 2006, cafodd Larry a Sergei wared ar yr holl fyrbrydau afiach. Felly yn ystod stori Bigtable yn 2007 doedd dim siarcod mewn gwirionedd ac fe wnes i eich twyllo.

Pan edrychais ar cwmwl Bigtable bedair blynedd yn ôl (rhowch neu gymryd), dyma lle'r oedd y gost. Mae'n ymddangos ei fod wedi gostwng ychydig yn awr, ond mae hynny'n dal i fod yn llawer iawn ar gyfer warws data gwag, yn enwedig gan fod fy stori gyntaf yn dangos pa mor amherthnasol yw bwrdd mawr gwag ar eu graddfa.

Sori am droseddu'r gymuned Apple a pheidio dweud dim byd neis am Microsoft ac ati. Rydych chi'n iawn, dwi'n gwerthfawrogi'r holl drafodaeth mae'r erthygl hon wedi ei chreu! Ond weithiau mae angen gwneud tonnau ychydig i ddechrau trafodaeth, wyddoch chi?

Diolch am ddarllen.

Diweddariad 2, 19.08.2020/XNUMX/XNUMX. Streipen yn diweddaru'r API yn gywir!

Diweddariad 3, 31.08.2020/2/2. Cysylltwyd â mi gan beiriannydd Google yn Cloud Marketplace a drodd allan i fod yn hen ffrind i mi. Roedd eisiau darganfod pam nad oedd CXNUMXD yn gweithio, ac fe wnaethom ddarganfod yn y pen draw ei fod oherwydd fy mod wedi adeiladu fy rhwydwaith flynyddoedd yn ôl, ac nid oedd CXNUMXD yn gweithio ar rwydweithiau etifeddol oherwydd bod y paramedr is-rwydwaith ar goll yn eu templedi. Rwy'n credu ei bod yn well i ddarpar ddefnyddwyr GCP sicrhau eu bod yn adnabod digon o beirianwyr yn Google ...

Ffynhonnell: hab.com