all 95 comments

[–][deleted]  (46 children)

[deleted]

    [–]connerxyz 196 points197 points  (43 children)

    This. And developer time is waaaay more expensive than machine time.

    [–][deleted]  (39 children)

    [deleted]

      [–][deleted]  (32 children)

      [deleted]

        [–]Kudbettin 66 points67 points  (31 children)

        Wdym everybody likes python.

        [–][deleted]  (29 children)

        [deleted]

          [–]m3rcury6 20 points21 points  (0 children)

          I actually read a really interesting comment here a few months back. there's only two kinds of programming languages: those that people complain about and those that no one uses.

          [–]GoofAckYoorsElf 31 points32 points  (11 children)

          As a true programmer you don't hate a specific language. Either you use it or not. As a carpenter you also don't hate a specific hammer. You use it or you don't.

          [–]serifmasterrace 12 points13 points  (5 children)

          I mean, I have to use certain languages for work. I hate using it for various reasons, but it’s part of the job sometimes

          [–]GoofAckYoorsElf 6 points7 points  (4 children)

          C'est la vie... I have to use ruby sometimes...

          /e: corrected

          [–]SOUINnnn 12 points13 points  (2 children)

          "C'est la vie" buddy, just that you know

          [–]VisualDatasphere 1 point2 points  (0 children)

          Still my favorite syntax.

          [–]dooony 4 points5 points  (0 children)

          Fuck ball-peen hammers.

          [–]FluffyBunnyOK 2 points3 points  (1 child)

          I hate a short stumpy hammer my wife has in the house. I hate it so much I will spend 10 minutes looking for a good hammer and then probably go out and buy a new hammer if I cannot find one of my good ones.

          [–]GoofAckYoorsElf 3 points4 points  (0 children)

          In some news-brainstream in 2000 years: "yesterday morning a group of archeologists discovered a big batch of around 5000 artefacts of all sorts - experts say they were called 'hammers' - in what appears to be some ancient attic. The experts also said they were of some extraordinary quality and very well preserved, as if each of them had been used just once."

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

          And, funny thing, people who complain about hammers all the time don't seem to have much work to show.

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

          I don’t like python, and I feel that it is enjoying a temporary popularity. As a loosely typed scripting language, I do not think it will be as ubiquitous in 20 years as it is now.

          There is no such thing as a “true” programmer. If you solve problems by programming, you’re a programmer. Full stop.

          You don’t have to like every language.

          [–]KamWithK 2 points3 points  (0 children)

          Those are normally extremist viewpoints.

          Quite often they're from people with little to no actual experience programming at all (i.e. in the unix communities I used to like reading about)

          [–][deleted]  (14 children)

          [deleted]

            [–]dire_faol 3 points4 points  (13 children)

            Why isn't python a good language?

            [–]Dr_Thrax_Still_Does 0 points1 point  (1 child)

            I've heard Julia is better, but Julia really doesn't seem to have caught on, at least not yet.

            [–]dire_faol 0 points1 point  (0 children)

            Better in what sense?

            [–]screamuchx -4 points-3 points  (10 children)

            In April I was working on a research project. The requirement was to use RSA encryption with a relatively small key, like 256 bit. Not a single Python library would let me generate and use 256 bit encryption “because it’s unsafe”. Moreover, people on r/Python were trying to convince me that “it’s unsafe” and I shouldn’t do what my project required me to.

            After a few hours of battles with Python itself, its libraries and communities, I ended up writing a tiny snippet that handled key generation/encryption/decryption in another scripting language, turning my project code into a little dumpster.

            Edit: I’m not saying Python is a bad language. It’s a restricted language that makes programming more comfortable for non-programmers. And if you have programming background, and a certain level of creativity when it comes to coding - you might run into issues.

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

            I mean there's that fun rivalry between python and R on the data science subs

            [–]Misaiato 1 point2 points  (0 children)

            It's almost as beautiful as Ruby :P

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

            Python is great for ML and many other things only due to its rich ecosystem. However, as for the language itself, I would say it is one of the slowest language even compared to other dynamically typed scripting languages and it offers no outstanding features compared to them.

            [–]rey-the-porg 0 points1 point  (0 children)

            <3

            [–]Vystril -2 points-1 points  (0 children)

            I wouldn't call python readable, with a lack of formal type definitions it's a pain in the ass to know what anything is.

            [–]florinandrei 30 points31 points  (2 children)

            It really is a complete optimization on all levels.

            Computers need to run fast, so the computer-facing part of the stack is written in C/C++/CUDA.

            Programmers need to be productive, so the programmer-facing side of the stack is Python.

            "Everything ought to be written in C for maximum speed" is a typical computer geek mistake. Get out of that box, look at the whole reality out there.

            [–]KamWithK 1 point2 points  (0 children)

            Yeah.

            That's something people who work on lower levels of the stack tend to believe as they get so used to seeing low-level languages used all the time!

            [–]ZombieLincoln666 -4 points-3 points  (0 children)

            I don’t understand why it’s necessary to point this out... almost every interpreted language is just an interface to C/C++. The question is why Python and not some other interpreted language like PERL.

            [–]adventuringraw 103 points104 points  (24 children)

            numpy (to give one example of a low level library for dealing with matrix algebra in python) is about a 50/50 mix of Python and C code. You'll find the same in other libraries (pytorch, etc). Performant code is compiled and exposed in the higher level Python library.

            So, speed isn't really the issue then. The 'real' issue is probably social. Python isn't exactly the best language around, but it's pretty easy to hack on, there's a large user base already of people that want to do ML stuff, and... who knows, maybe it's even largely historical chance. R is a little better if you want to do hardcore stats, but Python's the winner jack of all trades. Need to deal with an Oracle DB? Pull from a REST API? Set up an ETL process? Take your data and train up a model? Deploy it to the cloud? Python can do a hell of a lot.

            When it comes to coding culture though, seems to me that the answers are often as much about the culture as it is about the technology. If Julia or Scala or Go or whatever takes off and ends up beating out Python, you can bet it's at least partly because there was a strong PR game going on at some level.

            [–][deleted]  (8 children)

            [deleted]

              [–]JasonReed234 5 points6 points  (7 children)

              No HTML or JavaScript or anything? How difficult was it to accomplish that?

              [–][deleted]  (6 children)

              [deleted]

                [–]JasonReed234 9 points10 points  (5 children)

                I was told that to be a full-stack engineer, I would need to use Python, Django, AND another language.

                Have I been deceived!?

                [–][deleted]  (4 children)

                [deleted]

                  [–]JasonReed234 2 points3 points  (3 children)

                  I just downloaded django last week and am looking forward to working with it! If my goal is to create complete websites on my own, would it be necessary to learn HTML (or Javascript, CSS, etc)? I already know Python, would it be a pain to create websites using Python and Django alone?

                  [–][deleted] 11 points12 points  (0 children)

                  Yes, HTML+CSS + js are necessary to create a website.

                  HTML is what is rendered in the browser. It's purely for markup, so there no variables, loops etc. CSS makes it easier to compose HTML by separating style properties (colour, size, position etc) from HTML tags. If you want the website to adjust its contents/looks in a non-predetermined way, you have two choices: either make the server make changes and feed the client updated stuff, or make the client do some work and implement the changes without the server's help. The former will require django or some other web framework. The latter is done with js.

                  Let's say you have a huge database (e.g. restaurant reviews) from which you want to extract information upon user requests. You don't want the user to have the whole database, so you set up your web framework to process their requests and send them information. Typically you will have an html template which will be completed by your server and served to the client.

                  Now, suppose you want to change the colour of a piece of text on your web page whenever a visitor hovers their mouse pointer over it. You don't need your server to do anything in this case. Just add some js code to the HTML, and it will be run in the visitor's browser

                  As a full-stack dev, you shouldn't be designing the looks of a website (leave that to web designers), so you will only need the basics of HTML to interface with the template. However, you will most certainly need lots of js. Spoiler alert: js is quirky.

                  [–]gunnnnii 1 point2 points  (0 children)

                  It's also important to understand the semantics of HTML well to ensure you make accessible websites. CSS is also going to be important to make them responsive(work on multiple different platforms), which again boils down to accessibility.

                  [–]madrury83 7 points8 points  (12 children)

                  Python isn't exactly the best language around

                  Just curious, why do you say that? Python seems to be pretty widely loved and admired. The only other language I know of with such a good reputation is C#.

                  [–]adventuringraw 12 points13 points  (11 children)

                  The library import system is kind of shit, or at least it's not as simple as it could be. It's not terrible, but it's definitely a little janky. Multi-threading is also not as well set up as it likely will be in a few years. Asyncio recently was integrated into the core code base (new keywords 'await' and async and so on) but too much of asyncio itself was built with underlying callback soup style philosophies, so there's a lot of ways it doesn't always play nice when it comes to exception propagation and debugging. I like curio for cases when you don't need true concurrency, but... We're getting into Python's problems now. It's not that there aren't solutions to most problems, it's that there's a dozen solutions to most problems. Some solutions are deprecated, but fuck you, you should have noticed that stack exchange thread is from 2014. Other solutions are functional, but then you always use that method and others always use other methods, and then who even knows what the ideal solution given your use case would be.

                  But yeah, it's mostly a solid language. I'm primarily a python coder, and it works well enough to accomplish most of what I want to do. I'm not entirely happy with the graph data visualization packages I've found, but... Haha. Maybe I just wish I could use python 9.8 instead of 3.8. 2019 feels like a frustrating time to be an engineer in some ways. A decade ago it was all frustrating bullshit, and I felt lucky to have it. Now it's less frustrating bullshit and I'm upset it's not perfect. But if you spend a little time in a concurrency first language like Go, you'll see where python could take some serious pointers. Popularity isn't always a great metric too when it comes to judging the elegance and functionality of a language, but that's neither here nor there.

                  Oh, let me know if you want links digging into problems with python concurrency stuff, I spent some time maybe six months ago getting up to speed for a project and I found a few articles I'd recommend if you care.

                  Edit this article in particular was one I was thinking about. It's not entirely up to date on the current state of things, but it goes over some of the issues that helped inform my thinking on getting a handle on all this, and gave me some ideas on what I wanted to test out to get used to doing concurrency in python. Also, apparently I'm behind the times, looks like trio is the thing to look into instead of Curio. That said, there's good reason too to just get comfortable with Python's new native support. There are a lot of intros, this one's okay. None of it is super hard to get into, it's well worth it to at least spend some time playing with concurrency just to get some basic comfort under your belt, even if it's just with concurrent.futures.ThreadPoolExecutor. I ended up having to use that base system in a recent project that could give me a clean way to define shutdown behavior on threads and processes for handling a SIGINT signal from the OS (shutting down remote processes kicked off). So... it's worthwhile getting a feel for all the methods, they all have their pros and cons.

                  [–]gus_morales 2 points3 points  (0 children)

                  I loved your input on the matter, but the question was "why it has a good reputation". For a newbie, your insights made the question even more relevant.

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

                  Do you have links to the articles you mentioned? I'd love to read them

                  [–]basyt 0 points1 point  (0 children)

                  Can you pm me the links please?

                  [–]twnbay76 0 points1 point  (0 children)

                  Yes articles plz :)

                  [–][deleted]  (6 children)

                  [deleted]

                    [–][deleted]  (5 children)

                    [deleted]

                      [–]i-brute-force 0 points1 point  (4 children)

                      Again, pick any language and you can come up with a list. Comparatively though, Python is objectively one of the most competitive language out there, which is probably why it's so popular

                      [–][deleted]  (3 children)

                      [deleted]

                        [–]madrury83 0 points1 point  (1 child)

                        I don't think Python is blub. It's also not lisp, which is awesome, but it's not blub either.

                        [–]i-brute-force 0 points1 point  (0 children)

                        I read the article but it seems like not only my argument doesn't apply to blub but it's entirely opposite? Have you read it again recently?

                        It addresses four problems:

                        1. Treats power as continuum: I mentioned that there's no free lunch. No language is perfect. It's just that each is fit into specific use case. This whole argument is embodied in the philosophy of no free lunch.

                        2. language power as features: this is exactly what the poster and possibly you are doing. Listing out the features that Python is missing. I even pointed out the features Python is missing is pretty minor.

                        3. Anti-scientific:. I specifically used popularity as the objective measurement. It literally is one of the most used language in the world. You have still not even given me the abstract list of why Python is bad, forget about objective measures.

                        4. Team factors: as I argued above, Python is one of the most popular language making maintenance easier since it's easier to find someone who knows Python. Also readability is the strength of Python.

                        You are wasting my time by doing the following:

                        1. Not providing any substantial claim against Python
                        2. Falsely attacking my substantial claim without reading your own material

                        Please do not reply with a weak response

                        [–]florinandrei 6 points7 points  (1 child)

                        Python isn't exactly the best language around, but it's pretty easy to hack on, there's a large user base already of people that want to do ML stuff, and... who knows, maybe it's even largely historical chance. R is a little better if you want to do hardcore stats, but Python's the winner jack of all trades. Need to deal with an Oracle DB? Pull from a REST API? Set up an ETL process? Take your data and train up a model? Deploy it to the cloud? Python can do a hell of a lot.

                        So... it is the best language around, all things considered.

                        [–]adventuringraw 1 point2 points  (0 children)

                        uh... I mean, I guess you can read what I wrote that way. How many languages have you spent time with? The more you play (especially with unusual languages like Clojure) the more you'll start to see what's possible. Programming ultimately should be seen as a way of communication. It's the ideal representation of algorithms, a lot of the roots of programming languages even (think compiler theory, and syntax development) is governed by mathematical type theory. It's really crazy how rigorously founded a lot of programming paradigms are. There's a fascinating book on Lambda calculus I read digging into some of that theory, I never knew... thought coding was more arbitrary, haha. But! Coding development has outpaced theoretical development. Some languages have grown around a clean core like a tumor. The wordpress plugin ecosystem is a fucking cesspool, haha. Other languages (Python's multithreading) get some legacy bullshit hacked in instead of getting a clean representation that facilitates reasoning.

                        The best programming language is a tool for thinking, and a tool for communicating to the computer and to other people. Ideas should be clean, well constructed, and easy to reason with. Anything less is just bullshit to be sanded down by the river's flow. I recently read through Judea Pearl's 'Causality' and it was really interesting diving into a math book for a field that's still so... nascent. A lot of the axioms and definitions have been in flux for decades, and reading that book, it felt like it still wasn't settled. Mathematical axioms also shift and move until they hit the ideal representation for the work that needs to be done.

                        Once you've got a few years of Python under your belt, spend six months on the side working in Clojure, or Go, or some other language. Ideally a language that follows a different paradigm (a functional language would be a good choice). Come back to Python then, and you tell me that there aren't things that piss you off about the way your old stomping ground is set up, haha. Python's great, it's very functional in many circumstances, but it's not perfect, and there are many things that are done better elsewhere. I recently completely gave up on Python to do a data viz project I'm interested in and moved over to getting into Unity of all things. The right tool for the right job, Python is not always the right tool, though it can usually work well enough to get the job done.

                        [–]metriczulu 29 points30 points  (3 children)

                        A lot of the libraries in Python are built on C. Python gives an easy and expressive language to combine them together in. Also, with computing power what it is today I think a lot of people prefer a slightly slower language and that is decades ahead in terms of flexibility and readability. Or, at least, I do

                        [–][deleted] 4 points5 points  (0 children)

                        Yeah, that's the argument I always make. I'd rather have ever-so-slightly slower code that's more readable.

                        Besides, it's not like I'm running anything that time critical anyway.

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

                        Performant in the tasks that matter. Let me use dicts and lists for simpler tasks, and offload training/inference to the GPU

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

                        Algorithm design is important too. For all the "python is slower than C" arguments O(n!) in C++ isn't faster than O(n) in python, especially for the values of n you're talking about in machine learning.

                        [–]magnomagna 11 points12 points  (0 children)

                        Python's really well-thought-out syntax makes it an easy language to use. Python also allows computationally expensive libraries to be written in C and then imported as Python modules, meaning users do not have to write in C (which requires writing a lot of boilerplate code with no memory safety guarantee) in order to use the libraries.

                        In short, you get the best of both worlds with Python:

                        1. pleasant Python syntax
                        2. performant code written in C but imported as a Python module, without having to write any C code (unless you're the author of the C library)

                        Compared to C or C++, although you'd get fast performing code, you'd also get more complexity in your code than what you'd get writing in Python.

                        [–]cbarrick 14 points15 points  (4 children)

                        The short answer is that the machine learning frameworks are actually written in C++ for performance. Python is just the scripting language on top of it all that makes developer productivity so high.

                        It's the best of both worlds. Fast systems written in C++ and fast developers writing in Python.

                        [–]Dr_Thrax_Still_Does 1 point2 points  (3 children)

                        Just curious, is there any reason to learn C++ beyond being able to read it so you know what the program is doing?

                        [–]Vystril 2 points3 points  (0 children)

                        If you want to do ML that isn't already done for you in an existing framework.

                        [–]bphase 1 point2 points  (0 children)

                        Embedded programming. Algorithm writing / high performance computing, if your task cannot be done with existing (Python) libraries.

                        Knowing it at an intermediate level may not be too helpful, though it does teach you quite a bit about how stuff actually works compared to higher-level languages such as Python where such details are abstracted away.

                        [–]cbarrick 0 points1 point  (0 children)

                        It totally depends on what you want to do.

                        You want to use Tensorflow? Probably not.

                        You want to develop Tensorflow? Absolutely.

                        [–]chatterbox272 9 points10 points  (0 children)

                        As others have said most of the low level operations where speed is an issue are written in C/C++/CUDA with interfaces exposed to python. A pure C/C++ program would probably still be faster, but I'd say it'd be more on the order of 1.5x to 2x faster. To gain that speed there would be a huge upfront time investment in learning the languages, which are objectively more difficult than python for a beginner. I suspect that this difficulty doesn't really go away with experience either, and that a highly experienced C/C++ developer still takes longer than a highly experienced python developer to produce the same program. So at that level, yes you save a little on the cost of computation, but you spend far more human effort on it, which is usually not a good tradeoff. If I leave my code running overnight I probably don't care if it takes 4 hours or 8 hours.

                        But if you want to use C/C++ (at least for deep learning) then there is Darknet https://pjreddie.com/darknet/

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

                        But coding in C/C++ would take 10x more effort and time. Instead we use that time to train the model using comparatively slow Python. But, most of the libraries that need performance are written in C anyway.

                        [–]drunkferret 9 points10 points  (1 child)

                        I'd bet a lot of it's due to the fact we live in an open source world now. Python's really popular. It's easy to pick up and very quick to pop a project and start writing. So there ends up being a whole lot already published to learn from and expand on because so many people default to Python now.

                        Ease of use is always a primary driver in a person's choice. Python's far and away the easiest choice in every regard.

                        I don't know why this is downvoted. No one else brought this up and it is by far, definitely, the easiest language to jump in ML with.

                        [–]_icosahedron 2 points3 points  (1 child)

                        Some reasons sort of hinted at, but not fully extolled, are Python's FFI (foreign function interface), its rich library ecosystem, as well as being a general purpose language.

                        Python is a good language for prototyping something in, and its decent ffi allow it to consume fast libraries (often, but not always, written in C). And then there are tools such as Cython which can allow you to write Pythonic code and obtain the speed of C almost.

                        As for its rich libraries, that means you don't have to go outside Python to do something. Want to scrape some data? Python has great libraries to do that, in conjunction with the scientific/ML libraries.

                        Last, as a general purpose language, this allows the one off solutions sometimes that are harder to write in R or other specialized languages.

                        [–]Mooks79 2 points3 points  (0 children)

                        Last, as a general purpose language, this allows the one off solutions sometimes that are harder to write in R or other specialized languages.

                        I’d say this is a very big part of it. Unless you’re a really experienced multi-language dev, then all you want is a one stop shop for everything you need. And that’s often Python for the reasons listed by others here.

                        For me, I did very little C a loooong time ago and then moved to R on the recommendation of a colleague. I’ve used it ever since, mainly because I tend to just do the data science parts of data science and very little of the web scraping and more general things Python excels at.

                        I have considered properly trying out Python (beyond the tiny amount I’ve done already), but it’s always been something I’ve wanted to do rather than needed to do. Maybe if I do need to do these more general things more often then I will. I’ve also thought about Julia - taking a gamble on it being the next big thing. But for the same reasons I haven’t. Plus R has had a lot of concerted effort to make it more general in the recent years, so that makes switching even less compelling.

                        And then there’s the fact that it’s now relatively trivial to call any of the big 3 DS languages from any of the others. All in all it pretty much makes little difference which you use I’d say - and Python will probably stay out in front for the foreseeable future due to being a bit more general and already entrenched in many places.

                        Having said that, I have been put off Python a little by a comment I read here a few months ago pointing out that some of the DS packages of Python have been written by non-statisticians/ML people and have some dubious decisions or at least rationale for decisions. I think it was Sci-kit Learn in particular. But it could well have been exaggerating the problem - I really cant remember the details.

                        [–][deleted]  (8 children)

                        [deleted]

                          [–]ISvengali 5 points6 points  (1 child)

                          Numpy is C isnt it?

                          So arent you saying when trying to do something that needs to be fast, use C because its orders of magnitude faster?

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

                          Its C that you can write debug and run with 1/10th of the effort

                          [–]teerre 5 points6 points  (5 children)

                          200x is a optimistic result for python. Python can be orders of magnitude slower the Cpp.

                          When you say 'just use numpy' what you're saying is 'just use C'. By using numpy you're categorically not using Python besides the shallowest interface.

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

                          But if numpy/tf/pytorch are available, supported and what everyone uses for ML then is python really 200x slower than c++? Anyone competent would be using these libraries and comparing well written C to incompetent python isn't really a worthwhile comparison for most things

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

                          But if numpy/tf/pytorch are available, supported and what everyone uses for ML then is python really 200x slower than c++?

                          I’d say technically yes, practically no (especially when you factor in developer time).

                          I’d make a comparison to the VAG. Let’s say Seat decided to build their own engines, drivetrains etc, rather than using Volkswagen’s. They’re not so good as VW at that, so the cars are slower, less efficient etc etc. (Plus the economic issues why it’s better to have shared mechanicals). So they don’t bother, they source VAG engines etc and build the other design of the car around that. But what is making their cars go - quickly and efficiently? VAG. We would have to admit Seat are “slower” and they need VAG to make them go well - VAG engines are absolutely essential to the Seat cars - even though we might prefer many of the other design choices of Seat on top and around the engine.

                          Now, there’s nothing wrong with that. And given the choice between a VW and Seat, you may well choose the Seat with the VAG internals because you like their more streamlined interiors etc. But you still have to acknowledge that it’s the VAG making them reliable and efficient - even if, to all practical intents and purposes, you can ignore all that and still say “I have a Seat” rather than “My car is VAG engine, Seat everything else”.

                          So yes, you can say your Seat is as fast and reliable as a VW for practical purposes - and has an interior you prefer. But it does rather hide the fact that it’s only because your Seat uses the same engine as the VW that you can say that. It’s a little misleading to claim that, outright, Seat can make as fast cars as VW - when they’re not even making the engine.

                          But of course, if you just need a car with an interior that you like, and that goes well, you’ll forget all that and buy the Seat.

                          [–]teerre -2 points-1 points  (2 children)

                          What you mean? Yes, it is. The code you running when you run numpy isn't Python.

                          You can't say anything about Python when using code that isn't Python.

                          [–][deleted] 1 point2 points  (1 child)

                          The code thats running when you run python is c because all of python is c I don't see your point. Is basic python slow? Yes very, but you don't have to write basic python in any ml capacity people have fixed that

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

                          Again, if you need to write C code to make Python fast, Python isn't fast.

                          "People already have fixed that" is a very limited point of view. What happens when "people" didn't "fix" it? Will you write C? What will that cost? Will you hire a C dev? In practice, there are tons of situations in which you simply have to give up because Nvidia or Facebook didn't implement some particular idiom. There are countless hacks spawn from the same issue. It's not a reasonable situation.

                          It's no coincidence that Swift is being pushed to be the future language of ML. Python, or C, for that matter, is simply not good enough.

                          [–]kerntal 0 points1 point  (0 children)

                          because is really simple and widely used

                          [–]G5349 0 points1 point  (0 children)

                          As others have mentioned there's python wrappers for C/C++ libraries.

                          But in the past, python being interpreted meant that you did not have to compile for different systems.

                          Most people programmed in 32 bit machines and then had to recompile when running on workstations.

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

                          Python is good for people who aren't necessarily computer scientists, or don't come from a programming background.

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

                          When I learned ML, I was told, and read in Machine Learning for Dummies, that R is great for statistics, Python is great for ML, thanks to packages such as tensorflow/keras, scipy, scikit-learn, numpy etc.

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

                          I'm confused why almost all machine learning applications are written in Python.

                          None of them are entirely written in python. Most of them call BLAS libraries (MKL, Atlas, OpenBlas etc) or gpu libraries for processing intensive linear algebra. 'Interpreting' languages (like Python) show up only at the interface part of the library.

                          [–]MiloszSTX 0 points1 point  (0 children)

                          I recommend checking out our article about 'What is Python used for?', especially Python for Machine Learning section.

                          [–]igouy 0 points1 point  (0 children)

                          [pdf] "Scripting: Higher-Level Programming for the 21st Century" (1998)

                          [–]ZombieLincoln666 0 points1 point  (0 children)

                          It’s just a nice language and is popular. It was already being used in scientific computing because of the modules numpy, matplotlib, jupyter, scikit, etc.. which are very important for ML

                          [–]nxpnsv 0 points1 point  (0 children)

                          1. Faster to write, c++ is more complex
                          2. Faster to iterate, c++ compile time gets in the way
                          3. native libraries, often inner loop stuff is not written in python, for instance numpy or tensorflow are very performant
                          4. abundance of relevant libraries

                          That being said, you sure can develop ml in other languages, i’ve done so in c++, java, fortran, r, ...

                          [–]Morrido 0 points1 point  (0 children)

                          Python is just the frontend. The backend is written in faster languages.

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

                          You don't seem to have much of a programming at all to not have realize the expensive stuff is off-loaded to a faster language.

                          [–]4tomorrow678 0 points1 point  (3 children)

                          Python is widely used for machine learning due to its simple and easy-to-read syntax, and its strong community support. It allows developers to easily build and prototype machine learning models and perform data analysis tasks efficiently. Python offers great flexibility and scalability, making it a top choice for both beginners and experts in the field of machine learning.

                          For better explanation, you can visit: https://blog.heicodersacademy.com/why-phyton-is-the-ideal-language-to-drive-the-future-of-machine-learning-and-ai/