Oh boy, I found this one while browsing through coding horror and the man pretty much speaks the truth (atleast from my point of view). Remember when I wrote my Java iterator thingie? Well, I ended having a big bunch of interfaces and things to implement but It wasn't even a tad productive and I rewrote it two times or so after then realising that it would've been faster to no rely on it and simply to it fixed. But well, it's Java and if I'm gonna do it in Java, I'm gonna do it in a way I can say that it's reusable for all of my later leJOS projects. And looking at the mail I linked, I can see some similarities in my own code. I can't say that all OOP-resulted code is "bullshit" (especially cause I know that good OOP comes close to good C code if you don't overuse or completely pervert it like it's usually done nowadays) but I often experience it that most OOP fans simply aren't able to push the right buttons on their abstracted machine. And they tend to hide stuff (one reason why I conceptionally rather dislike it) instead of revealing what they do. Teaching beginner programmers OOP first is something similarly precious in topic. The most horrible example ever of a such an "experiment" gone wrong is my lecturer for component-based development. She doesn't know anything behind her JavaVM (oh, I love ranting about her) and the only thing she does is to repeatingly iterate through her concepts and models and whatever not without seeing that this stuff doesn't work as it should in theory. Her interpretation of "re-usability" only involves abstract models, means you always need to write the code again you wrote before. Is it that usability? No, it isn't. It's talking about stuff that doesn't matter. If you instead write your function set without those models but with portable C it becomes completely modular and more reusable than those model things.
However, all this doesn't help me to push my personal project further. I decided to rewrite as much from the "bad" Java stuff as I can ony my own. Yeah, maybe I can keep this as a playground for OOP, which (retrospectively) kinda stopped from continuing my projects if I think about. I can remember that during my "hot phase" of development, I only used methodes in structures to avoid typing this-pointers all the time as parameters. I have to say I slowly started to think in more OOP-like terms and models and I (along with other reasons) kind of stopped beeing productive in any way. Just look at what I did: writing classes and object-oriented systems with no actual use or relation to the stuff I was working on before. Then it took me a long way of deeper research that it's essentially not OOP what I want and that the OOP world totally sucks down to it's bean-shredded bones. I was so motivated before all that. I simply wanted to have stuff done. No I don't have any projects beside rewriting stuff of languages I don't really need or what. It's time to take a break from all this "all object" stuff and get back to the essentials, the fucking ROOTS of code. *
* Though I have to say that I still don't know want to code with something else the NXT. The VM works ok, I don't need to use any cod that's not mine and I couldn't get the GCC ARM to work before to develop native C applications. And leJOS sound is simply great, I have to say this. So once again - shut up and use where you need, go C otherwise. Hm, if I get these simple Java class extensions done, I will concentrate on beeing productive and pushing. One way or another, I don't want to sit all day and make silly models. In the end it's all the same and will prolly work better with normal function calls than overly complicated and time-consuming abstraction forces.
I should print a motivational shirt or so. Some bad Chuck Norris joke paired with programmer fanboyism.