HelpHow powerful is VB?

Posts 16–30 of 31 · Page 2 of 3
Quote Originally Posted by MarkHC View Post

*(BYTE*)0x12345 = 0xC3;
Because you are injecting.
I do the same thing in vb.net by compiling strings of asm into bytecode. and injecting those bytes.
C++ does have inline asm which i've seen in C# but not vb but, writing the asm by hand isn't much of a pain. Most of the stuff I've done is simple (copy registers), but it's not hard to write the asm by hand. If you're coding hacks, you're probably looking at the asm anyway..

*(BYTE*)0x12345 = 0xC3

MemMgr.WriteByte(12345, &HC3) '' wrapper function, just calls WriteProcessMemory

*personally* I don't like the 2 **'s, but I guess if you deal with pointers a lot you might. My code will be longer because it doesn't use *(**(*)))())), but easier to maintain imo.

int* ptr1 = *(0x123456)
int* ptr2 = *ptr1
int* ptr3 = * ptr2
^^ my code looks like this

*(DWORD*(**(p1))) or something similar.
^^your code )

Ya it's a nifty syntax and all, but if you go past 1-2 levels it gets hard to read.
The opposite could be said of vb...it could look like..
MemMgr.ReadIntPtr(MemMgr.ReadIntPtr(MemMgr.ReadInt Ptr(&H12345))) which is more ugly. I like the first style. it's longer, but is clearer :/ maybe I'll grow into C++ some day.


"Note that unsafe code is impossible in VB.NET" true, but you can "make the bytecode" yourself and inject it -- maybe vb isn't best for making bytecode -- but my codecave is about .001% of my total project, so having to compile 2 codecave's myself isn't much of a problem. But yes, vb is inferior in this regard.

edit: I guess I should mention, my goal is to inject/writeprocessmemory as little as possible, because some games have anti-cheat checks which look for modified code.
It's interesting how people instantly associate "power" with a language's ability to hack a game. Seriously, the real world isn't made up of 99% game hackers.

Quote Originally Posted by Meta View Post
As a Computer Science student, I have some credibility in this field and programming. Additionally, I am recognized on the MSDN for several of my VB contributions to the community.

Visual Basic is a good language. While it is "weaker" than other languages (libraries are not as common to find in VB versus C#, for example), Visual Basic can and is used for major scale applications in the real world. A friend of mine who happens to work at the University I study at has been in the field of Computer Science for 20+ years now. He actually prefers sticking with VB 2003 rather than C, Java, or .NET languages for most of his work as a systems programmer for specific University servers.

As far as the difficulty of learning Visual Basic, that is a subjective topic. Programming in general is something that you either pick up or have difficulty learning since it is entirely conceptual. Visual Basic is considerably easier in my opinion because of its much more understandable syntax. An If statement in VB looks like so:
If condition = test Then
' Statements
End If

Where as in C:
if(condition == test){
// Statements followed by semicolon
}

The ease of readability in Visual Basic's syntax makes it an appealing language for programmers. However, this does not necessarily prove that Visual Basic "is an easier language".

As far as hacking goes, it is very easy to create real hacking tools such as keyloggers or trojans with any language. Visual Basic is no exception. For game hacking however, which my knowledge is a bit limited in, Visual Basic is not a good language for writing code which needs to be injected. In most cases, game hacks are just exploiting where data is located in memory by use of pointer locations. Pointers are simply defined as a data type which points to a location in memory. In simpler terms, each memory location has an address -- pointers hold these address values. So for general game hacking, stick with a higher level languages like C, C++, C#, Java, or any other language which can easily support pointers. (For example, if you are editing the value for the amount of damage you inflict, you would need the pointer address to the damage value in memory and manipulate it to whatever integer value of the damage you wish to inflict.)

In conclusion, Visual Basic is a great language in the real world. It works nicely but does have some limitations depending on what you are using it for. In hacking games, it's highly impractical to use Visual Basic as the main programming language for manipulating exploits.

---------- Post added at 10:36 PM ---------- Previous post was at 10:32 PM ----------



I'm guessing you are not a Computer Science major. As sourced on Wikipedia, "[C++] is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features."
Please, stop trying to act superior to people because you're a CSc major, I've met plenty of idiots who have a piece of paper that says they have a degree in Computer Science (see here for some real-world examples of this).

C++ is typically referred to as "low-level" in various coding communities due to the shift away from truly "low-level" programming (assembler, punch cards..etc). As your Wikipedia search has revealed (note: Took a CSc major to figure out how to use Wikipedia), C++ is technically an intermediate language and certainly contains many high-level language constructs, but it's commonly termed "low-level" due to the absence of the now-common high-level language features such as Garbage Collection and automatic memory management, as well as for it's native support for writing assembler and being able to directly access memory. If we're getting technical (and throwing our weight around with our fancy CSc majors), yes C++ is an intermediate language. However, for the purpose of this discussion (and for the sake of common sense), I think everyone understood what rileyjstrickland meant when he said that C++ was low-level. No, it is not assembler, or a punch card program, but we get the idea.

"Power" is subjective in programming. One of the most appealing aspects of VB.NET (and the .NET framework in general) is the speed at which you can create complex, safe and functional programs. In the real world time is money and Rapid Application Development (RAD) and abstraction can often be a far more important consideration than the ability of a language to handle lower level aspects of programming. Unless you're working in embedded systems or you really need to leverage the extra performance that languages like C and C++ can give you, companies are going to favour the language that gets the job done correctly, and quickly, without substantial performance issues. There's plenty more I could write about this, but I'd just be rehashing content that has been written about in detail thousands of times before.

This brings me to my answer to the OP's question: How powerful is VB? .. How long is a piece of string? As I mentioned before, the concept of "power" is subjective and really depends upon the context. I might consider the ability of C/C++ to directly access and manipulate memory particularly powerful if I was writing an injectable hack, or working in an environment (such as an embedded system) where memory availability was truly an issue. Then again, I might consider a .NET feature like LINQ to be awesomely powerful when I'm working on an application that will run in a modern operating environment where memory isn't a going concern and I just want an array of built-in ways to work with collections of data.

VB.NET is a perfectly fine language. It will fall down in some situations (as will most languages) and it will be amazing in other situations. At the end of the day, if you're any sort of programmer you won't find yourself locked into a single language anyway. If you need to write some fast, lower-level code, switch to something like C++. If you want to write a web-application, switch to PHP (for example). If you want a feature-rich GUI, change to WPF. There are so many language options today it'd be foolish to blindly cling to a single language for every situation anyway.
I chuckled when Meta mentioned that it was easier to locate libraries for C# than .NET. Even if that were 100% true, all of the libraries I've used that were coded and compiled in C# worked fine in my .NET application.

---------- Post added at 10:39 PM ---------- Previous post was at 10:31 PM ----------

Quote Originally Posted by Jason View Post
It's interesting how people instantly associate "power" with a language's ability to hack a game. Seriously, the real world isn't made up of 99% game hackers.



Please, stop trying to act superior to people because you're a CSc major, I've met plenty of idiots who have a piece of paper that says they have a degree in Computer Science (see here for some real-world examples of this).

C++ is typically referred to as "low-level" in various coding communities due to the shift away from truly "low-level" programming (assembler, punch cards..etc). As your Wikipedia search has revealed (note: Took a CSc major to figure out how to use Wikipedia), C++ is technically an intermediate language and certainly contains many high-level language constructs, but it's commonly termed "low-level" due to the absence of the now-common high-level language features such as Garbage Collection and automatic memory management, as well as for it's native support for writing assembler and being able to directly access memory. If we're getting technical (and throwing our weight around with our fancy CSc majors), yes C++ is an intermediate language. However, for the purpose of this discussion (and for the sake of common sense), I think everyone understood what rileyjstrickland meant when he said that C++ was low-level. No, it is not assembler, or a punch card program, but we get the idea.

"Power" is subjective in programming. One of the most appealing aspects of VB.NET (and the .NET framework in general) is the speed at which you can create complex, safe and functional programs. In the real world time is money and Rapid Application Development (RAD) and abstraction can often be a far more important consideration than the ability of a language to handle lower level aspects of programming. Unless you're working in embedded systems or you really need to leverage the extra performance that languages like C and C++ can give you, companies are going to favour the language that gets the job done correctly, and quickly, without substantial performance issues. There's plenty more I could write about this, but I'd just be rehashing content that has been written about in detail thousands of times before.

This brings me to my answer to the OP's question: How powerful is VB? .. How long is a piece of string? As I mentioned before, the concept of "power" is subjective and really depends upon the context. I might consider the ability of C/C++ to directly access and manipulate memory particularly powerful if I was writing an injectable hack, or working in an environment (such as an embedded system) where memory availability was truly an issue. Then again, I might consider a .NET feature like LINQ to be awesomely powerful when I'm working on an application that will run in a modern operating environment where memory isn't a going concern and I just want an array of built-in ways to work with collections of data.

VB.NET is a perfectly fine language. It will fall down in some situations (as will most languages) and it will be amazing in other situations. At the end of the day, if you're any sort of programmer you won't find yourself locked into a single language anyway. If you need to write some fast, lower-level code, switch to something like C++. If you want to write a web-application, switch to PHP (for example). If you want a feature-rich GUI, change to WPF. There are so many language options today it'd be foolish to blindly cling to a single language for every situation anyway.
Got curious and read that article. Decided to do the FizzBuzz thing, took me less than five minutes to do.
Code:
      For i As Int16 = 1 To 100 Step 1
            If Fix(i / 3) = i / 3 And Fix(i / 5) = i / 5 Then
                Console.WriteLine("FizzBuzz")
            ElseIf Fix(i / 3) = i / 3 Then
                Console.WriteLine("Fizz")
            ElseIf Fix(i / 5) = i / 5 Then
                Console.WriteLine("Buzz")
            Else
                Console.WriteLine(i)
            End If
        Next
        Console.WriteLine("All Done!")
        Console.ReadKey()
If [The majority of] CSc Majors can't do that then...
I would do it like...
Code:
    Public Sub FizzBuzz()
        Const num1 As Integer = 3
        Const num2 As Integer = 5
        Const num3 As Integer = num1 * num2 '(lcm) -no error checking
        For xx As Integer = 1 To 100 Step 1
            If xx Mod num3 = 0 Then 
                Console.WriteLine("FizzBuzz")
            ElseIf xx Mod num1 = 0 Then
                Console.WriteLine("Fizz")
            ElseIf xx Mod num2 = 0 Then
                Console.WriteLine("Buzz")
            Else
                Console.WriteLine(xx)
            End If
        Next
    End Sub
@riley - I've never seen remainder done that way before { Fix(i/3) = (i/3) } - interesting
- any reason you used this way instead of mod ?

I just ran a speed test, apparently mod is quicker. Maybe?

rough* speed text
Code:
Module Module1

        Sub Main()
        Dim _tLapse As TimeSpan
        Dim _startTime As DateTime = Date.Now
        Console.ReadKey()
        _startTime = Date.Now
        For jj As Integer = 1 To 10000
            FBuzz2()
        Next
        _tLapse = Date.Now.Subtract(_startTime)
        Console.WriteLine("FBuzz2 Time: " & _tLapse.TotalSeconds & "s")
        _startTime = Date.Now
        For jj As Integer = 1 To 10000
            FBuzz1()
        Next
        _tLapse = Date.Now.Subtract(_startTime)
        Console.WriteLine("FBuzz1 Time: " & _tLapse.TotalSeconds & "s")
        Console.WriteLine("All Done")
        Console.ReadKey()
    End Sub

    Public Sub FBuzz1()
        For i As Int16 = 1 To 255 Step 1
            If Fix(i / 15) = i / 15 Then
                'Console.WriteLine("FizzBuzz")
            ElseIf Fix(i / 3) = i / 3 Then
                'Console.WriteLine("Fizz")
            ElseIf Fix(i / 5) = i / 5 Then
                'Console.WriteLine("Buzz")
            Else
                'Console.WriteLine(i)
            End If
        Next
    End Sub

    Public Sub FBuzz2()
        Const num1 = 3
        Const num2 As Integer = 5
        Const num3 As Integer = num1 * num2
        For xx As Int16 = 1 To 255 Step 1
            If xx Mod num3 = 0 Then
                'Console.WriteLine("FizzBuzz")
            ElseIf xx Mod num1 = 0 Then
                'Console.WriteLine("Fizz")
            ElseIf xx Mod num2 = 0 Then
                'Console.WriteLine("Buzz")
            Else
                'Console.WriteLine(xx)
            End If
        Next
    End Sub
''commented out .WriteLine() because it's *extremely* slow compared to just the 'math' aspect of this code
End Module
Output
Code:
FBuzz2: .17s
FBuzz1: .42s
All Done
apparently it's about 3x quicker (on my Pentium4 :/ ). Optimization really* doesn't matter for the fizzbuzz, just making small talk I guess. Never seen remainder checked as you did it - never thought of it that way.

Also, I didn't think of it myself at first..but someone on that page hardcoded in a 15 - which is the lowest common multiple of 3 and 5. If you use that, in the first IF comparison you can cut down the calls to division by half. (because the first comparison is always made, it's semi-important)

Fix(i/15) = (i/15) instead of Fix()=** AND Fix()=**


Question for anyone: The counter variable i is Int16. Since we only need range 1-100, we can use a smaller data type -- i've heard cpu's do math faster on data that is the same width as the cpu (ie. int32 for 32bit cpu and int64 for 64 bit). does that apply here? For example, would a 64 bit cpu have to convert the int16 into an int64 (or32??) before it operates on it? Or is that only when you try to do math on 1 byte? (Something about if the data is too small, the cpu treates it as a bigger type? I can't remember.)
Quote Originally Posted by abuckau907 View Post
I would do it like...
Code:
    Public Sub FizzBuzz()
        Const num1 As Integer = 3
        Const num2 As Integer = 5
        Const num3 As Integer = num1 * num2 '(lcm) -no error checking
        For xx As Integer = 1 To 100 Step 1
            If xx Mod num3 = 0 Then 
                Console.WriteLine("FizzBuzz")
            ElseIf xx Mod num1 = 0 Then
                Console.WriteLine("Fizz")
            ElseIf xx Mod num2 = 0 Then
                Console.WriteLine("Buzz")
            Else
                Console.WriteLine(xx)
            End If
        Next
    End Sub
@riley - I've never seen remainder done that way before { Fix(i/3) = (i/3) } - interesting
- any reason you used this way instead of mod ?

I just ran a speed test, apparently mod is quicker. Maybe?

rough* speed text
Code:
Module Module1

        Sub Main()
        Dim _tLapse As TimeSpan
        Dim _startTime As DateTime = Date.Now
        Console.ReadKey()
        _startTime = Date.Now
        For jj As Integer = 1 To 10000
            FBuzz2()
        Next
        _tLapse = Date.Now.Subtract(_startTime)
        Console.WriteLine("FBuzz2 Time: " & _tLapse.TotalSeconds & "s")
        _startTime = Date.Now
        For jj As Integer = 1 To 10000
            FBuzz1()
        Next
        _tLapse = Date.Now.Subtract(_startTime)
        Console.WriteLine("FBuzz1 Time: " & _tLapse.TotalSeconds & "s")
        Console.WriteLine("All Done")
        Console.ReadKey()
    End Sub

    Public Sub FBuzz1()
        For i As Int16 = 1 To 255 Step 1
            If Fix(i / 15) = i / 15 Then
                'Console.WriteLine("FizzBuzz")
            ElseIf Fix(i / 3) = i / 3 Then
                'Console.WriteLine("Fizz")
            ElseIf Fix(i / 5) = i / 5 Then
                'Console.WriteLine("Buzz")
            Else
                'Console.WriteLine(i)
            End If
        Next
    End Sub

    Public Sub FBuzz2()
        Const num1 = 3
        Const num2 As Integer = 5
        Const num3 As Integer = num1 * num2
        For xx As Int16 = 1 To 255 Step 1
            If xx Mod num3 = 0 Then
                'Console.WriteLine("FizzBuzz")
            ElseIf xx Mod num1 = 0 Then
                'Console.WriteLine("Fizz")
            ElseIf xx Mod num2 = 0 Then
                'Console.WriteLine("Buzz")
            Else
                'Console.WriteLine(xx)
            End If
        Next
    End Sub
''commented out .WriteLine() because it's *extremely* slow compared to just the 'math' aspect of this code
End Module
Output
Code:
FBuzz2: .17s
FBuzz1: .42s
All Done
apparently it's about 3x quicker (on my Pentium4 :/ ). Optimization really* doesn't matter for the fizzbuzz, just making small talk I guess. Never seen remainder checked as you did it - never thought of it that way.

Also, I didn't think of it myself at first..but someone on that page hardcoded in a 15 - which is the lowest common multiple of 3 and 5. If you use that, in the first IF comparison you can cut down the calls to division by half. (because the first comparison is always made, it's semi-important)

Fix(i/15) = (i/15) instead of Fix()=** AND Fix()=**


Question for anyone: The counter variable i is Int16. Since we only need range 1-100, we can use a smaller data type -- i've heard cpu's do math faster on data that is the same width as the cpu (ie. int32 for 32bit cpu and int64 for 64 bit). does that apply here? For example, would a 64 bit cpu have to convert the int16 into an int64 (or32??) before it operates on it? Or is that only when you try to do math on 1 byte? (Something about if the data is too small, the cpu treates it as a bigger type? I can't remember.)
Honestly I had never heard of the Mod funtion
I should read more into the System.Math API
ahh,

mod is just like division, except it ONLY returns the remainder.

It's used a lot to check (like we did above) if numbers are multiples of eachother.

ie. 3 , 33 --> goes in evenly 11 times, no remainder
3, 32 --> goes in 10 times, with 2 left over so 32 mod 3 = 2

5 mod 5 = 0
5 mod 4 = 1
10 mod 2 = 0
10 mod 3 = 1
10 mod 4 = 2
30 mod 8 = 6
30 mod 2 = 0
30 mod 4 = 2
etc etc.
Most (?) language have something like it..it's basically just like the other math operators + - / *
In vb it's "mod", in C++ it's "%". not sure about others.

-I like your fix() way tho...at first glance I was confused, but now it's kind of cool. Def. made me think twice, so thnx.
Quote Originally Posted by abuckau907 View Post
ahh,

mod is just like division, except it ONLY returns the remainder.

It's used a lot to check (like we did above) if numbers are multiples of eachother.

ie. 3 , 33 --> goes in evenly 11 times, no remainder
3, 32 --> goes in 10 times, with 2 left over so 32 mod 3 = 2

5 mod 5 = 0
5 mod 4 = 1
10 mod 2 = 0
10 mod 3 = 1
10 mod 4 = 2
30 mod 8 = 6
30 mod 2 = 0
30 mod 4 = 2
etc etc.
Most (?) language have something like it..it's basically just like the other math operators + - / *
In vb it's "mod", in C++ it's "%". not sure about others.

-I like your fix() way tho...at first glance I was confused, but now it's kind of cool. Def. made me think twice, so thnx.
Just goes to show how different minds will solve the same issue in different ways.
Reminds me when someone showed me a quick check for if a string is only numbers..
Code:
(assume string.length > 0)

If (string).ToLower <> (string).ToUpper Then
'it contains alphabet char
Else
'string only has numbers
End If
'may also fail if string has chars other than aA-zZ,0-9 -- don't actually use this. Just a quick dirty trick.
It's weird because..why would .ToLower and .ToUpper ever apply to numbers..but can (kind of) be used that way.

edit: person who showed me this was a teacher at uni :/ lol?


Anyway, for anyone still reading this: vb.net is a pretty good language, depending on project ofc.
Quote Originally Posted by abuckau907 View Post
Reminds me when someone showed me a quick check for if a string is only numbers..
Code:
(assume string.length > 0)

If (string).ToLower <> (string).ToUpper Then
'it contains alphabet char
Else
'string only has numbers
End If
'may also fail if string has chars other than aA-zZ,0-9 -- don't actually use this. Just a quick dirty trick.
It's weird because..why would .ToLower and .ToUpper ever apply to numbers..but can (kind of) be used that way.

edit: person who showed me this was a teacher at uni :/ lol?


Anyway, for anyone still reading this: vb.net is a pretty good language, depending on project ofc.
I prefer this for checking if a string is a number
Code:
        If IsNumeric(string) Then
'it's a number
        End If
Yes, isNumeric() is a better function. as is mod. nvm sry.
Hi Guy's

Nice all those information, but for a niewbe like me are the details to difficult to understand.


Why I am here. I want also to learn to make a wallhack in VB. Just an easy enemy boxESP without a menu and options. Why I wanna use VB. Because I have a External mw3 wall & aim Hack with source code (vb.net) and this is made in VB 2010.

On the picture you can see a little bit information.




This turtorial-hack is made for private use and as an learning project. So I dont going to leeched here for public, something what I usualy do

To go black on topic, I belief that VB an powerful program is. Else was this hack not made.



PS: Im reading a Dutch book about VB2010, thats my fist start. Question, what is the next step for me? I look at: http://www.mpgh.net/forum/31-c-c-pro...resources.html But that list is in my eyes for someone how wants to be an professional. I just want to learn how to handle the above mentioned turtorial-hack. Maybe Ill like to learn that later? But not now.
1) finish reading the book
2) if you don't understand "object vs class", "classes/structures", "variable scope", scope in general, functions, subs, overloading, byval/byref, IF, Switch, Loops, etc etc etc, then read the book again. Then make lots of simple, dumb apps. To get hands-on experience. You have to "be a programmer" before you can "make [any] program" , especially something as technically complex as modifying a 3d game.

3)..maybe read about Windows(R) since you're probably wanting to do games that run on windows? Maybe read about 'virtual memory management', 'directx', and maybe some general 'Windows user' security stuff. You'll have more / better questions by the time you get done with #1&2

^^ maybe I mis-understand you ..ur english is just a little off. really good tho <-- I am hypocrite lol, my spelling can be bad.
Anyway, maybe you already know a lot about programming? If not, that's step # 1, definitely.
Quote Originally Posted by abuckau907 View Post
1) finish reading the book
2) if you don't understand "object vs class", "classes/structures", "variable scope", scope in general, functions, subs, overloading, byval/byref, IF, Switch, Loops, etc etc etc, then read the book again. Then make lots of simple, dumb apps. To get hands-on experience. You have to "be a programmer" before you can "make [any] program" , especially something as technically complex as modifying a 3d game.

3)..maybe read about Windows(R) since you're probably wanting to do games that run on windows? Maybe read about 'virtual memory management', 'directx', and maybe some general 'Windows user' security stuff. You'll have more / better questions by the time you get done with #1&2

^^ maybe I mis-understand you ..ur english is just a little off. really good tho <-- I am hypocrite lol, my spelling can be bad.
Anyway, maybe you already know a lot about programming? If not, that's step # 1, definitely.


Thanks man,

Yes I know my english isn't so good, at school it was also a disaster.....
I started off with VB when I was younger. Taught me crappy syntax which made it several times harder to learn other languages such as C++. I wouldn't suggest it as a first language, HOWEVER it is useful for making programs quickly and effectively. Look into C#. In my opinion it's the mid point between C++ and VB.NET. It's VB.NET with Syntax
Quote Originally Posted by Jason View Post
It's interesting how people instantly associate "power" with a language's ability to hack a game. Seriously, the real world isn't made up of 99% game hackers.



Please, stop trying to act superior to people because you're a CSc major, I've met plenty of idiots who have a piece of paper that says they have a degree in Computer Science (see here for some real-world examples of this).

C++ is typically referred to as "low-level" in various coding communities due to the shift away from truly "low-level" programming (assembler, punch cards..etc). As your Wikipedia search has revealed (note: Took a CSc major to figure out how to use Wikipedia), C++ is technically an intermediate language and certainly contains many high-level language constructs, but it's commonly termed "low-level" due to the absence of the now-common high-level language features such as Garbage Collection and automatic memory management, as well as for it's native support for writing assembler and being able to directly access memory. If we're getting technical (and throwing our weight around with our fancy CSc majors), yes C++ is an intermediate language. However, for the purpose of this discussion (and for the sake of common sense), I think everyone understood what rileyjstrickland meant when he said that C++ was low-level. No, it is not assembler, or a punch card program, but we get the idea.

"Power" is subjective in programming. One of the most appealing aspects of VB.NET (and the .NET framework in general) is the speed at which you can create complex, safe and functional programs. In the real world time is money and Rapid Application Development (RAD) and abstraction can often be a far more important consideration than the ability of a language to handle lower level aspects of programming. Unless you're working in embedded systems or you really need to leverage the extra performance that languages like C and C++ can give you, companies are going to favour the language that gets the job done correctly, and quickly, without substantial performance issues. There's plenty more I could write about this, but I'd just be rehashing content that has been written about in detail thousands of times before.

This brings me to my answer to the OP's question: How powerful is VB? .. How long is a piece of string? As I mentioned before, the concept of "power" is subjective and really depends upon the context. I might consider the ability of C/C++ to directly access and manipulate memory particularly powerful if I was writing an injectable hack, or working in an environment (such as an embedded system) where memory availability was truly an issue. Then again, I might consider a .NET feature like LINQ to be awesomely powerful when I'm working on an application that will run in a modern operating environment where memory isn't a going concern and I just want an array of built-in ways to work with collections of data.

VB.NET is a perfectly fine language. It will fall down in some situations (as will most languages) and it will be amazing in other situations. At the end of the day, if you're any sort of programmer you won't find yourself locked into a single language anyway. If you need to write some fast, lower-level code, switch to something like C++. If you want to write a web-application, switch to PHP (for example). If you want a feature-rich GUI, change to WPF. There are so many language options today it'd be foolish to blindly cling to a single language for every situation anyway.
Wow, this is very informational. I'm quite glad to see you stand up for a language you don't really care for.
Quote Originally Posted by mynameisdoom View Post
I started off with VB when I was younger. Taught me crappy syntax which made it several times harder to learn other languages such as C++. I wouldn't suggest it as a first language, HOWEVER it is useful for making programs quickly and effectively. Look into C#. In my opinion it's the mid point between C++ and VB.NET. It's VB.NET with Syntax
Actually, I started with VB. I'm currently learning java, and I'm seeing a lot of connections. I have to say, without my VB experience, I probably wouldn't be doing as good with java.
Posts 16–30 of 31 · Page 2 of 3

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us