Zauważ, że Matlab pochodzi z Fortran. Na podstawie twoich komentarzy polecam ci ocenić tę opcję.
Dennis Jaheruddin
2
Czy powinieneś w ogóle nauczyć się Fortranu ? Może to być podyktowane ilością starszego kodu, który musisz użyć - co również dyktuje wersję Fortran, której powinieneś się nauczyć.
Damien
Odpowiedzi:
27
To trochę popularne mylące określenie, że istnieje „wersja” Fortrana. Z rzadkimi wyjątkami najnowsze standardy Fortran (i kompilatory) zachowują doskonałą zgodność wsteczną ze starszymi standardami. Ma to dobry powód: niewiele osób użyłoby dziś Fortrana, gdyby nie duża ilość wciąż używanego kodu. Innymi słowy, zgodny z normami kod Fortran77 prawie zawsze będzie działał z najnowszymi kompilatorami.
Powinieneś nauczyć się korzystać z najnowocześniejszej dostępnej wersji języka. F2008 może nie dodał nic strasznego użytecznego dla początkującego, ale wprowadzenie koncepcji obiektowych w F2003 jest zdecydowanie dużą sprawą. „Modern Fortran Explained” to dobre miejsce do rozpoczęcia, a „Scientific Software Design: The Object Oriented Way” jest również całkiem dobre do nauki praktycznego zastosowania.
Pragmatycznie, jeśli zamierzasz pracować nad starszym kodem (powiedzmy F77 lub wcześniejszym), w pewnym momencie będziesz musiał nauczyć się niektórych rzeczy, które zrobili z powodu braku funkcji F90 +. Na przykład, jeśli piszesz dla czegoś kod Fortran, nigdy nie powinieneś używać tak zwanego „WSPÓLNEGO bloku”, ale niezmiennie zobaczysz, że pojawiają się w kodzie F77, którego możesz użyć.
Nigdy nie polecałbym, żeby ktoś zaczął pracować w Fortranie bez przynajmniej zestawów funkcji F90 / 95.
To powiedziawszy, jeśli nie znasz się dobrze na programowaniu w innym języku, prawdopodobnie uznasz, że Fortran nie jest najlepszym językiem do nauki jako pierwszym, nawet jeśli wybierasz się w kosmos. (I mówię to jako ktoś w kosmosie, który regularnie używa Fortranu i miał go jako mój pierwszy język).
+1 „Nigdy nie polecałbym, żeby ktoś zaczął pracować w Fortranie bez przynajmniej zestawów funkcji F90 / 95”. . Popieram to. Zacznij od F90, poznaj wszystkie podstawowe funkcje, przećwicz kilka programów, a następnie przejdź do nowszych wersji
Tymric
JEŚLI nie Fortran, jakiego języka warto się nauczyć i będzie on praktyczny w inżynierii? Jak tam Matlab? Potrzebuję tego na kurs, który biorę w następnym semestrze.
user26358,
@ user26358 Python do programowania ogólnego zastosowania, ma dużą przyczepność w społeczności naukowej. R do analizy statystycznej. MATLAB, Mathematica lub Maple (cokolwiek używa twoja klasa) do obliczeń numerycznych. SQL dla relacyjnych baz danych. JavaScript dla treści internetowych i dlatego, że staje się lingua franca. Nie zawracałbym sobie głowy Fortranem, dopóki jeden z nich nie będzie w stanie wykonać pracy, nie jest to przyjemny język do nauki jako pierwszy.
Schwern,
@Aurelius, zgadzam się z twoim ostatnim akapitem. Uważam, że właściwy sposób uczenia się programowania naukowego jest dokładnie odwrotny, jakiego doświadczyłem: python-> C ++, a jeśli go potrzebujesz, Fortran.
Nicola Cavallini,
@ user26358 Matlab jest dobry i prawdopodobnie będziesz go używać w szkole. Python jest dobrym miejscem do rozpoczęcia od programowania ogólnego, a jego moduły numpy / scipy potrafią wykonywać większość rzeczy, które prawdopodobnie będziesz robić w Matlab, i jest to dobre miejsce do nauki podstaw pisania oprogramowania. Zdecydowanie powinieneś mieć też przynajmniej jeden skompilowany język; C ++ byłby najpopularniejszym wyborem.
Aurelius
1
Nie zgadzam się z obojgiem. C ++ i Python wciąż nie są tak zoptymalizowane jak FORTRAN. Zdecydowanie zgodziłbym się, że FORTRAN 90/95 jest minimum. Jednak zawsze przydatne jest użycie innych, bardziej nowoczesnych wersji. Wyzwanie związane z FORTRAN polega na tym, że jeśli nauczysz się go przed nauką języków obiektowych, łatwo to zrozumieć. O wiele trudniej jest się nauczyć, jeśli przyzwyczaiłeś się do myślenia za pomocą przedmiotów. Uczę tutaj klasy superkomputerowej i zmuszam moich uczniów do korzystania z FORTRAN. Zmusza ich do korzystania z innego rodzaju logiki w programowaniu. Nie podoba im się to, ponieważ nie „myśli” jak Python lub C ++. Wszystko sprowadza się do tego, co zamierzasz zrobić i ile ma znaczenia paraliżacja i wydajność.
Witamy w SciComp.SE. Wygląda to bardziej na opinię niż pytanie na stronę. Jeśli uważasz, że Fortran „[...] zmusza ich do użycia innego rodzaju logiki w programowaniu”, powinieneś rozwinąć argument i powiedzieć nam, dlaczego tak jest. A także, o czym jest ta „logika”, o której wspominasz.
nicoguaro
2
@tmwitten: Czy ta odpowiedź ma być komentarzem? Prawdopodobnie jest to zbyt długo, aby być komentarzem i poza kontekstem wygląda jak non sequitur (np. C ++ i Python nie są wymienione w pytaniu, „oboje” wydaje się odnosić do Nicoli i Aureliusza).
Odpowiedzi:
To trochę popularne mylące określenie, że istnieje „wersja” Fortrana. Z rzadkimi wyjątkami najnowsze standardy Fortran (i kompilatory) zachowują doskonałą zgodność wsteczną ze starszymi standardami. Ma to dobry powód: niewiele osób użyłoby dziś Fortrana, gdyby nie duża ilość wciąż używanego kodu. Innymi słowy, zgodny z normami kod Fortran77 prawie zawsze będzie działał z najnowszymi kompilatorami.
Powinieneś nauczyć się korzystać z najnowocześniejszej dostępnej wersji języka. F2008 może nie dodał nic strasznego użytecznego dla początkującego, ale wprowadzenie koncepcji obiektowych w F2003 jest zdecydowanie dużą sprawą. „Modern Fortran Explained” to dobre miejsce do rozpoczęcia, a „Scientific Software Design: The Object Oriented Way” jest również całkiem dobre do nauki praktycznego zastosowania.
Pragmatycznie, jeśli zamierzasz pracować nad starszym kodem (powiedzmy F77 lub wcześniejszym), w pewnym momencie będziesz musiał nauczyć się niektórych rzeczy, które zrobili z powodu braku funkcji F90 +. Na przykład, jeśli piszesz dla czegoś kod Fortran, nigdy nie powinieneś używać tak zwanego „WSPÓLNEGO bloku”, ale niezmiennie zobaczysz, że pojawiają się w kodzie F77, którego możesz użyć.
Nigdy nie polecałbym, żeby ktoś zaczął pracować w Fortranie bez przynajmniej zestawów funkcji F90 / 95.
To powiedziawszy, jeśli nie znasz się dobrze na programowaniu w innym języku, prawdopodobnie uznasz, że Fortran nie jest najlepszym językiem do nauki jako pierwszym, nawet jeśli wybierasz się w kosmos. (I mówię to jako ktoś w kosmosie, który regularnie używa Fortranu i miał go jako mój pierwszy język).
źródło
Nie zgadzam się z obojgiem. C ++ i Python wciąż nie są tak zoptymalizowane jak FORTRAN. Zdecydowanie zgodziłbym się, że FORTRAN 90/95 jest minimum. Jednak zawsze przydatne jest użycie innych, bardziej nowoczesnych wersji. Wyzwanie związane z FORTRAN polega na tym, że jeśli nauczysz się go przed nauką języków obiektowych, łatwo to zrozumieć. O wiele trudniej jest się nauczyć, jeśli przyzwyczaiłeś się do myślenia za pomocą przedmiotów. Uczę tutaj klasy superkomputerowej i zmuszam moich uczniów do korzystania z FORTRAN. Zmusza ich do korzystania z innego rodzaju logiki w programowaniu. Nie podoba im się to, ponieważ nie „myśli” jak Python lub C ++. Wszystko sprowadza się do tego, co zamierzasz zrobić i ile ma znaczenia paraliżacja i wydajność.
źródło