On Thu, 2008-09-11 at 10:41 -0700, Josiah Carlson wrote:
On Thu, Sep 11, 2008 at 2:05 AM, Cliff Wells email@example.com wrote:
Overall, I'm left with the nagging suspicion that because of my language choice, I'm missing an important paradigm that would elevate my programming to the next level.
Then what the hell are you waiting around here for? If you are feeling constrained by Python (as a general-purpose language), try some others! You may want to add Haskell, Caml, or even Lua to your list of languages to check out. Maybe your Python will get better, or maybe you'll move on from Python. Who knows?
Hey, I said I was lazy! ;-) Anyway, my biggest hurdle to most of the languages I've considered boils down to:
1) Lua - not expression based 2) Haskell - too ugly 3) Io - no libraries 4) Lisp - I find it borderline unreadable, plus I'd have to talk to other Lispers 5) Boo - I'd have to learn .NET and deal with the fact that 95% of the community is on Windows 6) Erlang - too ugly, too fast 7) Ruby - Too ugly, too slow, plus I'd probably have to make a cutesy website with cartoon animals and robots to show my fandom
Two other options:
1) Logix - I could attempt to revive it. This is actually fairly appealing if a bit daunting to dive into. 2) Fork Python - I've considered making a proof-of-concept with a Python fork that does what I want, but it would be disappointing to discard it when it was inevitably rejected, and I have no intention of becoming a language maintainer.
I think I'm going to play with Io for a bit in spite its shortcomings as it is explicitly a multiparadigm language and seems to look the cleanest.
In any case, I expect I'll stew in my current situation for a while longer at least. The unfortunate fact remains that most of the languages that speak to me (e.g. Boo and Io) don't have the broad range of libraries and frameworks available that Python does and ultimately this tends to outweigh my esoteric desires.
One thing that you need to remember about Python is that it's a general language. It's syntax and semantics are such that it works in a fairly large variety of situations. Because it's a general language, it sometimes doesn't do the things that would be convenient in a domain specific language. In particular, it doesn't have a lot of those things that would make functional programming more convenient (a shorter way of spelling 'lambda', everything is an expression, etc.), but no one language can be perfect for everyone.
But it's so damn close =)
I wish you luck in your adventures with alternate languages.
Thanks for all your time and thoughts.