Now try imagine trying to write fucking software with them.
A guy who trained me in a CMS a few weeks ago had had a juicy, curry-flavoured morsel from his previous job:
Newly-hired Jeet was assigned to an existing project, and ordered to work on a component that was suppoed to receive large datasets from a table, do some batch operations, and save the results for human analysis. Said Jeet only had very limited Oracle SQL knowledge, which was not used by the company and, even if that wasn't a problem, he couldn't connect a database to what he was building for bob nor vegana. He "solved" the problem by:
> Receiving the data from the server
> Saving it in a csv file
> Iterating through every row in the csv file, creating an instance of a class (which included, by composition, various other classes) he built for this sole purpose, and saving it in a list in-memory
> Iterating through the list, throwing every instance into some monstrous function (about 80 lines of nested case/switch statements) that did the operations the component was supposed to do
> If the object was modified in any way, it was added to a second list
> The second list was iterated and its contents flattened and written to a csv file in the same format as the initial data
> Rows in the csv file were ordered using insertion sort
> Second csv file was saved directly to the hd
> Everything was lost as soon as a new request came in, because the filenames were hardcoded instead of being built with a date/time or counter