Live data from Hacker News

Retiring Python as a Teaching Language

prog21.dadgum.com

71–80 of 238 posts

Re: Retiring Python as a Teaching Language

#71
post #26
post #11

Earlier quoted context omitted.

> It's a common reaction displayed by the proponent base of many languages, even here on HN, to advocate the use of their language for every conceivable need. This can't possibly work well. Is that some law of nature, or merely a consequence in how we've designed languages thus far? A well designed type-infered statically typed language with a REPL/interpreter, a fast AOT compiler, an optional GC, good documentation…

Optional gc is not something I've seen work in practice. Apple abandoned their attempt because of the difficulty getting gc'd and non-gc'd code to play together nicely. Rust has (and may again) offer something like optional GC, but it will operate at the value level rather than the program level and thus doesn't really solve the library problem. Programming languages are designed in a huge, multi-dimensional space. S…

>Optional gc is not something I've seen work in practice. Apple abandoned their attempt because of the difficulty getting gc'd and non-gc'd code to play together nicely. Rust has (and may again) offer something like optional GC, but it will operate at the value level rather than the program level and thus doesn't really solve the library problem.

Well, you could make 2 compilers for languages with the same syntax, and 2 sets of libraries (GC and no-GC) with mostly the same APIs, divergent only in whether they have GC or not.

For low level stuff you use "GCLESSLANG" (as a better C) and for the other stuff you use "GCLANG".

Otherwise the 99% of the syntax is the same, and the 2 langs are designed to easily call into one another. They could share most of the parser and compiler too.

This would basically give you the feel that you use one and the same language, switching between GC and no-GC version.

It's a money and resources thing, not some "cannot make this work" thing.

Re: Retiring Python as a Teaching Language

#72
post #56
post #30

Earlier quoted context omitted.

+1 on the interactivity aspect. Not having to go through a bunch of compiler configuration (C/C++ land) to get a basic GUI up and running is a huge plus. And HTML is a lot easier to understand for people with no experience than a bunch of tkInter classes.

i kindof believe all languages should have some ability to run with a browser-based GUI... why bother with all the hair-brained implementations (Swing, Qt, etc.) when we could just have a "desktop mode" (altered security) version of Chrome pop up to provide GUI. it wouldnt even have to follow same rules as browser really (navigation could be via buttons only, no back/refresh), just be based on html & perhaps js to al…

Chrome apps are already the desktop mode :) There's also stuff like Chromium Embedded Framework[1] which Atom used to use[2]. AppJS[3] sounds the most similar to what it sounds like you want, though. I've never tried it, but it seems like it'd work well enough (Chromium-based).

1. https://code.google.com/p/chromiumembedded/ 2. http://blog.atom.io/2014/05/06/atom-is-now-open-source.html 3. http://appjs.com

Re: Retiring Python as a Teaching Language

#73

You can program in Python using Kivy [1] to create apps for Android, iOS, and the desktop. I made a simple app and took it through the entire process it is now on the Android app store. You are still using Python so you can focus on programming and not language features, but you get the benefits of programming something your students can show off. [1] http://kivy.org/docs/gettingstarted/intro.html

Thanks for pointing this out. I've been using pygame with my students but kivy looks great.

Re: Retiring Python as a Teaching Language

#74
post #65
post #33

Earlier quoted context omitted.

Again, that's a personal preference, not a statement of fact. There is a cost associated with different type systems, and that cost can vary with the problem you are trying to solve. It's not that I argue against the benefits of having such a system in place, but you should be aware of the fact that this too might not represent the end-all-be-all for all programmers. One of the basic mistakes made here seems to be th…

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 to take one specific set of features you like and declare it to be the objective winner.

> In the real world, 90% of programmers use either C#, Java, C/C++, JS or Python/Ruby/Perl in their jobs.

That's a No True Scotsman-like argument. Also, what's the meaning of the three different types of separators you used there? But for the sake of convergence, yes, let's assume every important real-world language is in that list.

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!

Re: Retiring Python as a Teaching Language

#75
post #5

It's with all of this in mind that my recommended language for teaching beginners is now Javascript. I know, I know, it's quirky and sometimes outright weird, but overall it's decent and modern enough. Javascript is a flawed, quirky language, but with the upcoming ES6 and ES7 standards it's going to be a much, much better. I'd call it a tossup comparing it to Python or Ruby. I wouldn't have recommended JS to a beginn…

Is rigor even that important? Is a flawed and quirky language really a problem when you are learning? I'd expect that keeping the learner's momentum going is more important – if they keep producing they will be able to engage with the crap, or make their own new kinds of crap. Quantity over quality, you know? With that in mind, stuff like developer tools is more important... and maybe community (which is eclectic for…

We can have good, rigorous semantics and simple syntax in the same language. Python is, indeed, a good example. Ruby as well. I would even start to say Scheme is a very rigorous language that is quite easy to learn--if you first haven't been tainted by curly-bracket languages and second lived in a world in which there were a Scheme implementation with as many and as complete of a selection of libraries as Python.

A flawed, quirky language is a problem when learning, because it increases the number of things that have to be learned.

But yes, your other points are correct. Tooling is far more important.

Re: Retiring Python as a Teaching Language

#76
I battle with the same problem with my students. I love teaching Python, and I think it is a fantastic teaching language. JavaScript, although harder to learn, is much more exciting for the students to play with, and libraries are always just a link away.

My main reason for not switching completely over to teaching JS, is the nightmare that is debugging simple syntax errors.

Re: Retiring Python as a Teaching Language

#79

I think this author has lost his focus. Maybe there's only 1 choice if you want something to sit "on top", but anything can interact with "an unprecedentedly ubiquitous cross-platform toolkit for layout, typography, and rendering". Including Python. For games, an introductory class using Python with Kivy or PyGame doesn't fit the bill because they may not always be around? If a student really wants to go deeper into…

It sounds like the goal is to get people programming. That means a combination of teaching them, and getting them excited. Being able to show the thing you created to your friends is a powerful motivator.

Re: Retiring Python as a Teaching Language

#80

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 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...

Couldn't agree more. Javascript is one of those things that I wish would just go the hell away and be replaced by something that isn't awful.

Post reply on HN