5 ms·
Anything can be parodied by exaggeration. One could provide a github parodying any language: C: pointers-to-pointers-to-functions, type puns, and quasi-opaque
by Iftheshoefits 12y ago
Anything can be parodied by exaggeration. One could provide a github parodying any language:
C: pointers-to-pointers-to-functions, type puns, and quasi-opaque "types" with really_long_identifiers_t everywhere (among many other possibilities, and bonus points for numerous reimplementations of basic data structures tailored specifically for different types without significant performance gains)
C++: see Java, but in C++ form; or alternatively larded with metatemplate programming
perl: write any valid perl, because it parodies itself
python: mishmash classes, functions-as-stateful-objects, and n-levels of decorators everywhere, and toss in some metaclass programming for giggles
And so on.
(Note: my favorite language to program in is currently C++, and I'm well aware of the less desirable traits of the language and codebases that exist.)
- userbinator 12y agoThe difference is that with Java, the tools available allow creating immense complexity very easily - and due to how that complexity manifests itself as the complexity of the entire application, each individual piece still looks simple. A parody Java application resembles a real one more than the others you mention, which are more in the "clearly obfuscated" category.
- CountHackulus 12y agoSo what you're saying is that the tooling for Java is more advanced than the tooling for other languages. I'm not sure I see this as a negative. I did node dev for a while, it was horrible, no tools that were any good, got a memory leak? Have fun! Had a memory leak happen in Java once, had the proper tools already, didn't have to interrupt a live server or anything, plus the tools were easy to use and well documented. Really the problem is that when you program in Java, you need to restrain yourself. You could create another level of abstraction, or you could just solve the problem at hand and abstract it later when you find a concrete case for it. And guess what, when you get there, you've got excellent tools for it.
- Iftheshoefits 12y agoI don't know. I've seen some....interesting....C and C++ software that resembles what I wrote above more than anyone might care to contemplate.
- tormeh 12y agoI love making arguments to POSIX threads. My thread argument in my current project is a pointer to a struct with pointers to functions and arrays of structs which have mutexes and basic types in them. Try saying that fast. Now try changing something in it with the typesafety of C.