Vyplatí se začít ve fortranu?

Kiwi

Re:Vyplatí se začít ve fortranu?
« Odpověď #60 kdy: 23. 02. 2018, 22:02:32 »
Citace od: MMN kdy 23. 02. 2018, 21:31:22
Citace od: Radovan. kdy 23. 02. 2018, 17:55:23
Citace od: MMN kdy 23. 02. 2018, 08:26:39
Citace od: Radovan. kdy 23. 02. 2018, 04:57:54Ale Fortran s nimi bude vždy pracovat lépe a rychleji.
I než C? A proč jako?
Viz výše. Ale můžeš to sám otestovat.
Však už jsem taky pár fortranovských za**baností do Céčka přepisoval. Výsledek v Céčku byl stejně rychlý (ó jaké překvapení), občas o pár procent rychlejší nebo pomalejší. Neexistuje totiž pražádný důvod, proč by měl kompilátor z céčkového kódu generovat výrazně jiný stroják než z Fortranu (pomineme-li drobné záležitosti typu práce se zásobníkem a ukazateli).
OMG! Pro extra natvrdlé tedy ještě jednou a fakt už naposledy!
Maticové operace, komplexní čísla, logaritmy, mocniny, goniometrické funkce atd. jsou u Fortranu vestavěnými operacemi!

Z toho plyne, že kompilátor ví, oč jde a jak to může zoptimalizovat. Spousta operací jsou skryté smyčky, které v céčku musím rozepsat, aniž by měl kompilátor tušení, k čemu ta smyčka slouží. Fortraní kompilátor si tu smyčku vyrobí sám, protože s ním komunikuju o level výš než s kompilátorem céčka. Ví, kdy může bezstarostně přeházet pořadí operací, paralelizovat je, ví, které funkce jsou čisté, narozdíl od céčka je ve Fortranu zakázaný aliasing polí, takže nemusí testovat tyhle věci atd. atd.

Už ti to začíná docvakávat? Ne? Zkus zatřást hlavou, na některých nádobkách se píše"před použitím protřepat".

V céčku dělám 25 let a živí mě, ve Fortranu jsem vedle toho dělal 8 let. Bavíme se často o výpočtech, které trvají klidně týden. Když budou trvat jen 5 dnů, je to docela velká úspora.

Dneska je to tu fakt jak u blbejch na dvorku. O Fortranu tu blábolej lidi, kteří ho očividně v životě neviděli a ještě si myslej, že to nikdo nepozná.


Labrat

Re:Vyplatí se začít ve fortranu?
« Odpověď #61 kdy: 23. 02. 2018, 22:12:06 »
Citace od: MMN kdy 23. 02. 2018, 21:55:25
Citace od: mikrom kdy 23. 02. 2018, 21:52:03Fortran je jazyk pre matematikov a inzinierov, ktori potrebuju vedecko-technicke vypocty. Je to tak jednoduchy jazyk, ze sa ho netreba ani ucit, zacnes ho pouzivat a postupne sa dopracujes k pokrocilejsim vlastnostiam.
V roce 1960 možná. Od roku 1978 je Fortran přežitkem, který se za částí vědecké komunity táhne jako sopel. Já doufám, že jeho uživatelé časem vymrou a Fortran sám pak upadne do zapomnění.
On má smysl třeba pro fyziky, co nejsou a nechtějí být programátoři. Fyzik se C kvůli pár výpočtům učit nebude.

JardaP .

  • *****
  • 11 064
Re:Vyplatí se začít ve fortranu?
« Odpověď #62 kdy: 23. 02. 2018, 22:27:52 »
A proc by se fyzik mel ucit C nebo neco, kdyz Fortran je pro nej zjevne lepsi a navic luxusnejsi??? To jako jen proto, aby ho tady na Rootu nekdo nenazval konzervou?

mikrom

Re:Vyplatí se začít ve fortranu?
« Odpověď #63 kdy: 23. 02. 2018, 22:51:59 »
Citace od: MMN kdy 23. 02. 2018, 21:55:25
Citace od: mikrom kdy 23. 02. 2018, 21:52:03Fortran je jazyk pre matematikov a inzinierov, ktori potrebuju vedecko-technicke vypocty. Je to tak jednoduchy jazyk, ze sa ho netreba ani ucit, zacnes ho pouzivat a postupne sa dopracujes k pokrocilejsim vlastnostiam.
V roce 1960 možná. Od roku 1978 je Fortran přežitkem, který se za částí vědecké komunity táhne jako sopel. Já doufám, že jeho uživatelé časem vymrou a Fortran sám pak upadne do zapomnění.
A preco by si to chcel? Co je na tom podla teba zle? Fortran je specializovany jazyk, ktori pouzivaju matematici, fyzici a inzinieri, ktori sa potrebuju len dopracovat k vysledku nejakeho vypoctu a programovanim sa inac nemienia hlbsie zaoberat. Co myslis, ze ked budu chciet vyriesit stiff-diferencialnu rovnicu implicitnou-R+K-metodou, tak si najdu stupida-informatika, ktory o danej problematike vie uplne hovno, aby im to naprogramoval? Nie to by nefungovalo, lebo tomu blbcovi chybaju aspon 2 semestre, aby pochopil o co zhruba ide. Preto si to radsej naprogramuju sami vo vhodnom nastroji - t.j. vo Fortrane. V C/C++ je to zlozitejsie a Java sa na to vobec nehodi.
Vseobecne, starsie programovacie jazyky ako COBOL a Fortran boli genialne a priamociaro navrhnute pre ludi z praxe, ktori potrebovali programovaci jazyk ako nastroj. Dnes sa to uplne zvrhava. Informatici pracujuci pre biznis nevedia o biznise nic, ale riesia iba nejake technologie, ktore sa menia kazdeho pol roka a neprinasaju pre biznis ziadny zisk. Pridana hodnota informatika je v tom, ze sa vyzna v domene v ktorej pracuje. Informatik bez tychto znalosti je lopata.

Ak teda dufas, ze Fortran zanikne dufas marne, lebo Fortran sa stale vyvija a dorabaju sa do neho nove features. Najpouzivanejsi bol dlho stadard 77, potom 90, a 95. Teraz su tu aj novsie standardy 200x. Ja osobne som bol dlho iba zastancom fortranu 77, ale potom som presiel na 95 a neviem si ho pre jeho jednoduchost vynachvalit. Fortran je v svojej domene super !

pan co nema nazor

Re:Vyplatí se začít ve fortranu?
« Odpověď #64 kdy: 23. 02. 2018, 22:53:07 »
Citace od: JardaP . kdy 23. 02. 2018, 22:27:52
A proc by se fyzik mel ucit C nebo neco, kdyz Fortran je pro nej zjevne lepsi a navic luxusnejsi??? To jako jen proto, aby ho tady na Rootu nekdo nenazval konzervou?
Protoze to realne nevyuzije? Ale sorac, to je argument za carou, v ciste teoreticke diskuzi ciste teoretickych teoretiku co ciste teoreticky probiraji moznosti vypocetni techniky +30 let po roce 1980 :)


mikrom

Re:Vyplatí se začít ve fortranu?
« Odpověď #65 kdy: 23. 02. 2018, 22:58:39 »
Citace od: Kiwi kdy 22. 02. 2018, 16:21:18
Ono se totiž ukazuje, že lidé, kteří Fortran kritizují, ho ve skutečnosti neznají vůbec
+1
Ano, presne takto sa kritizuje vsetko starsie: COBOL, Fortran, Basic, Pascal...
Vacsinou su to retardi, ktori v danom jazyk nikdy nic nenaprogramovali ...

MMN

Re:Vyplatí se začít ve fortranu?
« Odpověď #66 kdy: 23. 02. 2018, 23:02:52 »
Tak znova, vzhledem k C:
Citace od: Kiwi kdy 23. 02. 2018, 22:02:32Maticové operace,
Ano, maticové operace vskutku C ,,zadrátované" nemá a uživatel si musí příslušné smyčky rozepsat sám a pokud možno při tom přemýšlet, v jakém pořadí je psát.
Citacekomplexní čísla, logaritmy, mocniny, goniometrické funkce atd. jsou u Fortranu vestavěnými operacemi!
Jediné, čím se liší ,,vestavěnost" těchto věcí ve Fortranu a v C, je to, že ve Fortranu jsou to klíčová slova a v C je potřeba vložit standardní hlavičkové soubory (a vědět, co se používá za typy), v obou případech je to vše součástí standardu jazyka. Z hlediska optimalisací je to úplně jedno – rozumný kompilátor si s nimi poradí jak ve Fortranu, tak v C (typický příklad – použiji-li v nějaké funkci cosinus a sinus téhož argumentu, z překladače vyleze ve skutečnosti kód volající funkci sincos(), která je rychlejší než volat sin() a cos() zvlášť).

Citacenarozdíl od céčka je ve Fortranu zakázaný aliasing polí, takže nemusí testovat tyhle věci atd. atd.
V si C jej lze zakázat kvalifikátorem restrict.


MMN

