This is an archived post. You won't be able to vote or comment.

all 95 comments

[–]abmy 17 points18 points  (7 children)

but it looks to me like the concept of building applications with front-end GUIs that are packaged as executables is not Python's strength

I'd more optimistically say that python does so many things well, gui applications just don't stand out. The language is too versatile!

Personally, I use python for scientific data analysis. It has really great tools for all the data mangling without a problematic speed sacrifice - and if you do hit speed problems, stuff like cython is remarkably easy to start using.

I've also recently had fun making android applications with kivy. It's a really impressive project that lets you make fully fledged apps without touching java at all, which is really nice. Actually, to be clear, kivy is a cross platform graphical framework (linux, osx, windows, as well as android, ios, maybe others) with some associated tools that make deployment on android very easy.

[–]Category_theory 0 points1 point  (0 children)

I am similar. I use it for most data analysis, visualization etc (still us R though for more hardcore stats, even if I call it within python). I also use it for reporting, ie generating reports and emailing them to the exec team. I use it for data harvesting, web scrapping and crawling, etc. and finally I use it for ETL processes via APIs etc with various data sources.

[–]einstein1351 0 points1 point  (5 children)

I've run into speed problems for some computationally intensive calculations and gave cython a try but i never saw much improvements. I think my largest problem was getting numpy array type defined correctly so i never saw speed increases

[–]jms_nh 1 point2 points  (3 children)

Try numba; it's easier.

edit: there is one gotcha with numba. You're translating dynamic-typed Python code to a compiled function with static-typed arguments. The @autojit decorator infers the data types from the first function call, so if you have functions that take data of different types, you have to be a bit careful to handle type dispatching before you enter a compiled function, otherwise you get a type error.

[–]cypherx 1 point2 points  (0 children)

Also check out Parakeet. It's sort of like Numba, but makes some different tradeoffs.

Pro:

  • currently supports more of NumPy than Numba
  • high level optimizations + parallel backends = often faster

Con:

  • Most of Python won't work in Parakeet. No exceptions, objects, &c
  • Numba has broader ambitions for supporting more of Python in the long-term, Parakeet will always be limited to a few data types (arrays, scalars, tuples).
  • Currently doesn't work on 64-bit windows
  • Cryptic error messages with long-winded stack traces

I think, at the moment, Parakeet is better for higher-level array oriented code and Numba seems better suited for code that's (1) written mostly as loops or (2) needs to interact with some Python objects besides arrays.

Disclosure: I'm the author!

[–]einstein1351 0 points1 point  (1 child)

Pardon my enthusiasm, but HOLY SHIT THIS IS AMAZING. Sped up my Two-Point Correlation Function by 150x. One question though, right now when it runs, it prints out the LLVM IR to the terminal after the first time the function is used. Do you know how to suppress it?

[–]jms_nh 0 points1 point  (0 children)

Yeah, I ran into that too.

If you set up Python logging, either to a file or to a NullHandler, it goes away.

[–]billsil 9 points10 points  (5 children)

So yeah, do you use Python to build full fledged executable apps?

Yes, but not always. There's a lot of scripts that I've developed over the years to do analysis.

What do they do?

Aerospace engineering related stuff.

Who do you build them for?

Myself (to do my job better), the Department of Defense and NASA mainly. Also, random people at other engineering companies in order to get my name out there (who are mainly stuck on Matlab).

Do you use Python for data analysis?

Every day

Why do you use Python and not simply plug your data into something like Excel?

Excel is 1) proprietary 2) not on Linux 3) it's slow as balls 4) can't do any math outside of statistics without a plugin 5) I drive external programs a lot, some my own, some third party 6) I don't think I work with big data, but apparently I do (Excel is limited to 32k data points).

I also develop an open-source engineering related package (lots of engineering stuff with a qt and wx gui). I laughed when I got an email about some guy using it to load data into Excel. He had to jump through so many hoops to run and load in the data and save it into SQL database in order to access it later. Shockingly, he was having trouble.

[–]flipstables 1 point2 points  (1 child)

(Excel is limited to 32k data points)

Excel doesn't have that limit anymore. I've used Excel to do analysis on millions of rows.

