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

Does COBOL translate easily to more modern languages? Anything tricky or odd about it? I’ve never needed to use it.


Old-style COBOL translates trivially to or from very brain-dead imperative style code with lots of goto.

If you can look past the syntax, modern COBOL is a decent enough compiled language, with most of the stuff you'd expect.


> Old-style COBOL translates trivially to or from very brain-dead imperative style code with lots of goto.

Provided the target language supports "goto", and "fall through PERFORMs" :)

>If you can look past the syntax, modern COBOL is a decent enough compiled language, with most of the stuff you'd expect.

Probably < 1% of production Cobol uses any syntax newer than Cobol 85!


I can't look past the syntax.


What’s wrong with the syntax? It is essentially English with some minor rules attached.


Old school COBOL is very wordy, and full of program sections and divisions of dubious value, half of them seemingly redundant (source: I've written some while working at a bank, a few decades ago).

It feels as if you were writing something like this:

   Program Name The Program.
   Author the_af
   Data section.
   Some numbers.
   X 1.
   Y 2.
   Actual code section.
   Program beginning.
   About to start.
   Let's do this.
   Add X and Y, Giving Z, Z Being the Addition of X and Y, but not of W nor V. U is right out. 
   Having Computed Z, Z Being The Addition of X and Y, Z is therefore the Result.
   Give Result.
   Program End.
Ok, this is a parody, but it's also what writing COBOL feels like -- or at least, what it used to be like. And somebody thought because these were "English words", that this would somehow enable less technically minded programmers accomplish their tasks.

But sometimes you just want to write:

    f(x, y) = x + y


Like with C family vs. ML family vs. APL vs. Pascal family debates, some people consider those sort of syntax differences to be deal-breakers. I personally try to keep an open mind.


I hope we can agree that APL does not fit the list here. It does not even have words!

(;-))


I've come to take, "If you can look past the syntax..." as a semantically void formulation that is only there because its presence is mandatory whenever you're making a statement about a language that doesn't look like C.


In general, I agree with you, but you could apply it in reverse: "C function pointer declarations can be useful, if you can look past the syntax."


If it's any consolation, COBOL isn't a very interesting language, nowadays, despite its syntax. I had to suffer it a couple of decades ago, and I would never wish it upon anyone.

And I'm untroubled by syntax; I'd happily use C-like languages, ML languages, Lisps, etc. COBOL just isn't a good or interesting language nowadays, if it ever was.


COBOL is quite modern actually, nowadays it support OOP, modules, cloud deployments, JVM and .NET backends.

https://www.microfocus.com/en-us/products/visual-cobol/overv...

Latest revision is from 2014.


There's a screenshot with some source code up there. It's kind of refreshing to see function calls where the syntax for pass by reference and pass by value is literally "by reference" and "by value".


https://9b74456f2e4bcbc20970-51751c7e8fb38e7c8b474cab6c7dc60...

As an old-school (i.e. >25 yrs ago) COBOL programmer its pretty jaw dropping to see that the language has continued to evolve.


Modern COBOL would have a DDL which makes using JSON-like and XML-like nested data structures as easy as its existing DDL makes using record-oriented data structures.


It’s pretty easy and straight forward. You run into more interesting issues working with it though.

I just got done (towel thrown) after a 12 hour workday where 30 minutes were code change, build, unit test and the rest was trying to get the tester, who is COBOL age appropriate, to understand how our program works, how we use APIs to communicate with other systems and how to test it.

In the end the Jira errand got sent back to me because of an error in an unrelated program that we verified existed earlier today before my code was deployed, because it ‘has to be the API program’. =,)

They’ve also apparently been testing all other APIs by sending simulated OK responses with the expected data <3

And remote pandemic work in a team where everyone is 2x my age has gotten me into a p. deep depression.


Using COBOL is a joy, one should never NEED to use it.

YMMV. :-)


First day of intro to programming at my university and the professor was introducing himself and his background and how his first job was writing cobol at a Paper Mill. He said COBOL was a revelation at the time and that we would never need to learn or use it.

Enter stage left my first job as a developer in 2016 and I'm tasked with learning cobol to support customizations to their 25 year old Lawson Implementation.

I'll probably never use it again but reading and writing cobol code opened my eyes to different design patterns not often seen in more modern languages. Seeing clever implementations of features that come out of the box in modern languages was really neat.


That sounds super interesting. Can you describe some of the interesting design patterns/clever implementations you saw? I feel like there is a lot of benefit in looking at weird languages as it opens your mind to new ways of solving problems.




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

Search: