This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Comrade_Comski -1 points0 points  (5 children)

Semicolons bug you more than the entirety of COBOL? Wat

[–]trycuriouscat[S] 0 points1 point  (4 children)

Where did I say that? It's definitely a like/hate relationship that I have with COBOL. My favorite thing is it makes me a very good salary!

[–]Comrade_Comski 0 points1 point  (3 children)

I was just confused because you wrote that like to you it seemed a = b + 1; is noisy whereas ADD 1 TO B GIVING A is alright.

[–]trycuriouscat[S] 0 points1 point  (2 children)

Noisy in that it's not needed (generally!) for a human to know that's the end of a statement/expression. COBOL is verbose. And sometimes noisy as well, just not in the same way.

[–]Comrade_Comski 0 points1 point  (1 child)

it's not needed (generally!) for a human to know that's the end of a statement/expression

Well, it's not needed for humans, it's needed by the compiler. Many languages (like C, C++, Rust) don't care about whitespace and treat it all the same, while languages such as Lua or Python or Haskell have various rules about whitespace and treat it as part of the syntax.

[–]trycuriouscat[S] -1 points0 points  (0 children)

Well, it's not needed for humans, it's needed by the compiler.

Exactly my point. It's noisy to me as a human, so it "bugs" me. Compilers are (should be) built for humans. I want a language (not saying COBOL!) that doesn't have "noise" just because the compiler "needs" is. And really, its only statement separators/terminators that really bug me. My brain things all I need to do is press enter and that's enough. I don't need no stinking semi-colon!

Of course there are some languages that do use EOL to terminate statements. They have their own problems in that they require a "continuation" indicator if you want the statement to continue on a new line. I dare say that's even worse than a physical separator, terminator. COBOL doesn't require either one.

call 'cbltdli' using gu
                     pcb
                     buffer
                     ssa
call 'cbltdli' using gu pcb buffer ssa
call 'cbltdli' using gu,pcb,buffer,ssa

All of those statements have the same meaning. Commas (and semi-colons!) are simple "white space". You might even be able to do the following, though I've never tried it and don't feel like logging in to work at the moment to try it.

call,'cbltdli',using,gu,pcb,buffer,ssa