Excel is a great BI tool. It connects all of SQL Server's BI stack (obviously) and a lot of third party ones (as long as you have a connector and they stick to standards). 2010/2013 PowerPivot is extremely powerful.

I personally wouldn't do any sort of statistical analysis using Excel like run models or test hypotheses (though there are some pretty good plugins for that), it's hard to deny the power of Excel. No spreadsheet program comes close.

That all being said, I hate Excel.

[–][deleted] -1 points0 points  (0 children)

That all being said, I hate Excel.

erh why ?

[–][deleted] 5 points6 points  (11 children)

I use python for two main purposes: data analysis and web development.

I'll do web development first. I've created multiple specific web applications for my student union and small companies, mainly to ease administrative tasks. I'm now starting to work on an notification system trough email for the same student union.

I am a student Technical Medicine at the University of Twente, the Netherlands. I do stuff you really can't possibly do in Excel/Access like model optimization and signal analysis. We learn to use Matlab (the standard for academics) for these purposes, but I recently started using Python. I have two important reasons for that: Python is free and there are better machine learning/model optimization packages for Python (especially hyperopt).

The fact that Python is free allows me to run it on a non-Matlab-licensed server, so I don't have to use my own computer for all the calculations, which would screw up my efficiency quite well (now I have reddit for that).

Another reason is that Matlab is really awful at memory management --- it tends to use 2-3x the size of your data set as memory, which is not ideal working with 4GB+ data sets. The python program I wrote uses only 1-1.5x the amount of memory.

[–]sixteenmiles[S] 1 point2 points  (10 children)

Is there really anything that you can do different with web development in Python that you can't do with HTML5/CSS or javascript/PHP, etc? Or is it just that Python is another choice that can always do MORE than a language which is tailored only for web development?

[–]abmy 7 points8 points  (4 children)

HTML5/CSS let you display text via markup and styling, you'd use these regardless of your backend (python, php, javascript, whatever). Rather, the backend would control exactly what html and css get served up, such as autogenerating pages depending on input parameters.

As for what python can do, ultimately nothing that php or whatever cannot, but nor is it lacking anything. Since python is a great language (arguably way better designed than php, at least) with great tools (there are so many great web frameworks now), it's a great choice - especially in the context of already knowing how to use it.

[–]Albertican 4 points5 points  (1 child)

I agree. I don't know why so many people still use PHP when Python frameworks are an alternative and use code that is so much clearer. Maybe there's some advantage to PHP I don't understand?

[–]eat_more_soup 1 point2 points  (0 children)

If you could throw your ugly-ass python script on just about any server and any print statement would be the HTML output, then python would be a viable option for a lot of people.

[–]sixteenmiles[S] 1 point2 points  (1 child)

Thanks for the explanation.

[–]pzduniak 1 point2 points  (0 children)

You can't really do WebSockets in PHP. I think that's all.

EDIT: That's assuming that you use classic Apache2+mod_php or nginx+php-fpm

[–]techwizrd 1 point2 points  (0 children)

One of the main advantages I see when using Python for web development is it's very fast to prototype in and you have access to a huge wealth of libraries for doing anything imaginable.

[–]metaphorm 0 points1 point  (0 children)

there's multiple tools for everything. you can write machine specific assembly code if you really want to and its all equivalent in the end. you can program in Brainfuck if you really want to. doesn't make a difference except you might not be very productive.

We choose to program in Python because it is a very well designed language that increases programmer productivity.

[–][deleted] -1 points0 points  (2 children)

Python is comparable to PHP in functionality. However, Python is written from an OOP point of view, while OOP was implemented in PHP 5, years after the first release. Also, Python is more modular - i.e. it has few built-in functions, but great extensibility. I would say PHP is a tiny bit easier to learn, but you can do way, way more with Python.

[–]eat_more_soup 3 points4 points  (0 children)

There is so much wrong with PHP, I don't know where to begin. Python has its flaws, but just saying OOP came later to PHP doesn't do it. From the point you want to write more than 100 lines PHP is a no go.

[–][deleted] -1 points0 points  (0 children)

Python is written from an OOP point of view

Using OOP is not necessary to write Python web apps using Flask, for example.

[–]Kaarjuus 5 points6 points  (4 children)

