Thoughts on Python? Is it overrated?

Thoughts on Python? Is it overrated?

Attached: 2535232353.png (512x512, 12K)

There is also another question:
Why people on Jow Forums shit on Python?

It's... limited. It's fantastic at writing quick things that have fairly small scopes so it's definitely a fantastic thing to have in your toolbelt. But I would be wary about building and maintaining a large-scale living program with it.

>But I would be wary about building and maintaining a large-scale living program with it.
Fun thing one of the biggest sites on the world named Instagram you probably heard of it runs on Python

Great for making quick scripts and small programms and maybe prototyping for larger projects but bad for anything bigger.

Every bank runs COBOL, all of aerospace runs FORTRAN, but I doubt you'd want to use them either.

Everybody shits on python except those who are to stupid to learn something else.
Do you know how opinions form on different languages
>I used python and it was a clusterfuck of a language
>I used js and it was utter shit
>I *heard* that perl is ugly, I prefer go.
>I *heard* that C is complicated
>I *heard* that c++ is difficult, so I went with java
I've used python is various projects, from sdn to gnu radio and now in some embedded s/w. It's a complete turd.
The difference between programmers and python programmers is that
Programmers will use c/perl/java/c++/bash whenever needed and where it fits based on the application
Whereas
Python programmers use python for everything.

this

>bragging about using C++ and Java

Yikes

>Instagram
Not him
But Instagram is really bad example because it isnt really complex

What is a complex site

1: "Instagram" isn't a single program, it's a collection of Microservices. There's nothing particularly large about any individual thing that that site does. It's not like, say, a video game server or a CAD program.
2: Just because you can do something doesn't mean you should. When I think about web sites whose architecture are commonly used as models to follow, "Instigram" is not one of the ones that come up.

>What is a complex site
Dunno
Was actually thinking about instagram as an app

Netflix, Google, MapQuest.

Things that actually have back-ends that are more than "store picture, retrieve picture, link picture to account."

It's great.

A good algorithm in python will always beat a shitty algorithm in C in trying to do the same thing and that good algorithm in C will only be marginally faster than python.

Lots of packages for lots of applications and a pretty good package manager.

But since it's interpreted, any app you distribute will have to be open source (you can still give it a proprietary license). Only way to keep python code private is to offer a service instead of a product and keep it server side.

I wouldn't suggest it as a first language though because your first language should be statically typed and not have type inference so you can learn your data types. C is better in that regard.

Funny thing Netflix uses a lot of Node and Google uses also Python AND to compare it to MapQuest, Yahoo maps uses python.

I just love how people say

>bruh this big as fuck sites run on Java and C++ they don't use Python or Node or Go or Rust or whatever the fuck new has come out

You know why? Cause most of those mentioned sites/ services/etc are old as shit. If they were made today you bet your ass they wouldn't run what they do now.

I don't think you can call a language "overrated," because opinions are usually very diverse.

I find Python is frequently used in academia with the justification of: "we're focusing on the math, we shouldn't have to learn how to program. Python is quick and gets the job done, so why do we need more?"

In my opinion this is a mistake and shows a general misunderstanding of the purpose of learning to program. A program is one of the purest ways of representing an algorithm. When an academic is programming, they are typically reproducing the mathematical representation of their algorithm. If they are bad programmers, then they will have difficulty doing this effectively. I find too often they consider their research paper to be the "real thing" while the program is just "an implementation detail." This way of thinking is right to a certain degree, but they should see programming as a tool that allows them to express their abstract ideas in the real world. It's not just something they have to do to prove their idea is correct. The program IS their idea, realized.

Usually the reasons academics use Python is just a rationalization. They don't want to spend the time learning anything else, and they assume Python is "easier." Usually they are also pretty bad at Python.

Python does have its uses when it comes to beginners learning to program. The fact that it has a command-line interpreter is very useful because beginners can immediately see the output of any given command. Even I find this useful when trying to understand SO posts concerning Python. It's nice to be able to pop open a terminal and see what a command does. There's a bigger barrier when it comes to languages like Java or C++.

