Тёмный

I Tried The OLDEST Programming Language 

theunrealtarik
Подписаться 26 тыс.
Просмотров 317 тыс.
50% 1

For absolutely no reason, I decided to learn and try coding in the oldest programming language in the planet and build something with it. I also explained the math behind the famous `donut.c` and implemented it in the language.
Twitter: x.com/theunrea...
Discord: / discord
For contact and business inquiries: txreqb2w.business@gmail.com
CODE: github.com/Txr...
liKE aND sUBSCrIbe
liKe AnD sUBScRiBe
LikE And SuBScrIBe

Опубликовано:

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 606   
@yogibarista2818
@yogibarista2818 8 месяцев назад
I recall writing in Fortran-66 on an IBM card-punch, taking my cards to be booked in for running, getting an error report the size of a box of fan-fold paper, and then having to debug it before trying again... you quickly learned to triple-check your code before submitting again, as carrying an error report of that size back to your cubicle was embarrassing, not to mention tiring.
@xWatexx
@xWatexx 8 месяцев назад
That’s cool, I didn’t know punch cards ever supported more than Assembly.
@leopavlov7165
@leopavlov7165 8 месяцев назад
​@@xWatexx COBOL is also 1 of the punch card languages
8 месяцев назад
@@xWatexx Punch cards are just an input method, that has two obvious advantages over a keyboard: they are very fast (no human can hope to type that fast) and they have intrinsic memory (you could store your program on punch cards in a drawer somewhere, and input it into the computer whenever you needed). This was very convenient when computer storage was limited and you couldn't store your programs on a computer, so you had to input them every time you ran them. Being an input method, punch cards are language-agnostic, they are just a sequence of characters. How these characters are interpreted by the computer depends on the software running on the computer. If that software was a FORTRAN compiler, it expected correct FORTRAN code on the punch cards, etc.
@BboyKeny
@BboyKeny 8 месяцев назад
​​@They are language agnostic if you limit the line length to fit on the punch card. You can always add more lines by adding cards, but you can't make the cards wider.
@briancampbell179
@briancampbell179 7 месяцев назад
Ditto. I can't recall which version of Fortran we were using, but we used punched cards too. I also did a project for the university in Fortran on punched cards. It was in a huge box 300-400mm long. I was terrified of dropping it. What I find odd in this video was his use of lower case characters. Back in those days, upper case was the norm.
@minneelyyyy
@minneelyyyy 8 месяцев назад
Dude accidentally made a 4 dimensional donut
@AetherStreamer
@AetherStreamer 6 месяцев назад
I remember that same donut animation for the terminal already done like 4 years before, but I see this individual explaining, between jokes, like he is creating the logic for it for the first time and inventing the wheel.
@lolatmyage
@lolatmyage 6 месяцев назад
@@AetherStreamer you literally see him bring up a guide like 3-4 times wtf you on about lol of course its not a new concept
@dinosharttt
@dinosharttt Месяц назад
i dont get it
@DaFrancc
@DaFrancc 8 месяцев назад
Some advice on how to get rid of flickering: instead of clearing the console and printing, just move the cursor to the beginning and write over the previous image. Printing is a very slow operation so clearing and printing again is very noticeable, writing over the previous frame should do the trick.
@CoolKoon
@CoolKoon 8 месяцев назад
Actually you'd be surprised how insanely popular Fortran is in the meteorology world up to this day, all the models are written in Fortran for instance. Nice job on the code BTW :)
@romannasuti25
@romannasuti25 8 месяцев назад
Specifically, FORTRAN is one of the easier languages to do very efficient and scalable supercomputing with, as the language has built-in features that make parallelization of array and matrix operations far easier than, say, C. Plus, the weird constraints of FORTRAN allows for insane compiler optimizations that wouldn’t work reliably within C’s syntax. This is part of why Rust code can occasionally be faster than C: the compiler can safely make more assumptions, hence better optimizations.
@DarkerCry
@DarkerCry 8 месяцев назад
@@romannasuti25 neat!
@Dejavous9
@Dejavous9 8 месяцев назад
Can confirm that old-head physicists use it today too
@christopheroliver148
@christopheroliver148 8 месяцев назад
I think the big reason is that there is a lot of battle tested numerical code in Fortran. I think that is partly a consequence of computers being used as an aid to engineering from some earliest days.
@romannasuti25
@romannasuti25 8 месяцев назад
​@@christopheroliver148 To this day NASTRAN is still (arguably) the gold standard for FEI despite being FORTRAN software from the 60's.
@tordjarv3802
@tordjarv3802 8 месяцев назад
Fortran is still the preferred choice of many computational scientists, for example my nuclear physics colleagues use it almost exclusively with only some python and shell scripts sprinkled on top. It is a horrible mess and I hate working with it.
@latt.qcd9221
@latt.qcd9221 8 месяцев назад
I don't think you can really blame the "horrible mess" on Fortran, though. That has more to do with how physicists, unfortunately, tend to write spaghetti code that "just works." Part of that is likely due to years of modifications by different graduate students that were probably using Fortran for the first time when they made their contributions.
@tordjarv3802
@tordjarv3802 8 месяцев назад
@@latt.qcd9221 Part is because of the language it self, Fortran has these "common" blocks wich allows you to share variables between subroutines. The problem is that you only need to include a subset of the variables in your common block (the compiler may or may not complain) which result in the fact that you one don't know how many variables a common block has. Furthermore, you can't know which subroutines uses your common block so you have no idea if one of the variables will change when you call a different subroutine. While what you say is true that many phycists write spaghetti code, Fortran makes spaghetticode easy to write and sometimes necessary.
@latt.qcd9221
@latt.qcd9221 8 месяцев назад
@@tordjarv3802 Common blocks? Are you talking Fortran 77? Fortran 90 replaced those with modules which are great to work with. Fortran 77 was definitely more frustrating to work with, but Fortran 90 on are substantial improvements that are nice to work with. I would agree, though, that Fortran can make spaghetti code easy to write. Not sure I'd say it's necessary, though, with Fortran 90 onward.
@tordjarv3802
@tordjarv3802 8 месяцев назад
@@latt.qcd9221 Fortran 77 is still in use bro. There are some old guys who thinks that it is the only "real" programming language.
@alicewyan
@alicewyan 8 месяцев назад
I inherited a g77 mess for my PhD, the problem wasn't fortran, the problem was the attitude of "don't bother to learn how to code properly, this spaghetti just works, add yours at the end" by the senior colleagues.
@paulperry7091
@paulperry7091 8 месяцев назад
Fortran changed my life. As a child, I had always wanted to be a scientist. But,after I entered University in 1965, it wasn't long before i had to learn Fortran - which was so uncongenial that I eventually got a degree in politics and History of Philosophy, and ended up as a secondhand book dealer. Still go a few cards, and a copy of McCracken somewhere.
@franciscovarela7127
@franciscovarela7127 7 месяцев назад
I started in Political Science and History, wound up writing code for a living. Life is strange and takes us on journeys we never dreamed of. I loved the ride.
@josephbrandenburg4373
@josephbrandenburg4373 4 месяца назад
I studied art. Now I'm unemployed.
@god_37Reel
@god_37Reel Месяц назад
@@josephbrandenburg4373 ww3? (just a joke)
@HerbertLandei
@HerbertLandei 8 месяцев назад
I once helped a friend who studied physics to fix an app for laser optics, which was written in FORTRAN. Of course the process was somewhat lengthy because neither of us knew what we were doing, but to be honest, there are worse languages out there. Got later invited by him to a pretty cool non-linear laser optics demonstration at the university :D
@GlasiaVD23
@GlasiaVD23 7 месяцев назад
Imagine programming in brainf......
@susannerudolph8469
@susannerudolph8469 3 месяца назад
_cough cough_ *c* _cough cough_
@drmonkeys852
@drmonkeys852 8 месяцев назад
To fix the flickering there are more ANSI codes you can use: ESC[0;0H
@rw-xf4cb
@rw-xf4cb 7 месяцев назад
VT100 escape codes! All that's left of Digital Equipment Corporation oh VMS still lives with VSM Systems after it migrated from VAX to Alpha to Itanium to now X86_64 and survived Compq and HP.
@starpawsy
@starpawsy 2 месяца назад
If you are on a Unix system, the CORRECT way to do that is to use high level commands. It looks like your terminal type is vt100 or similar. The correct way to use high level commands is to use "tput" terminal-put with appropriate arguments. ESC[0;0H is "postion cursor position at (0,0)" which is generated by the command: tput cup 0 0 ESC[H is "send cursor home (ie, 0,0) without clearing the screen" which is generated by the command: tput chome ESC[?25l is "make the cursor invisible": tput civis ESC[2J is screen clear: tput clear Note that if you use a newer emulation package from vt100, such as vt220 or vt340, you get more commands. You can do things like clear the screen and choose whether that does a cursor home or not. Mind you I havent dont this since 2004 so I am working from memory here LOL. Embedded raw escape sequences within your program like that is very very bad practice. It ties your program to work on only one terminal type.
@DarenC
@DarenC 8 месяцев назад
Haha, nice. I started with Fortran in 1988, working for a company that wrote forecasting software running on a Prime minicomputer. We moved on to FTN77/386 soon after, writing DOS programs. Even started trying to write a Windows version in Fortran if you can believe it (Salford Software from Salford Uni had a library that kinda made it possible, called ClearWin). That wasn't the best way though so I persuaded my employers to let us use C instead, and that was the end of my Fortran life.
@1ballad
@1ballad 8 месяцев назад
This guy is the programmer version of martincitopants and I absolutely love it
@lorenzomonacelli
@lorenzomonacelli 8 месяцев назад
Actually Fortran90 is a very good language for math, it was the first to include the slice and array broadcast features, and it supports them out of the box.
@flippert0
@flippert0 8 месяцев назад
Had a course in FORTRAN 90, was quite interesting to see a different approach than C-style languages while still using a low-level language.
@ehsnils
@ehsnils 4 месяца назад
I have dipped my toes into Fortran coding a bit on the later variants and I think it's actually a pretty good language that's underrated outside the science world. I can't help to think that languages like Python are creating the same level of programmers as Basic did in the 80's.
@crckrbrrs
@crckrbrrs 8 месяцев назад
i love these videos, please keep making these not only is this video incredibly well put together, but its also insane what you accomplished in fortran
@Patterner
@Patterner 8 месяцев назад
back in my math days i did a lot of FORTRAN. the libraries available were totally insane and brilliant.
@charliekahn4205
@charliekahn4205 8 месяцев назад
MATLAB is sort of a port of an earlier FORTRAN library
@bazoo513
@bazoo513 8 месяцев назад
And still are. what do you think is the source of all those numerical libs for, say Python.
@randomsnow6510
@randomsnow6510 8 месяцев назад
fortran is used because it rights the fastest assembly for math problems
@JohnDlugosz
@JohnDlugosz 8 месяцев назад
You mean "writes"? Actually, the fastest Fortran implementation right now is a Fotran-to-C++ translator!
@PRIMARYATIAS
@PRIMARYATIAS 8 месяцев назад
@@JohnDlugoszNot when LLVM’s Flang will be out.
@vidal9747
@vidal9747 8 месяцев назад
​@@JohnDlugoszFortran is pure pain when you're forced to write Fortran 77 for college. There are compiler bugs that will never be fixed. And I will not fix them because no one fucking uses Fortran 77
@tordjarv3802
@tordjarv3802 8 месяцев назад
I have heard that from several sources; the problem is that I have never actually found any concrete evidence, just some handwavy arguments about cache efficiency which are mute after the introduction of the restrict keyword in C.
@JohnDlugosz
@JohnDlugosz 8 месяцев назад
@@tordjarv3802 You mean "moot".
@alexgregory5583
@alexgregory5583 8 месяцев назад
Fortran was my first programming language, in 2016 lol. Computational physics is almost always done in Fortran or C, perhaps with some shell or python script wrappers.
@alexandred.4248
@alexandred.4248 8 месяцев назад
Try, Matlab for computational physics. Fastest way to break my heart as a python enthusiast
@Misteribel
@Misteribel 8 месяцев назад
0:22 It is not the oldest programming language. There are many predecessors, many low level languages of course, and higher level ones like IPL (became LISP), SpeedCo (became Fortran), the well known FLOW-MATIC (became COBOL), the famous Plankalkul from Zuse, commonly considered "oldest", Autocode (first compiled lang). However, it's the first widely used one and it's the oldest language that's still in popular use today, AFAIK.
@herrbonk3635
@herrbonk3635 8 месяцев назад
Also, the syntax he's showing here seems to be Fortran90 from the late 1980s or early 1990s, not the original FORTRAN of 1956.
@michaelburggraf2822
@michaelburggraf2822 8 месяцев назад
​@@herrbonk3635 it's looking like Fortran 77 which is what he said he'd use.
@rdspam
@rdspam 8 месяцев назад
0:36 “I know what you’re thinking. Assembly is the oldest…..”
@herrbonk3635
@herrbonk3635 8 месяцев назад
@@rdspam Machine code is much older than assembly. It took a while before the first assemblers were designed. Old computers didn't have memory enough for such luxury.
@typograf62
@typograf62 7 месяцев назад
I seem to remember a language called Math-Matic as a calculating language perhaps older than FORTRAN. One could argue that machine code is not a language. If anything each computer architecture had its own "way of expressing an algorithm". Og "way of expressing a core dump".
@MagnusOsterlund
@MagnusOsterlund 8 месяцев назад
At work I regularly work with old code written in FORTRAN IV (from 1962) and FORTRAN 77 for the nuclear industry. Really hard to understand the code with all the GOTO back and forth.
@pythonprojectsforwindows6795
@pythonprojectsforwindows6795 8 месяцев назад
41 years ago, I was taught FORTRAN 77 on a CDC Cyber mainframe. scipy still uses FORTRAN 77 and I ported BERNOB to Python, an array of even Bernoulli numbers. I modified the program to return a Bernoulli number on demand instead of a list.
@DeuxisWasTaken
@DeuxisWasTaken 8 месяцев назад
My friend was studying chemistry, I helped her set up a Fortran compiler as that's what some software for modelling molecules or atom interactions or something was written in. Apparently in the Fortran era scientists, professors and the like jumped on the opportunity to create software that makes their job easier, and nobody up to now wants to deal with the task of rewriting it in something modern. So there's a big niche of heavy Fortran usage in scientific communities, while the rest of people usually associated with software dev scratch their heads every year about how the hell did Fortran make it to a fairly high position of most used languages again lol
@saarza9991
@saarza9991 2 месяца назад
True😂
@wkgmathguy218
@wkgmathguy218 14 дней назад
Mainly because it was designed to do one kind of thing and eventually got to a point where it did that thing very well :D
@Geenimetsuri
@Geenimetsuri 5 месяцев назад
We still use Fortran-code programs daily in our Institute of Seismology. It's fast and the matrix operations are trivial compared to e.g. C.
@brianmurphy4702
@brianmurphy4702 8 месяцев назад
I actually used a FORTRAN style language in college in the early 60s ... it was called FORGO. A boot loader had to be read in on cards followed by the program on punched cards. The output was via punched cards that then had to be read into a printer that produced folded paper output. The computer was an IBM 1620 with a 10 meg hard drive the size of a washing machine. Later we had access to FORTRAN which had format flexibility. It's been a long journey to now with drives in the terabyte capacity, printer on my desk, direct input via keyboard and mouse, a monitor, and the internet. 60 years ... wonder what the next 60 years will bring but that belongs to the youth in the house of tomorrow a place I will not dwell in. Best wishes to all who will.
@KNRG04
@KNRG04 6 месяцев назад
awesome comment!
@josephbrandenburg4373
@josephbrandenburg4373 4 месяца назад
Correction: it applies to the AI that will replace the youth before they get a chance 😭
@saarza9991
@saarza9991 2 месяца назад
​@@josephbrandenburg4373 what're your qualifications?
@saarza9991
@saarza9991 2 месяца назад
​@@josephbrandenburg4373 are you, by any chance, a prompt engineer?
@caiocouto3450
@caiocouto3450 8 месяцев назад
honestly, 7:35 this result was better than a simple torus. it's so psychedelic and artistic
@kodekent
@kodekent 7 месяцев назад
Fun to watch :) I think the question you ask towards the end about having to declare your variables at the top has to do with how compilers worked with punch-cards. You wanted to get them in there at the start to avoid going back later. Of course with modern machines this is not a problem, and so langugages evolved away from that.
@TagetesAlkesta
@TagetesAlkesta 8 месяцев назад
These videos are great. It’s like if martincitopants was an Eastern European software engineer
@AS-R-bx3zi
@AS-R-bx3zi 6 месяцев назад
That what I was thinking too.
@donwinston
@donwinston 8 месяцев назад
Fortran was my first programming language. I was a mathematics major. Had to take an intro to programming class before taking numerical analysis. I loved it. Went on to do a bit of SLAM programming with it. (SLAM is used to construct simulations).
@roadrunner3563
@roadrunner3563 7 месяцев назад
Fortran is also one of the newest languages. Compilers are mostly up to date with the 2018 standard which has pretty full support for object orientation, interoperability with other languages, direct support for parallel processing, and nearly every feature people have complained about being missing.
@INT41O
@INT41O 6 месяцев назад
Fortran compilers also have a habit of pretending to support the newest features, but then produce horrible bugs if you use them in any way that is slightly more complicated than the example code.
@roadrunner3563
@roadrunner3563 6 месяцев назад
All compilers adding new features have the same issues. Fortran is no worse, and more likely better because it tends to design the features better.
@INT41O
@INT41O 6 месяцев назад
@@roadrunner3563In my experience: No. I have never seen so many compiler bugs in another language. I use ifort and gfortran, and both have their own problems. Final subroutines, mixing associate and or block with openmp, syntax errors involving pointers leading to compiler crash, parameterized len, etc.
@theunrealtarik
@theunrealtarik 8 месяцев назад
ASSembly GO PRRRRRRRRRRR
@CoolestPossibleName
@CoolestPossibleName 8 месяцев назад
By "GO" did you meant golang?
@Catterjeeo
@Catterjeeo 8 месяцев назад
Everyone knows that manually wiring together a program is the oldest programming language:;)
@ltecheroffical
@ltecheroffical 8 месяцев назад
@@Catterjeeo Nah, it's having a human manually interact with the users
@veaxvoid
@veaxvoid 8 месяцев назад
ассембли донат вен?
@124k3_
@124k3_ 8 месяцев назад
hmmmmmm... looks like i gotta incorporate your video making style into mine videos 😅
@TzOk
@TzOk 8 месяцев назад
Fortran is the language of scientific experiments. It is a math-centric language. There is a good reason for declaring all the variables at the beginning of the code. Fortran uses a static memory allocation, so this makes it easier to manage all the storage space. Remember it was used with punch cards...
@vibaj16
@vibaj16 7 месяцев назад
"The reason behind declaring all the variables at the beginning has a good reason"
@TzOk
@TzOk 7 месяцев назад
@@vibaj16 I must have been very tired when writing that. Thank you for noticing it - I've already corrected that.
@INT41O
@INT41O 6 месяцев назад
Dynamic memory allocation has been included in Fortran for ages. There is even automatic deallocation when a variable goes out of scope (when using "allocatable" instead of "pointer"). Some other features are also really nice, for example the lower bound of an array can be set to a custom value, not just the upper. However, overall the language is too verbose and a lot of boilerplate code is necessary if you want to code safely.
@kensmith5694
@kensmith5694 8 месяцев назад
There were a couple of languages before Fortran. Mostly Fortran blew them away. Several all went under names sort of like "autocode". You basically were telling them operation by operation what to do but it was portable between machines unlike assembly. BTW: On early computers, assembly was easy to learn.
@Bunny99s
@Bunny99s 8 месяцев назад
:D The best part for me was your explanation of a seg-fault "It's usually an error raised by your the hardware telling your system telling your software that you are trying to access restricted memory". That's actually the best summary I could think of :) ps: Pascal (my first programming language I learned in 1995) also required that you declare all your variables at the top of your method. Those languages were simply closer to the metal since local variables are allocates with the stackframe when you enter the method. So from a structural point of view it made sense. Not really in terms of usability. Pascal and Fortran also look quite similar at the first glance. Pascal also used many terms like program, integer, real, if...then, begin, end, repeat ... until, implementation, ... It was almost like writing english sentences. So I can see that Pascal was a lot inspired by fortran. Actually the chain seems to be Fortran --> Algol 58 --> Algol 60 --> Pascal (1970). I did a lot of Pascal and Delphi programming in the past. Though I can't really stand the syntax anymore ^^. I'm now used to C#, lua, js and C/C++.
@nobillismccaw7450
@nobillismccaw7450 7 месяцев назад
The “Colossal Cave Adventure” (the first computer, text game) was written entirely in fortran, and it took in commands in English and processed them.
@petewdev5591
@petewdev5591 7 месяцев назад
GO NORTH EXAMINE DESK TAKE KEY
@georgkrahl56
@georgkrahl56 7 месяцев назад
AFAIR it was an own "game language", realized in FORTRAN. So it internally processed things like 'if near water then...' and so on.
@tnspnk3
@tnspnk3 6 месяцев назад
@@petewdev5591 KILL BIRD The little bird is now dead. (Unsaid, you just screwed yourself on completing the game).,
@ssmith5048
@ssmith5048 8 месяцев назад
still be best (along w c /c ++) for doing any serious calculations. Fortran rocks!
@ccppeter2617
@ccppeter2617 8 месяцев назад
I did a lot fortran 90 code, like genetic algorithms, dynamical systems, monte carlo integrations, classical and quantum physics simulations on my physics department. For an old language, fortran is pretty good, and calculations are so, but so much faster than modern languages like python
@davidgillies620
@davidgillies620 8 месяцев назад
FORTRAN is the oldest _commercially available_ language, not the oldest language per se. Autocode for the Manchester Mk 1 is probably the oldest language recognisable as such to modern eyes (it reads a bit like assembler). I was using Fortran 90 for real-world stuff towards the end of the last century, and there is such a huge codebase of highly optimised software in scientific computing that it's still popular.
@len322
@len322 8 месяцев назад
it's like playing an older version of minecraft and being like oh.. yeah.. can't place stairs upside down yet..
@richardbennett4365
@richardbennett4365 8 месяцев назад
It even has package management now.
@ssmith5048
@ssmith5048 8 месяцев назад
yeah and also oop support - neither necessarily good ideas... modern Fortran rocks , always be wary of bloated bs concepts being introduced...
@noturgokuxd
@noturgokuxd 8 месяцев назад
3:45 donut has a whole in the center got me off guard ☠
@DocSineBell
@DocSineBell 8 месяцев назад
Fortran programmer here. I do heavy scientific calculations and Fortran is very good on that. I also kinda love many aspects of it, especially after the updates of the recent years. Memory management is really cool.
@gabrielmourao2854
@gabrielmourao2854 8 месяцев назад
Asking as someone that just learned Fortran as a word. What does it have that you think is better than c for doing calculations?
@DocSineBell
@DocSineBell 8 месяцев назад
@@gabrielmourao2854 I am by no means expert in C but - Fortran is literally "formula translator". It's made for that and it shows. It's very handy despite being low level, and it has a good syntax for that. Plus, it feels like you are in total control of what's happening. On the other hand, Fortran is terribile for everything else.
@deadcatthinks6725
@deadcatthinks6725 7 месяцев назад
In a coding class years ago we actually went below assembler - we used microcode, zeroes and ones to create the assembly instructions. Wild times, not.
@johnmckown1267
@johnmckown1267 8 месяцев назад
My first computer language was Fortran II on an IBM 1620 in college. Only had a card reader/punch. Output was on cards. Had to take the cards to another machine to get the cards printed onto paper to hand in. Then threw the cards in the disposal bin.
@sybaseguru
@sybaseguru 7 месяцев назад
Autocode preceded Fortran by 5 years. It was devoloped at Manchester University and was the first compiled language. However the fact that Fortran is still active today is an indication of its flexibility and development. Funny how Python repeats the same mistake as early fortran with leading space dependency, something Fortran got rid of 50 years ago.
@existantperson8624
@existantperson8624 8 месяцев назад
song at 5:36 is The Toxic Avenger - Make this Right
@submariner_42
@submariner_42 3 месяца назад
I needed this thx
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f 8 месяцев назад
wow, Fortran 90 code looks kind of like Julia. or rather the other way around. it's interesting that some languages keep coming to ::Type and `end` keyword, is it an homage to Fortran? or is there some practical parsing-related consideration?
@georgerogers1166
@georgerogers1166 8 месяцев назад
Both. Algol/Pascal/Matlab influence as well.
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f 8 месяцев назад
@@georgerogers1166 and what is the practical side?
@calebfuller4713
@calebfuller4713 7 месяцев назад
Well, I notice that most programming languages tend to either follow the Fortran model or the C model to varying degrees, what with COBOL proving a bit of a dead end as far as influencing future languages. With Fortran-like languages, a new code statement is generally on a new line, and code blocks are delimited with a phrase like "end" or similar. This includes languages like BASIC, Julia, Pascal, and Python. Python takes this approach to the ultimate logical conclusion by actually using the indents themselves as code blocks, removing the need for an "end" type statement. Other Fortran-like influences include a generally more lax approach to variable typing, with implicit typing often being the case. The C-like languages such as Java, Rust, and Perl, all tend to use curly brackets { } to mark out code blocks, generally ignore spaces or new lines, and require a specific termination character for each statement, such as a semicolon. They also tend to be a lot stricter with variable typing and require explicit type declarations. IMHO Pascal manages to combine the worst of both worlds, with semicolons on the end of statements, explicit BEGIN and END; around every block, and a whole bunch of other pedantry. 😂 Personally I find Fortran and descendants like Python and Julia MUCH more pleasant and clean looking than the C model of curly brackets and semicolons everywhere. But to sum up the answer to your question, there needs to be SOME way to indicate a code block to the compiler or interpreter and "end" is as about as short and clear as you can get without brackets. Yes, Python is even cleaner, but FORTRAN was originally developed at a time when programmers usually didn't even USE indents in their code!
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f 7 месяцев назад
@@calebfuller4713 you forgot "one liner" languages (haskell, erlang, unison and related), where code mostly consists of definitions and expressions, with virtually no statements. and array languages, where everything is a hieroglyph. of course, there is also lisp, which has the one and only correct syntax.
@mario123abc
@mario123abc 6 месяцев назад
I am a Fortran user, and at the moment in the field of computational mechanics it is still maybe the most used programming language. In Fortran standard 2018, it allows parallel programming directly in the code with coarrays.
@gengisbohx_
@gengisbohx_ 8 месяцев назад
I can see some inspirations on a youtuber called martincitopants. you did an excelant video, it really captivates the brain.
@theMelvinShow
@theMelvinShow 7 месяцев назад
So this channel is basically martincitopants but for coding. I‘ll take a large sub with extra cheese please
@AK-vx4dy
@AK-vx4dy 8 месяцев назад
Urban legend is that this language was easier to mathematicans and other scientist, and they indeed used it and have many fancy libaries wich no one knows how to rewrite them (or is crazy enough), also some constructs are supposedly easier to parallelize. I'm not sure but i suppose direct emulators of this IBM machines are available somwhere but i don't know does they have in browser simpulator of card punchning by mouse 😅 But aside of that very nice trip :) I touched it only once helping some STEM students adapt version from Fortan77 to some older compiler
@CoolKoon
@CoolKoon 8 месяцев назад
"have many fancy libaries wich no one knows how to rewrite them" - This alone wouldn't be a problem, Fortran code can be easily wrapped in C or C++. I think it's the parallelization part that still gives it an edge after all these years.
@AK-vx4dy
@AK-vx4dy 8 месяцев назад
@@CoolKoon Easily linked or wrapped from machine code view, but fortran have own "quirks" or traditions (floating point rounding etc) or in difference to C more was defined than undefined :D Also wraping don't cause to use current processors and architectures.
@l-o-f-i-b-o-i
@l-o-f-i-b-o-i 8 месяцев назад
i found you after primetime reacted your video.....and now i love your vids more than his lol
@AndyFletcherX31
@AndyFletcherX31 8 месяцев назад
I remember some Fortran math libraries where they offset the indexes in arrays for a lot of operations. One slight error and you ended up reading or writing random bits of memory outside the array. The whole mess was almost impossible to debug.
@jino139
@jino139 8 месяцев назад
In my current state it is impossible for me to make that in ANY programming language
@oarabilekoore
@oarabilekoore 8 месяцев назад
Same
@erikkonstas
@erikkonstas 8 месяцев назад
Yeah, it involves physics...
@nevokrien95
@nevokrien95 8 месяцев назад
Fortran and c are the only 2 general languges that can run on gpu with cuda... c++ can also run on gpu with omp but that's basicly it Fortran is still alive and well. Also as one of the fastest languges out there. If u r using numpy u r running fortran
@DocSineBell
@DocSineBell 8 месяцев назад
Yeah. Many fast numerical python packages are actually Fortran under the hood
@ramy8338
@ramy8338 8 месяцев назад
Julia runs natively on a GPU
@nevokrien95
@nevokrien95 8 месяцев назад
@ramy8338 oh that's super cool!!! Dam thats like a really good reason to do data scince with it. Can u be clever about memory or are u stack with the gc?
@HansBezemer
@HansBezemer 8 месяцев назад
C'mon, it's like Classic BASIC on steroids. And it has *GREATLY* developed over time. In Fortran, 1st version, they still needed labels (in columns 1-5) and your statement *HAD TO* be placed in columns 7-72. A comment was designated by a "C" in column 1. Column 6 was for a continuation sign (a bit like "\" in C string literals). Think punch cards - not terminals. All the "fancy" statements you're allowed to use in your program (like DO loops) were added much later - 1966 if I remember correctly - when "structured programming" slowly began to be a thing, after ALGOL had become fashionable. Listing (and often: initializing) your variables at the beginning of a program (or function) is a thing "old timers" like me still do - even in languages that not require it. And old habit, I guess, but not without its merits IMHO. In short, what you worked with was a much updated version of what actually came into existence in 1957. But it was a major milestone because of the formula parser that was able to figure out algebraic infix notations and transform them into (most likely) postfix assembly language. It has influenced every single language that came after it - with the possible exception of Forth and Lisp.
@arzen9835
@arzen9835 4 месяца назад
I enrolled into uni last year and we're taught FORTRAN 77. Was pretty surprised when was asked to translate an old software for wind tunnel into C++ from diskettes. And also I learnes how useful the operators for tapes really are. Feel like an archaelogist
@michaelcurry3795
@michaelcurry3795 8 месяцев назад
"Fortran is the programming language" 🤣 "Assembly is the first programming language" 🤣 -Plankalkül❤
@tombuster
@tombuster 7 месяцев назад
It seems like you're rendering all faces of the donut and adding the resulting bounced light as a value of a pixel/character (as if the surface was semi-transparent), or one side of your donut had its normal vectors flipped... I'm not sure how that transaltes to your code and how it calculates light bounces or whatever else you need in order to get an image out of it, but basically it looks like the outside of the donut is transparent and the inside is what appears as the "rendered" result. The issue appears in the donut's syarting position and you can see that the hole and outside edge are lit in an unnatural way
@holyordersoftheemperorsinq246
@holyordersoftheemperorsinq246 6 месяцев назад
Why Fortran is used to this day with the modern technologies: bc Fortran IS the backbone of the modern technologies. Example: many Python machine learning libraries are APIs for C programs (bc C is very efficient in manipulation of resources, particularly memory) that in turn call in Fortran programs that do hardcore linear algebra on the thousands of cores in the GPU and return the result. Fortran is the language that keeps supercomputers running and is, like many of the older languages, a direct and unforgiving language for people that know what they are doing.
@latt.qcd9221
@latt.qcd9221 8 месяцев назад
If you need to work with arrays and do linear algebra work in high-performance, scientific computing like in fluid dynamics or n-body simulations on super computers, then Fortran is an excellent language for it. Not only is it fast, but for array manipulation, it's very easy to use. As an example of how easy arrays are to use in Fortran, say you needed a 4-dimensional array with 10 elements in each like so, real, dimension(10,10,10,10) :: my_array If you wanted to initialize the entire thing to have just 1.0 as the elements, all you have to do is, my_array = 1.0 No quadruple for loop like C++ would need. It's as easy as Python, except *_fast._*
@master74200
@master74200 8 месяцев назад
And if you're using Python to do this using the appropriate mathematics libraries, chances are it's using some BLAS implementation that is done using some version of FORTRAN. Because it's just faster than anything else.
@latt.qcd9221
@latt.qcd9221 8 месяцев назад
@@master74200 Yup, most of the math libraries in other languages are often making calls to BLAS. BLAS and LAPACK are really easy to call natively in Fortran. Just link against them in your build system, and then you can simply call the routines.
@mionome501
@mionome501 4 месяца назад
I'm physicist researcher and i use vasp a software written in fortran to simulate electrons in materials. It's the fastest actually thanks to fortran
@DeadnWoon
@DeadnWoon 2 месяца назад
I believe, Fortran is one of the most finely designed languages in history.
@xenaretos
@xenaretos 6 месяцев назад
Used to write Fortran 90 in the mid to late 2000s at the university as a physics student. Felt like a real physicist and not one of those IT types. And yes, there's a lot of legacy fortran libraries and not a lot of need for user interfaces in the scientific community, so, institutions that used them in the past continue to use it.
@plustgraaf
@plustgraaf 2 месяца назад
Fortran 77 only vaguely resembles the original. My history with FORTRAN (yes, that is the original capitalization) was with FORTRAN II on an IBM 1230 in 1969. You wouldn't even recognize it, it only had arithmetic if statements and none of those fancy while statements and the like. Later in my career, I actually wrote a FORTRAN complier that ran on an IBM mainframe and generated assembler language for a DEC PDP-11.
@DefaultFlame
@DefaultFlame 8 месяцев назад
I've just started watching the video, but my understanding is that FORTRAN's continued usage is based on two things. 1. Legacy hardware and code used in some of the most vital parts of modern civilization. 2. It's very stable and low level.
@pjm3005
@pjm3005 6 месяцев назад
" Legacy hardware and code used in some of the most vital parts of modern civilization.
@WilburJaywright
@WilburJaywright 4 месяца назад
I read about Fortran for a research paper. Then I had a .F file for some reason on my computer. Imagine my surprise when Windows Explorer 10 not only recognized the extension as Fortran source (it wasn’t but the extension entry was in there), but when I double clicked it Windows _tried to run it._ 😂 Bro, the ole’ boi’s still kicking after all this time! 😊 TYJ that was fun.
@presi3005
@presi3005 8 месяцев назад
Great video! Nice work, martincinoapnts!
@CesarGrossmann
@CesarGrossmann 6 месяцев назад
I learned programming with FORTRAN. No idented code. First class not to use punched cards. 1987. Discovered bubble sort by myself. FORTRAN compiler, Link80 to turn the object into an executable, WordStar in non-document mode, with all that Ctrl K-B, Ctrl K-K, Ctrl K-X, Ctrl K-C, Ctrl K-V, etc... Everything you needed in a 540Kb 5 1/4 " floppy disk. I think all FORTRAN code that is running out there is in physics labs and the likes, doing solid state simmulations, matrix of complex numbers multiplications, and the likes. Who would want to use ANSI escape codes to position characters and to paint characters to draw a flying donut? Remember, put a "C" in column 6 to comment the line.
@pelegsap
@pelegsap 5 месяцев назад
The fact that there is a Fortran LSP implentation *and* a treesitter grammer is absolutely amazing to me. Not surprising - just amazing.
@harryseldon362
@harryseldon362 6 месяцев назад
I use to be a programmer for the VA Hospital and they used a version of the MUMPS programming language. It supports a database and strong string manipulation. An oddball language for sure, but a lot of fun.
@phrygianphreak4428
@phrygianphreak4428 7 месяцев назад
I like this, but this technically isn't the oldest programming language. Before compilers were invented, computer scientists had to use physical boards as their ROM akin to old school arcade cabinets. There's a lot of argument over whether this qualifies as a programming language or a storage medium, but for your suffering I would say it is a language - the language of physical elections. Computers back then didn't have instruction sets. Instead, they just had the raw ALU and hardware like RAM available to the board, so the board was sort of a central control unit (so a CCU instead of a CPU) while also serving as the ROM. I think you could pull something like this off with a raspberry pi and breadboards. Just set up the pi to listen to its external pins and only make basic airthmologic operations and ram available to the breadboard. You can use essential logic gates, multiplexes, and the like to make a basic program that pushes computation commands and ram queries off to the pi, forcing the pi to behave as a slave. Have fun destroying yourself trying to figure out the timing
@criptych
@criptych 7 месяцев назад
It's different from one core to the next (like assembly) but it is known as "machine *language*", so I'd say it counts.
@johnopalko5223
@johnopalko5223 6 месяцев назад
FORTRAN was my very first programming language. I learned it in high school, way back in 1971. Today I program mainly in C but I still dabble in FORTRAN from time to time. It's a nice language for number crunching.
@Mythilt
@Mythilt 8 месяцев назад
The digital controls in jet engines (the FADEC) are coded using FORTRAN still, since making any changes to the existing code requires alone requires quite a lot of money to validate, much less change the coding language. That said, there are projects that are moving towards using C for the FADEC development, but its been over 10 years since I worked on such, and I have no idea where it is now.
@Piupiumacher
@Piupiumacher 4 месяца назад
Some old digitalised nasa papers have fortran source code "attached" as scans, That is a very interesting to work with almost like a small time capsule.
@humbledb4jesus
@humbledb4jesus 7 месяцев назад
fortran was awesome...i self taught basic on a commodore pet (45yrs ago) and then when i went to university in 89, i took fortran programming with my astrophysics degree... but then c, c++ came and destroyed my dream of being a programmer...i couldn't get past assigning variable strings...
@pjm3005
@pjm3005 6 месяцев назад
lol. you would have loved pointers.
@seckinseckin3919
@seckinseckin3919 8 месяцев назад
i liked your humor style, it made me laugh sometimes in your video.. im an computer engineer and when you say maybe you weren't smart enough to complete this job in the video i questioned my existential :)) .. good work keep go on bro...
@flamurisa1748
@flamurisa1748 5 месяцев назад
imagine programming this back when this language was made
@General-Failure
@General-Failure 8 месяцев назад
My customers in the insurance industry still use IBM Hosts and FORTRAN. Their code base has grown over several decades, and their in-house FORTRAN programmers not only maintain it, but routinely expand it. These customers also continue to train new FORTRAN programmers. It is not a glamorous job with "sexy" modern programming languages, but once people are hired, their job security is much better than commonly found in the software development sector.
@Bijoux_DerWunderCatsen
@Bijoux_DerWunderCatsen 7 месяцев назад
I liked Fortran. It was the first programming class in the CS undergrad program I was in. I was in a test class using cutting edge DEC Vax system (1983). I had a C64 and already knew basic and assembler, but Fortran on that platform opened my eyes into what could be done. I didn't realize I had done the hard work already by learning assembler. I felt like it was my own little cheat code.
@Minastir1
@Minastir1 4 месяца назад
Getting into 3d graphics while learning a new language is a bold move
@Lgnno10125
@Lgnno10125 5 месяцев назад
Were you inspired by martincitopants any? Some of thd editing is a bit similar. All the same, your stuff is great! Keeo up the amazing work man
@product2759
@product2759 8 месяцев назад
I'll always remember what my Python coach told me: "The best debugging method is a good night's sleep." And blind copy-pasting. But sleep works too.
@TheMathues123
@TheMathues123 2 месяца назад
i really love these videos types, turns funny to learn hard things.
@mignik01
@mignik01 13 дней назад
This is what we do still to this day. Fortran is very popular in scientific computing and simulation. They say it is faster (once you get the damn thing running). But if your code has to run for 10 days, any savings matter. The "implicit none" on the thumbnail gave me anxiety.
@AP_GAMingYTOFFICIAL
@AP_GAMingYTOFFICIAL 2 месяца назад
its crazy that at first when computers was developing they had to write binaries manually for a programming language or software and stuff
@darkguardian1314
@darkguardian1314 2 месяца назад
FORTRAN IV isn't that bad. It was my second language after BASIC. At the time, I used the school's IBM 360/30 with punch cards and matellic reels! I still have my stack somewhere. We didn't have monitors so it was printed...on paper...
@IndividualBean
@IndividualBean 7 месяцев назад
As a fan of coding and the Australian rainbow frog man, this channel speaks to me
@Hyreia
@Hyreia 7 месяцев назад
Yeah, some of the transformation math is probably of but who cares! You did it!! C and Pascal make you declare all your variables at the top of your code chunks. My time in C got me used to it. It's a compulsion still. I think it just looks tidier. It tells the reader of the function: "there's gonna be variables involved with this code chunk below, here they are. Follow these".
@colemoore5003
@colemoore5003 6 месяцев назад
I'm a very new software engineer and the lab I work in was designed in the 70's entirely in Fortran. I've had the unfortunate opportunity to port most of it into C++ over the last 6 months, and yes, I can sympathize with your experience "forgetting how to do even simple things". Coming from a C++/Python background, Fortran seems to operate in an incredibly arcane and nebulous fashion- but it does have some beauty in its weird ways of doing simple things.
@paladinfriend
@paladinfriend 6 месяцев назад
I don't appreciate that you didn't actually talk about fortran and just your process of learning some other random thing
@DuffkaBigNerd
@DuffkaBigNerd 5 месяцев назад
No fucking way algerian programmer martincitopants before GTA VI
@BlackAdder4Ever
@BlackAdder4Ever 7 месяцев назад
Reminds me of an old Fortran joke: "GOD is REAL, unless declared as INTEGER."
@NimhLabs
@NimhLabs 6 месяцев назад
Oh right, the reason why you are expected to declare all your variables at the start of your code, is when Fortran was first being made, computer memory was in a very high premium. I want to say they were still using memory meshes at that point in time (where you would crochet your RAM--and it persisted after shutdown)... but I'd want to double check that fact... and I don't want to Think of it like how recipes for cooking food declare all the food items you will need at the start--and don't randomly add food being needed to make the dish lower down in the recipe itself. OR rather... think about how well made recipes for cooking food do that (there are some that do not) It is a fairly decent coding practice to get use to doing. One of those "better coding guidelines"--that you treat like Pirate Parley(not rules, more so guidelines)
@vandarkholme4745
@vandarkholme4745 7 месяцев назад
Fortran is still used daily in physics you know
@Templarfreak
@Templarfreak 8 месяцев назад
i wonder if you're like one of the only people ever to make a (partially-functional) 3D rendering engine in Fortran, or at least solo anyway
@arjix8738
@arjix8738 8 месяцев назад
people have that done that in plain assembly, remember roller coaster tycoon? I imagine a lot of university students have made a 3d ascii renderer in fortran
@Templarfreak
@Templarfreak 8 месяцев назад
@@arjix8738 assembly is a completely different beast, sure, but this is still pretty damn impressive given how primitive fortran is lol also RCT did not have 3D graphics in the traditional sense, it used 3D for logical purposes but not for rendering, all graphics were a rendered sprite
@capdyn735
@capdyn735 8 месяцев назад
​@@Templarfreak I recently learnt Fortran 2003, and it's a surprisingly advanced language. It has an object model, support for doing mathematical operations on entire arrays and a module system.
@Templarfreak
@Templarfreak 5 месяцев назад
@@capdyn735 it's advanced for its time, what i mostly mean by fortran being "primitive" is that it is 100% not meant to do something like this and doing so in something like Fortran is basically as close to reenacting the wild west of computing you can get without doing something like what arjx's suggested, of writing a 3D renderer purely in assembly, or in the oldest (non-punchcard versions) of LISP.
@DeathlyShadowXD
@DeathlyShadowXD 7 месяцев назад
I do love Fortran, its got modern GPU, MPI and OpenMP support so its definitely not going any where for a long while.
@thedinobros1218
@thedinobros1218 4 месяца назад
You are really lucky that you acknowledged that Assembly is actually the oldest language.
@lucasgasparino6141
@lucasgasparino6141 7 месяцев назад
There's a good reason for Fortran to be popular with science and research: it's easy to construct mathematical expressions and it's well supported for HPC computing. It's also easy to learn when compared to C/C++. It's the language of our CFD SEM code , which we have ran on 100 A100s xD.
@datochikhla8572
@datochikhla8572 7 месяцев назад
2:37 this is definition of programming
@fancypesto3647
@fancypesto3647 7 месяцев назад
I am learning Fortran to simulate stellar evolution for my undergrad physics research, the language seems quite surprisingly still alive and well.
@anon_y_mousse
@anon_y_mousse 8 месяцев назад
I can't help but think, "just use C".
@evdrie1939
@evdrie1939 4 месяца назад
blud, i'm literally watching this at 2am turn on dark mode! (I think I got an epilepsy attack or something 4:58). the vid was fun tho... keep up the good work
@humildao5450
@humildao5450 3 дня назад
for the few who are interested, the name of the streamer in 1:31. is called amifa, whose Twitch channel was taken down
Далее
10 weird algorithms
9:06
Просмотров 1,2 млн
You Lose You BSoD
12:02
Просмотров 16 тыс.
how NASA writes space-proof code
6:03
Просмотров 2,2 млн
How A Steam Bug Deleted Someone’s Entire PC
11:49
Просмотров 998 тыс.
Is Computer Science still worth it?
20:08
Просмотров 312 тыс.
TROLLING CS2 Cheaters With A Fake Bait Software
11:27