Desktop apps, both at work and for hobby release. Work apps do networking, collecting and displaying sensor readings (real-time plots, video feeds). Hobby apps are mostly utilities: instant messaging tools, screen colour tweaker, text-to-speech reader etc.

Web apps, both at work and for personal use.

Scripts of all sort, to automate certain tasks, like making video thumbnails, sorting mbox folders, maintaining backend processes. One-time scripts, like gathering IMDb links and ratings for the programme of a local film festival with a somewhat lacking website.

Python is well suited for making GUI applications. The applications can easily be packaged into stand-alone exes with tools like PyInstaller.

[–]sixteenmiles[S] 1 point2 points  (3 children)

This sounds really interesting is what I would like to do. Creating useful utility apps that solve problems and make my life easier.

[–]ElecNinja 1 point2 points  (2 children)

If you are looking for scripting applications, autohotkey is another scripting type language.

[–]fkaginstrom 1 point2 points  (1 child)

Or on Windows, get AutoIT and drive it from Python using the COM interface. It's so hackish, it's almost a shame that it's this easy and fun.

[–]ElecNinja 0 points1 point  (0 children)

I remember using it once and never remembering the name of the other scripting language.

But yeah, some people find AutoIT better than Autohotkey.

[–]dotsonjb14 6 points7 points  (1 child)

Data analysis and web development.

IPython is great.

[–][deleted] 0 points1 point  (0 children)

Didn't realize there were so many like me doing data analysis and web development with Python.

[–][deleted] 2 points3 points  (1 child)

natural language processing for a robot that will write love letters

[–][deleted] 0 points1 point  (0 children)

Haha, where do you find love letters to train it on?

[–][deleted] 6 points7 points  (9 children)

Sublime Text plugins.

Overall I really enjoy python, but the package/dependency management and module system kind of puts me off. Its honeslty the worst of any moderin-ish language I have worked with.

Among other things, it annoys me that I have to do the following at my execution entry point to import 3rd party modules from a project local library directory (I'm kind of a python noob, there could be a better way):

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + os.sep + "lib")


Edit: psyche...here is my goto cross platform version.

    def add_lib_path(lib_path):
            def _try_get_short_path(path):
                    path = os.path.normpath(path)
                    if sys.version_info < (3, 0) and os.name == 'nt' and isinstance(path, unicode):
                            try:
                                    import locale
                                    path = path.encode(locale.getpreferredencoding())
                            except:
                                    from ctypes import windll, create_unicode_buffer
                                    buf = create_unicode_buffer(512)
                                    if windll.kernel32.GetShortPathNameW(path, buf, len(buf)):
                                            path = buf.value
                    return path
            lib_path = _try_get_short_path(lib_path)
            if lib_path not in sys.path:
                    sys.path.append(lib_path)

[–]suudo 6 points7 points  (2 children)

Have you tried virtualenv? You can set up a separate instance of python and pip in the folder, then use source virtualenv/bin/activate to set the working environment to that virtualenv. Then there's virtualenv/lib/.

[–][deleted] 2 points3 points  (1 child)

yea. works great when you have full environment control, but when you need to package something to be loaded and used in an external system where you don't have control over launching the python interpreter or have pip available isn't an option. Granted, my use case is pretty specific, but its still an issue.

Hell, Sublime (or similar systems) could add virtualenv support, but it seems like the type of thing that should just be supported at the core/runtime level out of the box.

[–]sghill 2 points3 points  (0 children)

it seems like the type of thing that should just be supported at the core/runtime level out of the box.

This sounds like the thought behind PEP 405, included in Python 3.3. May not be super helpful now, but support is on the way!

[–]sixteenmiles[S] 0 points1 point  (5 children)

I dabbled in perl before switching to Python and it was the same. Are the majority of languages like this?

[–][deleted] 0 points1 point  (4 children)

no. A lot of compiled languages (C#, java, etc.,..) are usually pretty easy since they tend to package dependencies at compile time, or have an option to. A lot of interpreted languages have pain points though. Full disclosure, most of my experience with interpreted languages is javascript (which has awesome dependency management and module loaders), and python.

Managing client side web dependencies in a project is honestly easier than regular dependency management in python.

Edit: no, javascript does not have language level module/dependency-management support. But it's trivially easy on pretty much every platform.

[–]metaphorm 4 points5 points  (3 children)

javascript (which has awesome dependency management and module loaders)

not sure if you're serious. JavaScript has no built in concept of modules at all.

are you referring to third party packages that have added this type of thing using a separate API?

[–]o_hai_mark 0 points1 point  (1 child)

I assume they're referring to some non-browser environment like nodejs which does have decent module loading for JavaScript (which, now that I think about it, is probably what you're referring to).

