Live data from Hacker News

The Incredible Growth of Python

stackoverflow.blog

161–170 of 224 posts

Re: The Incredible Growth of Python

#161
post #141

Predicting it now. A large part of the "why" is going to be because of the jump in data science. Python is an incredibly kind language to new comers in the sense that it allows you to just get started. A lot of people are making bigger jumps into data science (purely anecdotal) in the sense that they are programming more around it. Scraping data, cleaning data, etc is also really easy with Python. Devops stuff is als…

I agree but wanted to add in pandas and seaborn.

I actually keep a jupyter qtconsole open to use them for ad-hoc data visualization. Pandas replaced excel for me a while ago and I cringe every time I need to abandon seaborn for a Tableau workbook these days.

GUI Visualization tools like Tableau or PowerBI seem to error towards presentation, while the defaults for seaborn help discover and visualize data while still producing results good enough to make C*O's happy.

Re: The Incredible Growth of Python

#162
post #147

Earlier quoted context omitted.

Julia is definitely a step up in data science programming. It's purpose built for data science. I guess that's also the reason why Python has grown more than Julia. The likelihood of someone having worked with Python in an unrelated field means that when starting out in another field, if the Python option exists, they are probably going to take it. Apart from that, if one is just getting started out in data science a…

The problem is that data science, often, isn't just data science. It might involve doing a bunch of activities that are strictly not data science - scraping data off the web (Python has requests), visualization for some understanding (Python has dozens of nifty libraries), store data in a small db (Python works nicely with sqllite, among others), convert all of this into an app (Python has Flask, again among others).…

Yes, in principle Julia should be able to do all of these things too, but it simply doesn't have the decades-old history of libraries to stand on yet.

Re: The Incredible Growth of Python

#163
post #96
post #59

As someone who has been using Python since 2000 roughly, another minor factor (besides the obvious data science factors) might also be the decline in Ruby. Ruby (and Rails) growth in the 2005-2010 era, seemed to noticeably put the brakes on Python's previous growth up till that point. Back then Ruby had all the boosterism/hype and Python was the supposedly "boring/legacy" option. Even now, Python's growth doesn't see…

I don't think hype is the main factor. Ruby's decline is due to its narrow focus on web development and Rails in particular. Whilst there certainly are gems covering other areas of computing Ruby never seemed to diversify the way Python has. With Node.js eating Ruby's lunch in the web development sphere Ruby is left looking like the single-commodity Venezuelan economy. Let me add that I think Rails is a fantastic pie…

It is not just Matz but the community or core team as a whole. Look at every Python 3.x release, and then look at the release in Ruby, some of the bigger improvement were more like catch up. And since then there is little changes.

It is also rather unfortunate no company wants to invest in Ruby.

Re: The Incredible Growth of Python

#164
post #130

Earlier quoted context omitted.

I think you're right, the biggest pain for a general developer for Python is determining which package manager to use. I'm thankfully insulated from it a bit due to using Docker for a lot of my development, but I hate the fact that Pip won't install to your home/project directory unless you coax it to (and sometimes still won't even if you give it all the proper environment variables), and I think virtual environment…

I like python3 -m venv myfolder; source myfolder/bin/activate; It is the easiest way to use python3 because even fedora (one of the more bleeding edge) likely won't finish migrating 2 to 3 in current year. Why do you not like venv? What could be done better?

I don't really like virtualenv because you have to activate it to do anything and deactivate it if you want to go to another project or work on something unrelated. I'd much rather it work by the project directory so I don't have to worry about the activation part (this is why Node's package manager, for all its issues, is great: you install in a local folder unless you explicitly supply the -g flag). At least I should be able to install packages to my home directory.

Re: The Incredible Growth of Python

#165
post #139

I know I shouldn't feel that way, but as a developer who loathes Python, this is a painful read. I start to feel that if I can't fight the trend then I should join it. But then every time I try Python, I feel such unease because of the low performance and the dynamic typing. It's just something I don't understand... this is really depressing to me.

