Likes:
Generators: Are super awesome. They remove some of the trouble of having to keep track of an array or something that is iterable and then keep track of which spot you are at. Instead with a generator, all you need to do is call next() and you get the next thing. This is easily one of my most favorite things in python.
List Operations: with stuff like [0: 5] it makes getting a sub array out of an array easy to do. With it being able to start at the end and then work backwards is great as well. Just to get the last element, using arr.length()-1 as the index instead makes it somewhat more readable and easier to do.
Print: Just saying print "something" instead of System.out.println("something"); is so much better just because it requires less typing. And really the whole "System.out" part I hate typing because of its redundancy.
Dynamic Typing: s="A string" I know s is a string, why should I have to type String s = "A string"; And then if I am done with s being used I could do s=67/3.
Hates:
Dynamically Typed: I absolutely hate it how if in a method one of its parameters is an object "A" and what is actually needed is an object "B" and then when it is used DURING RUNTIME we get the error. This actually makes things more difficult to figure out what is going on during runtime to pinpoint when "A" is actually being passed in. And it could be at the end of the program making me retrace every line of code.
Indention: I hate this. While it seems nice to do after a while I lose track of how the code flows and when if statements end or functions end. I really like the enforced indentation but without nice "{" "}" I can't tell the difference between some lines of code and when to debug things.
Arrays: I don't know why I can't create an array with a set size. I hate having to create a while loop and then iterate over it appending useless data to the array just to get the array into a desirable size. Which makes me hate it when I'm going through the array after finally using it and I hit one of the "dummy data" indexes and then python either: Uses that data and screws things up. Or: Treats it as an object and then throws me an error and then screw things up.
For Loops: Where are they? Sometimes I need to be able to iterate over something with a size that changes and using a while loop is just not good enough. I hate having to create a lcv and setting it to 0 before the execution of the while loop and then in the end I always forget to increment/decrement it.
So those are some nice rants about how much I have enjoyed Python and how much I despise Python. I really would not suggest using Python in a large scale project. It makes a really well developed script but sometimes debugging things in it seems too hard to do in a large project where the complexity in increased 10000x over.
No comments:
Post a Comment