NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Show HN: We built a terminal-only Bluesky / AT Proto client written in Fortran (github.com)
vissnia 1 minutes ago [-]
I'm curious if you used AI during development and how it handled Fortran
jrmg 5 hours ago [-]
It seems you’ve written an extensive blog post about this, but I don’t see a direct link anywhere!

https://www.patreon.com/posts/fortransky-we-in-153457794

FormerLabFred 4 hours ago [-]
To the repo? It’s in the blog post head, in section under first screenshot,

https://github.com/FormerLab/fortransky

jrmg 4 hours ago [-]
No, I mean the other direction.

The repo is what’s this HN post links to, and I don’t see a link to the blog post in it or in other comments here. The blog post is interesting!

FormerLabFred 4 hours ago [-]
Ok got you. Good point, added to repo README
lzhgusapp 13 hours ago [-]
Love seeing niche Show HN projects like this. The choice of Fortran is wild but that's what makes it fun. As someone building small Mac utilities, I appreciate any project that proves you don't need a massive stack to ship something useful.
FormerLabFred 12 hours ago [-]
Thanks for the feedback!

We got a spec for Assemblersky. Will be a weekend project. Cancel Easter :) And probably Midsummer too…

We got image composer and decoder plugged in in dev env, but will let this first open version breathe first. ASCII or early Apple algo

Fortran-fast feed builder probably in next open version. It crunches fast

Morning, 9 o’clock in Sweden, coffee and check-the-feed-on- Fortransky-time :)

bombcar 5 hours ago [-]
COBOLsky. It’s enterprise webscale.
worldmerge 7 hours ago [-]
I’ve never seen fortran before. Wow, that looks more readable than a lot of modern languages.
bee_rider 6 hours ago [-]
Modern versions of Fortran are reasonably pretty.

It’s a fairly nice language. You can probably get better performance out of C/C++ with unlimited effort. But, it is really nice for allowing computational scientists to get, like, 95% of the way there.

I think it actually suffers from the reputation as this ancient/super hardcore performance language. The name comes from “Formula Translating System,” which implies… it was written for people who speak human languages first!

sitzkrieg 4 hours ago [-]
ive maintained a simulation software where the core is written in fortran. its using some intel math library that is expensive that i cannot recall, does immense calculations and makes faster binaries than c on every compiler we tried
extraduder_ire 1 hours ago [-]
Have you tried using the restrict keyword everywhere you can in c?

In Fortran, arrays are not allowed to overlap which allows some optimisations. c has rules in the spec about how memory accesses must occur, and overlapping arrays being possible prevents some compiler optimisations. The restrict keyword is you promising that the memory at some pointer won't be accessed through another pointer.

You can compare two implementations in Fortran/c using godbolt to see how each of them compile.

bee_rider 3 hours ago [-]
Interesting.

MKL is Intel’s famous numerical library (it includes things like BLAS “basic linear algebra subroutines” and fast Fourier transforms). It is availible for free, but IIRC they had some support plans maybe, maybe that’s what you are remembering?

It is closed source, but you can look at the source of the best open source competitor libflame/BLIS, and see that most of the performance comes from C and assembly.

It is difficult to beat “unlimited effort” C, but not many program really justify that treatment.

foxglacier 2 hours ago [-]
MKL used to not be free. You had to buy it from a local reseller for a few hundred dollars per developer.
cmrdporcupine 7 hours ago [-]
Modern dialects of Fortran, sure.

Old school Fortran from before they added cleaner and more structured elements is terrifying.

cat-turner 22 hours ago [-]
out of curiosity, why fortran? no disrespect. I wrote a lot of scientific software in the earlier days of my career and I learned fortran to update ocean modeling software.
FormerLabFred 21 hours ago [-]
You are not the first one to ask :)

We built Cobolsky. Will go public soon. Parallelly too curious on Fortran. The world is better with a Fortran-based social network client in it :)

When we are building the feed composer, in next version, Fortran will be great for the algorithm etc.

Keeping the ancient languages alive. I built some Cobol stuff many years ago. Back at it again. Rusty.

Both Cobolsky and Fortransky looks great on Swordfish90’s cool-retro-term, but we are building our own terminal for Fortransky too. There is a blog post with screenshots over at Patreon/formerlab

Can’t get enough Fortran

embedding-shape 21 hours ago [-]
> The world is better with a Fortran-based social network client in it

If you don't mind me asking, why is the world better with more Fortran-based software?

FormerLabFred 21 hours ago [-]
Our modern languages are built on it, and it’s incredibly fast,

so it deserves to be kept alive. We owe a great deal to the people who wrote it in the 1950s I guess

mountainriver 21 hours ago [-]
This thread makes me happy
johnisgood 2 hours ago [-]
I know right! I was pleasantly surprised. It has to be one of the greatest news I have heard in a while.
embedding-shape 21 hours ago [-]
> Our modern languages are built on it

