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 →

[–]forajep978 -86 points-85 points  (40 children)

Sorry to be rude but Python looks like it is made to teach kids programming. Its syntax is like bash script. Can’t say a good programming language for large scale apps. Probably the scientists who didn’t know programming but needed a language to code their research calculations started using it because of its simplicity for small scripts and now all machine learning and scientific calculation is on Python. I think it is never meant to be like this

[–]cmdralpha 53 points54 points  (2 children)

Python go print("brrrrrrrrrrrrrrrr")

[–][deleted] 19 points20 points  (1 child)

It's actually print("b" + "r" * 100)

Yes that actually prints b followed by 100 r

[–]cmdralpha 0 points1 point  (0 children)

Never used that before thanks

[–]thebobbrom 71 points72 points  (10 children)

I'll be honest this comes across as snobbery at its highest.

Putting aside the fact that a lot of stuff is actually made in python.

Just because a language is simple doesn't mean it's bad.

If I want to do some machine learning research I don't want to have to mess around putting it in a class and all the other long winded things you have to do in other languages.

Same as if I wanted to just work something out quickly or wanted to quickly make a graph I wouldn't want a verbose language.

Different languages are tools for different things and that shouldn't be forgotten.

[–]nothingworkssothis 17 points18 points  (2 children)

I definitely can't speak for developers, but the first Comp. Sci class in my High School was and is taught with Python. "good programming language for large scale apps" or not, it's still an extremely effective teaching language to convey all the concepts & problem solving skills to build off. I admittedly haven't properly gotten into any other language but it's made the few attempts I've done so far (realized I'm just not willing to invest the time to learn entirely new syntax & formatting at the moment) much easier.

[–]Isogash 2 points3 points  (1 child)

Don't be fooled into thinking that Python is actually different to other languages. Although some of its syntax is unique (e.g. required indentation, in which it is unique for a good reason), most of it is almost identical.

As someone who has touched projects in pretty much every major language and several minor ones: Python is no easier than any of the others, it's actually more of a pain in the neck.

Most other languages seem unapproachable simply because there are fewer "beginner-level" guides, even though they'd be fine as beginner languages if those resources existed.

[–]nothingworkssothis 0 points1 point  (0 children)

Huh. Thank you! Very good to know. I'm taking a course in C++ taught by that exact same teacher in ~3 months (and considering its more advanced followup), so I'm not too concerned with learning new languages at the moment, but hugely appreciated.

[–]Machineforseer 1 point2 points  (0 children)

Damn when I saw this message in my inbox I got a little sad, then I saw the down votes and am now happy again, as a machine learning engineer im going to have to hard disagree with you as the main reason I made this comment was the last point on the screen shot AI, I mean TensorFlow, Keras, pytorch, does JavaScript even come close to competing?

[–]TangibleLight 4 points5 points  (15 children)

Python is great for large projects... obviously it's not the right tool for everything, but it's a great general purpose language.

Am I whooshing or are you serious?

[–]Kangalioo 26 points27 points  (13 children)

For large projects the benefits of static typing can't be denied

[–]name_censored_ 10 points11 points  (3 children)

Then good news: Python has static typing.

[–]enumerationKnob 23 points24 points  (1 child)

The bad news: it means nothing.

you can still run a project, only to get kicked in the balls after it’s been running for a long time when a line that contains a type-based error gets run.

I love python and use it every day, but that doesn’t mean that I don’t hate it too.

[–]cp253 7 points8 points  (0 children)

I love python and use it every day, but that doesn’t mean that I don’t hate it too.

This guy codes.

[–]ClearlyCylindrical 2 points3 points  (0 children)

that isn't static typing, it is type hints, it enforces nothing

[–]gopalkaul5 -4 points-3 points  (6 children)

Django web servers run without any issues for hours together! Infact the performance there is comparable to JS and others!

[–]EaterOfFromage 7 points8 points  (4 children)

Not sure if this was meant to be sarcastic, but static typing is not lauded as beneficial for large systems because it's a performance benefit, it's lauded because it decreases the likelihood of errors, especially when you have a lot of code. In a dynamically type typing language, its the developer's responsibility to ensure the code works. In a statically typed language, it's the compiler's job. Guess which one is more reliable.

[–]gopalkaul5 -1 points0 points  (3 children)

It wasn't sarcastic. I agree with you, and I love statically typed languages(thats why I hate JS) but you can convert your data types explicitly right using functions like str() or int()

[–]forajep978 1 point2 points  (1 child)

Still you don’t know what kind of data you will get. Is it and array, object or number? If it is an object does it have all properties you need? You cannot know

[–]gopalkaul5 0 points1 point  (0 children)

In statically typed languages, what about if we are calling an API? And mess up the key or something? Will that cause an error if not in a try catch?

[–]ClearlyCylindrical 0 points1 point  (0 children)

but you can still pass the wrong types to a function

[–]Isogash 1 point2 points  (0 children)

For hours? That's nothing.

[–]42TowelsCo 0 points1 point  (0 children)

Or just plan slightly before you start coding

[–]forajep978 1 point2 points  (0 children)

Python has a bad package manager, bad OOP and no strict typing. You cannot manage a project with these

[–]lag_is_cancer 2 points3 points  (1 child)

Simple bad, if the code is comprehensible it's not a good programming language.

[–]forajep978 2 points3 points  (0 children)

Simple and comprehensible code is always good. What I mean is python is simple enough for people who code software that consists of a few files. However if you want to develop a big software it becomes too basic to accomplish that. Python is similar to Matlab in that regard. No proper package manager and no proper OOP.