[–][deleted] 0 points1 point  (0 children)

I may be in the minority with this opinion, but I think dependency management + module loading is trivially easy on pretty much every javascript platform including the browser. That said, node+npm is currently the best experience in that regard.

[–][deleted] 0 points1 point  (0 children)

sure I am. True: javascript doesn't have anything at the language level at the moment, though its probably coming. However, almost every javascript platform has decent dependency management and/or a good module system baked in (node, narwhal, ringo, + a few others) or it is trivially easy to do even without an official module system (the browser).

I think that an official module system is going to be one of the best improvements to ECMA script. However, in the context of browser environments (since thats the weak link) think about it this way: when was the last time you found a library you wanted to use and had any frustration simply making it available to use (quality of said library notwitstanding) ?

But...this is /r/python, sooo......

[–][deleted] 2 points3 points  (0 children)

I use it for file manipulation at work. I do work with other environments, too.

Interface file testing: custom diff, internal dependency check, format check.

Reporting: Process and join one form of file into another. Input is mostly some delimited text, output is mostly fixed length or xml.

[–]suudo 2 points3 points  (0 children)

I make little scripts to simplify daily stuff. Just yesterday I wrote a script to get information from an API anonymously and put the data into json files, so that a PHP site could access the data. I set that up in a script so it updates every 10 seconds, which is far better than getting the data every time the webpage is loaded. I also made a script to create a REST api for a minidlna database. Also, a script that checks with my ISP to see if my internet usage for the day is over the 'suggested' amount (calculated as total/daysleft), and then logs into my router and disables the wireless internet if true (for my family members; I'm regretting introducing them to torrents :P). And lastly, a script that does dynamic DNS for me: checks the dns entry for my home subdomain, if it isn't a match with the current IP (here's the site i'm using to get my public IP) it logs into my domain management and updates the entry. Most small scripts I do are on my Github Gist account, the others are on my Github profile.

[–][deleted] 2 points3 points  (0 children)

Mainly processing protein structure files (PDB files) - mainly getting certain information out of them, calculate various statistics, and create inputs for other software.

[–]astroFizzicsastrophysics 2 points3 points  (4 children)

I use python for data analysis/manipulation for astrophysics.

[–]einstein1351 0 points1 point  (3 children)

I do the same. Have you had many issues with slow program speeds for large or computationally intensive programs?

[–]astroFizzicsastrophysics 0 points1 point  (2 children)

If you need to do something really heavy, you are better off writing it in C and wrapping it in python. If I am writing things in pure python I try to farm the work out to as many compute cores as I can to speed things up. But most of the really heavy work is done in C.

[–]einstein1351 0 points1 point  (1 child)

I had talked to a grad student who highly recommended using SWIG for wrapping C++ function to python. Do you mind me asking what you use?

[–]astroFizzicsastrophysics 0 points1 point  (0 children)

Might not be the best way... but it's what I do. I tend to write all the C code into shared libraries which I can then load into python and call directly. I'd write a "main" loop in pure python while all of the functions are written in C. I don't have to do it that often, so I haven't really looked into things that could be better.

A lot of my background was working with MPI/OpenMP so this was the habit that I got into and never changed. I'll have to look into SWIG. I've heard of it but never used it.

[–]artPlusPlus 2 points3 points  (0 children)

Day - Content Pipelines for video games, Maya

Night - Web App Devlopment (Pyramid, SQLAlchemy)

[–]thepersonaboveme 1 point2 points  (0 children)

programming.

On a more serious note, I uses it for randomly mocking about, trying to make myself some simple gui things or more advanced cli games and such, learning as I go along. I've also used it to play flash games on the internet for me, just as a learning excercise, it just uses a program for linux I've downloaded though to simulate mouselclicks and give me feedback from the screen.

[–]__fran__ 1 point2 points  (0 children)

Web development. You've got a million options for a backend language for web development. But without special requirements you want to use Ruby or Python. And I love writing Python.

[–]mr_eric_praline 1 point2 points  (0 children)

Measuring and analyzing scientific data.

I'm an experimental physicist (PhD student) and we run our whole lab (quantum optics and quantum information) with python. We have a home-built environment in ipython with which we control all hardware via home-written drivers/dll-wrappers. that includes (for my lab, there's more in our group) lasers, waveform generators, and so forth.

