Choosing a Language, Where to start? menu

Shout-Out

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    ihavedowns's Avatar Member
    Reputation
    1
    Join Date
    Aug 2007
    Posts
    35
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Choosing a Language, Where to start?

    I am looking to start from scratch on learning a language. I want to eventual learn to write programs for botting. I was doing some reading in this section and wasn't sure what language to go with, some say C# and some say C++. I know Java, but don't think it would be very suitable for something like this. I am just looking for some opinions on what language I should look into, for apps for games, bots etc.

    I tried searching around, I assumed this has been asked a thousand times, but I wasn't to sure what to search for exactly.

    Choosing a Language, Where to start?
  2. #2
    ~OddBall~'s Avatar Contributor
    Reputation
    207
    Join Date
    Jan 2008
    Posts
    1,156
    Thanks G/R
    4/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ihavedowns View Post
    I am looking to start from scratch on learning a language. I want to eventual learn to write programs for botting. I was doing some reading in this section and wasn't sure what language to go with, some say C# and some say C++. I know Java, but don't think it would be very suitable for something like this. I am just looking for some opinions on what language I should look into, for apps for games, bots etc.

    I tried searching around, I assumed this has been asked a thousand times, but I wasn't to sure what to search for exactly.
    Dude you've got it all wrong.
    Just go straight to binary it's soooo easy, you only have to remember 1 and 0 and you can create anything you want....

    Super cereal
    https://www.mmowned.com/forums/world-of-warcraft/guides/278302-selecting-bot-you.html - SELECTING THE BOT FOR YOU

    PHWOOOOAAAAAR - Parog was here. <3 <----Wtf's a Parog?

  3. #3
    ramey's Avatar Member
    Reputation
    45
    Join Date
    Jan 2008
    Posts
    320
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    C++ if you want to inject, more control, but more risk, C# if you want to have less control i guess, and less risk. pretty bad explanation but hey :>

  4. #4
    furang's Avatar Member
    Reputation
    19
    Join Date
    Jul 2009
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Start from languages with unmanaged code.
    i did it 4 lulz

  5. #5
    namelessgnome's Avatar Contributor
    Reputation
    108
    Join Date
    May 2007
    Posts
    263
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I would go with C#
    C# works pretty good and it's syntax is very Java like. C++ is very verbose in my opinion and that's not what you want if you are used to Java.

  6. #6
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namelessgnome View Post
    I would go with C#
    C# works pretty good and it's syntax is very Java like. C++ is very verbose in my opinion and that's not what you want if you are used to Java.
    If you find C++ 'verbose' you're probably using the language incorrectly.

  7. #7
    jjaa's Avatar Contributor
    Reputation
    245
    Join Date
    Dec 2006
    Posts
    562
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    In my opinion it highly depends on what you want to achieve. Personally, the first language that i learned was C++ (because i wanted to inject DLL's), it has a steep learning curve but it teaches you the low level concepts that you really need to know when reversing (pointers, how VMT work ect.). Also once you learn C++, C# is super easy to learn.

    basically the learning steps i recommend are, to learn:
    1. Basic C++
    2. Basic ASM (just read the wiki-books)
    3. Basic reversing (book "Reversing: Secrets of Reversing Engineering")
    3. How to use IDA (book "The IDA Pro Book")

    After all that you should have a good starting point
    Last edited by jjaa; 10-02-2009 at 09:48 AM.

  8. #8
    grosfilsdepute's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    26
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    C or C++ to begin. Keep in mind that a language is only a tool. Use the more appropriate in your situation.

  9. #9
    namelessgnome's Avatar Contributor
    Reputation
    108
    Join Date
    May 2007
    Posts
    263
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you find C++ 'verbose' you're probably using the language incorrectly.
    C++ is arguably more verbose than C# because of technical differences when it comes to memory management. When coding safe .NET (and Java) you don't have to worry about things like pointer dereference.

    but don't get me wrong, verbosity does not have to be negative because it allows for more control, which is needed for low level and performance critical applications.

    The main reason for my recommending C# to the OP is because he said he knew java.

    The point of my post was not to claim that C++ was inferior but that C# is a valid consideration for someone who already knows Java.

  10. #10
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namelessgnome View Post
    C++ is arguably more verbose than C# because of technical differences when it comes to memory management. When coding safe .NET (and Java) you don't have to worry about things like pointer dereference.

    but don't get me wrong, verbosity does not have to be negative because it allows for more control, which is needed for low level and performance critical applications.

    The main reason for my recommending C# to the OP is because he said he knew java.

    The point of my post was not to claim that C++ was inferior but that C# is a valid consideration for someone who already knows Java.
    You're using the language incorrectly.
    Resource Acquisition Is Initialization - Wikipedia, the free encyclopedia

    If you're managing memory and resources manually then URDOINITWRONG.

    Thank you for proving my point.

  11. #11
    namelessgnome's Avatar Contributor
    Reputation
    108
    Join Date
    May 2007
    Posts
    263
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What I meant with technical differences when it comes to memory management was GC destruction and deallocation of objects. Instead of thinking about when to release resources they are evicted when found by the gc. The whole pointer object abstraction in the GC:d makes sure that you don't get wild pointer bugs.

  12. #12
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namelessgnome View Post
    What I meant with technical differences when it comes to memory management was GC destruction and deallocation of objects. Instead of thinking about when to release resources they are evicted when found by the gc. The whole pointer object abstraction in the GC:d makes sure that you don't get wild pointer bugs.
    They are most definitely not released when the GC finds them.

    Please; don't speak if you have no clue what you're talking about.

    The .NET garbage collector is optimized for the following assumptions

    1. Objects that were recently allocated are most likely to be freed.
    2. Objects that have lived the longest are least likely to be become free.
    3. Objects allocated together are often used together.

    The .NET garbage collector is known as generational garbage collector. The objects allocated are categorized into three generations. Most recently allocated objects are placed in generation 0.
    Objects in generation 0, that survive a garbage collection pass are moved to generation 1.
    generation 2 contains long-lived objects, that survive after the two collection passes.

    A garbage collection pass for generation 0 is the most common type of collection. Generation 1 collection pass is performed if generation 0 collection pass is not sufficient to reclaim memory.
    Atlast, generation 2 collection pass is peformed if collection pass on generation 0 and 1 are not sufficient to reclaim memory. If no memory is available, after all the collection passes, an
    OutOfMemoryException is thrown.

    From: Understanding Garbage Collection in C# Articles, samples and tutorials

  13. #13
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namelessgnome View Post
    What I meant with technical differences when it comes to memory management was GC destruction and deallocation of objects. Instead of thinking about when to release resources they are evicted when found by the gc. The whole pointer object abstraction in the GC:d makes sure that you don't get wild pointer bugs.
    If you're getting "wild pointer bugs" you're using the language incorrectly. Concepts like RAII and language features like references are there for a reason.

    As a C++ developer I don't have to think about when to release resources either, it's done for me.

    For example, here's a function which allocates memory on the heap, and by the magic of class destructors, all return paths clean it up automatically:
    void Foo
    {
    shared_ptr<Blah> MyBlah(new Blah());

    if (Asdf())
    {
    // do stuff
    return;
    }
    else
    {
    // do other stuff
    return;
    }

    throw exception("something went wrong");
    }

    Hey look! No resource management code for MyBlah. Must be MAGIC!

    Anyway, as I said, references are there for a reason, and most of the time are a suitable (and safer) replacement for pointers.

    Regardless, you shouldn't be using raw pointers anyway, you should be using resource managing objects (like a shared_ptr) instead.

  14. #14
    ihavedowns's Avatar Member
    Reputation
    1
    Join Date
    Aug 2007
    Posts
    35
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome, well thank you for all the replies. I am going to pick up a few books on C++, to get my hands dirty. Once I do my successful "Hello World" program and all the basic stuff, what kind of things do you recommended trying to do in WoW, just to get my hands dirty.

    As far as learning, I don't think it will matter to much for me, I haven't done Java in over a year, mainly just PHP work at the moment, and pretty familiar with the structure of things and the basics, so going to give C++ a shot then probably move on from there.

  15. #15
    nopz's Avatar Active Member
    Reputation
    67
    Join Date
    Aug 2009
    Posts
    56
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    If you did PHP and Java then you should know basics Object Oriented Programming.
    What I suggest is trying to write your own Library, that way you will understand better how it works and how to interact with a process.

    Get inspired from BlackMagic and try writing your own without copy/pasta.

    If you start a bot without knowing basics concepts you will for sure have some problems in the future. Just look questions on this forum asking about wow's main thread and other things...
    My blog: https://pimpmykitty.wordpress.com
    PyFasm: https://github.com/srounet/pyfasm
    Pymem: https://github.com/srounet/pymem

Page 1 of 2 12 LastLast

Similar Threads

  1. Looking to start learning a programming language, where to begin...
    By Itsrambo in forum WoW Bots Questions & Requests
    Replies: 3
    Last Post: 02-18-2011, 04:15 PM
  2. [Question] Where to start?
    By blaxmith in forum World of Warcraft General
    Replies: 0
    Last Post: 03-01-2008, 12:17 PM
  3. Where to start learning c++?
    By mafiaboy in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 02-21-2008, 05:48 PM
  4. Using photoshop - where to start?
    By Svpam in forum Community Chat
    Replies: 3
    Last Post: 02-18-2008, 11:52 AM
  5. I Want To Learn C++, Where to start?
    By mafiaboy in forum World of Warcraft Emulator Servers
    Replies: 11
    Last Post: 01-04-2008, 10:32 AM
All times are GMT -5. The time now is 05:03 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search