Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you just subtract the birth year from the current year, you would have a birthday every day.


Nope, you'd just get back the number of years you've lived, as of now (+- 6 months).

Nothing about this being your birthday or not. Of course every passing year the number would increase by one.


That's true, and I'm sure they're well aware of the maths, but doing it this way makes it really simple for people who aren't programmers to understand what is going on.


Also demostrates how easy COBOL is, once you move past the stigma of it not being flavour of the month.

As an educated guess I'd say it is also the longest serving programming language still in use today, but I'm sure somebody with a weaving loom would argue that.


Having recently met a soon-to-be retiring COBOL programmer, he talked about how much money there is in it because the work force is aging out and there aren't any people to replace them. It got me thinking that ultimately it was the culture of COBOL that killed it.

C was first and foremost designed to be a very portable language (for the early 70s). I think its endurance is largely attributable to this fact, that C was the first relatively easy to configure and deploy widespread throughout the world. It's difficult to imagine anything like Unix happening without C.

But COBOL on the other hand is written essentially in a vacuum. It's written in relatively closed environments, for closed systems, for closed purposes. You don't share COBOL code because, well, for the most part there isn't anything worth sharing, it's all to purpose specific.

And I think we see this in other places. Arduino is not the best, or cheapest, MCU hardware. But it's the easiest for which users can share code with each other. The "sketch" mentality for Arduino code has led to an explosion of copy-pasta examples across the net, and they are easy to integrate into one's own sketches on one's own hardware. Compare that to the TI MSP430 (which I personally think is every bit as good as the Arduino Uno, at a quarter of the price), pre-Energia, and it's a night and day difference.

Did the Web take off because it was fundamentally great, or was it because you could "view source" on any page? I spent hours in highschool, looking at other people's HTML and JS (but not CSS! It didn't exist yet!) on their sites. Saving their sites, hacking at the code (hacking as in "what one does with a machete"). Compare that to AOL and its keyword system.

So perhaps the lesson is: if your system doesn't encourage remixing, it's ultimately doomed to failure.


if your system doesn't encourage remixing, it's ultimately doomed to failure.

However, never forget that the market for IT can stay irrational longer than you can stay patient. Cobol is more than fifty years old. People are still emailing Word files to each other. And the post popular gaming systems are still closed consoles.


Fortran is a couple of years older. (And very actively used and developed.)


I knew there was something I was forgetting, your right and Fortran is a fantastic language for its uses, like COBOL.


More like not flavor of the past few decades :P

Anyway, having coded in COBOL for a bank, in my opinion it's an awful, wordy, clumsy language. It fully deserves its bad reputation.

Grace Hopper was an interesting person regardless.


It does that too. I wish I had the time to learn COBOL. It really is the dogma of modern programming languages.


Really? I didn't know it was Cobol. Looked a bit SQL'ly to me :)

But yeah, it does look easy to read


COBOL predates SQL by about 15 years. In the 60s and early 70s, there was a school of thought that programming languages could be made more like written languages, and that this would make it easier for the programmer to reason about programs, especially in the business context where companies were starving for programmers, companies who saw the university system as focusing too narrowly on academic theory. We get BASIC in the interim between COBOL and SQL as well. COBOL, BASIC, and SQL were all designed with non-Computer Scientists in mind, for "practical" applications.


> more like written languages, and that this would make it easier for the programmer to reason about programs,

It's also said that it was intended to help non-programmers:

1. Help managers better understand what the heck their employees were doing.

2. Enable other non-technical stakeholders to participate in reviewing the business logic.

As you can imagine that didn't actually help very much.

(I've heard people express similar skepticism about natural language testing frameworks, although I don't know if that's fair or not.)


At the very least, I think it's an unnecessary context-switch. Why introduce yet another language in your toolchain? The boss isn't going to be able to understand the natural language tests, because s/he will be introducing their own assumptions to the ambiguous nature of human language. Like how non-programmers tend to use "or" to mean "exclusive-or". Or the plethora of issues that come up when assuming N-based indexing when you actually have (1 - N)-based indexing (for values of N that are either 0 or 1).


And, personally, the wordiness just gets in the way, at least for me. Extra words just means I can make more mistakes. I truly despise these languages that seem forgiving yet have more rules that more concise, orderly ones (any other ones).


Yes, that is certainly the case. Sure, you make the programming language easier to understand for someone in their first week of learning it, but overall it ultimately slows everything down. That's probably why the concept has never really taken off. "The proof is in the pudding".

That said, I sometimes wonder what programming in such a verbose language with a sufficiently intelligent IntelliSense system would be like. I accidentally started a small, thumbnail project in VB.NET the other day, because I had just re-installed Visual Studio and had forgotten that it defaults project templates to VB on first-run. Instead of starting over, I thought I'd use it as a chance to check in on VB and see what it has become.

Some things really pissed me off. Block delineation with Begin/End is a pain in the ass. Generic parameter lists being grouped in round parens was extremely confusing. But otherwise the extra wordiness was almost completely obviated by the editor. It was a very odd experience.

I don't like the Python-style of significant white-space, because I think formatting of code should be the job of the editor, and the compiler or interpreter shouldn't care about layout. However, I've been very curious to see new experiments in making code more readable. LightTable (http://www.lighttable.com/) looks very interesting, with it's ability to (supposedly) group sections of code in arbitrary locations on the screen. I haven't yet figured out how to make it do it. I started using it on Windows and Linux for a Node.js project I'm working on, and it was definitely an interesting concept, but I couldn't seem to get it to work just right, or anywhere near what the demo suggested would be possible. That said, it was still quite easy on the eyes, so I find myself still using even if it isn't working 100% yet.

Racket has some interesting things going for it with code flow visualizations. The UI stuff is kind of fiddly on Linux, and the utility of reference arrows seems dubious at best, at least in their current implementation. But the macro expander is pretty amazing.

Ultimately, I think it's going to take a bit of new editor design, a bit of new language design.


Well its only Cobol esque psuedo code to give the flavor it doesn't have all the required divisions.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: