Live data from Hacker News

Retiring Python as a Teaching Language

prog21.dadgum.com

181–190 of 238 posts

Re: Retiring Python as a Teaching Language

#181
post #74
post #65

Earlier quoted context omitted.

Again, this is not about personal preference. In the real world, 90% of programmers use either C#, Java, C/C++, JS or Python/Ruby/Perl in their jobs. We could restrict ourselves to this set of languages and syntax style, and design a super-set language that does everything, gets rid of their historical warts, and can go from scripting to HPC. Stuff like using significant whitespace or not, are BS bikeshedding, which…

> Again, this is not about personal preference. There is no need for passive aggressiveness. I get that aping the exact phrase used in a parent comment is used to communicate disrespect, and it's duly noted, but all things being equal I would prefer not to go down that route. My argument here is that people designing languages have made choices based on their personal preference as well. It's not really appropriate t…

>There is no need for passive aggressiveness. I get that aping the exact phrase used in a parent comment is used to communicate disrespect, and it's duly noted, but all things being equal I would prefer not to go down that route.

What passive aggresiveness and/or disrespect?

The repeat is used to communicate disagreement with a specific thing attributed to what I said. Since it was attributed twice, with no regard to the arguments I made, it was mostly necessary.

If anything is "passive agressive" is this sudden ad-hominen and armchair psychology attempt.

I only responded to the abstract issue under discussion, didn't made any judgements on the participants. Can we keep it at that level?

Re: Retiring Python as a Teaching Language

#182
post #23

As much as i can't disagree with the choice (the realpolitik of programming has made it the most correct choice), i am saddened that the language on which the choice falls is one not chosen based on any merit, but merely due the historical accident of being the first to be implemented in a browser and having had no appreciable opposition due to browsers at the time being in hands of corporations. In "A Deepness on th…

I thought Java was the first to be implemented by the browser?

I think the TCL plugin predates the Java one.

Re: Retiring Python as a Teaching Language

#183
Even if "runs in the browser" is a hard requirement, surely there are options like Dart that don't have as many horrible quirks and edge cases - quirks that are probably no trouble for an experienced developer, but can be very confusing to a newcomer - as Javascript does?

Re: Retiring Python as a Teaching Language

#184
post #74
post #65

Earlier quoted context omitted.

Again, this is not about personal preference. In the real world, 90% of programmers use either C#, Java, C/C++, JS or Python/Ruby/Perl in their jobs. We could restrict ourselves to this set of languages and syntax style, and design a super-set language that does everything, gets rid of their historical warts, and can go from scripting to HPC. Stuff like using significant whitespace or not, are BS bikeshedding, which…

> Again, this is not about personal preference. There is no need for passive aggressiveness. I get that aping the exact phrase used in a parent comment is used to communicate disrespect, and it's duly noted, but all things being equal I would prefer not to go down that route. My argument here is that people designing languages have made choices based on their personal preference as well. It's not really appropriate t…

>My argument here is that people designing languages have made choices based on their personal preference as well. It's not really appropriate to take one specific set of features you like and declare it to be the objective winner.

And my point is that I'm not doing that, I'm not picking features based on personal preference (my actual preferences are different), but to describe how a language can encompass the whole range of applications (be the right tool for most jobs, as much as possible).

This wasn't about "my dream language" (that would be something like Smalltalk) but about whether a language can cover all/most bases or we're forever doomed to use a babel tower of "right tools for the right job".

And the "cover all bases" thing I tried to tackle from a technical features standpoint. At this conceptual level of the argument I don't even care much if programmers will like the end result.

>That's a No True Scotsman-like argument

No, it's just a statistical observation. 90% of programmers do use this languages. I don't say the rest are not programmers or not true programmers -- just that we can cover the majority of programmers doing professional work with a language in that vein.

>I'm still not sure what to say about this without repeating myself, except for: go and do it. You say it's a matter of investment, but on the other hand consider the benefits if someone pulled it off. If you really do believe you are the person who has this all figured out, please go ahead and implement this. Heck, make it a Kickstarter project or something, I'm in!

Now, that's disrespect and passive agressiveness!

I never said it's just me that "has all that figured out". In fact lots of people say the same thing, inside every language community there's a trying to fix the same pain points to make each language more universal.

Lots of Python people for example wanted to make it GIL-less / capable of good async operation / faster / typed / etc. All this is for handling different kinds of scenarios that it currently does not.

People using JS asked for more speed, then for server side/native interfacing (Node et co), then for "programming at large" features (ES6) etc, types, things like asm.js to get native memory management, etc.

So, what I wrote was that having a language extend to almost all jobs is not impossible, and gave a laundry list of features (taken from observations such as the above), that could accomplish that.

Re: Retiring Python as a Teaching Language

#185

Earlier quoted context omitted.

It's been a while, but doesn't it have restrictions, like you can only use it for one liners? Edit: found this via Google - "lambda functions can not contain commands, and they can not contain more than one expression"

> and they can not contain more than one expression I don't believe that is different from e.g. scheme. Ideally, a lambda expression would look like a normal function body, but I definitely wouldn't discount them as "not real" on this basis.

Iirc in scheme you can put anything into a lambda that you want.

Of course the Python lambda is "real", the correct word to use would have been "limited" I suppose.

Re: Retiring Python as a Teaching Language

#186
post #68
post #57

Earlier quoted context omitted.

> It's a game of tradeoffs, same as everything else in nature, isn't it? My question is if tradeoffs are inherent in programming language design (some mathematical inevitability) or due to lack of resources and other "real world" concerns that can be overcome given enough care and money. I'm not convinced by anything that I've seen that we don't just have the latter. E.g. one could say in 1995 "JS is an awful languag…

I think the issue here is that we have two opposing theses on how this works. I posit that the programming ecosystem is very much like any other ecosystem in that there is are many organisms within it, for a good reason. For example, looking at nature, you might ask yourself why biology hasn't converged on a single lifeform yet, and whether it's not simply an issue of having all the right genes and discarding those t…

[deleted]

Re: Retiring Python as a Teaching Language

#187

My impression is that Python is certainly not a better language than JavaScript. They both have their quirks, so it ends up being a matter of preference. For example Python doesn't have real lambdas, on the other hand it has named parameters. The only reason to use Python that I can think of is maybe SciPy. I made me sad to witness Python gaining so much in popularity as a beginner language in the last year.

I'm curious about this sentiment about python lambdas. What about them is not real?

I suspect much of it is a conflation of the properties of anonymous functions with the properties of first class functions. People see first class functions implemented as lambdas and end up focusing on the wrong part of it (rather than fully understanding what is going on).

I realize that more powerful anonymous functions can make for prettier code, but Python's single expression anonymous functions cover an awful lot of the situations where making a name would make the code substantially uglier.

Re: Retiring Python as a Teaching Language

#188
post #68
post #57

Earlier quoted context omitted.

> It's a game of tradeoffs, same as everything else in nature, isn't it? My question is if tradeoffs are inherent in programming language design (some mathematical inevitability) or due to lack of resources and other "real world" concerns that can be overcome given enough care and money. I'm not convinced by anything that I've seen that we don't just have the latter. E.g. one could say in 1995 "JS is an awful languag…

I think the issue here is that we have two opposing theses on how this works. I posit that the programming ecosystem is very much like any other ecosystem in that there is are many organisms within it, for a good reason. For example, looking at nature, you might ask yourself why biology hasn't converged on a single lifeform yet, and whether it's not simply an issue of having all the right genes and discarding those t…

>For example, looking at nature, you might ask yourself why biology hasn't converged on a single lifeform yet, and whether it's not simply an issue of having all the right genes and discarding those that are not so good. But that's obviously not how it works. There are niches and different strategies for solving different problems. There is no one genome that solves everything.

And yet, nature already has "converged" sort of into humans, who are "master of all trades" sort of, and somewhat analogous to the "full-spectrum language" I'm talking about.

And as with that language and other languages, the existence of humans doesn't mean all other lifeforms will perish or dissapear.

>* There is no mathematical reason why this should be unworkable, but a solution so far eludes both programmers and evolutionary processes alike.*

Well, for evolutionary processes we have humans. And soon, if we are to believe some pundits, the "singularity".

As for languages, we have some near damn all rounders, but my observation is that it's not because it has "eluded programmers" that we don't have it, but because of business reasons (e.g. some company wants to only target segment X), oss being underfunded, narrow scope, etc.

Re: Retiring Python as a Teaching Language

#189

I'm saddened by the lack of academic rigour displayed in this thread. If you have not taught introductory computer science courses, then you have NO CLUE what makes a good introductory language choice. It appears James Hague isn't working as a teacher either, just giving advice to newbies, so his opinion is just that -- opinion. What you want is field studies: "This year we used Haskell and 75% of all students gave u…

> What you want is field studies: "This year we used Haskell and 75% of all students gave up on programming stating that it was to hard. Last year we used Visual Basic and only 20% did. Ergo Visual Basic is probably a better first language than Haskell." Why is that necessarily a good thing? What are we optimizing for here, understanding or popularity? SICP review by Peter Norvig: > Donald Knuth says he wrote his boo…

Exactly this. Why are we trying to raise an army of procedural, object-oriented programmers?

Re: Retiring Python as a Teaching Language

#190

When I took an introduction to Computer Science in college, it was taught in Racket. Over winter break, I then learned Python, and I was baffled -- why would any curriculum not start with Python? Python was easy, expressive, and allowed the user to get lots done with little effort. It was great at motivating programming by showing its use and power. It seemed like an ideal introductory language. Over the last few yea…

All of the concepts you say Racket is good for could be done in Python (ok, functional programming not so much, but I certainly do bits of functional programming with it).

At the end of the day most jobs in the real world want to get stuff done rather than explore CS concepts. Visual Basic was a very popular choice for many years despite being a poor language. I am sure it was simple enough for many people to start programming (that has benefits as well as downsides).

Post reply on HN