Tech Off Thread

23 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Next programming language?

Back to Forum: Tech Off
  • User profile image
    SoulSniper

    I believe - as a new programmer - that one of the hardest things is finding the best language to learn for the future...

    I'm young and naive but I know that I want to spend the rest of my life programming. I have learnt Visual Basic 6 and I've spent hours finding solutions to my problems. I love doing this and I love seeing my finished creations being used.

    However, Visual Basic isn't powerful enough for what I want anymore. I am now finding myself struggling with things because Visual Basic doesn't have the power I need it to have. It was a great start for me, it was easy to learn and has shown me how much fun programming can be.

    I am now looking to learn something new, mainly because for me learning a new programming language is just as fun as using it. My problem now is, which langugage to learn? My first choice was C++, it's powerful and it's one of the most used languages in the world, millions of people can't be wrong can they..

    But what about C#, I see lots of blogs and sites of people ranting about how wonderful C# is. But, for C# to be effective would knowledge of C++ be useful?

    I dont want to start a flame war, but could somebody suggest where I go from here?

    SoulSniper
    ------------------------------------------------

  • User profile image
    miies

    Well, if you love VB but VB6 didn't have enough power, you should know that VB.NET has greatly improved and is infinitely more powerful - you can make it do almost anything you would do in other languages. The next version of VB.NET will again have more improvements.

    C# is great too, however. The choice between the two is, imho, often more related to choice of syntax, features, etc., not (anymore) to the power both languages have.

    You'll just have to try both I guess, and see what you like most. Sorry if I'm not being helpful Smiley

  • User profile image
    Manip

    It is worth knowing that just because your a VB(6) programmer, doesn't mean VB.Net is right for you. I am/was a VB first C++ second programmer, and I moved to C# because I just hate the syntax of VB.Net. VB.Net is a very poorly designed language IMHO, so you need to make your chances after you've tried both.

  • User profile image
    Bogusrabin

    Python http://www.python.org

    (C/ASM for really fun time...)


  • User profile image
    SoulSniper

    Thanks all for such speedy replies.

    Bogusrabin:
    I have considered and looked at python. In my opinion the syntax sucks and the editor sucks even more. (please nobody shoot me for this, its only an opionion)

    I should clarify that I did enjoy using Visual Basic, designing usable interfaces is one of the most important things (for me) and Visual Basic does make this very easy. But I want more. I want to be able to use API's more productively, I want to be able to use sockets effectively etc. etc.

    I've now basically decided that (mainly because of power and mass adoption) C++ or C# will be my next language of choice (unless someone gives me a really good reason not to).

    Now I have the great decision between C++ and C#. Is designing UI any easier to do in C#?

    SoulSniper
    ------------------------------------------------

  • User profile image
    Charles

    SoulSniper said:
    Is designing UI any easier to do in C#

    If by designing you mean UI building on a graphical surface in Visual Studio .NET, no. But, since designing the graphical part of your application is only one part of the application building process and since most of your time will be spent writing and debugging code and because you come from VB development, I would recommend learning C#, though I see no good reason for you to abandon VB if you enjoy the syntax. C++ is a million miles away from what you are used to doing syntactically with VB so I think it would be the less productive route for you to take in the .NET managed world. Remember, VB.NET is as powerful as any of the other CLR languages. So, if you like the VB way of writing code and you are productive, then stick with it. If you want to learn a new syntax that is more terse and C-like, then learn C#. This is one of the great things that the CLR enables: syntax independence Smiley



    Charles 

  • User profile image
    FrankCarr

    Having used VB since 1.0, I'd say there isn't much you can't do in it, particularly since VB 5. The only things that are missing are some lower level things, such as multi-threaded background programs and hardware drivers, where C++ is more appropriate anyway.

    If you're looking for something that will allow you to get into the lower level programming then C++ is your ticket. Once on the .NET platform, it's all in the CLR so you can use whatever language you want and achieve the same results in managed code. Then it's a matter of which language you're most productive in. I'm kind of favoring C# myself but on non-technical rather than technical issues.

  • User profile image
    dave-o

    If you're considering moving to .NET then be aware that .NET is all about the Framework Class Library. Language is a choice you make for either personal or career reasons and not for reasons of power nor feature.

    I moved from a C/C++/Perl (Unix and Win32) background to C# almost 4 years ago and other than spending a few weeks getting comfortable with the C# language the rest of the time has been about discovering the FCL.

    So, IMO, if you're heading for .NET then you should choose the language that you will be most comfortable with so you can get down to learning how to exploit the FCL. That is a task which will keep you going for years. Smiley

  • User profile image
    Manip

    FrankCarr wrote:
    Having used VB since 1.0, I'd say there isn't much you can't do in it, particularly since VB 5. The only things that are missing are some lower level things, such as multi-threaded background programs and hardware drivers, where C++ is more appropriate anyway.


    I have to agree with you on that point. Only thing I find is sometimes it takes really ugly hacks to do things...

    Anyone ever done any GUI building using raw VBA? (Not using the Interface builder etc, pure code!) Fun Fun Fun Smiley

    This is a very quick list of stuff I would have liked in VBA 7 (not .Net).

    - X++, X-- etc statements.
    - Assignments with declarations, Dim C% = 10
    - Pointers
    - References
    - More low level support

  • User profile image
    SoulSniper

    Well everything on Windows does seem to be moving towards .NET and my interest in Linux is fading so writing multi-platform applications is not really that important for me.

    Like I said, I am trying to get away from VB, although I am going to give VB.NET a try, once I got enough money to buy Visual Studio.net (being 16 and earning a small wage makes buying things like that a huge problem Sad

    Thanks for all your feedback, it's been very helpful. Now I have a plan, at least.

    1) Scrimp and save and buy Visual Studio.net
    2) Take a look at Visual Basic.NET, see if it fits.
    3) If so, use VB.NET, if not learn C#.

    It's nice talking to other people who actually understand me. It's also nice talking to Microsoft employees, Channel 9 is a brilliant idea!

  • User profile image
    Manip

    If you want VS.Net, go look around Microsoft.com.. they do give away Eval copies free/cheaply. Or if you attend some of their educational events (which are sometimes free!) they give away copies of the education edition...

    Also, you could consider buying VB.Net standard edition which is fairly cheap anyway.

  • User profile image
    paulie69

    I did VB from version 1.0 up to 6. I had done Java and really liked it. When .Net was released I went right for C#. For me it was the syntax.

    Another thing I like about C#/java type languages is that when I code web apps I am in the same mindset when writing javacript for the client.

    Like the others have said, its the framework anyway. Personally, I always thought basic had clunky syntax so thats why I made the switch to C#.



  • User profile image
    Natty Gur

    Usually, from my experience, VB programmers that move to VB.NET continue their VB work without take advantage of the framework OO abilities. On the other hand VB programmers that move to C# adopt OO in their work. Again it only my experience with 300 programmers. I was the guy that pushes them to move to VB.NET. I was afraid the learning .Net and C# is to much for the organization programmers. I hold my opinion until I saw VB code in VB.NET costume.

  • User profile image
    Manip

    I find that odd, because a lot of VB programmers are ALREADY using OO before they move to .Net. I don't understand why they would all of a sudden stop. The only thing .Net supports on the OO scene is sub-classing, everything else you can already do in VB6.

  • User profile image
    Natty Gur

    Manip wrote:

    I find that odd, because a lot of VB programmers are ALREADY using OO before they move to .Net. I don't understand why they would all of a sudden stop. The only thing .Net supports on the OO scene is sub-classing, everything else you can already do in VB6.



    Well, first programmers may and actually develop without using OO (modules Smiley ). Furthermore COM classes and interface don't let you create full OO implementation including abstract classes, Method Overloading, interfaces and as you mention sub-classing. Interfaces can be used but they aren't equivalent to OO interfaces (easy to use). In the end of the day most VB projects that I saw are bunch of classes without OO sophistication (design patterns). I said most because I saw some projects that take more effort toward full OO approach. And again that what I saw.... that's all Smiley

  • User profile image
    SoulSniper

    It amazes me how fast everybody responds here, no other forum is like that!

    Anyway, I downloaded an eval of VS.NET and I've been experimenting all afternoon. VS.NET is cool, it's a huge leap from VS6, I can't wait till Whidbey arrives.

    Anyway, the first thing I tried was importing one of my favourite VB creations (a trigonometry program I made for my dad, to make his job as a conservatory surveyor easier) into VB.NET. The only problem was the convertor spat it back out at me, so I went in and took a look at the areas that it said were a problem (using the funky Todo manager at the bottom!). The syntax of the code and the actual code itself looks nothing like it did before the convertor did it's work! I also found (after eventually fixing the problems) that the form was mucked up because VB.NET doesn't have the Line tool?? [EDIT: Or at least I couldn't find it] Why was it taken out, I used that tool extensively Sad

    I then went on to look at VC++ and that hadn't changed very much, the code looks the same. So I sat and experimented and made a little client/server program for sending little messages between computers. Works quite well.

    I'm going to experiment with C# next, see what thats like.

  • User profile image
    SoulSniper

    I've just sat and tried C# for a few hours and I must say it's quite amazing. When I was trying VB.NET I thought the reason everything was so horrible was because of .NET but C# has shown otherwise. The code of a simple C# program is much smaller and cleaner than that of a C++ program. The syntax also feels very natural, which must be a good sign.

    I have one small problem now and wondered if anyone can help me:

    1) I built the application (ignoring the above error) and created a manifest file for it. Running the application shows the form and but the button is not XP-Style like it should be. If I click on the button it shows the messagebox and the Ok button on the messagebox IS XP-Style. Now I am confused.

    I like C#, I think I'm gonna stick with it.

    [EDIT: There were two problems, but I fixed one myself Smiley]

  • User profile image
    Manip

    Yeah. That is what I've been saying, they spent all there time and good architects on C# and then added some crappy new language which is slightly based on VB.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.