In my view the biggest problem with Python is the duck typing. This makes large projects very difficult to manage. You can't really tell what type of variables a function accepts, just their name. You're supposed to document the accepted types, but that takes time.

Yes, "uses python." Python has use. Check the start of this conversation; no one's saying Python is shitty. Complex program bases are going to have a lot of different components that use a lot of different programming languages. They're going to use things like Python for things like triggered Lambda's and on-demand calculations, but the bases of the back-end systems are going be written with languages more designed to expand.

Also even though I hate the language for aesthetic reasons, Node is the real deal. There's pretty much nothing you couldn't write in it. Except maybe embedded stuff.

>all of aerospace runs FORTRAN
No they run c, c++ ,and ada. Ada is great for large scale software projects. Great tools for bug checking and making clean secure code. I wish it was more widely used.

>A good algorithm in python will always beat a shitty algorithm in C in trying to do the same thing and that good algorithm in C will only be marginally faster than python.

C/C++ can be 10 to 100 times faster than Python. If you have an algorithm written in Python, I can reproduce it in C/C++ so that it returns the exact same result but runs 10 to 100 times faster.

Not only that, but my algorithm will have more applications, such as embedded systems which cannot run Python.

Finally, it might be necessary for the algorithm to be fast (depending on application). In that case, the Python algorithm is completely useless as it doesn't fulfill the time constraints of the problem.

>Lots of packages for lots of applications and a pretty good package manager.

I hear this a lot. Most programming languages have "lots of packages."

The package manager in Python is shit, and the way modules are "import"-ed is dumb. The importing happens at runtime, and allows modules to run code. Some of even the most popular modules can take a second to load in (although I admit this is rare, the fact that it happens at all is absurd).

>I wouldn't suggest it as a first language though because your first language should be statically typed and not have type inference so you can learn your data types. C is better in that regard.

Agreed. Actually, I'm not against Python, it's just what you're saying is what I often hear from Python programmers that only know Python. So, you've redeemed yourself a bit with this last comment.

>hurr durr Python is used only for prototyping and by brainlets who can't into

Retards

It's great for what its built for: quick and stable prototyping. It can be used for a lot of stuff, but should rarely ever be used for a final deliverable. It's not that its unstable or "bad," it's just that you have to use a lot of "stock" features that dont give you a lot of control over the backend. Hence, all the bloat.

Someone who codes in Java or C basically has to reinvent the wheel with any major program, but the level of control and the speed at which the code is compiled is absolutely excellent. You include exactly what needs to be included and nothing else, and it assures that as the program grows with updates that no function, class, or object gets misused or produces undesired results.

A good example of how Python comes with a lot of baggage is to use dir() on any given object, and you'll see a TON of Dunder methods that give functionality to those objects. It's just extra "stuff" you dont really need and can cause really weird shit to happen when you try to extend its functionality, hence why you shouldn't really use it for a final product.

This is correct, and not only due to performance issues, but also due to its dynamic nature and programming idioms.
As programs grow larger, and specially as time passes (you do improvements from time to time, instead of working 100% on the same thing), the benefits of knowing that the compiler will catch trivial errors at compile time, and that the IDE (or fancy editor setup) can help you with auto-completion and automated refactoring, can't be overstated.
Also, regarding idioms, many programming libraries use ad-hoc tuples liberally. And many times don't even document what each item in the tuple even represents, so you get forced to either dig into the library's code (which kinda undermines the benefit of using a library) or you get forced to make a toy program to inspect what the tuple returns during real usage.
I guess that if you're disciplined enough to do TDD for everything, and smart enough to learn every library and API by heart, Python could be used for larger programs, but otherwise it may be best to avoid doing so and instead use literally any other staticly typed language.

