Live data from Hacker News

Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

news.ycombinator.com

71–80 of 80 posts

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#71
* VB.Net + Pros: Concise, MVC, easy to teach, useful macro maker. - Cons: Costly microsoft royalties, single platform, imperative, single-framework, all-around slow.

* Python + Pros: Concise, extensible, object oriented, package/class/method hierarchy, multi-platform, lots of frame-works, lots of scientific contexts, HUGE community (at this point really), scripted (quick to see changes) - Cons: Odd syntax (no more odd than VB really), scripted (teaching compilation step may be a requirement), requires C for high-performance fragments, v2 vs v3 package hangover.

I struggled to find real faults with Python, but I also struggled to find real positives with VB.Net.

From a pure $$$ play, you might be able to convince the administration to dump VB and go Python. Admitted, MS educational discounts are incredible.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#72

Earlier quoted context omitted.

I'd argue that Ruby is a bit harder to learn, specially for someone with no background in programming. While Python tends towards clarity and predictability, Ruby tends more toward conciseness and power. That means some things are not as straightforward to figure out.

Ruby's syntax is also far more opaque at first glance than Python's is. Ruby in my experience isn't any more concise than Python, and often falls into the same trap as Perl of having "more than one way to do it"

I never said otherwise. I meant both are 'easy' languages, and though I'd fathom beginners being more comfortable with Ruby (because it has a more forgiving syntax IMO) I still think they're not languages you should begin programming with. We might disagree on which language from the bad languages to start with is better, but that doesn't mean they're any good to learn to program anyways!

I started with C when I was 12 years old, and I'm sure that has made me a much better programmer than I could have been had I started with something easier like Php. In that aspect I think VB.net (which is NOT the same as VB6) is a good language for high-school kids to start with and learn the ropes.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#73

Earlier quoted context omitted.

Fair comment and I kind of agree in spirit. Java hasn't really been living the dream lately though. At my high school we were taught to use Word and Excel because those were considered essential skills. We could have learnt Open Office or something else but really, how often are we going to encounter that in the real world? In terms of practical use, .Net is not a bad choice. Personally I would like to see Python for…

We could have learnt Open Office or something else but really, how often are we going to encounter that in the real world? In terms of practical use, .Net is not a bad choice I'd say let's take practical-business-relevance out of it (even though I'd argue the relevance of Java, Python, and Ruby to be plenty comparable to .NET). We're talking about high school students, not trade-school students. I think the curriculu…

That's why it's nice that everything you need is free including web, Windows and even SQL. http://www.microsoft.com/express/

I think the best argument here is regard students running Macs at home which I have no reasonable counter to.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#74
post #72

Earlier quoted context omitted.

Ruby's syntax is also far more opaque at first glance than Python's is. Ruby in my experience isn't any more concise than Python, and often falls into the same trap as Perl of having "more than one way to do it"

I never said otherwise. I meant both are 'easy' languages, and though I'd fathom beginners being more comfortable with Ruby (because it has a more forgiving syntax IMO) I still think they're not languages you should begin programming with. We might disagree on which language from the bad languages to start with is better, but that doesn't mean they're any good to learn to program anyways! I started with C when I was…

and I started with Java at 11. What you learn on is irrelevant as long as the basic concepts are taught well. Neither Python nor Ruby are ideal for teaching pointers, but for explaining assignment, boolean logic, basic control flow, etc the only better candidate I can think of is Scheme, and VB is far down the list of replacements.

I'm also a bit confused about your statement about Ruby having a more forgiving syntax and taking that in a positive light. For an Intro to Programming course rigid syntax is ideal as it helps to avoid atrocities against whitespace and other crimes of legibility.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#75
post #72

Earlier quoted context omitted.

I never said otherwise. I meant both are 'easy' languages, and though I'd fathom beginners being more comfortable with Ruby (because it has a more forgiving syntax IMO) I still think they're not languages you should begin programming with. We might disagree on which language from the bad languages to start with is better, but that doesn't mean they're any good to learn to program anyways! I started with C when I was…

and I started with Java at 11. What you learn on is irrelevant as long as the basic concepts are taught well. Neither Python nor Ruby are ideal for teaching pointers, but for explaining assignment, boolean logic, basic control flow, etc the only better candidate I can think of is Scheme, and VB is far down the list of replacements. I'm also a bit confused about your statement about Ruby having a more forgiving syntax…

That's just not correct. What language you learn on does have an influence on what languages come easier to you as a second or third language. Also some languages make programming concepts and paradigms easier to learn than others. Any way, giving an introductory high-school class in Python, Ruby, or Lisp is IMO counter productive because of the whitespace requirement, the flexibility in syntax, and the amount of parenthesis on their respective languages.

I said two things:

1) I think Python is not a good language for high school because of it's syntax which is not directly translatable to the bulk of other programming languages (and I say the same thing about Lisp now that I'm on it). At this point I made a comment that I would find Ruby a little tiny bit better (but not suitable either) because of it's forgiving syntax, not because of the flexibility aspect of it's syntax (as omitting parenthesis and comas would probably lead to confusion). Python is not forgiving in it's whitespace requirements, while Ruby can make use of blocks and curly brackets in a way that translates better to other programming languages.

