I don't really like Python, a lot of things in it seem very hastily added (such as the way classes work) and not very well thought-out. If you ignore OOP and use it purely as a scripting language, it is great, however.
I don't really like Python either, like chrisname has already said many aspects of it seem slapdash. For a beginnger language it's good, but I don't find it's good for anything non-trivial.
I like the similar structure to proper languages with the simple syntax. Why shouldn't indent imply scope for all languages? In C++ the curly braces are redundant.
And if you've ever been unfortunate enough to have to use Visual Studio on a 1.8GHz box, you come to really an appreciate interpretted language.
What I like most about it is it's obvious how to use it for a C/C++ developer.
Why shouldn't indent imply scope for all languages? In C++ the curly braces are redundant.
I'd agree that implicitly this should happen, however you shouldn't be explicitly required to align your code in such a fashion- that was actually the one thing that really put me off to python. I align my code by default in c++ but the requirement just bugged the crap out of me, and say I had an extra space? Nope chuck testa.
I don't really like Perl unless I need to write a script involving regular expressions (which is hardly ever). If it's very simple I'll use shell script (or even batch script if the problem is simple enough). If it's not so simple I use Python or Perl. For more complex projects I use C or C# (sometimes C++ and, more rarely, assembly).
I've managed to switch all of my scripting needs over to Ruby. I can use it for simple stuff, I can use it for Regex stuff (it's a language built-in like perl), heck even most of my sysadmin uses are ruby now instead of bash.
What's a proper language? You mean you don't know?
Checking indentation was an early check in lint. It was a common problem in C/C++, but to be fair, I haven't seen it for a while. But it would be nice if what the compiler and developer see are more aligned.
And if you've ever been unfortunate enough to have to use Visual Studio on a 1.8GHz box, you come to really an appreciate interpretted language.
What do you mean? I run Visual Studio all the time on my 1.86 GHz CPU and it runs fine.
I wrote some months ago a script on Python, and every week when I run it I regret ever making that decision. The data I work on grows every week, but I assumed that, because it was mostly XML parsing, regex matching and searching, and SQLite access, it could be done quickly. I couldn't have been more wrong. I think it actually takes more time to process the data than to download it (it's probably about 900-1000 MiB. It's hard to know for sure because I store it BZ2'd).
Not a toy language my ass. No static typing, no real concurrency, hilariously slow interpreter. How is that not a toy language? Man, **** Python.
What's a proper language? You mean you don't know?
Checking indentation was an early check in lint. It was a common problem in C/C++, but to be fair, I haven't seen it for a while. But it would be nice if what the compiler and developer see are more aligned.
Actually, it seems you don't, unless you mean checking whitespace is the only criteria. >.<
Try IronPython, it runs it on .NET and it might be faster. Or Jython which runs it on the JVM.
Iron Python is nice, but Jython is horribly out dated: the creator jumped ship to create Iron Python, and they're still stuck in Python 2.5 land. Iron Python is up to 2.7.1 , which is close enough to the reference implementation of Python 2.
Even that's still pretty behind, considering the latest version is 3.2.2. Most people are so stuck on Python 2 though because they are too lazy to update their print statements...
As for the concurrency issues, there's Stackless Python which does everything with microthreads and coroutines and offers significant improvements over the reference implementation.
I'm going to shamelessly plug Ruby again, mostly because JRuby and Iron Ruby are both more or less up to date with the latest Ruby releases and the creator of Ruby has gone ahead and told people straight up to stop using Ruby 1.8 (the Python 2 of the ruby world) and to switch to 1.9 because he's not going to update it anymore other than security fixes. ;)
Of course! How could I forget? Do you use a significant amount of code written for Python 2.x? Do you want to upgrade to Python 3? Well, apparently the developer wants you to go right **** yourself.
I stand corrected, I only read about it real quick before replying to this thread and misunderstood. Either way, you can use the threading capabilities of the JVM or the .Net runtime with their respective Python implementations to take advantage. There's also the 'processing' and 'subprocesses' modules to run code in seperate processes and use message passing or even the Twisted or Ampoule libraries.
Well, apparently the developer wants you to go right **** yourself.
Well, fuck him too. I won't use his software then. Besides, it's not hard to have an installation of Python 2 to run legacy code and another of Python 3 to write/run new stuff.
It's only a matter of time before Python 2 is discontinued and Python 3 is the only one available. Then I'll suppose there will be a fork but I, personally, won't care.
run code in seperate processes and use message passing
IPC is no substitute for proper threads.
Sorry I wasn't clear. I was talking about the developer of Python. Requiring developers to update their code because the language changes significantly between releases is absurd. If your language is in such an experimental stage, it's dishonest to give it a whole version number.
Besides, it's not hard to have an installation of Python 2 to run legacy code and another of Python 3 to write/run new stuff.
Sure, it's not hard. The problem is when you want to combine code for 2.x with code for 3.x.