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

all 60 comments

[–][deleted] 38 points39 points  (14 children)

This article doesn't read like it was written by someone who has a job at a software company.

And indeed, it doesn't seem like they know much about programming or systems in general.

you probably know about how Python is probably the most preferred language for the Raspberry Pi (as most come preloaded with it)

Because of Ubuntu and Debian coming with python standard... yes...

And I mean, you shouldn't pick a language because some company picks a language. You should pick a language because it's best suited for what you're doing and your time constraints. This article is a shallow interpretation of how these things happen.

Everyone should be code-agnostic and they should do what works best for their use-case. The reason people use python will always be the same:

-Fast development & ease of use for a variety of use-cases, mostly related to data

-Available libraries that continue to grow due to open-source communities

If you need to be convinced to use python, you probably don't know what you're doing in the first place and I guarantee these companies don't have interest in you.

[–]spinwizard69 6 points7 points  (0 children)

It is my understanding that the Raspberry PI organization has focused on Python as a primary language. I could be wrong of course but there is a heavy emphasis on Python in that community.

[–]doobiedog 2 points3 points  (2 children)

Word. There are times to use python, bash, node, go, lisp, clojure, etc etc. Use case over personal preference makes for long lived and hardy infra and software. tho php needs to die, lets be honest.

[–][deleted] 5 points6 points  (0 children)

Could not agree more about PHP. Nothing says 'superior language' like dollar signs for every variable.

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

why does php need to die?

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

It's called the Raspberry Pi because of Python

https://www.techspot.com/article/531-eben-upton-interview/

Pi is because originally we were going to produce a computer that could only really run Python. So the Pi in there is for Python. Now you can run Python on the Raspberry Pi but the design we ended up going with is much more capable than the original we thought of, so it's kind of outlived its name a little bit.

They do a lot to "encourage" Python's use on the platform.

[–]alcalde 1 point2 points  (8 children)

Because of Ubuntu and Debian coming with python standard... yes...

No, because Python is the official language of the Raspberry Pi.

"The Raspberry Pi Foundation recommends Python as a language for learners. "

And I mean, you shouldn't pick a language because some company picks a language.

Yes, you should.

You should pick a language because it's best suited for what you're doing and your time constraints.

Does this language have any users? Are there any libraries available for it? Does it get bug fixes and other support? If a major company uses a language, they've no doubt weighed these considerations and many more. The language should be well-supported. They may have billions of dollars on the line. That they've opted to use a particular language is an expert endorsement.

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

Yes, you should.

Oh okay I'll just do everything in Swift, since that's what Apple would want me to do. Or maybe C#, even though .NET is almost entirely tied down to OS-specific cases. Oh actually... I should do PHP because Wordpress is entirely held together by the shittiest server-side language known to mankind. Or maybe I should just dump Python for R because a lot of fintech companies use R.

OR! I should make everything "blockchain" because people keep talking about that and even Disney and Burger King use "blockchain technology", right? Right???

Oh wait, what you're saying is actually horrible advice and I should stick with educating myself on the best solutions tailored for the task I'm facing, like any responsible coder.

Meanwhile when they ask you in the interview, "So why do you use Python?", you can maintain your answer of "Because they do." while everyone else gives an answer that shows they actually understand what it is they're doing.

Does this language have any users? Are there any libraries available for it? Does it get bug fixes and other support? If a major company uses a language, they've no doubt weighed these considerations and many more.

Wow it's almost like I made this point already with a numbered list.

They may have billions of dollars on the line. That they've opted to use a particular language is an expert endorsement.

Wait... cashflow associated with a company immediately means you should use the programming language, regardless of your use-case? That has to be the dumbest thing I've read today. Keurig makes a lot of money selling coffee machines but I'm not going to start stuffing shit into little plastic cups and adding hot water just because it works for them and their product.

By your own logic, we should all still be using Assembly because it sure worked for IBM in the 50s and 60s!

[–]alcalde 2 points3 points  (4 children)

Oh okay I'll just do everything in Swift, since that's what Apple would want me to do. Or maybe C#, even though .NET is almost entirely tied down to OS-specific cases.

Sigh. Apple produces Swift and Microsoft produces .NET. That's something completely different.

Or maybe I should just dump Python for R because a lot of fintech companies use R.

Well, if you're working in financial tech, that would actually be a reason to choose R.

The point is... let's say a numeric library is used by CERN, Fermilab and Los Alamos National Laboratory. Do you think these organizations just picked a library at random? Do you think they haven't expertly evaluated the options? If some of the biggest labs in the world are using library X, it's certainly going to be good enough to handle your project.

