5 ms·
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
by gruseom 16y ago
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 to your rescue.
I'm not a Python guy so this will be weak, but I'll do my bit.
1. Community. Python is far more widespread in the web, open source, and scientific communities. It will be much easier to find interesting projects to play with and libraries to build on.
2. Simplicity. Contrary to what your teacher may have heard, Python is an excellent beginner language. VB.Net is actually way more complicated. It's Microsoft propaganda that positions VB.Net as the best language for beginners. (Edit: it seems nearly everyone here disagrees with this. Am I crazy? Let's hear from some Python people.)
3. Quality. Python is far more organized around clean programming constructs and practices than VB.Net, which is an arbitrary mess.
4. Openness. Python gives all the advantages of an open codebase and platform. I suppose I should list some, but I'm tired.
5. The REPL (http://en.wikipedia.org/wiki/Read-eval-print_loop http://en.wikipedia.org/wiki/Read-eval-print_loop) is hands-down the best technique for playing with programming concepts, trying out ideas and getting feedback, learning, and coming up with the building blocks for programs. Once you've gotten comfortable with the REPL you'll never want to live without it again. No one should learn programming without this invaluable resource, which Python has and VB.Net does not.
5. Cool. VB.Net is the ultimate in uncool. Python holds its own just fine. Frivolous? Yeah, but there are deep reasons for these things. Learn Python so the other programmers won't smell VB on you and peck you to death.
Good luck!
p.s. A simple additional principle you should know: never try to talk a programmer out of their favorite language. It can't be done. If your teacher is deeply attached to VB.Net, just go with what he wants and enjoy the positive aspects of the class (if he's a great teacher, that's the most important thing anyway and you're lucky to have him). If he doesn't care that much, though, maybe you can wear him down with your enthusiasm. :)
pp.s. Worst case scenario, write all the programs in Python and then rewrite them in VB.Net to hand in. You'll have more fun and learn more.
- axod 16y agoI'd say there's likely more VB jobs around. Secondly, learning a crap language first is often a really good idea. It shows you what not to do. It's like having a failed startup and then having a success - you learn from that failure. And thirdly, it just doesn't matter that much. You should be learning programming. Not <specific language> programming.
- apl 16y agoAnd thirdly, it just doesn't matter that much. You should be learning programming. Not <specific language> programming. That is precisely why it matters so much. There's a general misconception that somehow, programming languages are fundamentally equal; that there's nothing specific a programming language brings to the table. I think that's false. VB.NET is a relatively shitty language, and will make many essential programming concepts more opaque than something very clean and straightforward and transparent like Python. (Also, on a somewhat unrelated note: I'd say that on average, the VB.NET jobs are a lot less interesting than the Python ones.)
- axod 16y agoProgramming concepts matter, but languages don't. You can do closures in any language under the sun. They might not be called closures, and you might have to type more characters in some languages than others, but they're still closures. My personal stance is that all languages are pretty much equal. The only real difference that matters is syntax and that's largely a matter of taste. Don't get me wrong, some languages are sane, some are insane, some are ugly, some are beautiful, but they all do the same thing - function as an intermediary language between us and a CPU. There's so much snobbery around language choice, and so much fashion following which I think is a shame. Also identifying oneself as a "<language> programmer", rather than "a programmer" is sad. Practically though, you get down to libraries, probability of creating bugs/typos, speed of runtime, 'community' etc if you care about those.
- dansingerman 16y agoCommunity is surely the big win for Python. If you manage to get a 17 year old interested in programming, then where better to take the next step than start hacking on some open source projects written in Python? Where does a 17-year old go next with VB.net?