346
Vývoj / Re:Traits ve Fortranu
« kdy: 10. 09. 2022, 00:35:12 »
Pokud někdo chce vidět pseudo-OOP prasokód ve Fortranu, tak tady je ukázková otřesnost: https://github.com/LadaF/Fortran-RefCount
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
Fortran nie moc OOPFortran je naopak až moc OOP, včetně abstraktních typů a dědičnosti, což třeba Rust nebo Go nemají. Ty traity se dají udělat syntaktickou omáčkou (pokud nestačí INTERFACE), Rust (a Go) je implementují naprosto stejně jako tlusté ukazatele, akorát to dělá transparentně překladač, takže je kód čitelnější.
Žádný průnik tam není.Moduly vo fortrane (90+) maju podobny ucel ako traity v inych jazykoch. Sluzia na organizaciu a znovupouzitie kodu.
Možná jsem něco nepochopil, ale co jsi demonstroval ve svém příkladu, jsou funkce uspořádané do nějakých namespaces. Traity slouží k implementaci nějakého rozhraní napříč různými typy (třídami). Možná tam někde nějaký průnik vidíš, ale nepřijde mi, že by tam byla nějaká zásadní podobnost nebo zastupitelnost.
mozek bezneho smrtelnika by to proste nepobral ani po letech studiaTak mozek běžného smrtelného vývojáře v Javě nebo JS nepobere ani mírně pokročilé funkcionální programování. Algebraická geometrie je úplně jiný level.
něco jak trait v RustuFortran má INTERFACE pro statický ad-hoc polymorfismus, rozhraní jako typ s dynamickým dispatchem ne. Ten výše odkazovaný navrh je pěkný. Ono to jde ve Fortranu s jeho OOP jednoduše obejít, ale je to hnusný kód navíc. Ve Fortranu se naštěstí “populární” OOP nijak moc nepoužívá, případy dědičnosti by člověk spočítal na prstech jedné stonožky. Hezčí řešení přinesou šablony s restrikcemi, k tomu už existuje oficiální návrh.
S pouzitim modulov som to myslel takto:Jak to souvisí s traity?
modules.f95Kód: [Vybrat]module tmp_mod1
contains
subroutine t11
write(*, *) "t11"
end subroutine
subroutine t12
write(*, *) "t12 calls:"
call t11
end subroutine
end module tmp_mod1
module tmp_mod2
contains
subroutine t2
write(*, *) "t2"
end subroutine
end module tmp_mod2
module my_mod
use tmp_mod1
use tmp_mod2
contains
subroutine s
write(*, *) "s calls:"
call t11
call t12
call t2
end subroutine
end module my_mod
program main
use my_mod
write(*, *) "main calls:"
call t11
call t12
call t2
call s
end program main
Output:Kód: [Vybrat]$ gfortran modules.f95 -o modules
$ modules
main calls:
t11
t12 calls:
t11
t2
s calls:
t11
t12 calls:
t11
t2
Ne nemá, ale tady je proposal a konverzace dvou zasvěcených Fortranistů. https://github.com/j3-fortran/fortran_proposals/issues/125Nějak se jim ta diskuse zvrtla, jeden o voze, druhý o koze. Ale ten původní návrh je dobrý. A ten druhý se statickým polymorfismem taky, hezky se doplňuje. Jsou velice blízko k objevení (typového systému) Go
Ty butterfly klávesnice stály za houbyTo je ještě řečeno velmi ohleduplně, byl to megašmejd, každý s MacBookem, co znám, s tím měl problémy (můj MacBook taky chcípnul krátce po záruce, naštěstí klávesnice měnili i po ní). Dnešní klávesnice paráda (zatím).
instalace balíčku je mnohem lepší než na HomebrewCo je špatného na MacPorts?
Co sa taky Rustu, ten ma tiez svoje problemy, na ktore ale clovek pride ked s nim zacne robitCo například?
Nějak nám ztichnul, “kabrňák”takoví nemaj potřebu si to obhajovat, oni to dělali kvůli sobě, ne kvůli okolíTak od toho pochopitelně VŠ je, jen idiot by tam lezl kvůli papíru nebo názorům ostatním. Pokud se někdo přihlásí na VŠ kvůli papíru nebo protože se mu nechce do práce, a neprojde matikou v prváku dokonce ani na VŠE, to už o něčem nelichotivém svědčí.
Troll, jste prostě trollové, kritizujete vše a všude, top kritici, ale bavit se o sobě to nezvládnete, protože váš vlastní život stojí za starou belu.
Co jsme se tu dozvěděli o tobě? Nula... Nula nic... Protože se bojíš, že tak jako ty kritizuješ ostatní ostatní budou kritizovat tebe.
Narozdíl od tebe jsem kabrňák, který o sobě něco řekl a kritiky se nebojí. To se o tobě říct nedá.
Takze ty jsi zkusil VSE, moc ti nesla matika, tak jsi zacal delat linuxoveho admina a casem jsi zacal delat nejake skripty v Pythonu a automatizaci, devops. Delas si ruzne certifikace a obcas pricuchnes k rizeni projektu nebo se dostanes na nejakou poradu marketingu. Chapu to spravne?
Ja treba delam ve firme, kde nikdo bez VS neni. Prevazuje Matfyz a CVUT FIT. Nerikam, ze by to bez te VS neslo, ale je to velky bonus.
Stejně jako na Linuxu, macOS je čistokrevný Unix (certifikovaný POSIX), akorát vychází z BSD, takže například má kqueue místo epoll, ale rozdílů je dost málo (a kde jsou, je na vině Linux, protože nepodporuje plně POSIX).Ja proste Apple zarizeni s ohledem na omezeni ktera maji nestravim.vzdy ma otravovalo ked som musel kvoli nejakym utilitkam na windowse instalovat MSYS/MinGW alebo Cygwin a riesit tam rozne vychytavky. Neviem ako sa tieto veci instaluju na Macu a ani nemam zaujem to riesit.
Zkus si stáhnout instalátor MSVC (Visual Studia), řekl bych, že se dá zaškrtat instalace pouze řádkových překladačů a utilit.Tohle se myslím stahuje zvlášť, jsou tam všechny nástroje kromě GUI (jen instalátor a updater jsou GUI aplikace). Tohle by mělo stačit na překlad čehokoliv (já to dřív používal na Windows pro ARM, když tam ještě kompletní VS nebylo). Rozhodně to je na Windows snazší cesta než GNU.
Narozdíl od tebe jsem kabrňákGratuluju.
takoví nemaj potřebu si to obhajovat, oni to dělali kvůli sobě, ne kvůli okolíTak od toho pochopitelně VŠ je, jen idiot by tam lezl kvůli papíru nebo názorům ostatním. Pokud se někdo přihlásí na VŠ kvůli papíru nebo protože se mu nechce do práce, a neprojde matikou v prváku dokonce ani na VŠE, to už o něčem nelichotivém svědčí.