>A good algorithm in python will always beat a shitty algorithm in C in trying to do the same thing and that good algorithm in C will only be marginally faster than python.
This is bullshit. You have to jump though quite a few hoops to get *decent* performance in Python, not to talk of C-like performance. CPython is slow as shit, and PyPy can do only so much for you. Any more than that, and you're best served by using a language that's fast by default instead.

>speed
>java

You're the one with the misconception. Python allows people to do "computing" and computer science easier. All the bullshit you have to deal with using c++ or java is about manipulating the underlying hardware not computer science. Languages like lisp that are expressiveness with garbage collection and interpreters were made so computer scientists could focus on computer science and mathematics. It's hardware manufacturers putting the burden on programmers. ML languages like Haskell or Ocaml or fantastic for expressing mathematics but hide most of their implementation details away.

You can complain about Java the language, but the JVM is fast enough for most things you meme.

You're making yourself look bad

Java factually competes with all the native languages for speed. I'm not sure why the surprises people. Do you not know what virtual machine bytecode is? Do you think it's a bunch of human-readable strings that are JIT compiled with the same speed as it happens when you click the little compile button on your IDE?

I like how Jow Forums literally no fucking language is good for big projects or finished ones ready to "deploy" nothing. Java? Old slow shit, C? Old Garbage, C++? Bloated mess, Python? slow brainlet language JS? Web-shit C#? Microshit Rust? irrelevant shit, Go? Dead shit etc. etc.

You guys are hopeless

Attached: 53985327523253.jpg (543x589, 54K)

It sounds like you're new here. I'm sorry.

Great for 99% of common programming tasks with libraries for everything you can think of. If you aren't using python as your daily language in 2018 you are a brainlet.

Jow Forums is a functional programming board get used to it faggot.

>muh board culture

Attached: FB_IMG_1534719060059.jpg (250x251, 9K)

There are some concrete design decisions which make Python factually difficult to grow modularly while integrating with other people's ever-changing code base; it's designed for elegant and fluent scripting of designed algorithms. Python was not designed for complex linking and building processes. You hobbyists love to think "I can do anything in Python if given a long-enough pole and a stable piece of ground, so that makes it a good language for everything" but in the real world languages are more than just their grammar and these things matter.

You guys can't hate Scala though right...?

>taking the bait
It had to be someone.

>Java? Old slow shit
And, opinion immediately invalidated as you demonstrated profound ignorance on the subject right at the start. Because old as hell it is, but slow it most certainly ain't.

By God we can try

JS was designed to move things on your html page and guess in what is probably your code editor written and guess what has gained insane popularity in back-end recently

>All the bullshit you have to deal with using c++ or java is about manipulating the underlying hardware not computer science.
What bullshit? It's obvious you don't know much about these languages, especially since Java runs in a VM and therefore is completely hardware-independent. C++ allows you to do stuff directly related to the memory, but there is absolutely no need to do that if you are just implementing some algorithm for a research paper.

Python is semantically very similar to C, in fact. Algorithms in python can typically be reproduced in C++ with almost identical semantics.

>ML languages like Haskell or Ocaml or fantastic for expressing mathematics but hide most of their implementation details away.
Do you think Java or C++ programmers know how their ArrayList or std::vector classes are implemented?

You seem to have this conception of Java and C++ as languages in which the programmer has to do everything to get anything done. That's not true. Libraries exist for these languages, you know. You shouldn't be doing really low-level stuff in C++ unless you have to. If you don't have to do something, then why are you doing it?

>library dependence
BIG OOF

>You shouldn't be doing really low-level stuff in C++ unless you have to.

Tbh may aswell use Python or C# then

You know C++ has a standard library, right? How about you actually give a real example of a situation where C++ requires you to do "deep hardware-related stuff?" If you are comparing the language to Python, then you'll never have to do that and the standard library would be enough.

And btw, the fact that you didn't know the standard library existed just shows that you don't know what you're talking about, which was kind of my point all along...

