Asztali Windows alkalmazások fejlesztésére melyik a legalkalmasabb programozási nyelv...?
... így 2022-ben?
C, C#, Rust, Python, Go, Swift?
A cél az lenne, hogy kicsi és gyors tudjak fejleszteni.
Van jártasságom Pascalban, Basicben, C-ben, egy kicsi C#-ban, PHP-ben és Javascriptben.
Akármelyik.
Én általában Pascalban (pontosabban: Lazarusban) szoktam. Miért? Mert ugyanazt meg lehet csinálni benne, mint bármi másban, emellett szubjektív indok: szeretem a Pascalt. Ha az ember OOP-fan, arra is lehetősége van, ugyanolyan teljesen támogatja az OOP-t, mint pl. a C++. Ennek ellenére más módszertanokat és stílusokat is enged. A nyelv pedig kellően szigorú, de kellően könnyű is egyben. És félig-meddig multiplatform, bár nehéz a fordítót jól belőni, hogy egyből más rendszerre is tudjon fordítani, de ha a másik rendszeren megnyitom a forrást, és lefordítom, azon a platformon is működni fog. :-) Így egyből tudok Windowsra és Linuxra is fordítani. Az lnet komponenssel (külön telepíthető) internetes, vagy csak simán hálózati alkalmazásokat is készíthetek. A rendszergazdai munkám során gyakran nyúlok ehhez, de hobbi-programozóként is általában Lazarusban kódolok.
Ha valami okból muszáj a .Net, akkor MonoDevelopban, általában VB-Net-ben, ritkábban C#-ban.
"de manapság mindenki fújjog rá"
És? Ne mások véleménye alapján élj! :-)
"hogy nem OOP"
És?? Nem kell az mindenhez. Sőt... Hacsak nem valami orbitális nagy rendszert készítesz, nem fogod sok előnyét látni, ellenben több erőforrást fog használni. Csak ugye manapság ezt blaszfémia kimondani.
"meg hogy elavult..."
Ja, folyamatosan fejlesztik, nemrég jelent meg az újabb verziója...
Mellesleg: a Linux kernelt miben írják?
"A C egy nagyon rosszul, hanyag módon tervezett nyelv"
Ez nagyon szubjektív volt a részedről. Csak úgy odahányni én is tudok valamit, hogy "ez szar, mert csak" érvelés nélkül.
C-nek is meg van a maga erőssége és gyengesége.
Jah igen. Python interpretere is C nyelven alapszik. Jah, bocs...
A Rust engem is érdekel, bár én végül egy hasonló gondolatkör másik ágába vágtam bele.
Ahogy tudom, a Rust-ban a szellemesen, tudományosan megtervezet típusrendszer, ennek részeként különleges pointertípusok révén képes fordítási időben is igazolni bizonyos fokú programhelyességek, hibák lehetetlenségét.
Amennyire tudom ez egy nagyon régi történet egy oldalága. A XIX. század végén már Frege-ék észrevették a a matematikai logika egyes olyan vonásait (curryzés), amelyek ma az algoritmizálhatóság, a programynelvek alapjába épülhetett bele. Ennek egyik korai állomása volt az 1924-ben felfedezett kombinátorlogika (Schönfinkel), illetve a hasonló és ennél isemrtebb lambda-kalkulus.
Ezeket akkorban még nem is elsősorban programzási célból, inkább a matematika megalapozási elméleti törekvéseinek vitáinak eldöntésére alakalmas érvelési, kutatási segédeszközökként fejleszették ki. A kombinátorlogika közvetlen logikai alkalmazását viszont megnehezítette az a később felismert tény, hogy eredeti formájában tulajdonképp inkonzisztens volt - paradoxonok bukkantak fel (a Cantor-féle naiv halmazelmélethez hasonlóan). E probémakörön a különböző típusrendszerek felfedezése segített.
Egy nagyon erős típusrendszer a Martin-Löf típusrendszer, ez látható a mai Agda programynelvben/tetelbizonyító rendszerben, (más formában és keretben pedig a hasonló jellegű Coq-ban): ezek komoly tételbizonyításra képes rendszerek. Vitattott kérdés, de kb. valószínűleg kb. bármilyen matematikai tétel levezethető bennük (ami az intuicionista matematika keretei közé belefér, ami remélhetőleg lényegében kb. az egész matematika, bár ez még vitattott kérdés).
A Haskell nem törekszik a Martin-Löf típusrendszer, és általában a függő típusok teljes körű megvalósítására, de nyelvi kiegészítésként ezek bizonyos részével kiegészíthető. Nagyon erős típusrendszerű és tisztáságú, az ipari gyakorlatban is terjedő programynelv.
Visszatérve a Rust-ra: keveset tudok róla. A Rust részben más, mint
a fentiek, mások a céljai, de ezek azthiszem egyes tekintetben párhuzamba állíthatóak a tételtelbizonyító rendszerek terén látható fejlődéssel. A Rust is törekszik a típusrnedszer átgondotsága révén bizonyos helyességi kérdések statikus ifejű karbantartására, biztosítására. Ennek elméletéről azonban nem tudok sokat. Jól megtervezett pointertípusokról vannak felületes emlékeim, és gondolom felhasznál valamit a típusok általános elméletéből is.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!