<?xml version="1.0" encoding="utf-8" ?><transcript><text start="0" dur="3.919">fortran a compiled imperative</text><text start="2" dur="3.68">programming language famous as the first</text><text start="3.919" dur="4">ever high-level language designed for</text><text start="5.68" dur="4.8">humans it was developed in the 1950s at</text><text start="7.919" dur="5.281">ibm by john bakkus a guy who was too</text><text start="10.48" dur="4.48">lazy to write assembly for the ibm 704</text><text start="13.2" dur="2.96">mainframe computer the haters said it</text><text start="14.96" dur="4.399">would never be as performant as</text><text start="16.16" dur="4.959">hand-coded programs but by 1957 formula</text><text start="19.359" dur="3.76">translator became the first computer</text><text start="21.119" dur="4.08">language standard at the time computers</text><text start="23.119" dur="3.761">were extremely rare but fortran was a</text><text start="25.199" dur="3.361">huge technical breakthrough because for</text><text start="26.88" dur="3.2">the first time ever people outside the</text><text start="28.56" dur="3.36">computer science realm could actually</text><text start="30.08" dur="3.28">use a computer most importantly the</text><text start="31.92" dur="3.36">language implemented the first</text><text start="33.36" dur="3.6">optimizing compiler which was able to</text><text start="35.28" dur="3.599">produce machine code just as fast as</text><text start="36.96" dur="3.439">anything coded by hand the language has</text><text start="38.879" dur="3.36">evolved into many different versions</text><text start="40.399" dur="3.441">over the years and is still in use today</text><text start="42.239" dur="3.521">primarily for heavy duty number</text><text start="43.84" dur="3.44">crunching and scientific computing when</text><text start="45.76" dur="3.6">your grandma wrote fortran back in the</text><text start="47.28" dur="3.84">70s she didn&amp;#39;t have access to fancy</text><text start="49.36" dur="3.679">tools like editors and terminals and</text><text start="51.12" dur="3.759">instead wrote her code on a punch card</text><text start="53.039" dur="3.52">each card represents one line of code</text><text start="54.879" dur="3.601">and is kept neatly in a stack where it</text><text start="56.559" dur="3.761">can then be fed into a card reader to be</text><text start="58.48" dur="3.28">compiled the modern developer can get</text><text start="60.32" dur="4.08">started by installing the fortran</text><text start="61.76" dur="5.44">compiler then create a file ending in f</text><text start="64.4" dur="5.28">or f95 to specify a certain version like</text><text start="67.2" dur="4.4">fortran 95 use the program keyword to</text><text start="69.68" dur="3.759">give your app a name in older versions</text><text start="71.6" dur="3.519">keywords used all caps because the shift</text><text start="73.439" dur="4.081">key didn&amp;#39;t exist on punch card machines</text><text start="75.119" dur="4.561">until the 1970s declare variables by</text><text start="77.52" dur="4.16">starting with a type followed by a name</text><text start="79.68" dur="4.64">and optionally a default value any</text><text start="81.68" dur="4.079">variable names that start with ijklmn</text><text start="84.32" dur="3.52">will automatically be considered</text><text start="85.759" dur="3.921">integers to disable this ancient feature</text><text start="87.84" dur="3.599">use the implicit nun directive at the</text><text start="89.68" dur="3.6">top use the character type to create a</text><text start="91.439" dur="3.68">string by declaring it with a fixed</text><text start="93.28" dur="3.76">maximum length now print that value to</text><text start="95.119" dur="4.241">the standard output using the executable</text><text start="97.04" dur="4.24">statement of print star in addition the</text><text start="99.36" dur="3.68">dimension keyword can be used to create</text><text start="101.28" dur="3.6">an array of numbers and multiple</text><text start="103.04" dur="3.52">dimensions will create a matrix just be</text><text start="104.88" dur="3.36">careful not to allocate too much memory</text><text start="106.56" dur="3.44">because your apple ii only has four</text><text start="108.24" dur="3.44">kilobytes of ram early versions of the</text><text start="110" dur="3.52">language didn&amp;#39;t perform fine-grained</text><text start="111.68" dur="3.759">memory management but modern versions</text><text start="113.52" dur="4.16">support pointers that can manually</text><text start="115.439" dur="3.761">allocate and de-allocate memory but the</text><text start="117.68" dur="3.36">real killer feature of fortran when it</text><text start="119.2" dur="4.08">came out in the 50s is the ability to</text><text start="121.04" dur="4.48">perform loops perform loose perform</text><text start="123.28" dur="4.24">loose the do and do while loops made it</text><text start="125.52" dur="3.76">relatively easy for anybody to tell a</text><text start="127.52" dur="4">computer how to do something multiple</text><text start="129.28" dur="4.4">times on top of that fortran also made</text><text start="131.52" dur="4.16">code reusable with procedures a function</text><text start="133.68" dur="3.84">procedure takes immutable arguments</text><text start="135.68" dur="3.6">performs some kind of calculation then</text><text start="137.52" dur="3.359">returns a value it can be called with</text><text start="139.28" dur="3.679">its name elsewhere in the code a</text><text start="140.879" dur="3.921">subroutine is another type of procedure</text><text start="142.959" dur="4.081">which can take mutable arguments but</text><text start="144.8" dur="3.519">does not provide a return value now use</text><text start="147.04" dur="3.12">your favorite implementation of the</text><text start="148.319" dur="4.161">compiler to convert your code into an</text><text start="150.16" dur="4">executable binary this has been fortran</text><text start="152.48" dur="3.28">and 100 seconds let me know if you want</text><text start="154.16" dur="3.439">to see a full tutorial in the comments</text><text start="155.76" dur="5.04">thanks for watching and i will see you</text><text start="157.599" dur="3.201">in the next one</text></transcript>