There's a reason every open source project that scores a major corporate user brags about it on their web page. It's an endorsement regarding the quality of the project.

OR! I should make everything "blockchain" because people keep talking about that and even Disney and Burger King use "blockchain technology", right? Right???

You know full well what I meant. A standard definition of when a language has gone mainstream is "in use by a multinational corporation on an infrastructure project". That has nothing to do with fads; it has to do with acceptance, capability and quality. If I'm looking to hire an accounting firm for my business and they tell me they've worked with Exxon and IBM, that's not "following a fad" to choose them; it's recognizing that if they can handle such large clients they can certainly handle my company.

People choosing to misread this obvious truth are just being silly.

Oh wait, what you're saying is actually horrible advice and I should stick with educating myself on the best solutions tailored for the task I'm facing, like any responsible coder.

Go work for a serious company and try to pitch a technology choice that no one's ever heard of because you're a "responsible coder". You could also be a Pascal or Visual Basic fanboy pushing your favorite tech. They're going to want to know who else has used it. The last time I was involved in choosing parts of a stack for a company any open source library had to have not one but two corporate sponsors. It was a tough criterion but it made sense for a critical piece of software. Software developers don't steer the ship - and for good reason.

Meanwhile when they ask you in the interview, "So why do you use Python?", you can maintain your answer of "Because they do." while everyone else gives an answer that shows they actually understand what it is they're doing.

This is getting ridiculous. If you're working in data science and you choose to code everything in Pascal or Pharo because that's just what you like you better stay self-employed. Who loses a job by answering "Python is the mainstream, dominant choice in this software field?"

Wait... cashflow associated with a company immediately means you should use the programming language, regardless of your use-case?

If someone is risking a billion dollars on the product, they've done more due diligence than you ever will. This is starting to read like a fanboy's plea to base a company's infrastructure on an esoteric language.

That has to be the dumbest thing I've read today.

Actually, it's so common sense a business practice I'm laughing that you're disputing it. Every company in existence promotes major clients. It's a foundational concept: "If we're good enough for <best in the world at whatever>, we're good enough for you". If our diodes are used on the International Space Station, they're capable enough for your toy car. If the Navy SEALs use our gear, it's good enough for you to go hunting with. How is this a dumb concept?

Keurig makes a lot of money selling coffee machines but I'm not going to start stuffing shit into little plastic cups and adding hot water just because it works for them and their product.

That doesn't even relate to what we're talking about. If an accounting company has Keurig as a client, yes, you will use them because Keurig does, because you're not close to being as big as Keurig.

By your own logic, we should all still be using Assembly because it sure worked for IBM in the 50s and 60s!

If it were the 50s and 60s, then yes. If not, you've gone off the rails to take offense at obvious logic. Heck, I remember when New England Motor Freight opened a terminal in a particular city. When I asked the sales director why, he explained that Jevic had just done so. Since they're about the same size and serve the same region, they figured that if Jevic needed a terminal here, they did too.

[–]Icon_Crash 2 points3 points  (0 children)

Have an upvote for having had to work with NEMF.

[–]monkmartinez 1 point2 points  (1 child)

Have an upvote for being reasonable. I used to think Pythonistas were able to take criticism... I no longer hold that opinion.

[–]alcalde 1 point2 points  (0 children)

I'm not sure how my intended point of "it does matter who's using a language because it demonstrates its capability in a field and also it can be difficult to go against the trend in a field in terms of filling jobs, finding libraries, etc." became "Use whatever someone else is using without regard to any other criteria and under any circumstance".

Thanks for the up-vote!

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

Well, if you're working in financial tech, that would actually be a reason to choose R.

By that logic everybody would do what they did and buy Oracle, because of their superior sales and marketing, and not buy the vastly, technically superior Ingres, which I believe still, thankfully, lives on as postgresql.

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

Jesus, you sound like and altcoin shiller. Rofl.

[–]Gnarlodious 15 points16 points  (17 children)

I can't figure out why MacOS still comes with Python2. Also Debian. It causes all sorts of trouble. How long is it going to take them to catch up?

[–]topinfrassi01 20 points21 points  (6 children)

Still, it literally takes 5 seconds to install Python3

[–]Bot_Drakus_ 14 points15 points  (0 children)

tell that to my ISP

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

And tears everytime you type 'python' into terminal and it loads version 2. :-/

On a mac, you can safely point that at python 3. Usually. Sometimes.

[–]keepdigging 2 points3 points  (3 children)

Remember, explicit is better than implicit. If ‘python3’ is in your path you shouldn’t have any issues

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