>Tbh may aswell use Python or C# then
Why? Python is slower and not easier to use (despite what people say).

C# is windows...

But at the end of the day, you have to choose the right tool for the job whether it be Python, C# or C++. I just think Python is over-emphasized, especially in academia, and usually for bad reasons. In fact, for the exact bad reasons that I'm being hit with right now.

I think i realized people saying always that c# is microshit as its disadvantage makes it basically the best language if such a non-issue is the only one ever mentioned

Its a shit language. Im not going to waste my time explaining why its shit because it will just get ignored and drowned out by all the meme'ers in this thread who are chest beating how its the do-everything wonder language.

The only sad thing is that there is no strong replacements for Python other than Go (yes Go handles scripting tasks even though its compiled). Ruby is a lot better language but using blocks with functions is really shitty compared to Python's comprehensions so Ruby will never replace Python. Javascript is not a general purpose scripting language (Node is not a set of general purpose libraries).

Just.....no dude. C++'s standard library isnt "built in". You still have to include it from elsewhere. It isnt required to use it at all. Python you cant avoid it, every object, every type, has a whole collection of methods that they extend from. When you download and run Python you're basically building around someone else's code and implementing features the way they want it to be implemented. Python has so many deprecated features it's not even funny, but guess what, they're still there, somewhere, in your code.

C++ doesnt have that. Granted, it would be a serious pain in the ass to do anything without incorporating even a single library, but you CAN do it. C++ is more like mnemonics for Assembly than anything. Python, in contrast, is mnemonics for C++.

I like C#, but being windows-only is a major disadvantage. It literally can't do the same things that Python or C++ can sometimes, for that reason. So, say what you want, but the fact remains that this is a genuine reason why people frequently choose not to use it for a certain project.

>Javascript is not a general purpose scripting language .
I honestly struggle to think of something you cant create with JS

>python is shit because I know different languages
great argument, would consider to argue again

Yes... I know. Maybe you should read the thread a bit to see the context. The guy was saying that C++ REQUIRES you to do low-level stuff if you choose it instead of Python. That's not true because you can use the standard library. If you WANT or NEED to do low-level stuff in C++ you can.

show me one example of someone who uses Javascript for a bash/perl replacement for *nix scripting

Why not .NET Core? It runs on Linux too.

.>It literally can't do the same things that Python or C++ can sometimes, for that reason.

Such as? Also microsoft has released .net in the wild recently

>A good algorithm in python will always beat a shitty algorithm in C
I actually ran a test for this a while back. My set had 100k elements. An algorithm with O(n^2) time written in C performs almost as fast as one written in python with O(nlogn) time.

>if you dont have to do something, why do it?
>library dependence
Why rewrite other peoples code when you can just write your own?

Ah yes let me just load up an entire virtual machine just to edit some text.

>C++ allows you to do stuff directly related to the memory, but there is absolutely no reason
Yeah so then why bother using it? I know how to program in c++ and you have to put a lot more thought into the implementation than python. Why bother using something like c++ If you're trying to express math or show an implementation of computer science concepts? Computer science isn't about the underlying hardware or memory management. Computers are tools to express the ideas the computer scientists want to convey. Try making something is simple as a link list without manual memory management in C++. You could use the standard library but that's missing the point it's far easier to implement things in python than c++.
>And btw, the fact that you didn't know the standard library existed just shows that you don't know what you're talking about, which was kind of my point all along...
That's a different person. My school's introduction class was taught in c++. So was their data structures class. So don't try to pull this c++ PR bullshit on me. C++ was a bitch to learn as a first programming languages. Most of the class was about syntax and not ideas. Which was my point. There is a reason mit used scheme and now python teach their basic programming classes.

people use it where they shouldn't. having multiple versions of it on a single system is a mess, too.

Give nim a shot.

>and ada
Not for long. They're translating all of that ada code to C++.

Point taken, as I did not know that.

