Tema: Re: Žmonės, susitvarkykite encodingus!!!!
Autorius: Laimis
Data: 2011-09-20 10:47:09
RaR rašė:
> Gali būti ir toks atvejis. Bet logiškas ir teisingas sprendimas - radus
> tokį programos parametrą nustatyti nurodytą koduotę numatytąja visiems
> aplankams. Tada pagal poreikius vartotojas gali palikti arba keisti
> atskirų aplankų parametrus - išlieka teisingas programos veikimas. Dabar
> gi nustatomas parametras, kurio naujoje programos versijoje nebeliko, ir
> blogiausia, kad jis neleidžia keisti esamų parametrų. Tiksliau jis juos
> lyg ir keičia, bet programa į tai niekaip nereaguoja. Tai tikrai yra
> klaida - arba neapsižiūrėjimas, arba programuotojui tiesiog neužteko
> nuovokos kaip elegantiškai išspręsti problemą.

Nesutinku. Visų pirma, dėl to, kad globalios nuostatos principas yra 
ypatingas, nes jam savaime vienareikšmiškai nepritaikoma tokia tapatumo 
lygybė:
galioja globaliai visur x === galioja atskirai visose vietose x

Net jei ji formaliai teisinga, adekvati bendru atveju; iš globalumo kyla 
kompromisiniai (prisitaikymo) variantai, kai, kalbant konkrečiau, 
didžiajai daugumai aplankų globali nuostata yra tinkama, o daliai ne (ir 
su tuo susitaikoma, nes kitaip tiesiog neįmanoma). Prisireikus, 
globalioji nuostata (priverstinės koduotės parinkimas) gali būti 
junginėjama (ir ganėtinai paprastai — vienoje vietoje). Transformavus 
(išskaidžius) globalią nuostatą į aibę pavienių nuostatų (kiekvienam 
aplankui), jau gali būti visiškai nepageidaujamas elgesys/rezultatas, 
nes niekas geriau (ir iš principo) už naudotoją nežino, kokiuose 
aplankuose jis tikisi vienokio, kokiuose kitokio veikimo (po, atrodytų, 
logiškos transformacijos naudotojas nebetenka galimybės, be papildomo, 
galbūt ir imlaus ir jau būtinojo persiderinimo, naudotis programa taip, 
kaip galėjo anksčiau).
Tai tik teoriniai išvedžiojimai, bet principai nesikeičia: tikrai 
neskubama kažko keisti, jei tam nėra svarių priežasčių ir tuo labiau 
neskubama keisti taip, kad už akių pakinta pačio naudotojo nuostatų reikšmė.
Beje, turėtum pripažinti, kad dėl šios situacijos esi iš dalies kaltas 
ir pats. Juk pats pasirinkai tokią nuostatą (true savaime neįsijungė) ir 
kažkuriuo metu, o gal net ir visą laiką nuo kokio TB1.x iki TB3.0 tokia 
nuostata veikė (nes buvo įjungta). Net ir atsinaujinus į TB6 ji 
tebeveikia taip, kaip tu pats ją nusistatei (galbūt čia ir buvo tas 
garantuotas atvejis, persišauti koją). Negali kaltinti, kad programa 
atsinaujinus veikia nebekorektiškai, o tik dėl to, kad neveikia dalis 
naujų programos funkcijų.