Webbol: a Minimal Static Web Server Written in Cobol
Posted3 months agoActive3 months ago
github.comTechstoryHigh profile
calmpositive
Debate
20/100
CobolProgramming LanguagesWeb Development
Key topics
Cobol
Programming Languages
Web Development
The HN community discusses a GitHub project implementing a minimal static web server in COBOL, sparking conversations about the language's relevance, security, and readability.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
32m
Peak period
23
0-3h
Avg / period
6.4
Comment distribution51 data points
Loading chart...
Based on 51 loaded comments
Key moments
- 01Story posted
Oct 3, 2025 at 10:13 AM EDT
3 months ago
Step 01 - 02First comment
Oct 3, 2025 at 10:44 AM EDT
32m after posting
Step 02 - 03Peak activity
23 comments in 0-3h
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 4, 2025 at 9:49 PM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45463251Type: storyLast synced: 11/20/2025, 2:46:44 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Namely, that the code will be read by someone who knows the language. And arguably that the code should be capable of being "self-documenting." Although perhaps people well-versed in COBOL would argue COBOL can be, and I just don't know it.
Edit: the numbers in parentheses are repeats. PIC 9(9) means up to 9 digits in the printed representation of the value stored in the variable that has this PIC.
for example IT IS YELLING AT US THE WHOLE TIME
Customer: "PERFORM 500-DEDUCT-ACCOUNT-BALANCE"
Bank teller: "Ok, great, and how much?"
Customer:
"01 TRANSACTION RECORD
MOVE 100.00 TO TRANSACTION-AMOUNT"If you're in the context of a professional environment, where you chose the team, it makes sense to be more dogmatic about it to enforce a better overall architecture, and you can safely assume that the next reader at least knows the language already.
What are the security guarantees with writing in COBOL? Like, does COBOL allow out-of-bounds memory access? How does it compare to C or Rust as far as allowing ‘accidental’ security lapses?
Modern COBOL compilers will catch this with an error; if you do manage to compile and run, you'll get a runtime error or immediate crash.
> How does it compare to C or Rust as far as allowing ‘accidental’ security lapses?
COBOL has reference modification that can easily be purposefully used to reference memory outside the bound of the original data you target. It isn't memory safe, it's just very restrictive so many errors/misuses get weeded out during compiling.
I applaud Jms Dnns! This project really makes you think.
For those who are unaware — you can use COBOL in two modes: free mode and fixed format mode.
Fixed format mode is (afaik) the original, based on punch card affordances, and specifies specific columns for specific purposes:
* The first 6 columns for line numbers
* Column 7 for the indicator character (notably: * for comments as you can see here https://github.com/jmsdnns/webbol/blob/main/file-structs.cpy )
* Column 8-11 for special division markers, though they can extend beyond (visible in this file: https://github.com/jmsdnns/webbol/blob/main/webserver.cbl)
* Columns 12-72 for ordinary COBOL statements
* Columns 73-80 for programmer comments or whatever notes you like
All the columns are undoubtedly a bit taxing to the modern developer and their tools, so 'free mode' which discards all the above is the suggested default.
But, I think fixed mode is very charming, and if you're going to write COBOL in 2025, you may as well try to get the most authentic experience!
* comments use *> at start of line, though I'm not sure i'll keep that
* indentation is flexible, but i prefer how fixed looks
* no column restrictions
I never wrote a program on punch cards, but I'd definitely drop card stacks accidentally or get them into a jumble somehow. Having numbered cards and a card sorting machine (radix sort in hardware!) would be extremely helpful then.
This may help you get the feel (pick the COBOL card at the top). [0]
For an even more authentic experience, write the program on a coding form first, then give it to an assistant for keypunching. [1]
[0] https://www.masswerk.at/keypunch/
[1] https://www.mainframestechhelp.com/tutorials/cobol/coding-sh...
I've thought about a COBOL webserver before, but didn't get beyond reading the GnuCOBOL FAQ that mentions it's possible with CGI https://gnucobol.sourceforge.io/faq/gcfaq.html#id1126
I'm definitely going to dig into this project more later. This is very neat!
http://www.coboloncogs.org/INDEX.HTM
As recently as the 2010s, we used to emit HTML out of COBOL, but fell short of it directly responding to HTTP requests. Instead, we licensed an RPC layer that sits behind Apache and translates HTTP calls through CGI to a listener on the COBOL side that then invokes COBOL programs. Those programs send back HTML strings through the CGIRPC interface and, well, out comes a webpage in your browser.
We're still using it to serve XML and have turned it into a makeshift web service that helps power a traditional web application.
But, honestly, this is way cooler.
https://youtu.be/RM7Q7u0pZyQ
https://github.com/jmsdnns/webbol
Cobol on Cogs: http://www.coboloncogs.org/HOME.HTM
Cobol on Wheelchair: https://github.com/azac/cobol-on-wheelchair