For my job we program on an embedded system using C++, and we also have a simulation that emulates the hardware on linux. So, that is just one example. Again, I'm not saying C# is bad, but there's situations where you literally can't use it.

Maybe C# would be better than C++ for academia, I really don't know. I don't see why academia needs just one language, either. They can also use the best tool for the job.

No idea what you're even trying to say at this point. Have you ever used C++?

It's a great language but definitely not the only one you should be using.

I use it mainly for data analysis (numpy/pandas) because I shit on R, or for running tests with a simple API (it generates some jsons for me).

People who shit on Python and go "hurrdurr C++ best language in dah world" are probably the same kind of guys who end up writing 500 lines bash scripts with arcane brainfuck-like syntax for using arrays because they aren't even aware that Python has a very nice argument parsing library and makes list/array handling trivial.

It's a shame it's a proven fact that Ada programs have less bugs compared to programs written in c or c++ .

FORTRAN is still heavily used in Aerospace.

>No idea what you're even trying to say at this point.
That's is different person you fucking retard. I was typing up a reply to your original post.

For what? It's only good for scientific computing.

>I know how to program in c++ and you have to put a lot more thought into the implementation than python.
I know how to program in both C++ and Python, and I would say they require almost the exact same amount of thinking. I don't find them that different from an "amount of thinking" perspective. Can you give examples?

> Why bother using something like c++ If you're trying to express math or show an implementation of computer science concepts?
The same reason you'd use any language.

>Computer science isn't about the underlying hardware or memory management.
And C++ doesn't have to be. You'd know this if you knew what you were talking about.

>Try making something is simple as a link list without manual memory management in C++.
std::list in the standard library provides a linked-list implementation. Be honest - did you know that? This is like... beginner stuff. Why are you implementing your own linked lists, btw?

>You could use the standard library but that's missing the point it's far easier to implement things in python than c++.
So you admit your example is contrived and doesn't at all apply to the real-world? So what exactly do you mean by "manual memory management?" Are you aware that there are many ways that the standard library can easily manage memory for you? Or is that also off-limits in your example?

So basically you're saying "Python is easier to use than C++ when I ban the use of the standard library." Yeah, no shit, but then what is your point? That the Python "library" stuff is more deeply "built-in" to the language? So what?

>My school's introduction class was taught in c++. So was their data structures class.
So? Usually schools do a shit job of teaching any language, Python included. My data structures class had us implement linked lists in C and was a total mess. I had used C previously, and was self-aware enough to know my professors were retards.

And where did I say C++ should be a first programming language???

python is good but in a weird spot, can't do anything too demanding on it's own because of GIL and you don't want to use it for small scripts you plan to use often because of it's slow execution time which leaves it at one time use scripts or more advanced scripting where it excels at.

Umm... where did I say who anyone was? I was replying to and saying they weren't making any sense.

I'm not even trying to keep track of who anyone is. Sorry if my wording somehow made you think otherwise.

Bingo.

its a powerful scripting language.
>**scripting**
>****SCRIPTING****

emphasis on FUCKING SCRIPTING. Do not write retarded full applications with fucking GUIs in this shit. And if you do don't publish them on github only for them to break in a month when upstream modules are updated at will by their developers and suddenly become incompatible with whatever monstrosity you published.

script =/= fully featured desktop application

somebody needs to beat that into the skulls of whoever is shilling shit like electron too

Yes, because almost anything is checked at compile time. This goes far beyond dynamic typing.

after getting to grips with the syntax and doing some basic algorithms like bubble sort using python what do i do next?

are there any tasks/projects i should try with python to learn more about it to move out of my shitty webdev frontend job?

this
And it extends to proper plugin extensions too.
Blender plugins were a mistake.

Nothing wrong with electron except for it spawning a billion chromium instances

Python is an incredible language. Certainly it has domains where you don't want to use it, for example I would never write something like a driver in Python. There are lots of people that will say that "Python is great for small scripts, but not for large projects". I mostly disagree, Python has been deployed in many large software projects.
>YouTube
>Google (in general)
>PayPal
>Ebay
>Parts of Amazon (I could be mistaken here)

