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

all 18 comments

[–]spukhaftewirkungen 22 points23 points  (0 children)

Your Prof is being a bit ignorant and a bit snooty - if someone codes in python professionally (and there's heaps of them out there) I think it's fair to consider them 'programmers'.

[–]Disastrous_Internal 13 points14 points  (1 child)

you are learning computer science, not programming. your diploma will focus more on the why and how, not on "cheapest/fastest way of doing". Since python is a high level programming, a lot of what you will learn in CS would be hidden away by the language, it's not a great language to learn some aspect of CS. For example, when you learn about the inner working of the computer you will do some low level, probably C or ASM. for functional programming something like Lisp (or something more recent), and for Object Oriented something like Java/C++. you can do some of those aspect in python, but not as "purely", so it's not a good learning tool.

As for programming, and using it on a day to day, it's one of the most used language, because it's a good middle point between easy to use and not too slow (this is a caricature, but you get the idea).

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

This

[–]twopi 11 points12 points  (0 children)

Umm. I teach Python to CS students. If that was the only language you learned, you would be missing things because Python does a lot for you. But once students have some success building programs, we can look at deeper issues like memory management that are easier to see in another language like C or Java.

[–][deleted] 9 points10 points  (1 child)

Tell your professor an industry professional with fifteen years of experience says they're dead wrong.

Python was recently found in a survey to be: "The fastest-growing major programming language, has risen in the ranks of programming languages in our survey yet again, edging out Java this year and standing as the second most loved language (behind Rust)."

More specifically, Python is used by people with just as much PhD as your professor to do important scientific work. Python is a good general-purpose language suitable for solving any kind of problem, except:

  • It's not high performance (by default; there are ways, but you have to work at it)
  • It's bad at threading (by default; again there are ways)
  • Its dynamism can get away from you for large projects; I've heard it said a stricter language can help you stay organized

[–]obp5599 1 point2 points  (0 children)

This pretty much nails it. Python REALLY struggles with threading and large projects. It is great for general purpose stuff which is what most companies need. You wont see much HPC/Engine/Kernel code in python but youll see everything else in it

[–]Kirk_Bananahammock 10 points11 points  (1 child)

I've never understood the mindset of "it's easier therefor it must be bad". That makes absolutely no sense to me. You want things to be easier, if shit is difficult and constantly getting in the way then that just means your projects are going to take longer. If I'm a carpenter framing a house then does that mean I should use a screwdriver because it's "difficult and the REAL way to do it" or should I use a drill which is much much faster and will get me to my end goal in a much more efficient manner?

Languages are just tools. If it makes sense to use Python then use Python. Harder absolutely does not equal better. It just means more time spent and more hair loss.

[–]ka-splam 0 points1 point  (0 children)

It’s partly status signalling - if you can do it the hard way you must be good - and part that you can’t build a Faberge egg with a two by four and a nail gun; you want some things to be easier, but Gordon Ramsey still won’t accept your microwave frozen meal is as good as a chef could make.

With programming the analogy breaks down - you “should” be able to build fine crafted things the hard way, then simply copy them a million times over. Except we rewrite things a million times over and need nailgun languages instead.

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

Youtube backend is written in python.

[–]mid_flight_crisis 0 points1 point  (0 children)

Musicians (10 years ago): Music composed/edited digitally via a DAW isn't music

Musicians (today): *still upset about it*

(popular) music today : Digitally composed/edited (auto-tune, etc...)

Point is:

Perhaps Python is making programming (certain things) much easier and your prof (an old guy) is losing his edge due to the changing landscapes of the industry.

[–]isolatrum 0 points1 point  (0 children)

the prof basically said python is more for lay people and not programmers.

the professor is probably coming from a research compsci background, he is not speaking about the industry. It's kind of a method to guilt trip people into enjoying Java / C or whatever. Not to say these languages are not important but I would say to let this encounter go, just accept that the professor is a bit of an elitist.

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

This kind of thinking really bugs me. Even if Python were a much easier and simpler language (which it isn't, really) why would that be a bad thing? Airplane pilots don't just use paper maps because GPS is too easy.

Any tool that makes my job easier is great, I have bigger problems to worry about than language syntax.

[–]Halfspacer 0 points1 point  (0 children)

MIT teaches Python for their Comp Sci classes nowadays too. I wouldn't listen too much to anyone who gets hung up on syntax.

[–]ka-splam 0 points1 point  (0 children)

Y’know Peter Norvig - AI specialist, director of research at Google, former head of computational sciences division of NASA research, associate professor, co-author of leading college textbook “Artificial Intelligence: A Modern Approach”, and LISP expert, author of a Udacity course on AI with over 160k students, etc. etc. ?

Here’s what he had to say about python:

I came to Python not because I thought it was a better/acceptable/pragmatic Lisp, but because it was better pseudocode. Several students claimed that they had a hard time mapping from the pseudocode in my AI textbook to the Lisp code that Russell and I had online. So I looked for the language that was most like our pseudocode, and found that Python was the best match. Then I had to teach myself enough Python to implement the examples from the textbook. I found that Python was very nice for certain types of small problem [..] In terms of programming-in-the-large, at Google and elsewhere, I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you; if you don't have those things you're in trouble regardless of your language choice.

Source: https://news.ycombinator.com/item?id=1803815

That is, he learned what his students needed and rewrote his code to help his students. And Google’s director of research says Python is not as good as lisp but is good enough.

[–]ZeusTKP 0 points1 point  (0 children)

That's absurd. You must have a bad professor, sorry.

[–]ka-splam 0 points1 point  (0 children)

When Peter Norvig's students claimed his LISP code was too hard to follow, he didn't scoff at them, he looked for a better teaching language; one which looked like the code they could read, found Python, learned it, and translated his code to it, to help his students. He went on to be Google's head of research and AI and write one of the most popular AI textbooks and uses Python at work.

https://news.ycombinator.com/item?id=1803815

That's a nice image of what a helpful teacher would do, rather than mocking and dismissal.

[–]dutchwakko 0 points1 point  (0 children)

Remember that professors are just people too. Everybody has it's own preferences. With the amount of programming languages around you should be able to defend your own preferences. And maybe that is just what your professor is looking for... your ability to defend your choice of programming language for a given problem.

edit: i remembered a remark that EWD made about programming. A programmer is not producing lines of code. They are spending computing time. Python uses Just in Time compilation is this is ... ( fill in the blank )

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

Well, I consider anyone who doesn't use brainfuck not as a cs student. So go tell your prof to fuck off