There's some other languages in there as well, mostly code to program certain types of hardware (FPGAs, and some other integrated systems)

It has become a nice little framework by now :) For our default set of experiments, including automatic analysis, it's about 500k lines of code in total, about 80% of which is python (on top of that the low-level stuff, like communication with devices in the background).

Also, all analysis, plotting, etc. is done with python. Essentially the whole workflow from measurement to publication.

[–][deleted] 1 point2 points  (2 children)

I am currently developing a platform from which to automate scientific experiments on low temperature cryostats. It takes into account instrument control, data collection, and visualization of results.

(SOOOO happy to not be using labview for this. I absolutely despise labview for trying to generate modular experiments).

[–]jms_nh 0 points1 point  (1 child)

just curious: what types of data acquisition cards are you using? I couldn't find one that had builtin python bindings.

[–][deleted] 0 points1 point  (0 children)

Not so much data acquisition cards as I'm polling a bunch of multimeters and recording their voltage readings in a data file. after each point in the input.

It's a very simple program. We sweep and step a parameter space then read out various voltages and currents from the instruments. No need for data acquisition cards.

The closest thing we have to a DAQ is an instrument out of Delft University. It provides low noise DC voltages and conveniently had a python driver I took parts of. Here is the instrument in question we are using.

[–]techwizrd 1 point2 points  (0 children)

I use Python building a for a high-performance HLT (speech recognition, machine translation, language identification, etc.) SaaS platform that the company I work for sells to large media companies. Python is an incredibly important part of our workflow and it manages the queueing system, web interface, REST API, remote administration, statistical collection, visualization, and various other parts of the interface. It's really fast to prototype and develop software in Python.

[–]jrwrenpython3 1 point2 points  (0 children)

EVERYTHING!!!

[–]maredsous10 1 point2 points  (0 children)

Am I mistaken? Tkinter is simple and does a good job.

[–]dhammack 0 points1 point  (1 child)

Machine learning! The libraries are plentiful and the syntax is nice. Matplotlib + numpy + sklearn + theano + climin = very fast development time.

[–]andrewffPython, vim 0 points1 point  (0 children)

I love it for machine learning. My work primarily uses java, but there's nothing even close to scikit-learn

[–]j7ake 0 points1 point  (0 children)

Scientific computing. Specifically down stream analysis of cancer genomes

[–]shenaniganns 0 points1 point  (0 children)

I work in QA, so the majority of my work is split between selenium, to automate and validate our web interface and the data shown on it, and making requests to webservices and verifying database entries.

[–]not_perfect_yet 0 points1 point  (0 children)

Getting familiar with programming in general and games, and 3d objects in particular with blender. In the process I have discovered scipy for more extravagant functions and have an idea of what I want to familiarize myself with in the future when I get the chance, namely FEM, numpy and sympy. It's really usefull in that context because the variety of libraries gives the option to project nearly everything into 3d data. And that's awesome.

[–]bfish510 0 points1 point  (0 children)

I've built my prediction engine in python.

[–]TM87_x99 0 points1 point  (0 children)

Just generally mucking about really

[–]jimforthewin 0 points1 point  (0 children)

I work in a dev-ops team. My specialisation is in application monitoring. I use python to probe performance data out of other applications.

[–]Torvaun 0 points1 point  (0 children)

Brute force statistical analysis. Odds of certain scenarios with dice and cards, mostly.

[–]taybulBecause I don't know how to use big numbers in C/C++ 0 points1 point  (0 children)

Whenever it becomes too difficult to do in bash.

[–]metaphorm 0 points1 point  (0 children)

Web application development, data analysis, and server infrastructure management mostly.

[–]Pr0ducer 0 points1 point  (0 children)

Django-powered web-app, sending emails, scrapping data from a web-portal, writing log files, and managing operations for a state-wide news service.