One of the things that always gets me in these "debates" is the idea of "language X is faster than Python". For one it's always left ambiguous what that means, is it just pure python, vectorised python (NumPy) or python with Numba (this is ignoring the various different implementations of the language like PyPy). On top of that 99% of applications you'll ever encounter are not performant, meaning that no one will care or notice if you've re-implemented some programme so that it runs in 10 microseconds compared to 10 milliseconds.

Don't get me wrong, for those 1% of projects that are time critical you'll probably want to get a compiled language like C/C++.

Anyway, the take away message is that Python is, for most applications, completely fine. At the end of the day it's just a programming language, anything you can do in Python you could do in another, it's mostly about your requirements. All this is without discussing the various NFR's that would make you favour Python over some of the other Languages available.

>I know how to program in both C++ and Python, and I would say they require almost the exact same amount of thinking. I don't find them that different from an "amount of thinking" perspective. Can you give examples?
Anything that involves using the advanced features of c++ for good performance like a manually created link list or a hash table or a binary search tree or a graph. Those all can be a pain in the ass to implement compared to something like python.

>The same reason you'd use any language.
Yeah but what feature making c++ better to use than python, If you don't care about managing performance?
std::list in the standard library provides a linked-list implementation. Be honest - did you know that? This is like... beginner stuff. Why are you implementing your own linked lists, btw?
It was just an example using something simple i could have mentioned a dynamic array of creating your own string class too. You're a condescending Asshole and it does not help your case.
>And where did I say C++ should be a first programming language???
You said that computer scientists should learn how to use it. I mention it because you seem to be implying that I don't know how to use c++ when it was the first programming language I used to write actual programs.

Python is pretty good for image processing, data analytics, and Machine Learning. It’s bad at pretty much everything else.

>Anything that involves using the advanced features of c++ for good performance like a manually created link list or a hash table or a binary search tree or a graph. Those all can be a pain in the ass to implement compared to something like python.
But... if you are looking for good performance then the std::list from the standard library will outperform anything you could do in Python. These "good performance" scenarios where you have to re-implement the standard library stuff is exceedingly rare. And even then, your re-implementation will often use parts of the standard library. I agree, this kind of coding might be hard(er), but it's certainly not necessary when writing C++. Only in contrived examples where the comparison to Python no longer makes sense anyways (it's hard in C++, but impossible in Python).

>Yeah but what feature making c++ better to use than python, If you don't care about managing performance?
Static typing makes C++ much easier for larger projects. I think that is by far the biggest deal when comparing the two.

I'm not saying that C++ is so much better that it should always be used instead of Python. I'm just trying to dispel the myth that "C++ is so hard to use so we have to use Python all the time." It's not true. If you are an expert at Python you should be able to pick up C++ or Java relatively easily, IMO.

>You're a condescending Asshole and it does not help your case.
You sound like a woman. Sometimes the truth sounds condescending. Your example was contrived and made no sense, so I said so. Dynamic arrays also makes no sense, since the stdlib also provides that...

>You said that computer scientists should learn how to use it.
Yes. Computer scientists should learn tools that are used to manipulate computers. In fact, the best computer scientists know a variety of languages.

And most python CS people I know spend all day programming. It's a big part of their job, so why not know how to do it well?

>But... if you are looking for good performance then the std::list from the standard library will outperform anything you could do in Python.
Computer Science is about expressing ideas. Performance isn't the main concern. Python libraries perform fine for what computer scientists and mathematicians need them to do.
>I'm just trying to dispel the myth that "C++ is so hard to use so we have to use Python all the time."
You don't have to use python all the time. It's simple easier to learn how to use python. It has a nice interrupter , it has very good libraries for machine learning and mathematics. It has better error messages and a lot of it's standard functions like strings are easier to use than in C++. For example, vectors don't have bounds checking unless you use .at instead. C++ has terrible error messages.

