this post was submitted on 06 Feb 2024
110 points (94.4% liked)

Programming

16976 readers
205 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 7 months ago (3 children)

I don't know if i qualify as a full programmer, I'm an actuarie but 90% of my work is in python, 5% SQL and 5% excel. I love python because is flexible as fuck, I can connect to the SQL server, send the queries to a pd.DataFrame, process the information, scrap some webpage for adicional information needed, and finally export to an excel file that the accounting team can use. I don't write fully functional programs, but small specific scripts for different tasks. R is another popular programming language between actuaries and statisticians, but I haven't find anything that R can do, that I can't in python.

[–] [email protected] 7 points 7 months ago* (last edited 7 months ago) (2 children)

I don’t write fully functional programs, but small specific scripts for different tasks.

This is exactly why your experience is different and you like Python better than many others. You are using Python as it was meant to be used and where it excels; for small scripts.

When people say they don't like Python they mean that Python does a really, really bad job when it comes to larger systems. Static analysis becomes exponentially more important in larger systems and Python has basically 0 of that.

But as long as you stick to relatively small stuff (less than a few thousand lines), Python is pretty nice and fast to develop in.

[–] [email protected] 3 points 7 months ago

So you are saying using python to write the server for a federated multimedia messenger is a bad idea.

Let me tell you, I'm shocked😲

[–] [email protected] 2 points 7 months ago

also just plain readability. Indentation-based scoping is horrible for larger codebases. Maybe if it was a purely-functional language like Haskell where this sort of scoping works better and all effects are tightly contained. But most larger codebases tend to use python in OO way and that can get messy pretty quickly. Damn, if python had a piping operator like elixir that'd be of a lot of help, actually. Plus there is so much legacy code in a language that had e.g. ternaries long before adding something seemingly so fundamental as switch-case.

[–] [email protected] 2 points 7 months ago

I'd say if you program then you're a programmer. What you're thinking of is more of a software engineer, ie. someone who architects and creates software.

[–] [email protected] 1 points 7 months ago (1 children)

Might just be my inexperience with the library, but every time I end up with a pandas dataframe, I spend the next 4 hours trying to figure out the right sequence of index statements and function calls to get the data in the order I want. It always ends up feeling like I'm doing something wrong, and the only way to really tell is to run the code as far as I can tell. I don't use dataframes very often though, and I'm sure it gets easier with experience.

[–] [email protected] 2 points 7 months ago

My general dev experience is limited mostly to python but with pandas one thing you can do is set up a jupyter notebook so you can run just the parts you want until it's working as expected, then you can move it over to your python script when you're ready.

But working with pandas does get easier with practice. If you're wanting to dive in a bit more, the "getting started" page has a tutorials section which features a 10 minute high level overview, a cheatsheet, and link to some community tutorials.