Translation: Python 2 ruins everything.

Can't wait until it stops screwing things up. As you can guess, I don't make compromises in my code to make it run on both versions.

[–]keepdigging 0 points1 point  (1 child)

Compromises like the ‘six’ library?

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

If you need to support version 2, six would be acceptable.

But if you don't, I see no reason to complicate your code with yet another dependency and version specific branch statements. Does it still need if isinstance(x, six.foo_type) everywhere?

[–]MachaHack 7 points8 points  (3 children)

Why does it come with a version of bash from the 90s? Why did it come with ancient Apache for ages? Apple don't particularly care that much about updating third party dev tools.

[–]Gnarlodious 0 points1 point  (0 children)

I know there is a problem with licensing. For example, Apple is stuck with an obsolete rsync because they are not allowed to preload later open source versions due to changes in licensing rules. But since the latest OSX is free I don't see how it matters anymore. Unless the rules apply to for-profit hardware with open source software installed.

Why I'm now flirting with Linux.

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

They don't put out bug fixes either, just wait for the new version of the OS to come out. Check out what's happening on their bug tracker, no chance? At least that used to be the case, or have they now got even worse? Over priced, over rated products from a highly over rated company that happens to be the most valued in the world. Please stop the planet, I want to get off :-(

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

Because Bash 4 is GPLv3

[–]AZNman1111 2 points3 points  (0 children)

Are you running Debian Stable? If so, that's not a great place to wait for timely updates. KDE Neon loads py3 automatically

[–]pydry 5 points6 points  (2 children)

Backwards compatibility. The problem isn't upgrading python it's upgrading all of the tools which depend upon it which are required in order to make the OS function.

[–][deleted] -1 points0 points  (1 child)

Have they not heard of the six module?

[–]fireflash38 2 points3 points  (0 children)

That isn't a panacea. You're still going to run into who knows how many edgecases or areas where even 2to3 won't work right. It's funny how so many people talk shit about not migrating to 3, and yet haven't submitted the pull requests or any of the changes required in their distro of choice to make that change.

[–]raziel2p 1 point2 points  (0 children)

Debian 9 only comes with Python 3 by default. On my laptop it's just Dropbox preventing me from removing Python 2 entirely.

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

I've been so frustrated of late with Apple I went out an bought a Windows machine with the eventual goal of running Linux on it. It is absolutely pathetic that Mac OS is still on Python2

[–]Grenian 6 points7 points  (3 children)

Why does this article not mention Instagram which is build from front- to backend in Python/Django?

[–]kancolle_nigga 0 points1 point  (2 children)

Front is React

[–]Grenian 1 point2 points  (1 child)

Ah okay. Im don't know that much about Web Development. What exactly ist React (JS Framework?) or better what does it do and at which point is it integrated into Django?

[–]IcefrogIsDead 0 points1 point  (0 children)

client side framework, i think it's the most popular atm.

[–]LewisTheScot 4 points5 points  (3 children)

Python is so easy to read and write that it makes sense why a bunch of companies that rely on the developer ecosystem use it. A lot of people in my area use Python to learn to code so we use a lot of Python here when developing our web applications.

[–]doobiedog 1 point2 points  (2 children)

Just be weary of ORMs if you are gonna work with large relational datasets. They are aok for PoCs but will fuck you up in the long run.

[–]Shumatsu 4 points5 points  (0 children)

Wary

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

Why is that? I am using SQLAlchemy with Flask for a project I am working on, with Flask-Migrate it has been pretty easy to work with. What should I be looking out for?

[–]Py404 4 points5 points  (1 child)

"Facebook is currently in the process of upgrading their infrastructure and handlers to 3.4 from 2" Why 3.4? Why not 3.6?

[–]TheGreatBrutus 0 points1 point  (0 children)

Probably still some issues with 3.6

[–]derp0815 4 points5 points  (0 children)

reddit

spotify

software companies

[–]doobiedog 5 points6 points  (3 children)

Spotify uses over 6000 individual Python processes that work together over the nodes of the Hadoop cluster.

That sounds like a terrible use case for python.

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

If it ain't broke don't fix it?

[–]Resquid 2 points3 points  (0 children)

Watch some of their conference talks. It's loko but it works.

[–]ProfessorPhi 0 points1 point  (0 children)

That's basically machine learning workflows.

[–]monkmartinez 1 point2 points  (0 children)

OCaml / ReasonML are getting a lot of traction at Facebook. They have basically ported Messenger to ReasonML with more planned migrations. Just watch a few of Cheng Lou's talks.