by Unclefragger » 09.02.09
hmm PHP and mySQL both are quite well documented, but PHP is slow, clumsy and way too easy on syntactic errors, no method overloading (function is chosen based on the amount of arguments given) and a lot more flaws, yet widely used and nowadays totally flooded with the idea of OOP (if you call something once you don't have to create an object which queries the DB 100 times, creates even more sub objects and has like one million methods, especially if your language is so fucking slow).
If you want to go close to the hardware (and have a few bucks left), try Assembler on a nokia cpu or something similar (you should be able to get one cheap at an electronics catalog), Assembler is fun, ofc you won't design a full fledged, animated user interface in Assembler these days, but just getting some LEDs to glow and understanding the basic functions of AND, OR, NAND, XOR, is good fun (I enjoyed it a lot and love my school for teaching us).
Perl ... if you are going to work with much plain text based stuff (not just text files ;)) it's still good and you can get almost everything you need via cpan.
Python, hmmm has it's pros, for some reason not the language of my heart and somehow hyped in the net.
C would only make sense if you want to write something CPU intense (you can easily include ASM functions for full power!!!) but does require a lot of time and code.
C++ is a little more abstract and has more build in functions IIRC, nowadays the language if you want speed.
Java, sucks ass, said to be platform independent one needs as many OS specific files as with any other language, and not being able to compile it with platform dependent features which would highly increase execution speed won't make it as a pro in my eyes. It also is rather slow (not as slow as the full interpreted languages like PHP, Perl and Python (although you can create pre compiled executables) but still slow compared to the truly compiled languages).
About pre documentation: Yes if you write a little plugin or a small hack for phpBB you won't need it, but once you go to design a larger project or with multiple persons involved it is very useful, you have to adjust your code less, you don't have to waste half the time dealing with questions about simple architecture, and overall code quality does improve. There are quite a lot of standardized diagrams out there, each one with its own field of use, we had to learn the most common once in school, it was pain in the ass writing down a hello word script with pen and paper 5 times for every method you could document it, but when I do larger project for University or my job I am glad that I have learned "that crap".
In the end it's half what you like and half what is best suited for the project's goal. I.e. one wouldn't start writing a homepage in C but you won't try to create a driver or scientific calculation program in PHP.
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
- Martin Golding