To be fair, you have to give a seed to the rng, so harvesting the random number makes sense since it sprouted from seeds
@MaxHaydenChiz Жыл бұрын
Was glad to see this. A few years back, I had to make some updates to some very old stats code written in Fortran and your experience here was about what I went through.
@TsodingDaily Жыл бұрын
I hope you managed to get the shit done anyway 🫂
@FunkschyIsWatchingYou Жыл бұрын
"Learning german in 2023" when?
@notflawffles Жыл бұрын
nie
@ZupaChampion Жыл бұрын
In 2023
@JinskuKripta Жыл бұрын
@@andrewdunbar828in German the numbers are written all together, not in separated words, like this: Zweitausenddreiundzwanzig
@l.piekha100 Жыл бұрын
@@JinskuKripta fucked up.
@whythosenames Жыл бұрын
@@JinskuKripta actually starting from a million i think you do something like "eine Million zweitausenddreiundzwanzig" for 1002023, but for integers in [0, 1000000) you are right
@jimbobago8 ай бұрын
The main times I had to know about implicit variables when I studied Fortran in the mid 70s were when I used the fact that the letters “i” through “n” were reserved for integer values. This made them the default for loop variables. If you had a counting loop, you usually wrote “ do i = 1, 10” as opposed to using “c” or “d” or whatever and if there were nested loops you go to “j” as your variable and so on through the alphabet.
@matthias916 Жыл бұрын
Loved the confusion caused by the fact he was passing ints by pointers
@Carltoffel Жыл бұрын
Tsoding: Does my program compile and call to Raylib and initializes the Raylib correctly? It fucking does! 1:49:25 Meanwhile, the Raylib log: Screen size:645031064 x 645031068 Explanation: Fortran passes its arguments by reference but C passes by value. Therefore, the C code receives the addresses for width, height, and fps as values. This also explains why the values for width and height differ by 4, it's the size of an integer. To correctly pass an integer from Fortran to C, you have to specify it like this: `integer(kind=c_int), value :: width, heigth`. BTW: 800 is an integer literal even in Fortran.
@РайанКупер-э4о2 ай бұрын
What is integer literal?
@Carltoffel2 ай бұрын
@@РайанКупер-э4о In computer science, a literal is a textual representation of a value as it is written in source code. An integer literal represents an integer value.
@PugMaxer Жыл бұрын
Yes! I am a physics student and I know many Phd Students that still use Fortran! It is actually very nice for scientific programming
@amilkyboi Жыл бұрын
I've used it for some intensive computational applications, it's really quite nice (and fast) when you get the hang of it. Coming from Python it was quite the shock for me at first, however.
@MrCentrax Жыл бұрын
How does it compares to C? I’m a math’s student and I currently know Python and a bit of C. So I don’t know if it’s a good idea to also learn Fortran while learning C
@amilkyboi Жыл бұрын
@@MrCentrax I haven't done much work in C, so I can't really tell you. From what I have done, array operations are far, far better in Fortran. I've heard speed is roughly comparable between the two. Realistically though, just learn a single low-level language well and stick to it. No use in having sparse knowledge in multiple languages.
@PugMaxer Жыл бұрын
@@MrCentrax C is more useful in a wide variety of applications. If I had to choose one I would choose C for it's flexibility advantage.
@Kwazzaaap9 ай бұрын
@@MrCentrax The gist of the Fotran vs C speed thing is that Fortran does not have aliasing by default, so the CPU internals don't have to check whether a value has changed in the meantime, this gives Fotran a slight edge over C that you can also get in C by using restrict keyword.
@brvtalcake Жыл бұрын
I remember cloning the full repo of GCC from a house lost in France's countryside with a VERY SLOW wifi conexion during a holiday. It took me more than an hour
@enclave2k1 Жыл бұрын
_"Who uses FTP in 2023"_ - THE MAN LEARNING FORTRAN IN 2023 (great stuff, appreciate your content)
@snailmail235711 ай бұрын
I recently decided to learn Fortran. I’m glad I saw you learn it as I was.
@redmundperrz723411 ай бұрын
NASA preferred language after Assembly language for Voyager software update
@mrZIGgleS1000 Жыл бұрын
Very nice video. As someone who has done a bit of work in fortran 77 this was very entertaining. I would love to see more fortran content in the future!
@RandomGuy1606 Жыл бұрын
I learned to program in Fortran. I really loved it. Lots of matrix operations and computational methods
@RandomGuy1606 Жыл бұрын
i,j,k etc are implicitly integers for loops. Given most of the work I did was matrix calculations you do a lot of nested loops and those are the conventions for loop counters anyway
@MiroslavPopov Жыл бұрын
Zozzin, thank you for the Fortran session! Please also consider Standard ML. It is a lot of fun.
@philstanton8912 Жыл бұрын
OCAML is even better, but id love to see him code in either
@sorenvandenberg9909 Жыл бұрын
@@philstanton8912 He's done a few videos in OCaml before, including one recently that was more of a joke
@vitalyl1327 Жыл бұрын
@@philstanton8912 Standard ML is unique, OCaml does not have such a powerful module system, it had to compromise a lot.
@Ryan-xq3kl Жыл бұрын
Fuck it, learning Simula in 2023. I would enjoy that one haha
@dromedda6810 Жыл бұрын
fortran is a very interesting language, because even after all these decades people still really care about it and is actively trying to keep up with the rest of the "new" "cool" "languages" like java and c++
@tomwilliam7299 Жыл бұрын
I liked Fortran, especially matrices multiplication 🥰🥰🥰😘😘😘
@cheema8649 Жыл бұрын
About the implicit typing in minute 16:00. I suppose that comes from really old languages like B where types didn't exist and you only had data that you treated however you wanted, so people started doing things like I_number to specify an integer or c_word to specify a character. I'm pretty sure that that was the only way to type data in older versions of Fortran too, and that would also explain why you put first the type and then the name.
@mishaerementchouk Жыл бұрын
Fortran _is_ that old language. Since it catered to numerical computations, it had integer and float variables from the start.
@maartenofbelgium Жыл бұрын
Implicitly typing/defining a variable made sense in the 70ies: you saved a punch card.
@mishaerementchouk Жыл бұрын
@@maartenofbelgium I would bet on reducing the compiler's functionality: cards were cheap and could be provided (and wasted) in industrial amounts, but memory, where the compiler should reside, was totally not. Wikipedia says that on IBM 1401, the compiler lived completely in the core memory, the whole whooping 8000 x 6 = 48,000 bits. This required 2200 cards.
@valshaped Жыл бұрын
In punch cards, one line = one card. "PROGRAM program" is the title card for the program, and each card is 80 characters long, so it really doesn't matter how long the name is
@empireempire3545 Жыл бұрын
1. Initial star is like format in printf in C - except star means 'please compiler deduce the format on your own' 2. You've got implicit typing completely wrong xDDD 3. Procedures and functions are 2 different things in fortran 4. Several times in the video you want to have complete example but you DO have it at the same page - just a few lines lower XD like with the c/fortran bindings xD
@makotv6898 Жыл бұрын
I think he figured out 1 somewhere at the 1:20:00 mark. When he was looking at the bindings Can you explain point 2?
@Honken Жыл бұрын
This is hilarious, one of the funniest streams, and that's saying something!
@RandomGuy1606 Жыл бұрын
For those playing at home, the * for print tells it that it is List-Directed I/O. For the read (*,*), the first star means read from stdin, the second star means you are reading list-directed IO
@ryonagana Жыл бұрын
at my uni they teach fortran 77 along with C and year later they changed to fortran 90
@TsodingDaily Жыл бұрын
Cutting edge technology pog
@andygello555 Жыл бұрын
"GOD" is real, unless declared as an integer
@ГоршенковЕгор-т3г Жыл бұрын
Спасибо за стрим, и за подкачку моего английского!!!
@fu886 Жыл бұрын
16:16 there was a practice of having the type in front seems handy if you have to type panchcards
@l_t_m_f Жыл бұрын
for hexa you can use Z so like... integer(c_int32_t), parameter :: COLOR_RED = int(Z'FF0000FF', c_int32_t) and then pass COLOR_RED to clear_background.
@c4llv07e Жыл бұрын
"it's just like people from 70s and 50s decided so" - best answer to all questions.
@DaviSimDoP Жыл бұрын
That was fun, I would love to see you exploring other jurassic languages as well.
@replikvltyoutube3727 Жыл бұрын
Learning perfocards in 2023
@BrandonS-lk2qc Жыл бұрын
REAL MEN scratch bits onto the plates with a needle.
@gronki1 Жыл бұрын
Fortran is a modern language, with OOP and other nice features :)
@djpremier333 Жыл бұрын
In fact the R programming language is partly written in Fortran
@JohnDoe_69_420 Жыл бұрын
Oh wow that's timely I recently started being interested in Fortran, because of Exercism (a platform for programming exercises in deferent languages), the theme of this month on there is old languages, including Fortran Thanks, this will help me with learning about this cool language
@gabrielmartins7642 Жыл бұрын
Older versions of fortran needs a 7 lines of space to run properly, the thing is that old fortran works on new versions of fortran
@gabrielmartins7642 Жыл бұрын
Personally I never use print i use write(*,*) star is to format it and the other star is for the screen
@randomphysicist6930 Жыл бұрын
You should do something like Mandelbrot's set in Fortran. I think with such a task you can see where the language shines... Intrinsic COMPLEX type and easy vector/matrix operations
@baxtermullins1842Ай бұрын
I started with RATFOR, then FORTRAN including several flavors, from IV to 77, DEC, Microsoft, VAX (Freeform), CMS2Y, C, PASCAL, BASIC, QuickBASIC and 15 or more Assembly languages! But, languages have now expanded into block diagram forms etc.
@randomdude_12335 Жыл бұрын
Will you ever do a Tcl stream? The syntax is so simple it's actually insane
@spacerSH10 ай бұрын
I did my Bachelor's thesis in a research group which did numerical research on quantum physics. Most people in the group used python, some C++ and only the prof / group leader used fortran. Everyone admired him for mastering fortran.
@Maxifichter Жыл бұрын
15:50 Hence "GOD is REAL, unless declared INTEGER"
@ZombieLincoln6662 ай бұрын
Fun fact: the famous mathematician and prodigy Terrance Tao failed a class because he didn’t want to learn Fortran
@LaurentLaborde Жыл бұрын
It's really fun to see you struggle with my favorite language :)
@RandomGeometryDashStuff8 ай бұрын
31:23 you can refer to program: program yepp; procedure hello; begin writeln('yepp'); end; begin yepp.hello; end.
@p99chan995 ай бұрын
That Emacs magic with transpose is legit awesome 28:05
@danidotexe_ Жыл бұрын
i remember when i was in university i took pride on how many languages i "knew". then, like you, i realized knowing languages was useless and understanding fundamentals was universal. and now, i can't even remember all of the languages i used to boast about knowing proudly 😂
@DarkCookie586 Жыл бұрын
I actually started using Fortran this year just for the meme and have to say for the little things I do its actually not bad
@amiganer681130 Жыл бұрын
Fortran is very old. In early versions the format of the lines are very strict fixed. There are Variables, that are handled special,
@Argletrough Жыл бұрын
The part where you compiled empty files reminded me of a submission to IOCCC of a quine that was an empty file: there was a bug/feature in one particular C compiler that caused it to compile and link an empty file to create a program that outputs nothing (its source code!) when run.
@RandomGeometryDashStuff8 ай бұрын
01:08:52 [i for i in range(1,6)] == [1,2,3,4,5]
@robheusd11 ай бұрын
Last time I used Fortran we used punchcards.
@richardbennett4365 Жыл бұрын
Mister, I know you're so frustrated. Let me help you. Fortran IV came out in the 1960s, and it was a vast improvement over prior versions. Then in 1977, the quintessential FORTRAN77 was released. That was what FORTRAN was. Then in 1990 Fortran 90 was released, and many people say this was the start of Fortran not becoming FORTRAN. It was now taking on characteristics of C and Pascal. So, yes, that space that gets added in front of a printed line is some6i have no idea why Fortran compiler does that. But I do know about IMPLICIT. You see integers used to be automatically typed (implicitly typed) if the variable name began with a letter from I to N as in I--->Ntegrer. If the variable began with any other letter then it was of REAL type. So if you add implicit none, then the programmer doesn't have to worry / think about whether all the integer type variables are beginning with letters i, j, k, l, m, or n. Now about why your program didn't compile when it had the .f extension. You are right that the extension tells the compiler what "Fortran" it is. Prior to Fortran 90, the language worked still like it did with punch cards. Column 1 is reserved for or C. If C were in Column 1, then that line would be a comment. Columns 2 through 6 were reserved for numeral labels just like you were thinking. And, finally code had to be in Column 7 onward, but I think only out to Column seventy-something or eighty. You didn't have the code starting in Column 7 when you were using .f as the extension. The compiler was trying to compile the code as FORTRAN77 code.
@richardbennett4365 Жыл бұрын
Now I remember what is special about Column 6 and why the presenter noticed his Gnu EMACS editor colorizing the 'e' that he had type in that column. Column 6 took a non-zero, non-blank character to indicate continuation of the code typed in the line above, because as I mentioned, FORTRAN77 and prior versions, had fixed formatting that came from the days of punch cards. Column 1 was for the letter 'C' if a comment was desired; Columns 2-6 were used for numeric labels that could be any numeral, allowing for that crazy GOTO statement to find where to go, and Columns 7-72 were reserved for code. Any characters written in Columns 73 onward would be ignored by the compiler and thus comments or annotations could be placed in this field if so desired.
@davideferrara6274 Жыл бұрын
I had to learn this language for my Numeric Analysis exam and it was a nightmare! I learned F77 not even F90 inside a WIN95 IDE application.
@pehache2 Жыл бұрын
The problem here is not Fortran, but the professor who requires you to learn such an outdated version of the language. It's absolutely nonsense, as if you were forced to learn the original K&R version of C.
@davideferrara6274 Жыл бұрын
@@pehache2 The professor is 73 years old that's why.
@pehache2 Жыл бұрын
@@davideferrara6274 It's an explanation. Still, it's not acceptable. But it also depends on when it was, actually.
@davideferrara6274 Жыл бұрын
@@pehache2 it was about 4 months ago
@pehache2 Жыл бұрын
@@davideferrara6274 OK, that's really nonsense... Even if the guy was a god in numerical analysis there would be no excuse for teaching with such outdated tools. The university should not let him continue like this.
@tylerdean980 Жыл бұрын
How many more years until you make your own OS in HolyFortran
@chri-k Жыл бұрын
preferably without going insane
@ZombieLincoln6662 ай бұрын
Fortran is extensively used for designing nuclear reactors and nuclear weapons
@MPKampersand10 ай бұрын
Honestly thanks to this video I sat down and wrote a program to ASCII plot the mandelbrot set, which is probably the furthest I've ever gotten with any programming language despite on and off dilettantism.
@milothegoat280 Жыл бұрын
He's lost a crazy amount of weight in only two years
@betaradish9968 Жыл бұрын
I remember working with a IBM AS400 back in 2000 and you would have engineers trying to update code and forgetting that for certain languages you had to explicitly state the version for the compiler to work lol.
@taubstumm Жыл бұрын
i learned this in my math uni programme, i could do it all but i failed the paper exam where i had to cross a 2d array diagonally, broke my brain and i dropped out
@arcxm Жыл бұрын
15:52, 18:54 ;) really interesting session, would like to see more old stuff 👍
@paulredmond6467 Жыл бұрын
I’m curious to know if llvm flang produces better error messages.
@gabrielmartins7642 Жыл бұрын
On my physics course i had to learn fortran, it is pretty solid for scientifc stuff, not gonna lie. But doing on python simoler stuff is much better, depends on the project honestly, maybe both. Good language
@DelgardAlven Жыл бұрын
yay, F is cool lang btw That would be interesting to see more of that
@vnshngpnt Жыл бұрын
Based Chad Fortran
@lowlevelcodingch8 ай бұрын
15:55 I LOVE HOW HE BREAKS DOWN LOL
@semenkuzovchikov8150 Жыл бұрын
please tell more for your hyper-focused programming state
@__hannibaal__ Жыл бұрын
Yeah i learn it 27 year ago; it for numerical analysis, nothing with system programming or other stuff like c and c++ ;
@aloussase Жыл бұрын
I dont know if you r into that stuff but it would be interesting to see you doing something with distributed systems, like message queues or actor systems for example
@patap6424 Жыл бұрын
15:42 -> 21:00
@l_t_m_f Жыл бұрын
could you post the rest of the series now that its gone on twitch. thanks man, I appreciate your content.
@deadmarshal Жыл бұрын
But Zozzin when will we have an Oberon stream?
@neamatullahmalistani8821 Жыл бұрын
Thank you for making Fortran learning videos. Is it possible to use Fortran compiler in Visual Studio?
@pehache2 Жыл бұрын
The Intel Fortran Compiler can be used in VS
@L4oo. Жыл бұрын
You should do a vid where you program in INTERCAL for a few hours
@replikvltyoutube3727 Жыл бұрын
Is fortran also memory safe before Rust
@igoralmeida9136 Жыл бұрын
submissive and allocatable 🥵
@kawaikaede2269 Жыл бұрын
❤
@hubstrangers34509 ай бұрын
Thank you.....
@SingleTheShot Жыл бұрын
supposedly something like `integer width, height, fps` should work works on my machine :P
@francescotomba1350 Жыл бұрын
The actual joke is that a lot of scientific software and libraries (like matlab, ansys, numpy ) are written entirely in fortran
@TheMelopeus Жыл бұрын
Isn't numpy written in C?
@francescotomba1350 Жыл бұрын
@@TheMelopeus nope numpy is written in fortran
@Bayo106 Жыл бұрын
@@francescotomba1350lol wtf stop lying
@hedlund Жыл бұрын
Wait, what? No idea about Matlab and ansys, byt Numpy is C (and Python, obv.), and always has been, as far as I know.
@pehache2 Жыл бұрын
@@hedlund Many core linear algebra libraries are still in Fortran, even when they have a C API. So, numpy is maybe written in C, but it very likely calls some Fortran code at some point (and this is granted for scipy or Matlab)
@smushy64 Жыл бұрын
raylib prints the window size but you kept ignoring it lolol i was like oh no his window dimensions are fucked
@doezage Жыл бұрын
Vhdl next?
@cbbcbb6803 Жыл бұрын
Five spaces has meaning?
@TunsalatOgTomat Жыл бұрын
What keyboard are you using, or did you build it yourself?
@annakquinn708411 ай бұрын
Why @12:13 we have star *? Because for C++ we end line by ;
@Code_Capital Жыл бұрын
They did NOT give a damn about usability back then 😂
@pstrusi Жыл бұрын
Your speed and concentration are amazing but of course your experience programming weights. Question if you don't mind: Did you go to college to study CS, Software development... ? or are you self-taught?
@caiodavi9829 Жыл бұрын
i think he went to college to study a branch of chemestry. i found this info on his first machine learning video
@pstrusi Жыл бұрын
@@caiodavi9829 Thanks for the hint. Regardless where he learned from, he's a very brilliant programmer.
@tomwilliam7299 Жыл бұрын
Rust is bad language but still better than C or C++ 😎😎😎 We need new language that really replace C++ and be much better than Rust
@PRIMARYATIAS10 ай бұрын
Nim ? Odin ?
@rajkumardongre3085 Жыл бұрын
Want more video on Fortran
@puncherinokripperino2500 Жыл бұрын
dude, they just was saving memory by typing with first letter...
@skr-kute1677 Жыл бұрын
YOU BOUGHT A NEW KEYBOARD
@KeplerEmeritus Жыл бұрын
Why would this library’s website block your IP?
@TsodingDaily Жыл бұрын
There is a lot of dangerous hackers in the place where I live. Who knows maybe they may try to use the library to hack somebody. ;)
@vlad071096 Жыл бұрын
1:02:54 You can feel Volker Strassen's hiccups here :D
@richardjones7984 Жыл бұрын
These know it alls that know nothing really piss me off. I was once asked by a leading footwear company to make their overnight run go faster. It took so long that the customers could not buy anything in the stores until ten o'clock in the morning. So I looked at the job and realised that their "best practice" sql coding was hugely inefficient and I used some old fashioned DP tricks. I reduced the runtime by seven hours as my code ran 10 times faster. These arrogant SQL experts told me that even though my code worked perfectly and was ten times faster than theirs I had still done it "wrong".
@MatthisDayer Жыл бұрын
Do a video with R please! :D
@scraped_2454 Жыл бұрын
@Tsoding Daily What is the name of the text editor you use? It's awfully similar to vim or helix
@AncientSocrates Жыл бұрын
Emacs
@DanelonNicolas Жыл бұрын
but why?
@greendragon87425 ай бұрын
still waiting for the continuation
@two-spikes Жыл бұрын
теперь изучай cobol
@pavelerokhin1512 Жыл бұрын
you're cool!
@dmsalomon Жыл бұрын
You cant be mad at language that was designed to be written on punch cards
@rogo7330 Жыл бұрын
Did you know that Python's `**` exponentiation takes an absolute value of exponent? I did not tested is this happens before exponentiation or after, but it does this. And it is slower than calling pow()
@ЕгорКолов-ч5с Жыл бұрын
Exponentiation takes precedence over unary minus, so you need to use parentheses like this: (-5)**3
@drdca8263 Жыл бұрын
@@ЕгорКолов-ч5с (-5) there would be the base though, not the exponent?
@mayday841311 ай бұрын
imaginary being a primative is funny asf. feels like a language cobbled together based on random needs of different companies cuz it is
@wagsman9999 Жыл бұрын
I’ll date myself: in college I used Fortran and punch cards. 😂