I’ve worked with the Windows API and “things the IDE already knows” isn’t something you should rely on. Everything is an LPVOID if you cast and recast long enough. In Windows various longs returned by the system are actually secretly pointers or handles, and using them as if they’re the type the IDE derives can lead to very annoying bugs.
Using plurals for lists and tables isn’t very clear, unless you have explicit naming guidelines about them. Plenty of people use plurals to indicate counts, and neither are good uses of them in my opinion. itemCount and itemList solve everything here.
But that is a typing weakness of that language. I just prefer using languages where the compiler actually does know what the types are at all time and thus can inform me instead of me trying to make sure that types align correctly.
That is tedious work that has been proven to be a terrible idea to shift onto humans. Strong type systems make much more robust code.
Abap only has one collection type, and its tables. Contextually it’s not hard to read what a collection of things are and what a single thing is.
If I am looping through comments and do something with comment, it’s contextually clear what ma going on. The exact type can be easily checked for when it’s actually needed.
Naming a count of something the plural seems like a much less intuitive thing. Especially sense generally the count is gotten from the collection.
I’m not gonna lie, I haven’t seen ABAP in 10 years and was only briefly familiar with it. But I did what one does and asked GPT4 for some tax computation ABAP.
DATA: lv_income TYPE P DECIMALS 2VALUE'50000',
lv_tax_rate TYPE P DECIMALS 2,
lv_tax_amount TYPE P DECIMALS 2.*Select the appropriate tax rate from the tax table based on income
SELECT SINGLE TAX_RATE INTO lv_tax_rate
FROM ZTAX_TABLE
WHERE INCOME >= lv_income
ORDERBY INCOME ASCENDING.
IF sy-subrc =0.
lv_tax_amount = lv_income * lv_tax_rate /100.
WRITE: /'Income:', lv_income,
/'Tax Rate:', lv_tax_rate,
/'Tax Amount:', lv_tax_amount.
ELSE.
WRITE: /'No tax rate found for income', lv_income.
ENDIF.
Oh that looks awful. Maybe it’s just because I don’t know how to read it, but the fact that it is similar to SQL (definitely pronounced sequel at this time) messed with my head
Fuck character limits for names. Looking at you, ABAP.
Character limits and a stupid badly used Hungarian notation to waste limited characters to tell use what the ide already knows.
If you have a table, (that’s an array for sane programmers) name the variable as a plural and we will know it’s a table.
Don’t name two variables the same stupid abbreviation with different Hungarian notation characters stuck to the front
I’ve worked with the Windows API and “things the IDE already knows” isn’t something you should rely on. Everything is an LPVOID if you cast and recast long enough. In Windows various longs returned by the system are actually secretly pointers or handles, and using them as if they’re the type the IDE derives can lead to very annoying bugs.
Using plurals for lists and tables isn’t very clear, unless you have explicit naming guidelines about them. Plenty of people use plurals to indicate counts, and neither are good uses of them in my opinion.
itemCount
anditemList
solve everything here.But that is a typing weakness of that language. I just prefer using languages where the compiler actually does know what the types are at all time and thus can inform me instead of me trying to make sure that types align correctly.
That is tedious work that has been proven to be a terrible idea to shift onto humans. Strong type systems make much more robust code.
Abap only has one collection type, and its tables. Contextually it’s not hard to read what a collection of things are and what a single thing is.
If I am looping through comments and do something with comment, it’s contextually clear what ma going on. The exact type can be easily checked for when it’s actually needed.
Naming a count of something the plural seems like a much less intuitive thing. Especially sense generally the count is gotten from the collection.
Are you not blind after staring at ABAP?
Can you bleach my eyes with some really bad ABAP code? I’ve never seen ABAP and I want to feel scared
Let me introduce you to Cobol …
No, pleeease grandpa, I don’t wanna sweep the cobwebs off the server rack
Classic ASP for the win …
I’m not gonna lie, I haven’t seen ABAP in 10 years and was only briefly familiar with it. But I did what one does and asked GPT4 for some tax computation ABAP.
DATA: lv_income TYPE P DECIMALS 2 VALUE '50000', lv_tax_rate TYPE P DECIMALS 2, lv_tax_amount TYPE P DECIMALS 2. * Select the appropriate tax rate from the tax table based on income SELECT SINGLE TAX_RATE INTO lv_tax_rate FROM ZTAX_TABLE WHERE INCOME >= lv_income ORDER BY INCOME ASCENDING. IF sy-subrc = 0. lv_tax_amount = lv_income * lv_tax_rate / 100. WRITE: / 'Income:', lv_income, / 'Tax Rate:', lv_tax_rate, / 'Tax Amount:', lv_tax_amount. ELSE. WRITE: / 'No tax rate found for income', lv_income. ENDIF.
Oh my, that’s an abomination, I’m literally squinting my eyes to read it. That
ENDIF
tho, that’s where I draw the line °~°Oh that looks awful. Maybe it’s just because I don’t know how to read it, but the fact that it is similar to SQL (definitely pronounced sequel at this time) messed with my head
Ah yes, gotta love /company/product_abc table names.
doSomeAwesomeStuffThatCanBeUsedInVariousEnvironmentsWithoutHavingToCareAboutTheReturnValue()