Page 1 of 3
Python
Posted: Thu Jan 25, 2007 1:50 pm
by Luke
What's everybody's take on Python. Is it worth learning? I looked for a thread on this, but couldn't find one.
Posted: Thu Jan 25, 2007 1:52 pm
by feyd
I'm pretty sure there have been several threads mentioning Python. If memory serves, patrikG was getting his feet wet in it a while ago.
I personally like it, but do the server availability, can't use it too much.
Posted: Thu Jan 25, 2007 1:56 pm
by Luke
Just these:
viewtopic.php?t=26774&highlight=python
viewtopic.php?t=28337&highlight=python
Not a whole lot of community response. I'm going to try and do some research on it and report back since it seems not a lot of folks here know a whole lot about it. It all just depends on whether or not I have time.
Posted: Thu Jan 25, 2007 6:09 pm
by RobertGonzalez
It might just be me, but it seems like Ruby, Java and c++ might be better languages to learn. Or am I stupid in my assessment?
Posted: Thu Jan 25, 2007 6:22 pm
by Luke
I'm trying to decide whether to get into ruby or python. I've only heard good things about python so far.
Posted: Thu Jan 25, 2007 6:34 pm
by RobertGonzalez
I have to. I have heard a lot of good things about most of the languages out there. But the need for Python programmers has seemed lacking compared to Java, C++ or even PHP developers. I might be looking in the wrong places though.
Posted: Thu Jan 25, 2007 6:40 pm
by Christopher
The Ninja Space Goat wrote:I've only heard good things about python so far.
I think Python has become a major alternative to C/C++ for application programming. Ruby excitement is mostly around RoR, but I just don't see a lot of applications.
For example, searching by language name on SourceForge gives the following number of projects:
Code: Select all
Java 13174
PHP 9748
C++ 8916
Python 3215
Ruby 467
Posted: Thu Jan 25, 2007 6:47 pm
by Luke
maybe I'll put it off for a while and learn java... it seems like it would be the most useful to me
Posted: Thu Jan 25, 2007 7:00 pm
by Jenk
I'm swotting up on SmallTalk.. good god it is so different to anything and everything I have done before.
The entire practice of smalltalk is reflection, from what I've seen so far.
EDIT:
.. and christ almighty does it have some awesome tools. Squeak (
http://www.squeak.org/) is one heck of an IDE.. it has a VM - with countless helper tools, a webserver, email server and browser and full debugger - and the entire thing is a massive 7mb. That's
seven megabytes for a VM, email server, webserver, a conventional IDE + more, web browser (lightweight) and a full debugger.
As the late Steve Irwin would say: Crikey!
Posted: Thu Jan 25, 2007 8:04 pm
by DrTom
The reason you don't see many full blown ruby applications (short of rails stuff) is that, atleast in the few shops I've worked at, it's more used as a replacement for PERL. You won't find yourself making a really swell application out of it but using it to hack together quick scripts to accomplish things.
As far as Ruby vs Python vs Smalltalk vs Java vs C++
all are incredibly useful to know from a professional standpoint. While not many people will hire a 'ruby' programmer and generally
only the game industry is looking for 'python' people, they're great languages to have on your resume at least I know it really pops out
to me when I'm sifting through resumes. As far as which is better, that's really just a preference. I've done both utility applications, a quick cronjob/shell script, and medium size applications in them and here's what I've learned.
Ruby - Generally slower than Python performance wise, but the difference is negligible. It and the extensions it requires also tend to be less portable compared to Python. I think that stems from the fact that the python community seems to be quite a bit larger than Ruby's. As far as
the syntax goes, I absolutely LOVE it. I find myself wishing every language looked like Ruby. It takes some getting used to, but once(if) you do, it's wonderful. The bad part is there's not a ton of documentation/examples around the web. Even books tend not to cover some of the most useful features of the language, but really it's the best way to learn as online documentation is even worse. It comes with bindings to tk right out of the box, and almost every GUI toolkit has bindings available, which makes it pretty easy to get started doing that. There are TONS of 'gems' that have been abandoned and no longer function that would be incredibly useful which sucks.Ruby, comes fairly bare bones on the install, and you really have no idea if the 'gems' will be available to your application or not which can be problematic when distributing applications. Also a lot of the 'gems' lack documentation which can make them problematic to learn (especially GUI bindings. You spend a good deal of time translating from documentation for other languages)
Python - Better performance wise. Not 'true OOP' like Ruby. That can be a good or bad thing depending on how you look at it. Strictly enforces code style, which really helps when learning from other peoples examples. The syntax takes some real getting used to, but I like it does make things incredibly easier to read. The base Python install has most features a programmer coming from PHP would expect. This makes it MUCH easier to write an application for distribution. There are bindings for tons of GUI toolkits that are nice and up to date and fairly well documented.
Anyway, basically that's what I've learned from personal experiences with the 2 languages over the last couple of years. The best part about either of them is, development time is extraordinarily short as compared to languages like C++/Java.
As far as they go, it's always great to learn one/both of them. You don't see too many resumes without at least a little experience in one or the other(although it may not be professional experience) so don't look for that to separate you from the others in that respect.
As far as smalltalk goes, it's a great language to learn in that tons of languages are based on it and it's an entirely new programming paradigm as compared to 'C' style languages like PHP,Python,C/C++ or even Java.
Anyway there's my 6 cents on the deal. These opinions were formed from dealing with these languages on a day to day basis over the last 3 or so years professionally, so note that I don't know everything about about these languages, and these may be ill informed opinions so take them with a grain of salt.
Posted: Thu Jan 25, 2007 8:16 pm
by Jenk
Definitely agree with the more languages on resume = better. "True" developers are not restricted to languages/syntaxes.
Posted: Thu Jan 25, 2007 8:22 pm
by feyd
You have to be a bit careful about having lots of languages on the resume.. you can portray yourself as a jack-of-all-trades, which can be a turn off.
I would instead advise on customizing the list of languages to the specific industry the job is for, and maybe sprinkle in some of the leftovers.
Posted: Thu Jan 25, 2007 8:57 pm
by wei
try IronPython
http://www.codeplex.com/Wiki/View.aspx? ... IronPython
python that runs on the CLR (Common Language Runtime), it means that python have access to most of .NET's library.
You can actually build a working Desktop UI application from the interactive command line (great for testing and exploring the .net ui library).
Posted: Thu Jan 25, 2007 9:53 pm
by DrTom
feyd wrote:You have to be a bit careful about having lots of languages on the resume.. you can portray yourself as a jack-of-all-trades, which can be a turn off.
Agreed. I didn't mean to leave the impression that you should just put every language ever on your resume, as that makes you
look very unspecialized and generally, most shops, are looking for specialized developers. However, putting a 'utility' language
like python/ruby/perl is usually a good thing in my eyes as almost every shop has stuff in at least one of these languages.
I would advise against listing all 3 though. Get really great at 1 and use that one on your resume.
Posted: Fri Jan 26, 2007 12:18 am
by jmut
DrTom wrote:...Python - Better performance wise. Not 'true OOP' like Ruby...
Can you give example. How is python not true OOP like Ruby?