
A Fortran Web Framework - da02
https://fortran.io/
======
phantom_oracle
1) What makes a language like Fortran so intimidating?

I know it's the butt of many jokes (together with Cobol and Assembly -
especially in the context "really hard to learn/use languages) but just
scrolling through the github repo (frontpage), the code doesn't seem _that_
intimidating (or any less confusing than Go would seem for someone unfamiliar
with its nuances).

2) What makes Fortran so much 'faster' at computation than C?

C is the go-to for any low-level performance, but in terms of computation,
Fortran seems to do better (or so we're told). Is/Was Fortran a better-
designed language, that allowed it to perform better than C at computation?

~~~
neurostimulant
Modern fortran dialect is actually not so bad. It's actually pretty awesome
and let you develop program that take advantage of distributed computing and
gpu processing easily. Also, I don't think any mainstream languages these days
have vector operations as good as what fortran currently have. But the old one
is pretty horrible though, just like most other languages from 30 years ago
when compared to modern languages. The things that annoy me the most when
working with legacy fortran code a while ago (does not apply to modern fortran
dialects):

\- very terse and cryptic variable naming. Understandable since fortran 77
only allows variable to contains up to 6 characters. But it makes working with
large codebase very painful.

\- You had to use upper case only. It may not sounds a big deal, but you'll
get tired of it eventually when working with lots of fortran code.

\- Implicit typing: If your variable starts with i-n character, it will be
treated as integer. Otherwise it's a float. You better not forgetting this one
or terrible bugs will appears on your code.

\- Source code fixed format: your source code must conform to this format or
the compiler won't recognize it:

    
    
      - only the first 72 chars get parsed; 
      - first 5 characters/columns of the line must be blank or contain numeric label
      - if your code is not going to fit in one line, you can extend to the next line by marking it with a non-numeric character in the 6th columns. otherwise it should be blank.
    

I think there are more annoyances but those are the ones that I still remember
to this day.

~~~
vog
_> You had to use upper case only. It may not sounds a big deal, but you'll
get tired of it eventually when working with lots of fortran code._

Fun fact: Nowadays people are doing the same with SQL - even though there is
absolutely no reason to do so.

    
    
       select * from mytable
    

is as good as:

    
    
       SELECT * FROM MYTABLE
    

Nowadays, upper case SQL seems to be a sign that the code is either 1) auto-
generated by an ORM, or 2) written by a novice, or 3) written by a project
with very strange coding styles (the last two seems to be some kind of cargo
culting).

~~~
nicoburns
A third variant:

SELECT * FROM my table

has a purpose, which is to visually separate SQL statements from table and
column names.

~~~
vog
Indeed, this is a common workaround when your editor has no proper syntax
highlighting. Still, in today's world nobody would write in that style in
other programming languages.

You see the same issue with other relicts, for example, Pascal back in the
90s. Old text books wrote Pascal in uppercase style:

    
    
      PROGRAM HelloWorld(output);
      BEGIN
         ...
      END.
    

But in reality, everybody using e.g. the Turbo Pascal IDE wrote lowercase
instead, because it easier to type and because of proper syntax highlighting:

    
    
      program HelloWorld(output);
      begin
         ...
      end.
    

Maybe this is not so much about the maturity of the developers (as I assumed
in the previous comment), but about the maturity of the tooling.

~~~
lostboys67
you do know that some SQL's are case sensitive for table names etc ?

~~~
smoothdeveloper
Hence I found it easier to keep all lowercase to avoid headaches.

------
marsrover
I really like seeing things like this come out. I don't know any Fortran,
probably never will learn it, and will probably never use this framework. But,
I can imagine this was an immensely enjoyable project for the author. Projects
like this, in my opinion, are the definition of a labor of love.

~~~
StevePerkins
One of these days I going to release my web framework for Common Lisp.

I call it "Railth".

~~~
lacampbell
Have you considered a micro-framework? "Thinatra" rolls of the tongue.

~~~
skykooler
Or perhaps "Flathk"?

------
zem
I was disappointed to learn that "finally" was not the project name

~~~
pcurve
lol that's hilarious. I wish that was the case too.

~~~
labster
I'm getting the 502, so I'm not sure what the name is supposed to be. But I'm
hoping for "FORTRAN on Frames".

~~~
zem
it's just called fortran.io, same as the domain name