>Yes. Computer scientists should learn tools that are used to manipulate computers.
How does C++ help with that if you're just doing the same things your doing in python with worse syntax. If a mathematician wants to solve some differential equations python makes that a lot more easier than c++.

>Computer Science is about expressing ideas. Performance isn't the main concern. Python libraries perform fine for what computer scientists and mathematicians need them to do.
I wasn't saying that C++ should be used for performance reasons. I asked for an example of why C++ might be harder to use, and the example given was something like "if you need high performance that the standard library doesn't provide, you might have to re-write the stdlib which is hard in C++." I just pointed out that the example makes no sense, and you re-interpret that to say my argument is from the perspective of performance. The stdlib already performs better than python. If you are in a scenario where you have to rewrite the stdlib, then python is not an option at all.

>You don't have to use python all the time.
Wow, well that's exactly my point. A lot of Python users disagree, though. I've personally met them.

>How does C++ help with that if you're just doing the same things your doing in python with worse syntax.
"Worse syntax" is subjective. Like I said, I've used C++ and Python a lot. I've also used Java, C#, LISP, etc. (although not as much). I wouldn't say any of these languages have "worse syntax" than the other. The way I see it, the languages do different things in different ways. Well-written C++ is not horribly confusing as tons of Python users will have you believe. Maybe part of the problem is that these people are often academics who's only exposure to C++ is through some senile professor who has never actually worked in industry. So they think that their "Data structures 101" course represents the typical C++ practices.

>If a mathematician wants to solve some differential equations python makes that a lot more easier than c++.
Mathematica would be even easier.

To solve ODE in Python you will use scipy.integrate.odeint. This library is based on a C++ library: odeint. The use of the two libraries is almost exactly the same in either language.

>python is shit because you can use it for everything
>REAL programmers use low-life-level languages when given the opportunity.
Fuck pythonistas. It takes a REAL programmer to spend weeks writing something that a python dev will just import solution_someone_else_came_up_with.py

different user, but I pretty much sit wherever the language is that balances between being most suited to the task itself at the technical level and is appropriate to the environment it's being developed in. every language is a tool and a good programmer knows when to use those tools. if I have a drill and a jigsaw I'm sure as hell not going to cut a sheet of plywood with the drill and then drill holes in it with the jigsaw regardless of how many people say one is better than the other because it makes sawdust faster

>To solve ODE in Python you will use scipy.integrate.odeint. This library is based on a C++ library: odeint. The use of the two libraries is almost exactly the same in either language.
It's not the same thing. Python has bunch of front ends like Jupyter notebook or Sagemath software to do a lot of the same stuff you can do with matlab or mathmatica. It's way easier to deal with than C++ for math stuff. R is similar in that regard.

>Maybe part of the problem is that these people are often academics who's only exposure to C++ is through some senile professor who has never actually worked in industry. So they think that their "Data structures 101" course represents the typical C++ practices.
I know my data structures class doesn't represent modern C++. Stupid fuck didn't even know what a smart pointer was. C++17 is more tolerable than C++11 that they had boner for but it's still much more of a pain in the ass then something like python for learning and doing quick implementations in. C++ is designed for software engineering and it's okay for that but it's a lot more error prone and difficult to use than python. It can have it's benefits but for what a computer scientist or mathematician needs for their language of choice it doesn't.

>A good algorithm in python will always beat a shitty algorithm in C
Stopped reading there

Let me give you a counter-analogy. You see the image? It's an automatic egg boiler. It is a machine that automatically boils eggs for you, so you don't have to time it or anything.

This sort of product caters to people who know nothing about boiling eggs. To them, it seems "hard" to do, because they have no knowledge of it. In reality, boiling eggs is incredibly easy (perhaps the easiest way to cook eggs). This contraption is not really easier to use than boiling the eggs the normal way. In fact, if you look at reviews for these kinds of products you will see tons of flaws in their design. So, they're not really easier, but they just appear to be.