2) That I learned C at an early age and it had a big impact in the way I developed as a programmer, to which you responded that you learned Java a year earlier than I did C without making a point out of it. What is this a competition now to see who learned to program earlier?

What language you learned on makes no difference 5 years later, but it does have a big impact on the first, maybe second year. As such, it should be a language where the knowledge and workflow is easily transfered to other languages. VB.net (which I actually dislike anyways) is a pretty straightforward language from which you can move to a plethora of other languages easily. Neither Ruby or Python are suitable for this.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#76
Ok, here we go. I'm ready to eat downvotes for this:

What a bunch of bias and misconceptions in the comments. I can't believe all of these uneducated rants, like gruseom's are getting so many upvotes.

1. The teacher knows VB.NET.

The main reason why the teacher might want to stick with VB.NET is because he knows it. He probably doesn't know a lick about Python at all. He's going to have a hell of a time answering questions about a language he doesn't know and isn't prepared to teach.

2. VB.NET != VB.

VB was syntax-massacred garbage. VB.NET is a pretty solid object-oriented language with a completely different but similarly English-like syntax. It's like damning Windows 7 for crap we haven't seen since Windows 9x.

I personally prefer C#, but people have written pretty basic VB.NET->C# parsers. VB.NET code pretty much cleanly correlates to C# structure and compiles to identical MSIL bytecode.

3. VB.NET teaches clean OO programming. Again, it's not the rat's nest than VB was at all. If you think C# is good OOP, then VB.NET is good OOP.

4. VB.NET is, in my opinion, much more approachable and useful to the average person. It's more "englishy" and most people run Windows PCs. People can very easily write native applications for their environment. They can in Python, with GUI toolkits, but its not as integrated or easy.

42. Ironically, I use Python and now avoid VB.NET work like the plague, but it's a solid option if you want to go that route. What's good for you and I ain't good for everyone. And PLEASE make sure you know what you're talking about before you click add comment on that masterful rant you just typed out.

You want a Python class? Suggest it to your school or teacher for next year. That will give them time to evaluate, and more importantly, prepare for the quest.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#77

Earlier quoted context omitted.

I'd argue that Ruby is a bit harder to learn, specially for someone with no background in programming. While Python tends towards clarity and predictability, Ruby tends more toward conciseness and power. That means some things are not as straightforward to figure out.

Ruby's syntax is also far more opaque at first glance than Python's is. Ruby in my experience isn't any more concise than Python, and often falls into the same trap as Perl of having "more than one way to do it"

I think there are a couple of idioms which are a bit more concise in ruby ( unless , or some of the stuff with blocks), but it's a matter of personal taste, I think. I do agree on the "opaqueness", Python does tend more towards "runnable pseudocode" :)

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#78
post #76

Ok, here we go. I'm ready to eat downvotes for this: What a bunch of bias and misconceptions in the comments. I can't believe all of these uneducated rants, like gruseom's are getting so many upvotes. 1. The teacher knows VB.NET. The main reason why the teacher might want to stick with VB.NET is because he knows it. He probably doesn't know a lick about Python at all. He's going to have a hell of a time answering que…

I think you make a great point there about the teacher already knowing VB.NET and not knowing Python. It may be the difference between being able to teach the concepts well and show code to match and struggling with translating the concepts to "working" code.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#79

MIT teaches it as its intro now... http://news.ycombinator.com/item?id=602307 and Norvig uses it... http://www.norvig.com/python-lisp.html I mean what more endorsement is needed? How about something really eloquent... http://norvig.com/spell-correct.html

(tl;dr: VB.NET can be every bit as expressive as Python. See my translation of Norvig)

Here's a line-by-line translation of Norvig's code into VB.NET. Exactly the same number of lines, unless you count the block terminators like `End Function` and `End If`.

https://github.com/stevecooperorg/Norvig-Spelling-Corrector-...

The translation was fairly straightforward; I'm not a regular VB.NET programmer but I cut and paste Norvig's code into Visual Studio and did some pretty trivial rewrites -- 'def train(features)' -> 'Function train(features)' -- and that got me most of the way there.

I translated idiomatic python (list comprehensions) into idiomatic .net (linq expressions) but the translated code is almost identical in structure and number of code points.

Re: Ask HN: Help me convince a teacher we should learn Python (vs VB.net)

#80
post #33

It's a bad sign that most of these comments (about 20, as I'm typing this) are trying to talk this kid out of his enthusiasm for Python in defense of -- heaven help us -- VB.Net. Come on, people. If we can't do better than that on Hacker fricking News, perhaps the doomsayers are right after all and this neighborhood is done. Hold on, newsisan, there are thousands of Python hackers here. Let's see if any cavalry ride…

VB.NET is a solid language saddled with a terrible pedigree -- VBA macros, VB6, classic ASP. All nasty. But VB.NET now is an entirely different beast which happens to share the same name. It's like being the kid called 'Adolf'. It's not really VB.NET's fault.

Having used both languages, I've not seem any serious language features that one has that the other doesn't. What is missing in VB.NET, or made very difficult, that Python makes easy? Or vice versa?

Post reply on HN