It's part of the lineage, yeah, probably started with Algol though? Fast I guess is always nice, but I'm not sure that's enough to keep it alive solely for that, at least to me.

mathieudombrock 13 hours ago [-]
I think the best answer you're really going to get here is that it's cool and fun to learn and use old languages.
embedding-shape 10 hours ago [-]
I'd agree with all of those reasons! I do so myself as well, was just specifically curious about the "The world is better with a Fortran-based social network client in it" part. Don't get me wrong, I've spent too many nights learning "dead" languages too, but never with the idea that the world would be better if I published more code in these dead languages, it's just for my own gratification and learnings.
hedora 18 hours ago [-]
I came here to suggest COBOL as a better fit, then saw your comment a few levels up in this thread.

Out of curiosity, does your implementation use CODASYL?

(For people that don't pay much attention to historical software systems, most CODASYL implementations were similar to JSON document databases, so going that way isn't as crazy as it sounds.)

FormerLabFred 11 hours ago [-]
Great comment! Thanks!

No CODASYL, the JSON parser is hand-rolled Fortran with a depth-tracking key scanner

CODASYL not a crazy direction for the feed composer

Got more depth to explore here, still early :)

Melatonic 12 hours ago [-]
How do COBOL and Fortran compare for something like this ?
FormerLabFred 11 hours ago [-]
COBOL is more painful, Fortran better.

Good you raised the topic, can write a blog post on it when we ship Cobolsky. Will be a proof of concept repo. Fortransky is the one

(If AT Proto did fixed-width records instead of JSON, COBOL would be formidable)

bee_rider 7 hours ago [-]
Which version of the language is it? It looks like you used Fortran90 at least (modules are used), which is pretty old, but not totally ancient like Fortran77.

Anyway there are also 2018 and 2023 versions…

fortran77 4 hours ago [-]
I still make a living from Fortran77 work, though much of it is converting it to Matlab.
bee_rider 3 hours ago [-]
Building interfaces or full converting? Either way sounds like a dream job, haha.
johnisgood 3 hours ago [-]
Thank you for choosing Fortran. Seriously, I mean it.

Someone else already said this, but it is awesome because it proves that you can write useful software using languages others consider ancient or dead and therefore "unusable".

Keep up the great work!

enriquto 21 hours ago [-]
> why fortran?

why not? the language is straightforward and loops are fast. It is portable and your code will work unchanged for the next 50 years. It may be a bit verbose, but that's not a big deal with today's tooling.

FormerLabFred 21 hours ago [-]
Fortran will survive the cockroaches even, when the world 404s
foxglacier 2 hours ago [-]
Yea na, Fortran is pretty compiler dependent and there are a lot of compilers. Already old Fortran code used all sorts of now-dead proprietary compilers and can take a huge effort to get it to compile on modern compilers or even modern computers. Modern code might use Gfortran which sometimes makes breaking changes so that's not an option. Perhaps if everyone uses the latest shiny new Flang or whatever, then it'll finally last 50 years? Not likely, given the history.
pklausler 21 hours ago [-]
Your code will work unchanged until you try to change compilers or your compiler adopts a J3 breaking change to the language.
kergonath 20 hours ago [-]
> your compiler adopts a J3 breaking change to the language

Like all the 3 of them they added in the last 30 years, and that compiler vendors are not enforcing anyway because they don’t want to annoy their users?

Windows’ backward compatibility is a joke compared to Fortran.

deadbabe 15 hours ago [-]
Great, can we see some benchmarks?
FormerLabFred 11 hours ago [-]
Cobolsky holds the record for most surprised looks per line of code :)

Fortransky benchmarks pending

the feed scorer will have real numbers worth reporting

Whenever time allows in future: Fortran vs Go vs Python

pklausler 22 hours ago [-]
maybe they weren't really concerned about portability or a decent standard?
FormerLabFred 21 hours ago [-]
It’s keyboard navigation only, and we got the Bluesky firehose raw straight into the Rust decoder. Or we switch mode to Jetstream with m+EnTER :)

You hit l+ENTER to like a post. If anyone replies from Bluesky, we hit n+ENTER and see the notifs. And so on

Fortransky is 70% Fortran, rest is Rust, C and a tiny Python helper

zoom6628 15 hours ago [-]
Brilliant in every possible way. Fortran was first language I learnt at high school in its "PORTRAN" variant.
FormerLabFred 12 hours ago [-]
:) We tried Abacus Fortran on the C64 back in the days and were allowed to stay indoors during breaks doing Basic stuff too on school computer.

One of the guys wrote 8xxROM some 10 years later.

Today known as U−Boot :)

FormerLabFred 3 hours ago [-]
Forecast: Fortransky on Tangled tomorrow Sunday
hk1337 21 hours ago [-]
Are there any other AT protocol apps that aren’t derivatives of bluesky? By that I mean, not social media feed related, twitter clone.
iameli 21 hours ago [-]
Yep lots! Mine is a livestreaming service: https://stream.place

