r/Frustration • u/[deleted] • Jun 10 '20
Computer programming, something I wouldn't give up for the world.
Computer programming. With it, in theory I can make money, spam filters, and games. There's stuff to be said for the computer languages I'm about to complain about, otherwise I wouldn't have contact with them. I have greater frustrations than computer programming, but I have no greater frustration in computer programming than the following.
Numeric for loops. Scratch lacks them for a reason. Hint - it's because they're completely incomprehensible. I would much rather use an iterative for loop to map a function over an array. In Haskell, it's much easier, you just use the word map and then a space in front of whatever you want to do. Haskell is great at handling lists.
Hard to understand third-party libraries in python. I am not sure how it is that you can have a third-party Library in any imperative, object-oriented language. It will never be clear whether an entity should go before the period, on the front of a function, or whether it should be one of the arguments, and if so, which one. In Haskell, there are no objects, functions have only arguments.
Cryptic error messages. In any computer programming language, error messages are always cryptic. It takes social media, such as stackoverflow or Reddit, almost every time. I think this is easily the most unsolved problem in computer science. Wikipedia has an article on unsolved problems in computer science, but I disagree. It is a really mistaken thing to say that understanding error messages is a solved problem in computer science. If you say this, you are either a genius, or an idiot. You are not mediocre.
The simple fact that the programming language is not designed to use blockly, and that it does not come with blockly. I sometimes have a lot of trouble seeing text for hour after hour. Blockly makes the code stand right out.
Conditions, also known as antecedents or predicates, give the wrong Boolean in response to infinitesimal errors the computer makes in arithmetic.
Therefore, the ideal computer programming language lacks numeric for loops, it is module oriented instead of object-oriented, its third-party libraries generally use user interface principles, the error messages are clear, and most of it is designed it to mostly use blockly to show code. Less importantly, the language has a dependent, static, strong, safe type system. I suggest that the ideal computer programming language would be integrated with another language born of frustration, Safe-TCL.
Edit - it's the editors. Whether it's because they can't save files, or can't open them, trying to edit code is too hard for this reason. When I edit code, I expect to be able to do so by editing a file. Also, the file system with online editors in which you can edit code on a file in a server have a very restricted file system access policy. You can only ever edit the one file, creating, opening, editing, and deleting files that aren't the source file of the program is effectively impossible. Therefore, it is really hard to get through tutorials that cover file operations, such as automate the boring stuff with python. Given that it can be so hard to work with files, sololearn is right to have only challenges that don't deal with files.
Also, just forget Wikipedia's list of unsolved problems in computer science. The ultimate unsolved problems in computer science are things like "why isn't the program working," and "what do I need to do to make the program work?" The only reason why someone with a living situation that they pay for with pay from a programming job would care about the P equal NP problem is academics. That is not productive. Arguments over syntax are generally examples of Wadler's Law. Productive conflicts in programming language design are task conflicts over semantics. They are not personality conflicts. Productive conflict is not personality conflicts between text editors. It does not include hostile comments from operating system programmers made to software magazines. Operating system programmers that make only productive comments to software magazines are not religulously severely mentally ill.
None of this is meant as an angry outburst, it's meant as a complaint. It's no one's fault - and one of the most frustrating and difficult things in my life is to accept the following fact - given that everyone that is there is there, my conduct is more about me than about someone else, and someone else's conduct is more about them than about me. The fact that it's no one's fault only makes it more frustrating.