- anr blogja
- A hozzászóláshoz be kell jelentkezni
- 1171 megtekintés
Hozzászólások
Szép és jó, csak így mondjuk egy Firefox lefejlesztése 100 év lenne. Már ha C-t használnának. Nem véletlenül terjednek a menedzselt nyelvek...
- A hozzászóláshoz be kell jelentkezni
Van Javahoz is draft ugyanott.
Bezzeg amikor meg Lispet hasznaltak a JPL-ben, nem kellett ilyen hatulgombolos szabalyrendszer...
Egyebkent a Firefox erosen nem "elet-halal kerdese" kategoria, ha egyszersketszer lefagy vagy elhasal, senki nem hal bele. Ezeket a szabalyrendszereket (mint ez vagy a MISRA, illetve Bjarne Stroustrup oldalan levo) ilyesmikre terveztek.
- A hozzászóláshoz be kell jelentkezni
Ennyi erővel semmi nem élet-halál kérdése, csak a lélegeztetőgép...
- A hozzászóláshoz be kell jelentkezni
Meg a peacemaker. :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Hat, ha x km magasan repulo femdoboz egyszer csak software hiba miatt leall, akkor biztos nem hal meg senki...
- A hozzászóláshoz be kell jelentkezni
Jaja, és C-t elsősorban pont ott használnak.
- A hozzászóláshoz be kell jelentkezni
Mert nem tudtad volna megnezni a mar hivatkozott referenciakat..
- A hozzászóláshoz be kell jelentkezni
Igen, ráragasztották a vadászgép címkét, és? "SYSTEM DEVELOPMENT AND DEMONSTRATION PROGRAM"
Tudok mellé linkelni millió valós példát. De amúgy is, kit érdekel, hogy hol használják? A memóriavédelem nem csak itt érdekes, hanem mindenhol. Aki szerint csak kritikus rendszereknél érdekes a megfelelő erőforrás-kezelés, az inkább ne programozzon semmit.
- A hozzászóláshoz be kell jelentkezni
A rendszerfejlesztes koltseget ezen a minosegen ki fogja megfizetni? Itt a code quality assurance rengeteg penzbe kerul. Mindenki ember, hibazik, nem minden szabalyt tud betartani, mert faradt/lusta/front van.
A jo minosegu szoftver fejlesztese NAGYON draga, lasd a peldat: http://www.fastcompany.com/28121/they-write-right-stuff
Space Shuttle szoftver, 17 hiba keletkezett a fejlesztes soran az utolso 11 verzioban. Nem, nem a teszteles soran jott elo ennyi, hanem 17 hibas kodot keszitettek a fejlesztok. 260-an dolgoznak a 420E soros kodon. Husz evre visszamenoleg megvan minden leirt kod forrasanak a dokumentacioja: ki, mikor, miert, milyen specifikacio alapjan es mit modositott.
35 millio dollarba kerul evente karbantartani a szoftvert.
Es itt nem csak memoriavedelemrol van szo. Egyaltalan nem. Hanem arrol, hogy maga a szoftverfejleszesi modszertan, a folyamat olyan, hogy nem enged sok hibat ejteni. Ha hiba kerul production kodba, ott nem csak a programozo a hibas, hanem az a folyamat, amelyik nem vette idoben eszre a hibat. Draga mulatsag ez, de lehet csinalni kozel hibamentes kodot.
- A hozzászóláshoz be kell jelentkezni
És el is jutottunk oda, ahonnan indultam, hogy nem véletlenül terjednek a menedzselt nyelvek, mert azok rengeteg hibától óvnak meg. És nem kell rá évi 35 millió dollárt költeni. Meg kódsoronként meditálni rajta, hogy most vajon tényleg jó-e ez a kód, és ha nem, mi lesz vele. De az ilyeneket nem tudják felfogni a t. véglényekfelhasználók, mert nekik az a legnagyobb világfájdalmuk, hogy 20MB-tal többet eszik így a program.
Félreértés ne essék, én nem azt mondom, hogy a menedzselt nyelv varázsütésre megoldja a problémákat. Nyilván nem fogja. Én csak azt mondom, hogy nagyban megkönnyíti a folyamatot.
- A hozzászóláshoz be kell jelentkezni
A menedzselt nyelvek nagyon sok mindent megoldanak, de mission critical helyen használhatatlanok, hiszen nem tudod érdemben befolyásolni a garbage collector lefutását. Külön szálon, valamikor a runtime által managelve fut. Ez egy mission critical környezetben elfogadhatatlan. A rendszer viselkedését meg kell tudni jósolni előre mindig.
Ha elolvasod a JPL coding standardet, ők is tiltják a dinamikus memóriahasználatot. Minden memóriaelemet inicializálni kell a taszk indításakor és az az egész taszk alatt úgy marad. A menedzselt nyelvek a dinamikus memóriahasználatból eredő problémákat (double free és társai) oldják meg. A JPL meg úgy oldja meg, hogy nincs dinamikus memóriahasználat. Főleg azért, mert kiszámíthatatlan a viselkedése, és a statikus kódelemzők sem tudják a kódot elemezni.
- A hozzászóláshoz be kell jelentkezni
Minden memóriaelemet inicializálni kell a taszk indításakor és az az egész taszk alatt úgy marad.
Tegyuk hozza, h ez bizony kurvara alap.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
Mission critical helyen írnak hozzá saját VM-et, amiben számukra optimális esetben fut a GC :)
- A hozzászóláshoz be kell jelentkezni
Funkcionalis nyelvek mar 30-40 eve tudjak ezt a "rengeteg hibatol valo megovast", megis csak az utobbi 5-10 evben kezdtek nepszerubbe valni.
Elotte is akartak hibamentes kodot eloallitani. Ugyhogy valami hiba lehet a vilagnezetedben.
- A hozzászóláshoz be kell jelentkezni
"azok rengeteg hibától óvnak meg"
Es rengeteg uj hibat vezetnek be.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Például?
- A hozzászóláshoz be kell jelentkezni
NPE, memory leak (azaz olyan objektum-foglalas, amit a GC nem tud feloldani, mert egy GC root meg mindig hivatkozik ra, pedig nem kene) igy is lesz. Csak kevesebbet kell gepelned, mert free-t nem kell meghivnod. heap allokalas ugyanugy van, csak new-nak hivjak.
- A hozzászóláshoz be kell jelentkezni
VM-et is lehet szarul írni nyilván.
- A hozzászóláshoz be kell jelentkezni
Ez nem VM, hanem GC, es nem a GC problematikaja, hogy te a kodban mar nem foglalkozol az objektumoddal tobbet (soha nem fogsz a futas soran ra hivatkozni), de megis van olyan referencia ra (akar egy tipikusan szarul implementalt Singletonbol), ami miatt nem tudja felszabaditani az objektumot. Ez nem szar VM iras, hanem hanyag programozas. Pl. Javaban rendkivul kevesen ismerik, mi az a Weak/Soft/Phantom reference, pedig a hatekony memoriahasznalathoz elengedhetetlen. Es ez nem VM hiba, a VM adja a megfelelo memoriakezelo eszkozoket, de ha szarul hasznalod, akkor szar lesz.
Monduk hanyszor felejti el az ember mondjuk a Listenert levalasztani a megfigyelt objektumrol, ha mar nem kell neki? Rengetegszer. Hiaba nem kell mar a Listener altal megfigyelt objektum sehova, senki nem hasznalja mar, de mivel meg van ra strong reference, ezert nem fog tudni felszabadulni addig, amig a Listenerre hivatkozo osztaly (pl. inner classkent) nem mondja azt, hogy kosz, mar nem figyelem az objektumot.
- A hozzászóláshoz be kell jelentkezni
Nyugi... azokon Windows fut.
Ez komoly, általában Win2000.
- A hozzászóláshoz be kell jelentkezni
Ha mar kodolasi szabalyrendszeruk van, ajanlom figyelmukbe ezt a masik, elvetve hasznalt rendszert is:
http://en.wikipedia.org/wiki/International_System_of_Units
Bar mar gondolom hasznaljak, ezuttal sikerult elkerulni a becsapodast.
--
ezt tényleg ennyire nem értitek? - turdus :)
- A hozzászóláshoz be kell jelentkezni