Re:Vyplatí se začít ve fortranu?
« Odpověď #67 kdy: 23. 02. 2018, 23:09:03 »
Citace od: Labrat kdy 23. 02. 2018, 22:12:06
Citace od: MMN kdy 23. 02. 2018, 21:55:25
Citace od: mikrom kdy 23. 02. 2018, 21:52:03Fortran je jazyk pre matematikov a inzinierov, ktori potrebuju vedecko-technicke vypocty. Je to tak jednoduchy jazyk, ze sa ho netreba ani ucit, zacnes ho pouzivat a postupne sa dopracujes k pokrocilejsim vlastnostiam.
V roce 1960 možná. Od roku 1978 je Fortran přežitkem, který se za částí vědecké komunity táhne jako sopel. Já doufám, že jeho uživatelé časem vymrou a Fortran sám pak upadne do zapomnění.
On má smysl třeba pro fyziky, co nejsou a nechtějí být programátoři. Fyzik se C kvůli pár výpočtům učit nebude.
To se dá i otočit – fysik se Fortran kvůli pár výpočtům učit nebude (oba jsou to IMHO srovnatelně jednoduché jazyky).

y,

Re:Vyplatí se začít ve fortranu?
« Odpověď #68 kdy: 23. 02. 2018, 23:21:14 »
Citace od: MMN kdy 23. 02. 2018, 23:09:03
To se dá i otočit – fysik se Fortran kvůli pár výpočtům učit nebude (oba jsou to IMHO srovnatelně jednoduché jazyky).
Jenomze tady existuje ohromna code-base metod numericky matematiky (a prilehlych oblasti). Naprogramovat tyhle veci tak, aby garantovaly spolehlive chovani a urcite garance pro sirokou skalu ruznych funkci neni vubec jednoduche. Takze fyzik nebo matematik proste zacne stavet na existujicich modulech. Nic srovnatelneho pro C/C++ (bohuzel) neexistuje. Pokud neco je, tak jsou to knihovny vzniky transpilaci fortranu (se vsema nevyhodama a rizikama s tim spojenyma).

JardaP .

  • *****
  • 11 064
Re:Vyplatí se začít ve fortranu?
« Odpověď #69 kdy: 23. 02. 2018, 23:25:31 »
Citace od: mikrom kdy 23. 02. 2018, 22:51:59
Vseobecne, starsie programovacie jazyky ako COBOL a Fortran boli genialne a priamociaro navrhnute pre ludi z praxe, ktori potrebovali programovaci jazyk ako nastroj.

Tak konkretne COBOL byl navrzen pro americke Ministerstvo valky a jednim z pozadavku bylo, ze program ma byt citelny jako prirozena anglictina. Je to na tom videt a rekl bych, ze to ponekud prehnali. V zadnem jinem jazyce asi neni "Hello, world!" tak dlouhe, jako v puvodnim COBOLu.

JardaP .

  • *****
  • 11 064
Re:Vyplatí se začít ve fortranu?
« Odpověď #70 kdy: 23. 02. 2018, 23:32:52 »
Citace od: pan co nema nazor kdy 23. 02. 2018, 22:53:07
Citace od: JardaP . kdy 23. 02. 2018, 22:27:52
A proc by se fyzik mel ucit C nebo neco, kdyz Fortran je pro nej zjevne lepsi a navic luxusnejsi??? To jako jen proto, aby ho tady na Rootu nekdo nenazval konzervou?
Protoze to realne nevyuzije? Ale sorac, to je argument za carou, v ciste teoreticke diskuzi ciste teoretickych teoretiku co ciste teoreticky probiraji moznosti vypocetni techniky +30 let po roce 1980 :)

A proc by to nevyuzil? Kdyby to nevyuzil, tak by se to neucil. Osobne znam strojare, ktery ve Fortranu vyvijel koncem 80. let SW na navrh prevodovek, ktery snad dokonce vyprintil vykresy vsech kolecek a dalsich kramu. Se divim, ze to tedy radsi neudelal v C, kdyz je to tak uzasne lepsi.

Fortran je snad nejstarsi vyssi jazyk, ktery je stale aktivne pouzivan a to asi nebude jen tak nahodou. Ale vy to urcite dokazete vysvetlit tim, ze vsichni uzivatele jsou debilove.

MMN

Re:Vyplatí se začít ve fortranu?
« Odpověď #71 kdy: 23. 02. 2018, 23:33:49 »
Citace od: y, kdy 23. 02. 2018, 23:21:14Jenomze tady existuje ohromna code-base metod numericky matematiky (a prilehlych oblasti). Naprogramovat tyhle veci tak, aby garantovaly spolehlive chovani a urcite garance pro sirokou skalu ruznych funkci neni vubec jednoduche. Takze fyzik nebo matematik proste zacne stavet na existujicich modulech. Nic srovnatelneho pro C/C++ (bohuzel) neexistuje. Pokud neco je, tak jsou to knihovny vzniky transpilaci fortranu (se vsema nevyhodama a rizikama s tim spojenyma).
Ano, to je reálný problém (naštěstí se postupně zmenšující). Pokud však autoři stará fortranovská codebase není příliš zprasená, tak zpravidla není problém slinkovat nový céčkovský kód oproti starému fortranovému... A pokud jeho autoři prasili, mnohokrát je jednodušší to celé přepsat.

Kiwi

Re:Vyplatí se začít ve fortranu?
« Odpověď #72 kdy: 24. 02. 2018, 11:27:27 »
Citace od: MMN kdy 23. 02. 2018, 23:33:49
Citace od: y, kdy 23. 02. 2018, 23:21:14Jenomze tady existuje ohromna code-base metod numericky matematiky (a prilehlych oblasti). Naprogramovat tyhle veci tak, aby garantovaly spolehlive chovani a urcite garance pro sirokou skalu ruznych funkci neni vubec jednoduche. Takze fyzik nebo matematik proste zacne stavet na existujicich modulech. Nic srovnatelneho pro C/C++ (bohuzel) neexistuje. Pokud neco je, tak jsou to knihovny vzniky transpilaci fortranu (se vsema nevyhodama a rizikama s tim spojenyma).
Ano, to je reálný problém (naštěstí se postupně zmenšující). Pokud však autoři stará fortranovská codebase není příliš zprasená, tak zpravidla není problém slinkovat nový céčkovský kód oproti starému fortranovému... A pokud jeho autoři prasili, mnohokrát je jednodušší to celé přepsat.
Pořád mi uniká jedna věc - proč? Proč nutit fyzika, aby ručně řešil de/alokace paměti kvůli každému vektoru, aby se musel kvůli každé blbosti matlat s pointry, proč mu sebrat luxusní nástroje pro práci s poli a nutit ho řešit všechno prvek po prvku pomocí cyklů, proč mu brát možnost jednoduše si přetěžovat operátory nebo nutit ho řešit to pomocí tříd a všeho co z toho plyne, proč ho nutit vyznat se v headerech, statických a externích proměnných a funkcích a jejich viditelnosti, makefilech, když ve Fortranu to vyřeší přehledně a jednoduše pomocí modulů? Fakt nevidím ani jediný důvod, v čem by to pro něj mělo být výhodnější, a tys tu taky nenapsal ani jeden.

mikrom

Re:Vyplatí se začít ve fortranu?
« Odpověď #73 kdy: 24. 02. 2018, 12:05:03 »
Citace od: JardaP . kdy 23. 02. 2018, 23:25:31
Citace od: mikrom kdy 23. 02. 2018, 22:51:59
Vseobecne, starsie programovacie jazyky ako COBOL a Fortran boli genialne a priamociaro navrhnute pre ludi z praxe, ktori potrebovali programovaci jazyk ako nastroj.

Tak konkretne COBOL byl navrzen pro americke Ministerstvo valky a jednim z pozadavku bylo, ze program ma byt citelny jako prirozena anglictina. Je to na tom videt a rekl bych, ze to ponekud prehnali. V zadnem jinem jazyce asi neni "Hello, world!" tak dlouhe, jako v puvodnim COBOLu.
Porovnanie "Hello World" sa s oblubou pouziva, ale mnoho to o o pouzitelnosti jazyka nehovori. V COBOLe standardne treba v programe zadeklarovat tzv. 4 divisions, ktore ale napisat neznamena ziadny effort - vacsinou sa skopiruju z predosleho programu. Okrem toho staci napisat uz iba display 'Hello World'

Co sa tyka ukecanosti, da sa pouzivat, ale nemusi sa pouzivat, napr. mozes rozvlacne po anglicky napisat

add y to x giving z

alebo mozes pouzit strucnejsi zapis

compute z = x + y

Treba si uvedomit ze cobol je jazyk navrhnuty primarne na pracu s datami a nie na zapis zlozitych matematickych vypoctov (na to je Fortran). Pohodlne sa v nom pracuje s datovymi strukturami a s databazovymi tabulkami.

JardaP .

  • *****
  • 11 064
Re:Vyplatí se začít ve fortranu?
« Odpověď #74 kdy: 24. 02. 2018, 12:27:52 »
Citace od: Kiwi kdy 24. 02. 2018, 11:27:27
Pořád mi uniká jedna věc - proč? Proč nutit fyzika, aby ručně řešil de/alokace paměti kvůli každému vektoru, aby se musel kvůli každé blbosti matlat s pointry, proč mu sebrat luxusní nástroje pro práci s poli a nutit ho řešit všechno prvek po prvku pomocí cyklů, proč mu brát možnost jednoduše si přetěžovat operátory nebo nutit ho řešit to pomocí tříd a všeho co z toho plyne, proč ho nutit vyznat se v headerech, statických a externích proměnných a funkcích a jejich viditelnosti, makefilech, když ve Fortranu to vyřeší přehledně a jednoduše pomocí modulů? Fakt nevidím ani jediný důvod, v čem by to pro něj mělo být výhodnější, a tys tu taky nenapsal ani jeden.

Aby si pripadal desne moderne.