Also a great blogging platform: https://leaflet.pub

Here's a goal tracker: https://goals.garden

This one just dropped recently; it's 44 different atproto-related apps with a cyberpunk theme: https://www.aetheros.computer/

Lots others mentioned here: https://blueskydirectory.com/

FormerLabFred 20 hours ago [-]
AT conference in a couple of days. In Vancouver. Bet they are all there and the rest of the AT bunch.
FormerLabFred 20 hours ago [-]
Don’t know if people are building GitHub-like systems, offline-first app sync etc

Many devs reuse schema and write some twitter/bsky clone

Kind of search engine for my Blueaky likes

Gotta get off the timeline, germ has a messaging app, then there is Tangled and some more

We do Fortransky and Cobolsky now, got more ideas for the protocol than time :)

linolevan 20 hours ago [-]
https://tangled.org/ <--- GitHub on ATProto

that's all I'm aware of

(edit) Oops, just saw that you mentioned it, confused by your first line then. Tangled is awesome!

tjuene 20 hours ago [-]
i am currently working on a dropbox alternative: https://dropb.at
FormerLabFred 3 hours ago [-]
Cool!
Hamuko 8 hours ago [-]
How do you plan on differentiating it from just a trivial setup of an FTP account that's mounted locally with curlftpfs and has files in a SVN or CVS on the mounted filesystem?
tjuene 6 hours ago [-]
good point, i havent considered this at all. its basically dead on arrival
20 hours ago [-]
jrmg 5 hours ago [-]
There seems to be a bunch of Rust in there too?
FormerLabFred 4 hours ago [-]
It’s early version yes. It’s 70% Fortran, next version more Fortran and we will add x86-64 assembly decoder for AT Proto firehose frames
h4ch1 20 hours ago [-]
It's always nice to see production codebases in languages that you've never used but are interested in.

Tangential, but to the author, are there any FORTRAN codebases you feel are well designed?

FormerLabFred 20 hours ago [-]
Good reminder to dig around. Will check. We picked up the Fortran manual and just went for it.

The original Manual exists as a PDF. Was it in a Stuttgart uni URL? Just a search away.

Late in Sweden, gotta Fortran tomorrow. Happy to continue discussion here tomorrow.

vincentabolarin 8 hours ago [-]
'written in Fortran'.

Interesting choice. Why?

Uptrenda 4 hours ago [-]
Whenever I hear about this AT protocol I think about the text-based commands to control cellular modems. I can't be the only one, r-right guise... r-right?
fortran77 4 hours ago [-]
Finally! Some relevant news here. I wondered where all the other Fortran people were hiding. I thought I knew all the other BlueSky Fortraners.
nerdypepper 17 hours ago [-]
y'all gotta throw this up on https://tangled.org ;)
FormerLabFred 3 hours ago [-]
On it!
uberdru 21 hours ago [-]
The world is a better place for this app. Wonderful!
FormerLabFred 21 hours ago [-]
:) I mean there are still some people alive out there who never saw a web UI when beginning dev. They get a bit nostalgic, missing their 286

It’s fun and it is appreciated by them, and the young ones who are curious

arunakt 13 hours ago [-]
thats COBOL :)
Ashkaan 14 hours ago [-]
Oh this is cool
blundergoat 21 hours ago [-]
fortran > cobol
pklausler 21 hours ago [-]
fortran .GT. cobol
FormerLabFred 21 hours ago [-]
> forever
isodev 15 hours ago [-]
On ATProto: it’s funny how we never learn the lesson:

- VCs band together to fund something shiny.

- Devs love shiny, helping spread the something.

- VCs enschitify it to get their coins back.

FormerLabFred 3 hours ago [-]
VC is Fortransky no-go zone
dualblocksgame 19 hours ago [-]
[dead]
DaleBiagio 19 hours ago [-]
[dead]
aimarketintel 18 hours ago [-]
[flagged]
patapim 20 hours ago [-]
[flagged]
ccmcarey 19 hours ago [-]
AI slop comment
dymk 18 hours ago [-]
HN is getting legitimately difficult to use with how much AI spam has been flooding the comment section recently
grougnax 6 hours ago [-]
Why not Rust ?
youhai 14 hours ago [-]
From my experience building browser automation tools, the biggest challenge with most Chromium-based solutions is that their TLS fingerprint is a dead giveaway. Firefox-based approaches tend to fare much better against JA3/JA4 fingerprinting.

The key insight is moving fingerprint spoofing from the JS level (which is itself detectable) down to the native C++ level. It's a fundamentally different approach.

FormerLabFred 11 hours ago [-]
Multiple tabs open? :)
kgwxd 4 hours ago [-]
Just spam.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 19:50:54 GMT+0000 (Coordinated Universal Time) with Vercel.