> I work in financials and the majority of our apps are developed in C++
> and Java yet all the tools that startup, deploy and conduct rigorous
> unit testing are implemented in Python or Shell scripts that wrap
> Python scripts.
> Python definitely has its place in the enterprise however not so much
> for serious stand alone app development.
> I'm starting to see Python used along side many statistical and
> analytical tools like R, SPlus, and Mathlab for back testing and
> prototype work, in a lot of cases I've seen quants and traders
> implement models in Python to back test and if successful converted to
> Java or C++.
Maybe this is true in *your* experience but *my* experience is very different. I have seen Python modules become modules that end up rewritten in C for performance reasons but I consider that part of the power of Python and an argument *for* Python.
Ramit
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
On Jul 30, 12:31 pm, Rodrick Brown <rodrick.br...@gmail.com> wrote:
> Its still not possible to be a pure Python developer and find gainful
> employment today.
I have been working as a "pure" Python developer for six+ years now
(in that the bulk of my coding is done in Python, with some interface
behaviour in JS). On average, every two months I'm contacted by a
recruiter or an employer wanting me for my Python experience. I've
worked for government, education and private industry, and the only
time I didn't get paid was my last week working for a start-up.
So I'm pretty confident that I'm "gainfully" employed.
On Mon, 30 Jul 2012 14:09:38 +0000, Grant Edwards wrote:
> On 2012-07-30, Stefan Behnel <stefan...@behnel.de> wrote:
>> Still, you may still get away with the above statement by providing a
>> sufficiently narrow definition of "standalone". By my definition, there
>> isn't much "standalone" code out there. Most code I know interfaces
>> with a couple of external tools, libraries or backends, usually written
>> in languages I don't have to care about because they provide a language
>> independent interface.
> It's not really relevent to this discussion, but there is _lots_ of
> stand-alone code out there. It runs in sub-one-dollar microcontrollers
> that are programmed in assembly language or in C without external
> libraries (sometimes not even the "libc" that's included in the C
> language definition). Those microcontrollers are everywhere in toys,
> appliances, and all sorts of other "non-computer" things.
And at that level, you aren't going to write your app in Python anyway, and not because of the GIL. (These microcontrollers are unlikely to have multiple cores -- why the hell does your microwave oven need two cores?)
It seems to me that those who claim that the GIL is a serious barrier to Python's use in the enterprise are mostly cargo-cult programmers, parroting what they've heard from other cargo-cultists. It really is astonishing the amount of misinformation and outright wrong-headed ignorance that counts as accepted wisdom in the enterprise.
Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> writes:
> And at that level, you aren't going to write your app in Python anyway, > and not because of the GIL. (These microcontrollers are unlikely to have > multiple cores -- why the hell does your microwave oven need two cores?)
> It seems to me that those who claim that the GIL is a serious barrier to > Python's use in the enterprise are mostly cargo-cult programmers,
I would say, it puts a crimp into Python's versatility but there are
still lots of areas where it's not a serious issue. A real compiler
(PyPy) will help Python performance far more than multi-core currently
can.
On Mon, 30 Jul 2012 21:45:51 -0700, Paul Rubin wrote:
> Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> writes:
>> And at that level, you aren't going to write your app in Python anyway,
>> and not because of the GIL. (These microcontrollers are unlikely to
>> have multiple cores -- why the hell does your microwave oven need two
>> cores?)
>> It seems to me that those who claim that the GIL is a serious barrier
>> to Python's use in the enterprise are mostly cargo-cult programmers,
> I would say, it puts a crimp into Python's versatility but there are
> still lots of areas where it's not a serious issue.
Of course it's a crimp. Nobody likes the GIL for its own sake, and nobody likes the fact that it does slow CPython down under some circumstances. It's not like the Python devs scheme behind closed doors on how to make Python slower. If somebody came up with a way to remove the GIL without the harmful side-effects, or volunteered to do the enormous amount of work needed, the devs would be as enthusiastic for it as anyone else.
Recognising that there are *some* applications where Python isn't suitable (for whatever reason, not just because of the GIL) is simply common sense. There are a whole lot of factors leading to the choice of a compiler. "Can use all available cores on a CPU" is only one of many.
[rant]
But to hear some people talk, CPU-bound multi-threaded apps are the only "serious" enterprise apps, and further more, there is no possible way to make a program fast enough *except* threads, hence no possible way that Python is suitable except by removing the GIL.
Do they consider that perhaps there are alternatives to threads? Or that there already are Python implementations that don't include the GIL, running on big enterprise-friendly platforms like Java and .NET? No they do not. If Python didn't have the GIL, they'd find some other excuse to dismiss it for "serious" work.
And that is why I consider that anyone repeating without nuance the canard that the GIL makes Python unsuitable for serious enterprise work is a cargo-cultist.
[/rant]
And now I have to go yell at some kids who are on my lawn.
In article <50177b4d$0$29867$c3e8da3$54964...@news.astraweb.com>,
Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote:
> Do they consider that perhaps there are alternatives to threads?
There's basically two reasons people use threads.
First is because it's a convenient way to multiplex short-lived tasks on a single processor. What people tend to forget is that we managed to do that before there were threads. Event loops still work perfectly fine.
For an interesting example, http://www.gevent.org/.
Second is because we have multiple long-lived, compute-bound tasks and want to be able to take advantage of multiple processors. For that, multiprocessing works just fine most of the time. And multiprocess has the advantage over multithreading in that the processes can run on different machines, so you're not limited by the number of cores you can get on a single CPU.
What multiprocessing doesn't give you is fine-grain task switching. So we're left with the set of jobs which consist of many (but not more than the number of cores on one CPU) compute-bound tasks, that we know how to parallelize, and require fine-grain task switching. Sure, that's an important set of jobs, but there's a whole huge world of computing that doesn't fit into that box.
> On 30/07/2012, lipska the kat<lip...@yahoo.co.uk> wrote:
>> On 30/07/12 14:06, Roy Smith wrote:
>>> These days, I'm working on a fairly large web application (songza.com).
>> "We are very sorry to say that due to licensing constraints we cannot
>> allow access to Songza for listeners located outside of the United States."
>> Arse :-(
> A free[1] US proxy could bypass[2] that page ... eg something like
> http://www.airproxy.ca/
> [1] as in beer
> [2] for research purposes
Oooooh that's a bit good isn't it, just for research purposes of course.
There's one (as in 1 above) in the pump for you.
lipska
-- Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
> On 01/08/2012, lipska the kat <lip...@yahoo.co.uk> wrote:
>> On 31/07/12 14:52, David wrote:
>>> [1] as in beer
>>> [2] for research purposes
>> There's one (as in 1 above) in the pump for you.
> Great, more beer => better research => \o/\o/\o/
> But, "pump" sounds a bit extreme .. I usually sip contentedly from a glass :p
You complete ignoramus, if it gets poured in advance that's no good to anybody as it'll go flat. Has to stay in the pump until you're ready to drink it from the glass. Don't you know anything about the importance of process and timing? :)
> On 01/08/2012 00:31, David wrote:
>> On 01/08/2012, lipska the kat <lip...@yahoo.co.uk> wrote:
>>> On 31/07/12 14:52, David wrote:
>>>> [1] as in beer
>>>> [2] for research purposes
>>> There's one (as in 1 above) in the pump for you.
>> Great, more beer => better research => \o/\o/\o/
>> But, "pump" sounds a bit extreme .. I usually sip contentedly from a
>> glass :p
> You complete ignoramus, if it gets poured in advance that's no good to
> anybody as it'll go flat. Has to stay in the pump until you're ready to
> drink it from the glass. Don't you know anything about the importance of
> process and timing? :)
Heh heh, obviously never got drunk ... er I mean served behind the bar at uni/college/pub %-}
lipska
-- Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
On 01/08/2012, lipska the kat <lip...@yahoo.co.uk> wrote:
> On 01/08/12 09:06, Mark Lawrence wrote:
>> You complete ignoramus, if it gets poured in advance that's no good to
>> anybody as it'll go flat. Has to stay in the pump until you're ready to
>> drink it from the glass. Don't you know anything about the importance of
>> process and timing? :)
> Heh heh, obviously never got drunk ... er I mean served behind the bar
> at uni/college/pub %-}
> On 01/08/2012, lipska the kat wrote:
>> On 01/08/12 09:06, Mark Lawrence wrote:
>>> You complete ignoramus, if it gets poured in advance that's no good to
>>> anybody as it'll go flat. Has to stay in the pump until you're ready to
>>> drink it from the glass. Don't you know anything about the importance of
>>> process and timing? :)
>> Heh heh, obviously never got drunk ... er I mean served behind the bar
>> at uni/college/pub %-}
> Nah, obviously *is* drunk ;p
Would you mind taking this slightly off-topic discussion off the list?
On 01/08/2012, Stefan Behnel <stefan...@behnel.de> wrote:
> Would you mind taking this slightly off-topic discussion off the list?
I always strive to stay on-topic. In fact immediately this thread went
off topic, 4 messages back, I did try to go off list, but got this
result from the OP:
Delivery to the following recipient failed permanently:
lip...@yahoo.co.uk
Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the
recipient domain. We recommend contacting the other email provider for
further information about the cause of this error. The error that the
other server returned was: 554 554 delivery error: dd This user
doesn't have a yahoo.co.uk account (lip...@yahoo.co.uk) [-5] -
mta1050.mail.ukl.yahoo.com (state 17).
Date: Wed, 1 Aug 2012 09:31:43 +1000
Subject: Re: Is Python a commercial proposition ?
From: David <bouncingc...@gmail.com>
To: lipska the kat <lip...@yahoo.co.uk>
Then, if someone is going to call me an ignoramus on a public list,
they will receive a response in the same forum.
So, I apologise to the list, but please note the unusual circumstances. Thanks.
> On 01/08/2012, Stefan Behnel <stefan...@behnel.de> wrote:
>> Would you mind taking this slightly off-topic discussion off the list?
> I always strive to stay on-topic. In fact immediately this thread went
> off topic, 4 messages back, I did try to go off list, but got this
> result from the OP:
> Delivery to the following recipient failed permanently:
> lip...@yahoo.co.uk
> Technical details of permanent failure:
> Google tried to deliver your message, but it was rejected by the
> recipient domain. We recommend contacting the other email provider for
> further information about the cause of this error. The error that the
> other server returned was: 554 554 delivery error: dd This user
> doesn't have a yahoo.co.uk account (lip...@yahoo.co.uk) [-5] -
> mta1050.mail.ukl.yahoo.com (state 17).
> Date: Wed, 1 Aug 2012 09:31:43 +1000
> Subject: Re: Is Python a commercial proposition ?
> From: David <bouncingc...@gmail.com>
> To: lipska the kat <lip...@yahoo.co.uk>
> Then, if someone is going to call me an ignoramus on a public list,
> they will receive a response in the same forum.
> So, I apologise to the list, but please note the unusual circumstances. Thanks.
I'm in stuck record mode here, but one of the things I really enjoy about reading here is the way things do go off topic. IMHO makes for a far more interesting experience. YMMV.
> On 01/08/2012, Stefan Behnel<stefan...@behnel.de> wrote:
>> Would you mind taking this slightly off-topic discussion off the list?
> I always strive to stay on-topic. In fact immediately this thread went
> off topic, 4 messages back, I did try to go off list, but got this
> result from the OP:
> Delivery to the following recipient failed permanently:
> lip...@yahoo.co.uk
snip
This is my fault, I set the reply to address incorrectly. You HAVE corresponded successfully with me in the past however... I apologise for the inconvenience.
JFTR I did not call you an ignoramus (it's a funny word though isn't it, makes me smile anyway).
lipska
-- Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
> I'm in stuck record mode here, but one of the things I really enjoy
> about reading here is the way things do go off topic. IMHO makes for a
> far more interesting experience. YMMV.
+1
Ramit
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
>> I'm in stuck record mode here, but one of the things I really enjoy
>> about reading here is the way things do go off topic. IMHO makes for a
>> far more interesting experience. YMMV.
> +1
> Ramit
> This email is confidential and subject to important disclaimers and
> conditions including on offers for the purchase or sale of
> securities, accuracy and completeness of information, viruses,
> confidentiality, legal privilege, and legal entity disclaimers,
> available at http://www.jpmorgan.com/pages/disclosures/email.
Huh? Who's still trying to sell viruses these days? I thought they came for
free?
> Hence the reason why no one will seriously look at Python for none
> glue work or simple web apps. When it comes to designing complex
> applications that need to exploit large multicore systems Python just
> isn't an option.
> Its still not possible to be a pure Python developer and find gainful
> employment today.
Oh come on, are you *actually* serious?
Pretty much everything you've said is nothing but inept bullshit.
Please stop.
> On 30/07/2012 03:31, Rodrick Brown wrote:
>> Hence the reason why no one will seriously look at Python for none
>> glue work or simple web apps. When it comes to designing complex
>> applications that need to exploit large multicore systems Python just
>> isn't an option.
>> Its still not possible to be a pure Python developer and find gainful
>> employment today.
> Oh come on, are you *actually* serious?
> Pretty much everything you've said is nothing but inept bullshit.
> Please stop.
OK, well excuse me for butting in but it's obvious from your website that you have some experience with Python in the 'real world' I'd be most interested to hear if you have experience of or have heard of Python being used in any of the following circumstances.
Critical Systems:
wikipedia does a better job than I on the definition of a critical system although I'm not suggesting that everything in this article refers to a potential software system but it's a good illustration.
An example of a real time system in this context is
an odds arbitrage back end publishing to the WWW via a
collection of web services, of course this is just one possible interface, it could publish to another computer system or another HCI
This requirement of course implies a complete decoupling of view and implementation. For more on odds arbitrage
It's 'real time' because publishing incorrect odds could cost someone a great deal of money, the odds need to be available for manipulation by the arbitrage engine as soon as they appear on the relevant bookies website (in fact I've had them appearing _before_ this as I managed to process them before the bookies web site did :-).
What is the largest Python project you have experience of, you can use any metric you want, a simple KLOC, function point or cost analysis will be fine.
This is a genuine enquiry and not designed to 'diss' Python in any way.
Many thanks
lipska
-- Lipska the Kat�: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
On Sunday, July 29, 2012 12:01:00 PM UTC-4, lipska the kat wrote:
> How is python used in the real world.
songza.com is pretty close to 100% python. The only significant non-python code on the server side are mongodb, haproxy, and nginx.
> What sized projects are people involved with
We've got 102 KLOC in the application (i.e. code we wrote), plus another 104 KLOC in django and 337 KLOC of other installed packages (i.e. everything in our virtualenv's site-packages directory).
Those numbers are just the raw output of doing "find ... -name *.py | xargs wc -l", so they include blank lines and comments. So, all told, roughly a half million lines of python code.