11 ms·
Ask HN: Help me convince a teacher we should learn Python (vs VB.net)
For a high school class.
He's a great teacher (from what I hear, and my conversations with him), though the current plan is to use VB.net, while me and a few others would much prefer Python. Key requirements/comparison points for him are that it should be easy to learn (17 year olds new to programming), and for me, I'd like to learn it as with LPTHW we can go along ahead of the class.
- jacobolus 16y agoThe Python in Education “special interest group” has a mailing list and a overview webpage http://www.python.org/community/sigs/current/edu-sig/ http://www.python.org/community/sigs/current/edu-sig/ which among other things includes links to books and resources targeting beginners.
- tkahn6 16y agoIt is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. - Edsger Dijkstra
- cubicle67 16y ago1. VB.net ain't your daddy's basic 2. I respect Dijkstra, but I think he was wrong on this
- ern 16y agoIt says a lot about our knowledge about teaching and learning programming that pithy quotes from 35 years ago are still regarded by many as being relevant. I mean, has anyone actually studied the academic outcomes of programmers who started on BASIC or VB, versus those who started on other languages? Has anyone determined if programmers who start out in VB make more errors than programmers who started out in say, assembler, or C, or Python, to any statistically significant degree?
- barrydahlberg 16y agoUndownvoted for being somewhat relevant. We are really talking about different languages though.
- bfung 16y agoI taught myself programming in QBASIC in third grade (gasp, 20 years ago) and my favorite languages now are ocaml and haskell. Doing ruby, python, java, and c#/vb.net at work, all production code. It's the concepts, not the language. ;)
- rsaarelm 16y agoI've always found this quote (apparently originally from 1975) somewhat strange, having grown up in 1980s, when BASIC was pretty close to the only game in town for a decade for home users. I still ended up seeing a lot more skilled programmers get started by early tinkering rather than through dutifully attending a college course in the formal derivation and verification of software constructs after having carefully kept themselves unsullied of writing programs without being absolutely sure what they are doing. There may be a point in the underlying sentiment, but the thing as a whole just rings false in the post-microcomputer age. The big difference might be that the people Dijkstra was thinking of probably had had BASIC taught to them as university students, instead of tinkering with the BASIC repl of the 8-bit microcomputer they got their hands on as 9-year olds.
- ryanto 16y agoYou and the others should just get together and learn Python. No need to have a dependency on your HS class.
- dekz 16y agoExactly. It's not like you can only learn one language in your life, learning them both will give you a different outlook.
- jdee 16y agoTo the OP, if you want a career in coding, get used to learning. This year I've got node.js, rails 3, html 5, mongo db down pat, all in my own time. Its a fair bet that 90% of HN readers have done the same amount and way more. Languages and frameworks are not important. Communication, problem solving and productivity skills are important. Plus, learning more stuff = more fun.
- dotBen 16y agoFrom the little I know about VB.net, it's much more approachable for people not cut out to program (ie non-engineer types) then any other mainstream language on the back-end. Don't forget - the high school education system is set up so you learn what you have to in order to tick a box and pass your exams, the fact that something might be relevant/useful to your career is an accident. From that perspective, the teacher probably just wants to teach lowest-common denominator easy programming to tick the box. I agree with Ryanto - if you want to learn Python (or any other language) it's better to do it in your own time.
- chrismsnz 16y agoHow about this? http://news.ycombinator.com/item?id=1885006 http://news.ycombinator.com/item?id=1885006 :)
- whatusername 16y agoIt might also depend on how well he knows VB.net... learning that from someone who knows it well would be better than learning python from someone who's just picked it up to teach a class...
- whatusername 16y agoIt might also depend on how well he knows VB.net... learning that from someone who knows it well would be better than learning python from someone who's just picked it up to teach a class...
- temugen 16y agoPython is an awesome language, but in a HS class you probably won't get past simple scripting paradigms. If you guys were already CS students with solid programming experience as well as the theory behind it, or if you were just science students wanting to hack around, then python would be a great choice. However, I think it would be more beneficial if you guys were to learn (sorry) Java and OO knowledge so that you could take the AP test and perhaps save time and money if you decide to move on to college. Either way, VB.NET would be at the bottom of my list. C# would be great, but the professor might find the C-style coding too overwhelming for the students. And F#, being functional, is probably out of the question for a number of reasons.
- barrydahlberg 16y agoVB.Net is far closer to C# or Java than VB6. It's like a real grown up OO language now.
- temugen 16y agoDefinitely. .NET is .NET and especially being imperative, VB is mostly just syntactic differences over C#. But neither of those languages are tested on the AP exam ;)
- barrydahlberg 16y agoWhat is an AP exam? I'm from New Zealand so I'm guessing it's something we don't have.
- endtime 16y agohttp://en.wikipedia.org/wiki/Advanced_Placement http://en.wikipedia.org/wiki/Advanced_Placement
- barrydahlberg 16y agoAh, thanks for the link. We don't have anything by that name but I did something equivalent that was specific to my university anyway.
- barrydahlberg 16y agoTo be honest I think VB.Net is a decent choice for a high school level course. It's an approachable modern language backed by a huge framework with easy access to web, Windows and console programming. The IDE is free and relatively user friendly for someone familiar with Windows, which is much more likely than anything else. Don't underestimate VB.Net. It has a terrible history but most of that ended with VB6. Another bonus is that once you know VB.Net the jump to C# is trivial and now you know 2 in demand languages. You can also compile the same code into a program along side F#, IronRuby and yes, IronPython. You aren't there to learn syntax, you are there to learn to program. You should absolutely learn Python on your own as well, knowing one will make the other much easier to pick up anyway. Once you've done that go and learn Scheme, or Ruby, or Scala, ir preferably all of the above.
- barrydahlberg 16y agoAlthough I should point, C# is my language of choice on .Net.
- famousactress 16y agoI don't mean this as flamebait at all.. Really. I very much respect the .NET platform... but honestly, something really bothers me about the idea of teaching a proprietary language & platform in public schools when there are sooo many amazing open source options available..
- barrydahlberg 16y agoFair 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 getting started and practical use and maybe Scheme for going deeper.
- famousactress 16y ago
- jpwagner 16y agoMIT teaches it as its intro now... http://news.ycombinator.com/item?id=602307 http://news.ycombinator.com/item?id=602307 and Norvig uses it... http://www.norvig.com/python-lisp.html 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 http://norvig.com/spell-correct.html
- stevecooperorg 16y ago(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-in-VB.NET/blob/master/NorvigSpellChecker.vb 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.
- leif 16y agoDon't worry about it. You may hate vb.net, you hopefully won't care all that much. Either way, if your teacher wants to teach it, there's a reason (probably he's familiar with it and not with python, or he's on the MS payroll). It doesn't matter to you. You sound like you want to learn about programming. "Programming" is a different discipline than "programming in vb.net" or "programming in python" or "programming in lisp". Learning about programming is a multi-step process, in which you first learn to define a problem in a sensible way and create a set of instructions for solving it, then write it in a language a computer understands, and then learn how to figure out any one of a million other ways to write it for a computer to understand. The first and last steps are the most important and can take years, the middle one usually takes a semester or two at the most. Let your teacher walk you and the rest of the class through the middle one with vb.net, then go home with your smarty-pants friends and start slogging away at the other two steps. Every time you get a programming assignment, do it in vb.net. Then do it in python. Then figure out what they have in common and where they are different. Explain it to your friends, and listen to their explanations. Then do it again in all the other languages you can find.
- andreyf 16y agoWell, both have enough documentation that you can learn them without the need for a formal curriculum, and both are certainly worth learning - the .net VM is among the best of its kinds. Since a lot of VB.net documentation is in the form of expensive books, while Python documentation can be had for free, convince your teacher to use VB.net, and use your school as a resource to pay for your books.
- kevinburke 16y agoYou could always write a vb.net interpreter in python :-)
- sp4rki 16y agoI don't think Python is a good idea for a high-school class (where a big bunch of the people don't really care about programming anyways). Hell anyone that already knows a bit of programming will be completely thrown off his chair by the whitespace constraints, while new ones will probably have an awful time trying to debug anything. Python is a great language and it certainly is 'easy' in contrast to a bunch of other languages, BUT a high-school class is to learn to program in general, and Python doesn't strike me as a good language to learn to do so from scratch. Ruby is a bit better, but I'd argue the same thing. VB.net really is a better suited language to learn to program, and although I don't really like it myself, I agree with everyone saying it's a great language to start with. You can always learn Python on your own time, and I'd even argue that with what you'll cover in a high-school class, it really doesn't even matter since you'll be ahead of the whole class (not the people, the curricula) in a month if you learn Python on your own.
- brunomlopes 16y agoI'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.
- nickbarnwell 16y agoRuby'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"
- sp4rki 16y agoI 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.
- enry_straker 16y agoWhy? 1) Your teacher cannot learn a new language well enough to teach a bunch of high school students in time. Have some consideration for him. 2) Your goal when starting to learn programming is not to learn the syntax of any one language, it's to learn to solve problems using programming. - Learn about P-code ( or psuedo code ) - Learn about Simple Data Structures. - Learn about conditional( if-then-else ) constructs - Learn about iterative( for-while ) constructs, - Learn how to declare variables and initialize them; - Learn how to edit-debug-run code - Learn how to version-control code (any file in general) - Learn how to write functions/methods/sub-routines. - Learn how to comment your code for future debugging These are fundamentally the same in almost all modern programming languages. The syntax changes from one to another is mostly cosmetic. The key is good coding and problem solving habits and attitudes. 3) It's easy to spend time on the internet and be anamored about a particular language, particular OS, particular editor etc - but in the long run, they are commodities; there's no great big differences between them 4) If you really want to work in python, do so. Finish your problems in VB.NET and re-write it in python. Just don't impose your preferences on your teacher and entire class. It would detract from the goal of the class.
- DanielStraight 16y agoI completely agree on all counts. On top of that, VB.NET makes it almost trivial to transition to C#, which is a hugely important language right now. VB.NET can also give you a hint of mix-ins (through interfaces and extension methods) and functional programming. Not saying you'll get there in the class, but it's out there. The .NET platform gives you a taste of almost every programming paradigm out there. It's very versatile. If you want to go through LPTHW, nothing is stopping you. In fact, you don't even have to wait for the class to begin. Just start.
- jeffreymcmanus 16y agoThe answer is "none of the above" for a high school CS class. The reason is that the computer science advanced placement exam is in Java. Until that changes (and until college-level CS stops using Java), you should be learning Java.
- stackthat 16y agoYou won't like the answer but don't convince, VB.NET is much easier to learn your younger crowd, .NET has more job opportunities and switching to F#, C# from VB.NET is much easier.
- crististm 16y agoI came here to see a list of why Python is a good choice and instead the answers surprised me in a good way. Indeed it's not about the language - it's about programming. And although Python is a great language you should keep your options open and learn other tools as well. After you LPTHW - on your own - you'll have a perspective on both languages. You are not a "hammer carpenter".
- Locke1689 16y agoOne thing that you guys are forgetting is that Python is completely portable while VB.net requires Mono at the least on non-Windows systems. In a learning environment I think this is more than trivial.
- barrydahlberg 16y agoIt depends if the learning environment is already all Windows or not. I don't hold much hope for a high school being anything but. The other thing people are forgetting is that starting with VB.Net gives a nice predictable IDE which any student can replicate at home with a simple installer. Anything like python comes with so many options and opinions that it can actually be a distraction from learning to program.
- Locke1689 16y agoAh, but there's no guarantee that the students have Windows machines at home. I agree that replicating a development environment in one's own system is important -- which is why it's important to take into account households (like mine) where all the computers run OS X. Windows is not as dominant as it once was.
- codefisher 16y agoThere are quite a few things you need to learn to be able to program well. One of the easy ones is syntax, which is what you have to learn to go from one language to another, in addition to the names of variables/functions. What is much harder to learn, and is largely language independent is: 1) Problem solving - the ability to break problems down into simple task that then can be trivially solved. 2) Data structures - programs are unless unless they have data to work with. Knowing how to best represent it is vital, do you use an array, linked list, tree etc. 3) Algorithms - known ways of operating on data to produce some out come. Everything from using a loop to add numbers, to sorting lists, or adding a node to a red-black tree. 4) Design Patterns - know ways to structure code, in a tried and tested fashion. 5) Architecture and Interface design - how to structure your project as a whole (what goes where) and how to set how one portion interacts with all the others. Along with many other things. Point being the first language you learn matters little, if you learn to program that cross any language barrier. I have not touched the first language I learned for almost a year, but have learned 2 others in that time. Having said all that, I am most at home in Python because there I know many of the language specific features.
- gruseom 16y agoIt'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.
- gte910h 16y agoVB isn't easy like basic was easy. It's not hard mind you, it's just not VB. VB.net is trying to be a basicish language that's good enough for enterprise development. Python is used at many top colleges as the into course (Georgia Tech and MIT are ones I know off the top of my head) and additionally, Zed Shaw has written an excellent first text on the language downloadable for free (http://learnpythonthehardway.org/index http://learnpythonthehardway.org/index) Additionally: Nothing is stopping you from ALSO learning python at the same time.
- c1sc0 16y ago1. Python is Free (Free as in Freedom vs. free as in beer debate) 2. Python teaches you the importance of whitespace 3. Python forces clarity in your coding 4. Python is blackboard-compatible, it's a great pseudo-language. 5. Python has a great REPL 6. Python is great for both scripting and OOP 7. Real Hackers use it ;-) Good luck! Just curious: do you guys have whiteboards or blackboards in class these days? Somehow teaching programming on a blackboard seems more appropriate & terminal-like to me.
- SandB0x 16y agoI would be making the same fuss in your position, however your teacher might not feel confident teaching a language he doesn't know, despite all the good talking points raised here. If he sticks with VB, I would ask him to spend some time later in the course making students aware that there are other languages, styles and platforms. Offer to help - write him a couple of pages on it, or pick a simple program from his course and translate it into Python/Ruby/C/Scheme/etc for him. Good luck. Edit: To the person who disagrees with my advice, could you please let me know which part and why.
- roel_v 16y agoI went to a school where OO was taught with Smalltalk (late 1990's). The pressure had been on the school for a few years to switch to Java, because that was the language of the future, and Smalltalk wasn't used in the industry anyway, and why were they sticking with such an old-fashioned language, and were the teachers too stupid to learn anything new. So in the end they caved, and I was in the first class that was taught the Java curriculum. The teachers had spend the larger part of their summer at Java courses and writing a syllabus. The result was a bunch of people who barely knew the language they were teaching, causing most of the time in class to be lost to mundane details like working with the JDK and API issues. (I remember asking how to execute an external program and nobody being able to tell me). YMMV etc., but my advice: please let the teacher decide for himself what he feels most comfortable teaching and focus on programming fundamentals rather than complain about not being able to use a tool that is hip and cool in some circles. (read the 'the scene will kill you' article that was on here a few days ago, it holds for not only 'the startup scene' but also for pretty much all niche programming scenes, forum scenes like slashdot, reddit, HN; actually it holds for pretty much every scene in the world).
- kogir 16y agoWhat's the course's angle? If it's an intro course like it sounds, you're probably going to have a hard time. Like it or not, an intro course is for teaching basics that are shared across all languages, with an added goal of inspiring students to want to learn more. My high school programming course started with "Karel the Robot." (http://karel.sourceforge.net/ http://karel.sourceforge.net/). It's not even a "real" programming language, but it worked quite well to teach the basics of state, control flow, functions, etc. My "Aha!" moment was shortly after that when I pointed and clicked my way to a not-horrible PacMan game in VB.NET. Then I was sold. I'd made something fun that I could put on a floppy and show off to my friends; All without knowing the first thing about pixels, graphics contexts, layouts, or (heaven forbid) html and css. I just had a timer, some images, and a big switch statement for keyboard input. If your teacher is trying to ignite his students' interest in the same way mine was, you're going to need to convince him that accomplishing the same thing is as easily done in python. From what I've seen it's not -- UI libraries are hard. (His choice of VB.NET almost certainly implies there will be some simple WinForms drag and drop UI work happening) I guess what I'm trying to say is that while python is a great language, it may not be the best tool for this job. I can't tell without seeing his lesson plan, but based on my experience learning to program, python wouldn't have left me feeling as empowered (at the start). Intro to programming isn't about languages, it's about showing people that they can make the computer do their bidding, so that they can work less and/or have more fun.
- krschmidt 16y agohttp://www.stanford.edu/~pgbovine/python-teaching.htm http://www.stanford.edu/~pgbovine/python-teaching.htm won me over, and I now use Python exclusively in my introductory programming class. I find we cover about 3 months more material than when we did C++. But barrydahlberg has a valid point - VB.Net is a decent language for a first course. Originally we had an alternative first programming course that used VB.Net. A lot of kids liked it better just because it was so easy to make a graphical program. We used to get a lot of kids interested in programming just by having them play with the colors of their VB.Net programs.
- SudarshanP 16y agoAs most of them here are suggesting... learning "programming" should be the real motive. Any language your teacher is excited about should be just fine. In fact I would suggest that even things like Scratch(http://scratch.mit.edu http://scratch.mit.edu) can be an awesome step towards learning programming without being bogged down by syntax. You can even write Android apps using http://appinventor.googlelabs.com/about/ http://appinventor.googlelabs.com/about/ Ultimately you will have to learn syntax though but it won't be a big deal. If you want to know what the current "fashion" is, you can check out http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... In that list u can see python cross vb... but when it comes to the big picture and long term, all that matters is if you can pick up a new language in a few days.
- kaitnieks 16y agoI think teacher should stick with VB.NET. Why? Because it enables students who like experimenting to get results quickly and this is extremely important if you want to get children enthusiastic about anything. Yes, python is free and open, and I bet many of the students who will become interested in programming will switch away from VB.NET anyway, but right now at this moment the ability to put a button on form with a mouse, doubleclick the button and write in a simple line to display messagebox of swearwords on click, is the most important factor of them all. And it looks like real, professional application window, I mean how cool is that?
- julius_geezer 16y agoDisclaimer: I don't know VB.NET, I barely know VBScript, I do think that Python would make an excellent intro language, given that there is relatively little syntactic cruft hiding the bones. (To be sure, it was not my first language, so this is speculation.) PythonWin is an excellent environment. wxPython makes it straightforward to put together GUIs if that's what you want to do. You can write to the Google App Engine and deploy to the web for $0.00. The point that others raise, that it would be bad if the teacher is also learning an unfamiliar language, is a valid one. I don't think you want your instructor to be stuck fighting the language. Have you considered as an alternative doing LPTHW on the side with your friends?
- johnconroy 16y agoMmmm... overall I'd say don't try to talk him/her 'round. Don't get me wrong... I love Python and am ambivalent towards vb.NET. In defense of VB, it's good for teaching in the sense that students feel like they're accomplishing something... that they're actually building something. They can rattle out a gui and integrate it with the Windows API (for something like a Paint app) easily. Which is cool for them. Having said that, I think Python is better for students (vb is so unlike other languages). However you're likely to piss your teacher off if you come off all 'hurr u r so stupit, you should teach Python' to him. Easy to piss ppl off that way.
- tomotomo 16y agoTell your teacher if he teaches Python, students will remember him, whereas a VB.net teacher is forgettable.
- Riesling 16y agoShow him the google trends for "vb.net". http://www.google.com/trends?q=vb.net http://www.google.com/trends?q=vb.net
- nebusoft 16y agoIt's school. Use what they tell you to use. When you get into the real world at a company, you will get told to do tons of stupid crap you wont want to do. And you can learn to do it, or find a different job. If you want to be able to do whatever you want, become good enough at something to be your own boss (or be good enough to have a great job at a great company). And for you to do that, learning how to program from your teacher is not going to help. Learn python on your own and learn VB.net from your teacher. If you don't have the motivation to do that, you'll be stuck in bad jobs doing shit you don't want to do anyway, and clearly school has yet to teach you that vital lesson. Oh to be a teenager again.
- Zev 16y agoVB (5.5, not .NET) was my first language. I took it in high school as well, when I was 16 (4 years ago) Contrary to Dijkstra's claims, it won't kill your brain or make it impossible to learn any other language. And honestly? VB is great for beginners. Button.OnClick? That's dead simple to use. Even non-programmers will pick it up. It let's your teacher focus on the fundamentals; "what is an if statement?" or on a simpler level, what is a variable and how do you use them?" and so on. Keep in mind: this is a high school class. You and your friends may care about it, but the other 20 people in the class probably don't. And you can't realistically expect your teacher to change the syllabus mid-year for you.
- carucez 16y ago* 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.
- runjake 16y agoOk, 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.
- brunomlopes 16y agoI 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.