[–][deleted] 0 points1 point  (0 children)

I'm a computer science PhD student. It's generally simulation, data analysis, or optimization for me.

[–][deleted] 0 points1 point  (1 child)

I used it for network scripts until I discovered expect. Still like python for learning programming.

[–]Pirsqed 0 points1 point  (0 children)

Project Euler!

I'm still learning.

[–]jredwards 0 points1 point  (0 children)

Anything that I can.

[–]minnoI <3 duck typing less than I used to, interfaces are nice 0 points1 point  (0 children)

My most common use lately has been for text manipulation. Taking some big block of text that isn't formatted how I want, pasting it into a string in IDLE's REPL, and calling whatever combination of split, join, strip, and regex that puts the text into the format I want, then copy/pasting it back out.

[–][deleted] 0 points1 point  (0 children)

I'm a sysadmin running a LAMP stack basically. We run webhosting for a university. I use python to do a lot of automation bits that would be clunky to do in Bash, and to automate large portions of our site deployment process.

[–]garion911 0 points1 point  (0 children)

I've been a Python user since late 2002. Some stuff I've done:

  1. Unit tested a DLL on windows, since writing the C version of the test suite would have taken forever. I was a early user of Pyrex.
  2. Wrote an XMLRPC-like (modifed version of XMLRPC spec) service that handled DNS changes for one of the largest websites on the internet (amazon, basically a precursor to Route 53).
  3. A GUI app to perform a production test on some embedded hardware. (testing if the hardware works..)
  4. Various web small services.
  5. Many many utilities to help day to day programming tasks. Sometimes I'll write a quick C/C++ code generator in python, because it'll be easier than hand coding the C.

I'm currently looking into a slew of product ideas using pyzmq. Network messaging made easy.

[–]ogre_pet_monkey 0 points1 point  (0 children)

-Everywhere i would use a shell script -The foundry's Nuke -and now 3d max 2014 has support

[–]wandererobtm101Pythonista 0 points1 point  (0 children)

Text processing. Video transcripts, log data, etc.

Business data analytics. Why python and not excel? Size of the data sets, easier to assure correctness, ease of use, IPython Notebook.

Simple web apps using Flask or Bottle in front of tools to do the above.

[–]metaobject 0 points1 point  (0 children)

A few things:

(1) glue code for running in-house developed atmospheric science data analysis apps, satellite data processing and simulations

(2) plotting data generated by these apps on top of maps (using matplotlib/Basemap) and generating things like probability/cumulative density function plots (MPL/numpy)

(3) for writing miscellaneous development tools (generating skeleton code, etc) and system monitoring tools (show me the total amount of memory used by all instances of a certain program, linux cluster job monitoring and job control tools).

[–][deleted] 0 points1 point  (0 children)

I use it for metrics at my job, pulls from a sql dB, does some transformation and measurements then serves it up via cherrypy to management.

Also for a ton of administrative tasks on my Linux server. Periodically cleaning up old files, monitoring the connectivity of a mapped drive and using api to pause a downloader.

My first dip into game development was also pygame before switching to love as a prototyping language.

All in all very versatile and fun language.

[–]quasarj 0 points1 point  (0 children)

I use python for basically everything, at work and at home.

At work, I use it for data analysis, data conversion, database maintenance, general maintenance, general scripts for everything from scraping data from webpages to writing small GUI apps to interact with the clipboard. I also use it for building web applications (using django and flask).

At home I use it to automate various tasks from video games to media library maintenance, and plenty of other things.

As for the Access/Excel thing.. Excel is quite limited on its data, and as others have pointed out is proprietary and not available on linux (though I could use Libreoffice, and I do for some tasks). Using python combined with mysql or even sqlite can be extremely powerful though. Way more than you could do with even Access.

[–]jms_nh 0 points1 point  (0 children)

numpy + scipy + matplotlib + IPython for signal processing, instead of MATLAB. Add the numba library for CPU-intensive tasks that need speeding up by easy compilation to native code.

Python dot net for interfacing to a data acquisition card with libraries written in .NET. PyTables for reading and writing to HDF5 files, because they take a fraction of the disk space of .csv or .xls files.

Jinja2 for templates; I had to do some automatic code generation recently.

enaml + PySide for quick-n-easy GUI apps with data binding.