------
da02
The homepage was working fine. But, if you're getting the 502 error, here's
the git repo w/README: [https://github.com/mapmeld/fortran-
machine](https://github.com/mapmeld/fortran-machine)

And just for more fun, more Fortran libs for fun and profit: Awesome Fortran:
[https://github.com/rabbiabram/awesome-
fortran](https://github.com/rabbiabram/awesome-fortran)

~~~
enraged_camel
I got the 502 error and thought that was the joke.

------
lacampbell
This actually looks really neat. Linear Algebra as a service, anyone?

Speaking more broadly - I hope we see more web stuff in the statically typed,
machine code compiled camp. It is my understanding that web apps do more and
more client side these days and only really need a "thin" server. Ruby or
Python seems over kill.

~~~
jasoncchild
It's funny to me; when I got my first taste of "web apps" it was writing c
apps to process cgi requests a bazillion years ago. It is neat to see people
advocating for native compiled code in this area. I do lots of node these days
and full stack so I appreciate the client side leaning for routing and
rendering. If you don't need SSR then I'm sure you could create a very
performant server in rust or c. Sounds fun!

~~~
steveklabnik
SSR?

~~~
kevan
Server Side Rendering

------
joshwa
Let's not forget about COBOL ON COGS:

[http://www.coboloncogs.org/](http://www.coboloncogs.org/)

~~~
lacampbell
But the Joke is that Cobol is really verbose. Is modern Fortran more verbose
than say, Go?

~~~
baldfat
It is faster. Seriously as a teenager I FORTRAN would run circles around
everything but Assembly. It is still in use even in R and many statistic
languages/programs (Why reinvent the wheel)

COBOL needs to DIEEEEEE!!!!!!!!!!!

~~~
Senji
Lets make a COBOL transpiler and run the mainframe legacy code on top of
asm.js

~~~
guitarbill
I kind of want to write up a buzzword filled pitch and see if management
bites.

------
makmanalp
I saw a 502 bad gateway message and figured this must be an elaborate joke :-)

------
egeozcan
They made a Jade template parser in Fortran! The cycle will be complete when
we start writing mainframe code with JavaScript.

------
qwertyuiop924
This is pretty cool. And it's even semi-practical, unlike some web frameworks.

But I do have a question: Can this new FORTRAN framework match the performance
of the best web framework out there, INTERCAL on Interstates?
[http://www.intercaloninterstates.org/](http://www.intercaloninterstates.org/)

------
Everhusk
Ah yes, now I can Finally sleep at night.

------
da02
This was previously submitted before by the author:
[https://news.ycombinator.com/item?id=11938405](https://news.ycombinator.com/item?id=11938405)

His homepage: [http://mapmeld.com/](http://mapmeld.com/) Fascinating person.
Has worked with various languages and does educational work throughout the
world with OLPC laptops.

------
tim333
Cached:
[http://webcache.googleusercontent.com/search?q=cache:fortran...](http://webcache.googleusercontent.com/search?q=cache:fortran.io)

Github: [https://github.com/mapmeld/fortran-
machine](https://github.com/mapmeld/fortran-machine)

------
bmh100
I'm normally an advocate for Fortean for numerical computing, but web servers
seem unholy. However, I do appreciate the code reference on querying SQLite
from Fortan.

------
cr0sh
This seems interesting. It reminds of a long time ago, in a job far, far away
- writing a simple "web server" using DB/C (a COBOL variant).

------
julienmarie
Ouch. 502 Bad Gateway

~~~
ecthiender
Yes. Hacker News hug of death.

------
chaz6
Right now the site seems to be down...

502 Bad Gateway nginx/1.4.6 (Ubuntu)

------
azinman2
502 Bad Gateway. Oh the irony.

------
lqdc13
anyone benchmarked this?

Is it just "it works" PoC or does it run OK?

------
sconxu
502 Bad Gateway

~~~
yla92
It seems to be back now.

Fun fact : I informed the author (which I'd a good fortune to get to know him
for some time) this morning (east time zone) that his project is (again) on
the front page on HN. He was in the air on his way to Taiwan. We both wished
it doesn't break but it seems like it did and he restarted it again.

------
damptowel
502 Bad Gateway

(chuckles)

------
zac99
site is down

------
tomcam
news you can use

------
themihai
Fortan.io is down

------
xkcd-sucks
Still better than Javascript...

