>>1
If I had to do something for myself, I'd use Python, but I still haven't decided on a framework. On Python, you have all sorts of things, which is both good and bad. Good because you can choose; bad because you have to choose, and the community behind each of them is much smaller than it would be if it were united. That's why Python hasn't kicked PHP's ass yet.
For low-level stuff, I think there's webpy, mod_python, or just doing it all yourself and using bare FastCGIs (then again, the only things you'd need to implement are HTTP handling and session control; the rest is available in the standard Python library or similar). Databases always use the PEP-249 protocol for an interface, but don't think that makes it DB-independent; all DBs require you to use them in a way that's incompatible with others, even if the DB access is abstracted from it.
Then there are weirder stuff, like Quixote or CherryPy.
For Rails-like stuff, I've heard good things about Django and TurboGears.
And finally, Java for Python: Zope. Don't touch it with a 10 metres pole.
>>6,34
")#$(/==/"()$%!/($!%no"/%()#==#&)/%()!"
>>8
>>2 was joking, and you are right not wanting to touch anything with Java.
the language [PHP] itself is utterly horrible
the type system (see Haskell for an example of a proper one)
I don't mind its syntax, but my main gripes with it are, from most infuriating to least:
- The existence of magic quotes, register globals and safe mode, which fortunately can be disabled, except when you have to deal with bullshit code from "web designers" requiring this
- Lack of lexical scoping
- Lack of true first-class functions
- Fucking idiotic OH NOES untrappable fatal error when you define a function that was already defined (motherfucking "designers", why don't they allow function redeclaration, or at least ignore the fucking thing?), and fucking idiotic OH NOES untrappable fatal error when you call a function that doesn't exist (WTF!?).
- Fucking idiotic automatic string/number/whatever conversion; thanks god it at least has a different concatenation and addition operator, otherwise it'd be utter shit like JavaScript; they do this kind of thing for fucking morons and that's why the PHP community is full of them, "web designers". Also, because of this, the forced use of strings as keys for arrays.
- Lack of nested quotes like Tcl's {} or Perl's quote operators
- Object system leaves something to be desired, and it's borrowing bullshit from Java instead of taking it from proper OO languages
- Can't index the result of a function (WTF!?), e.g. can't do f()[0] if f returns arrays.
- Some terrible names in standard library functions ("web designers"); some dangerous functions; and some stupid crap like mysql_real_fuck_yeah_escape_string which "web designers" tend to get wrong
- Single function namespace
- Lack of tail-call elimination
the fact that functional programming concepts are impossible to apply without ugly hacks (no lambdas or first-class functions, and please don't even mention create_function())
Lol, you'd have to see the things I've managed to do with it. Sure, their implementation are all hacks, and there's no syntax for lambdas, so you have to use quotes, and there are no nested quotes, so you may end up like '"\\\\\\"\\\\\\\\'\\\\\\\\\\\\""."\\\\\\\\\\""."\\\\\\\\\\""\\\"', but I have lambdas that are simpler to define and can be used inside each other (unlike create_function), prog1, progn, a flexible apply, partial function application, promises, map, filter, reduce, and I'm currently thinking of a way to implement list comprehensions with as little suckage as possible. Of course, all of this is limited due to the lack of lexical scoping (at best, you can "export" values when constructing expressions, but welcome to quote hell), and the fact you shouldn't create a lambda in an iteration with over 1000 steps.
>>9
C and AJAX FTW
>>12,14
Ha ha ha. Are you new here? We don't like your overnegineered, bloated, ugly, powerless ENTERPRISE crap. We're here for ABSTRACT BULLSHITE, which leads to much less coding time, success and illumination. Java isn't nearly as powerful as a fucking toy Lisp I implemented in 300 lines a few months ago, let alone a serious dynamic or functional language.