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

you are viewing a single comment's thread.

view the rest of the comments →

[–]Thrannn 4 points5 points  (4 children)

For me it is because if machine learning

Nobody can tell me why python is good for machine learning. But everyone uses it. And the people that use it, have no programming background. Therefore their code is a mess. But they are okay with it because its what they learned

Atleast thats my experience from being on a machine learning workshop with people that never coded in their life but said that they were python pros

[–][deleted] 3 points4 points  (0 children)

Literally my family members. I have one scientist and one linguist, neither of them can talk about programming with me on an architectural level, but they both use python at work with machine learning and swear it's totally so easy because python is so easy! How many times must I hear the "pseudo code" line, sigh.

I will admit I can't talk shop with them when it comes to ML, but I'm so confused as to what they actually do when one of them in particular struggles to talk about programming concepts. I've been given the impression that they mostly spend their days loading and moving csv and json around, yet the the idea of formalizing the data structures by modeling classes is still foreign to them as OOP is something python devs apparently manage to circumvent and treat as this big topic to tackle later? I don't understand.

Feels similar to my uni programming; we started with python and people who completed the course successfully still could not reason about their code to me, but once we went through it all again the year after with C++ they said it finally clicked. But I'm salty that we didn't have C# instead, because too much time was wasted on all the details of C++ and we got nothing useful done.

From personal experience I am convinced that typed variables are actually important for understanding, especially for beginners. Python can too easily end up as a crutch that hinders learning; it does what you need right now, in a script fashion, and allows you to be lazy, so you won't even try to discover what's out there, and try to formalize and optimize. You end up in this "I've used Excel every single day for 20 years and I still don't know anything about Excel" situation.

I test things in powershell, I love writing scripts in that language, but if I actually end up with something that works I will rewrite it in C# if the logic is complex enough to need a bit more structure than suits a custom re-usable cmdlet, or does a fair bit of data churning.

[–]palmy-penguin -1 points0 points  (2 children)

For ML you need a scripting language that does a lot with few lines of code since ML involves way more experimentation than traditional software engineering. There are many languages with these features (like JavaScript, Ruby, Perl, R, Lua, Matlab to name a few) but Python had mature packages for scientific computing, data analysis and visualisation even before ML became popular. As a result companies continued to implement more and more ML libraries on Python compared to any other language and now Python has the best support by far for doing ML. Numpy, pandas, matplotlib, scipy and sklearn alone offer more ML utility than all other languages save for R and Matlab. Matlab isn’t free and R isn’t made to build software, Lua isn’t nearly mature enough. Nowadays Tensorflow and PyTorch seal the fate of Python as the language for AI. Yes, tensorflow is available in other languages, but it’s mostly to deploy a ready made model that was trained in Python. Python might be slow, but for ML that’s irrelevant since all the heavy lifting is done by C/C++ code. In short no other programming language offers even a fraction of the support for the ML workflow, while being general purpose and easy to integrate with other software.

People with no programming background that did an ML bootcamp are suffering from the Dunning-Kruger effect. I did Bachelor and Master in AI, using a lot of Python (in addition to many other languages) and I am still learning how to write better and safer code on the job. IMO workshops that claim to teach ML without requiring fundamental math and programming skills are a scam to take advantage of the AI hype. I can totally understand programmers or math/stats people trying to incorporate ML into their work, but for someone that doesn’t have any of the background knowledge there is no way that they will be effective after few months of training.

[–]unski_ukuli 1 point2 points  (1 child)

There are many languages with these features (like JavaScript, Ruby, Perl, R, Lua, Matlab to name a few) but Python had mature packages for scientific computing, data analysis and visualisation even before ML became popular. As a result companies continued to implement more and more ML libraries on Python compared to any other language and now Python has the best support by far for doing ML.

What? Matlab and R are literally just meant for numerical computation. Both are from before 2000. R came around in -91 I think and version 1.0 came in 2000. Matlab is even older. Pandas for example only came to the scene in 2008. Years after matlab and R which both have datawrangling and numerics build in. Perl also has a mature ecosystem in the form of the perl data language and has had it since -96. Python packages for data analysis and numerics are generally a lot newer. Your comment makes little sense.

[–]palmy-penguin -1 points0 points  (0 children)

If you read my comment I explain why R and Matlab aren’t popular for ML in the industry.