Hello dear CS50 folks,

I was wondering - just out of curiosity - why PHP was removed from CS50 ? And why choose Python instead ?

If someone could give me an elaborate answer, explaining the reasoning process behind that choice, it would be great !

Thank you !


Disclaimer: I am not part of CS50 team, and don't know their reasoning. This is my opinion, why I think that has been a good idea, especially when touching currently trendy topics like "machine learning".

Both are used by people for command-line scripts and web stuff. There are also a few GUI programmes written in Python, haven't encountered one written in PHP yet.

In my opinion, PHP on the one hand has existed for a while, does exist, and will exist for another while, but it seems to be on a relatively stable level. It's used on Facebook, Wikipedia, Wordpress, so going to stay for a while.

Python on the other hand is more modern, and relatively close to natural language, so supposedly easier to learn, and has been growing for the last years. Python3 especially is meant to be more readable and more consistent (print now is a function, yeah!)

Python3 brought breaking changes, migration is not always trivial, especially if some of the libraries are not yet available on Python3, nobody wants to maintain separate code for two Python versions to keep users of both happy, so there are libraries still not migrated, which again keeps others from migrating. I think that now the win of Python3 is inevitable, and new projects are usually done in Python3, unless of course you'd like to really use a library available only on Python2.

Oh, and there are Python libraries making your favourite Fortran libraries available, so you can do high-performance supercomputing and AI and stuff while writing in a more abstract, lower-performance, interpreted language. That's why I've seen less techy people use it, they do their FEM simulations on graphics card arrays, apply their neurosciences frameworks, without dealing with all the low-level stuff. Haven't seen that for PHP.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .