Kezdőoldal » Számítástechnika » Programozás » Miben jobb egy erősen/statikus...

Miben jobb egy erősen/statikusan típusos nyelv, mint egy gyengén/dinamikusan típusos?

Figyelt kérdés
Gondolom nem csak a típushibák elkerülése a cél, hanem például az előbbi nyelveken írt programok gyorsabbak is.

2021. ápr. 4. 14:07
1 2
 1/14 anonim ***** válasza:
100%
Nincs olyan, hogy nem annak értékelődik ki a feltétel aminek akarod, mert nem olyan típusú amit gondolsz. Például PHP-nál gyakori, hogy kimenetel függő, hogy milyen típust ad vissza, erősen típusos nyelvnél max nullt ad vissza, elég azt lekezelni, de ha nem null, tuti olyan típus amit vártál, jól fog kiértékelődni a feltétel.
2021. ápr. 4. 14:32
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
100%

Azért általánosan nem jelenthető ki, de igen, egy nyelv minél típusosabb, potenciálisan annál gyorsabb lehet a vele készült program, mivel egy-egy konkrét adattípusra könnyebb optimalizálni a kódot.

Emellett programozástechnikailag is nagyobb fegyelmet vár el, ezzel pedig elősegíti a szemantikai hibák mérséklését.

Cserébe viszont könnyebben vét az ember szintaktikai hibát, bizonyos feladatok (pl. ahol több adattípus is szóba jöhet) megvalósításamacerásabb (bár ez azért ritka), illetőleg nehezebb egy ilyen nyelvbe beletanulni.

2021. ápr. 4. 15:29
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
17%

"Gondolom nem csak a típushibák elkerülése a cél, hanem például az előbbi nyelveken írt programok gyorsabbak is."


A sebesség nem tipusosság, hanem tipusbiztosság kérdése.

A mai nyelveknél, főleg az amúgy is lassú script-nyelveknél vált divattá a gyenge típusosság, mivel kevesebb erőforrást igényelnek a határozott, erős típusosságnál.

Egy biztos: a gyenge típusosságnak előnye nincs.

2021. ápr. 4. 16:22
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:
81%
A gyenge típusosságnak számos előnye van. Úgy általában közelebb áll az emberi gondolkodáshoz, így könnyebben, gyorsabban lehet bennük fejleszteni. Erősen típusos nyelveknél plusz köröket kell futnod olyan típuskonverziók miatt is, amiknek józan ésszel belegondolva simán kellene futnia. Ha megnézed, nagyon sok nyelv a születése óta, próbáld lépéseket tenni a statikus típusosságból eredő működés elkerülésére. Generikusok, template-ek, void, variant típus...
2021. ápr. 4. 16:52
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:
0%

Balázs, ezt nem kellett volna.

Egy merő hülyeség az amit írsz.

A void is baromság és a variant is.

2021. ápr. 4. 21:26
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
100%
Már mitő lenne baromság? Ez így van, ahogy leírtam.
2021. ápr. 4. 21:58
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
0%

Akkor kérlek erősítsd meg valami példával, ahol kitetszik, hogy neked van igazad.


Mert szerintem pl. a void egy szükségmegoldás a variant meg a hülyék fegyvere, amely nem ritkán visszafelé sül el.


A gyenge típusosság meg egy erős hibaforrás. Ráadásul futásidejű hiba forrása.

Az erősen típusos, tipusbiztos nyelveknél viszont egy tipushibás kód el sem juthat a futásig.

2021. ápr. 4. 22:05
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
100%

"Mert szerintem pl. a void egy szükségmegoldás..."


Pont ezt mondom én is. Szükségmegoldás egy olyan problémára, ami gyengén típusos nyelvekben elő sem fordul.


"A gyenge típusosság meg egy erős hibaforrás. Ráadásul futásidejű hiba forrása."


Mert a típuskorlátok megkerülésére írt boilerkódokban nem lehet hiba, igaz? Egy sima explicit castolással is csinálhatsz orbitális bugot.


A dinamikusan típusos nyelvek elég világos és többnyire intuitív szabályok végzik az implicit castolást. Nyilván lehet benne hibázni, de miben nem lehet? Ez olyan, mintha azt mondnád, hogy a precedencia szabályokban is lehet hibázni, ezért ne használjunk operátorokat.

Egyébként ha biztosra akarsz menni, akkor írd ki az explicit castolást, és akkor nem fogsz belefutni abba, hogy te másként gondoltad, mint a fordító. Vagy ahol lehet, használj type hintinget.

2021. ápr. 4. 22:37
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
0%

" Egy sima explicit castolással is csinálhatsz orbitális bugot."


De ott legalább tudod, hogy te vagy a hülye. Vagy tudja más, egy review esetén.

Viszont amikor a hibalehetőség ott sompolyog a kódban és csak az alkalomra vár, ami lehet, hogy jövő nyáron érkezik el ...

Mint pl.az ariané rakéta esetében.

2021. ápr. 4. 22:42
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
100%

De nem sompolyog ott a lehetőség, ez nem igaz. Nem véletlenszerűen castolódnak erre-arra a típusra a változók.

Az Ariané 5 bugját egy sima túlcsordulás okozta, annak a világon semmi köze a dinamikus típusokhoz. Bármelyik nyelven el lehet követni egy ilyet, sőt, a statikusan típusos nyelvek egyik állatorvosi lovaként sokszor felhozott Java még csak nem is dob kivételt overflow esetén.

2021. ápr. 4. 23:00
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!