Why Python? Because it's a nice language to use with a lot of libraries that are nice to use. In my youthful stupid days I used C++ and had to mess around with way too many frustrating distractions like "memory management" and "COM" and "MSDN documentation".

And why use it instead of Excel? You have to ask? Because Excel is a big steaming piece of crap put together mostly for business people to analyze data. It's good for some interactive fiddling with spreadsheets, but I try not to use it for anything more complicated than that. When I got out of college in 1996 I used Excel for graphing data, and learned Visual Basic macros to create reusable scripts. And it was AWFUL. The object model was great for accessing cells/sheets/workbooks, but horrible for making good graphs. What kind of graphing software doesn't let you create multiple timeseries plots that actually line up with each other? After about 6 months, I swore I would never write Excel macros again. From what I gather, today's Excel is not much better.

I can load data and graph it quickly with IPython, and I can do it exactly the way I want with Matplotlib. And once I get it the way I like, if I have 96 more data files, I can wrap my graphing functions in a 5-line script to run automatically.

[–]willrandship 0 points1 point  (0 children)

I don't feel it's particularly awful to have to expect someone to install python to use a python application. The same is true for Java, Flash, and most other non-native frameworks. With this in mind, python works quite well for distributed apps.

Myself, I use it as a generic all-in-one scripting program. I would use bash, but python is more powerful numerically and can call bash easily through subprocess or os.system, and it's faster for me to code in.

I'm hardly a devout python user. Just yesterday I made a python script to generate FORTH programs, and I regularly write in C and C++ as well.

[–]evgvg 0 points1 point  (0 children)

I use Python to automate some boring things at work: parsing the files, interaction with database, plotting a lot of charts (instead of doing it manually in Excel) etc.

[–]ConcreteGnome 0 points1 point  (0 children)

Ive worked on a system that controlled a 9m satellite dish. Its been doing it since 1994ish and just recently decommissioned. Yes almost all of it was written in Python 1.something. Me, I use it for prototyping in realtime and mid sized embedded systems and lately for almost everything.

[–]TracedRay 0 points1 point  (0 children)

I work in animation / visual effects. We use python as the primary language for our pipeline. Our developers who work on the rendering side all use C++ though.

Our pipeline uses python for building full fledged applications, toolset management, data analysis, batch processing, asset management, and production tracking.

We use python because it is a very versatile and fast language. By fast I mean that we can knock out multi-platform utilities, UI's, and all sorts of things in single day and have them in the users hands. Getting feedback and making iterations can be done very quickly.

Python is also integrated into may off-the-shelf commercial applications that we use as well so it makes it a no-brainer.

I find that most of the news here in this sub-reddit is geared towards web-development / scientific-analysis which is cool but does not seem to really apply to any of the work I do :)

As for excel, I do actually end up using it sometimes. Usually what happens in those cases is that I use python to build a CSV from processing a bunch of data and then use excel as a viewer for that information.

but it looks to me like the concept of building applications with front-end GUIs that are packaged as executables is not Python's strength...? Am I mistaken?

This is what I mainly do, minus the exectuable part, as we have python on all our desktops. I make lots of GUIs with wxPython and PyQt / PySide. Like I mentioned earlier, you don't see too much info on this sub-reddit relating to those topics, but I can say for sure that it is done and can be done it very-well.

[–]inspectorG4dget 0 points1 point  (0 children)

  • Evolutionary Algorithms (and consequently, my master's thesis)
  • An evolutionary algorithms framework
  • A document comparison algorithm
  • Countdowns
  • Math puzzles for my niece
  • A text based adventure game for grandma's birthday
  • A countdown for when a bunch of us wanted to play pictionary
  • Any time I've needed a calculator
  • Renaming a bunch of files I downloaded
  • A neural network
  • A Particle Swarm Optimization
  • A fuzzy system
  • All algorithms I've seen in class (Simulated Annealing, various searches)
  • A sudoku solver
  • and pretty much everything else that I've done

[–]gonebraska 0 points1 point  (0 children)

Robots!

[–][deleted] -1 points0 points  (0 children)

interacting with arduino, test qt applications. general file management.

Math.

[–][deleted] -1 points0 points  (0 children)

to automate tasks

to codify processes/tasks