Now imagine you had someone arguing with you that a pot of water was "too hard to use" and that you should rather use a machine like this. Would it make sense? Well, if you already know how to boil an egg, it seems trivial. No matter how much you explain this to them, they will never understand just how easy it might be. To them, the machine is slightly easier, so they'll never bother learning the "hard way," even if the machine produces eggs of poor quality.

And for someone like me, the pot of water is always better. It always cooks better eggs, and always the exact same way. And professional chefs or culinary scientists should know the hard way. Yes, they care about the details of the food, etc, but the point is that boiling eggs is fucking easy as hell, and it being "too hard" is a very poor excuse.

In case you're wondering, I have the eggs at a light boil for 10 minutes, then remove from heat and let sit for 6 minutes. Perfect eggs every time.

So the argument that C++ is too hard to use are like someone telling me an egg is too hard to boil. I have to first ask "have you actually used it?" - "have you ever actually boiled an egg?"

I wish C++ was better taught. I think that's the main problem, here.

Attached: 41WTmgrezPL._SY300_QL70_.jpg (300x300, 8K)

>It can have it's benefits but for what a computer scientist or mathematician needs for their language of choice it doesn't.
Look, we mostly agree, except for this part.

I understand that computer scientists can find a lot of use in Python. Like I said, I also use Python when it is useful for me.

The situations I am talking about are where people use Python when C++ or Java would be better. Basically, people who only know and use Python. A lot of CS people fall into that category. The same people will tell you "I'm not really interested in programming, I'm more into the CS math stuff." Yet, they spend their entire day programming in Python, so it seems more like a rationalization for not learning something. Interested in programming or not, they still have to program all the time, so they might as well do it properly and use the correct language when the need arises.

These people will typically find themselves faced with a situation where C++ or Java is more suitable than Python for a particular project. Yet, they will still use Python and say "well, the difference is not too important." The result is typically a project that doesn't work out, or at least moves much slower than it could otherwise. Sometimes they will choose not even to do the project:

"My next big idea is using collaborative robotics. I'm thinking of a swarm of Arduino bots!"

"Wow, cool, are you gonna have to learn C/C++ for that?"

"Oh, it won't run Python? Hmm"

The person will spend a few weeks trying to get Python to work on Arduino before giving up...

Or an even better example would be a library that is only available on C++.

What I do is basically CS, but in industry. I think if you only use Python you are really shutting yourself off to the big world of what technology has to offer. That's all.

oh no, i agree 100%. incompetence isn't really a valid reason to choose one thing over the other. I wasn't trying to argue for or against a specific language in general - more that you really shouldn't choose one over others based mainly on being unwilling to learn something else. As in, don't start a project asking "how can I make x language work for this" instead of "what language(s) would be the best to use/learn".

for the record most of my experience in programming has been with C, sometimes C++, because I mainly work on embedded stuff. but if I'm trying to write a script or something I would typically use python. I hate comparing the two because they really aren't meant to be used for the same thing.

launch time != execution speed
Java is geared towards long-running applications, especially with hotspot's on-the-fly optimizations.

And most of the companies you listed use Java for the actual heavy lifting.

Like I said python is good for what most computer scientist or mathematicians spend most of their time doing. If they're doing things that are in the realm of engineering like working with robotics support for python isn't there. However, the same thing is true for casual computing in python. It's much easier to get sage math or juypternotebook up in running than using c++. Python also has great machine learning libraries. Like I said software engineering is something that is better expressed in C++ or , java, or C. I wouldn't build any kind of full scale program in python. In the end it just doesn't scale well for that kind of thing.

>Java is geared towards long-running applications
Well of course it is, it's fucking Java.

Attached: 1538615980079.jpg (478x484, 20K)

because you cant import libraries/classes in other languages.

Just nag the people who can until they port it then.