You might find Nim[1] to be a worthy alternative. I primarily see it as a compiled Python with good performance and static typing.

1 - https://nim-lang.org

Re: The Incredible Growth of Python

#166
I moved from my last job (mostly C#/vba, front office finance)to a new role (python, data guy at hedge fund).

Doing data stuff and simple web services is absurdly more straight forward in python, the main things I miss (weaknesses of python to C# and I'm guessing java):

nice parallel options (I know several options exist but haven't found any of them as easy to get into as C# async/await, GIL is the problem i guess)

the django database layer doesn't do smart diffs in the same way as .net db projects (in .net it's smart enough to actually look at your code schema vs the database and work out how to roll forward/back, in django it's just using a combination of your code schema and a table describing what has and hasn't been rolled out yet, making everything a bit scarier and tougher if anything goes wrong. I dunno if SQLAlchemy does this.

edit: also I once read a HN comment that a problem at the heart of python is that block-syntax forces you into having only trivial inline lambdas, after writing it for a while I think they might have been right

Re: The Incredible Growth of Python

#167
post #164

Earlier quoted context omitted.

I like python3 -m venv myfolder; source myfolder/bin/activate; It is the easiest way to use python3 because even fedora (one of the more bleeding edge) likely won't finish migrating 2 to 3 in current year. Why do you not like venv? What could be done better?

I don't really like virtualenv because you have to activate it to do anything and deactivate it if you want to go to another project or work on something unrelated. I'd much rather it work by the project directory so I don't have to worry about the activation part (this is why Node's package manager, for all its issues, is great: you install in a local folder unless you explicitly supply the -g flag). At least I shou…

Ah yes. Local by default would be nicer.

Re: The Incredible Growth of Python

#168

Python is such a good get-shit-done language. I've been diving into the Qt bindings at work recently, and I've gotta say, these are hella underrated.

I'm using PyQt as well for my file manager [1]. You may be interested in a wiki I maintain for things I had to learn "the hard way" [2].

1: https://fman.io

2: https://github.com/mherrmann/pyqt-resources

Re: The Incredible Growth of Python

#169

Earlier quoted context omitted.

Java was by no means an overnight success. It was way too slow for several years until they really started to do anything more than run the bytecode in the JVM.

McNealy freely admitted in an interview that: "we were able to hook Java runtime onto the free, open source Netscape browser. And it was a collision of two things that accelerated and launched each other together. It was fascinatingly lucky timing for both companies." While it may have taken time to mature at that time it was an "overnight success". Sun was considering dropping it and considered it an expense before…

Did Sun ever make any money on it?

Re: The Incredible Growth of Python

#170
post #74
post #10

Yes , but the young contenders already exist. If Nim gets more traction , over time it may replace Python.

Nim's designer is too enamored with Delphi and has chosen to borrow many of Delphi's bad ideas for nostalgic reasons. This adds more ambiguities, more Perl-like symbol use, more reliance on an intelligent IDE, etc. Python is about the importance of simplicity and readability. I don't see Python devs abandoning Python for Nim any time soon. The ones who would have been tempted by Nim have already been tempted away by…

What bad ideas from Delphi did Nim borrow?

Presumably you are referring to the way imports are done in Nim, i.e. the fact that all symbols are imported into the current module by default (the equivalent of `from module import *` in Python). Nim could certainly follow Python's lead, but that would limit the language: Nim supports UFCS and operator overloading which requires modules to be imported this way.

You can of course feel free to use `from module import nil` in Nim to enforce module name prefixes for each procedure call. But keep in mind that there is no risk of ambiguities, the compiler statically checks everything and refuses to compile your code if there is an ambiguity (at which point you will need to resolve it by prefixing with the module name).

I would be interested to hear more about other things that you think are a bad idea. Could you elaborate a bit?

Post reply on HN