Results 1 to 12 of 12
  1. #1
    miniMagi's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Angelic

    Which programming language

    Hi guys,

    So I'm looking for a new programming language to start learning but can't decide which one to pick...
    I want to be able to eventually write server applications using that language (game servers/ emulators) so I know something like VB ain't gonna do the job.

    I've looked at C/C++ which obviously would be best choices due to sheer power I'd get however learning and developing curve seems to be too long D:

    Also I don't really like languages with dependencies like the whole .NET thing or JVM hence C# and Java ain't gonna be my choices either :| Well... I'm not sure :<

    Are there any other languages powerful enough for writing speed demanding stuff like emulators?

    Would Python be any good here? Anything else?

    I'm a VB6 programmer with 5 years of experience and about two years of PHP. Also I read several books on C so I know it's advantages and disadvantages .


    Knowing that, what would your suggestion be?

  2. #2
    Hassan's Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    System.Threading.Tasks
    Posts
    4,764
    Reputation
    495
    Thanks
    2,133
    My Mood
    Dead
    C or C++ because writing game emulator requires lot of hardware power. This forum is not good for asking such stuff. Join PCSX2.

    PCSX2 Playstation 2 emulator - News

    You'll find real help regarding emulators there.

  3. #3
    FailHacker's Avatar
    Join Date
    Sep 2010
    Gender
    male
    Posts
    444
    Reputation
    8
    Thanks
    49
    Quote Originally Posted by miniMagi View Post
    Hi guys,
    I've looked at C/C++ which obviously would be best choices due to sheer power I'd get however learning and developing curve seems to be too long D:
    5 years of VB... then you must know that learning a coding language like c++ isn't going to be a breeze, but honestly the beginning is really easy, i.e. for loops, while loops, do-while loops, if-else statements, cases, switch, etc. But still patience is required.
    Legen...wait for it...dary







  4. #4
    Auxilium's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Location
    深い碧の果てに
    Posts
    4,518
    Reputation
    445
    Thanks
    609
    My Mood
    Happy
    Malbolge is the best for you.

  5. #5
    Fovea's Avatar
    Join Date
    Mar 2011
    Gender
    male
    Posts
    325
    Reputation
    101
    Thanks
    411
    My Mood
    Amused
    Hardware emulation != software emulation (the latter of which the OP is interested in).

  6. The Following User Says Thank You to Fovea For This Useful Post:

    miniMagi (07-30-2011)

  7. #6
    Auxilium's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Location
    深い碧の果てに
    Posts
    4,518
    Reputation
    445
    Thanks
    609
    My Mood
    Happy
    Quote Originally Posted by Fovea View Post
    Hardware emulation != software emulation (the latter of which the OP is interested in).
    Don't emulators emulate the hardware of the system? That's why you can properly emulate dreamcast when you have a graphics card of it's strength or better, While you can't on an integrated card. Even running a PS1 emulator on my integrated had graphical glitches, while none on my main PC with a 1 GB card.

    You create an environment (emulating hardware, the game accesses your hardware through the emulation layer, but it still acts like a real one) for a real game to play in, thus you need higher specs for it to run correctly (windows still needs to run too)
    Last edited by Auxilium; 07-29-2011 at 06:20 PM.

  8. #7
    miniMagi's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Angelic
    Quote Originally Posted by Fovea View Post
    Hardware emulation != software emulation (the latter of which the OP is interested in).
    Quote Originally Posted by Virtual Void View Post


    Don't emulators emulate the hardware of the system? That's why you can properly emulate dreamcast when you have a graphics card of it's strength or better, While you can't on an integrated card. Even running a PS1 emulator on my integrated had graphical glitches, while none on my main PC with a 1 GB card.

    You create an environment (emulating hardware, the game accesses your hardware through the emulation layer, but it still acts like a real one) for a real game to play in, thus you need higher specs for it to run correctly (windows still needs to run too)
    Sorry for not making myself clear enough, it's just what Fovea said.
    I don't intend to write hardware emulators but network software emulators instead.
    MMO games consist of two parts, client and server. Obtaining real server files is close to impossible so the only solution is to write piece of software which emulates behavior of real server then fooling client into connecting to that emulator instead of real server.
    Now my objective is exactly that, write the emulator..

    Quote Originally Posted by FailHacker View Post
    5 years of VB... then you must know that learning a coding language like c++ isn't going to be a breeze, but honestly the beginning is really easy, i.e. for loops, while loops, do-while loops, if-else statements, cases, switch, etc. But still patience is required.
    Certainly, I do.
    I'm familiar with the basics of C and C++ like you mentioned, in fact writing something like a socket server/ packet filter is not a problem for me. Trick being that C/C++ require programmer to concentrate too much on low level stuff making development a pain.
    I'm looking for a robust solution that wouldn't take as much of my time and allow me to concentrate of my software alone.

  9. #8
    freedompeace's Avatar
    Join Date
    Jul 2010
    Gender
    female
    Posts
    3,033
    Reputation
    340
    Thanks
    2,792
    My Mood
    Sad
    Quote Originally Posted by miniMagi View Post
    Hi guys,

    So I'm looking for a new programming language to start learning but can't decide which one to pick...
    I want to be able to eventually write server applications using that language (game servers/ emulators) so I know something like VB ain't gonna do the job.

    I've looked at C/C++ which obviously would be best choices due to sheer power I'd get however learning and developing curve seems to be too long D:

    Also I don't really like languages with dependencies like the whole .NET thing or JVM hence C# and Java ain't gonna be my choices either :| Well... I'm not sure :<

    Are there any other languages powerful enough for writing speed demanding stuff like emulators?

    Would Python be any good here? Anything else?

    I'm a VB6 programmer with 5 years of experience and about two years of PHP. Also I read several books on C so I know it's advantages and disadvantages .


    Knowing that, what would your suggestion be?
    Python is way to slow to work in a server environment. Actually, let me rephrase that. It's slow, so its not ideal. It'll work, but you'll need a lot of grunt in terms of CPU power to pull it off in something like Python, an interpreted language.

    I don't really see why you dislike runtime environments. I've currently deployed a large corporate network server written in .NET (C#), and it seems to be running well. I don't like Java. Java 6 is broken. Java 7 isn't out yet.

    C++ is an obvious choice here, but I'd like to suggest to you Erlang. It's a high concurrency functional language built for large, scalable projects. Originally written for a large telco to manage their ever increasing load and isolate crashing to single nodes, it is the buzz of today's concurrent programming. It's amazing, lightweight and has none of the locks and semaphores that we all know and hate that just end up slowing multithreading down. (Unfortunately, the network had C++ libs, so I had to use C# with interop.). Just a small example. You can spawn 25,000 processes (Erlang equivalent of threads) and run perfectly, while I can't even spawn more than 2,000 threads (with a stack size of 1 byte) on my i7


    Quote Originally Posted by miniMagi View Post
    Certainly, I do.
    I'm familiar with the basics of C and C++ like you mentioned, in fact writing something like a socket server/ packet filter is not a problem for me. Trick being that C/C++ require programmer to concentrate too much on low level stuff making development a pain.
    I'm looking for a robust solution that wouldn't take as much of my time and allow me to concentrate of my software alone.
    Which is why I love .NET. Everything is there. You might want to try managed C++, but that won't be compatible with non-Windows OSes.

    Again, I suggest C#, or Erlang if you really want to.[/QUOTE]


    Quote Originally Posted by FailHacker View Post
    5 years of VB... then you must know that learning a coding language like c++ isn't going to be a breeze, but honestly the beginning is really easy, i.e. for loops, while loops, do-while loops, if-else statements, cases, switch, etc. But still patience is required.
    The power increase you'd get from C++ might be offset, or, even worse, reversed, because of a lack of familiarity with C++ and advanced techniques. Plus, the increased functionality you gain (from more development time by developing higher-level code will be better for your business/software than using C++ when not required merely because "its cool".
    Last edited by freedompeace; 07-30-2011 at 04:11 AM.

  10. The Following User Says Thank You to freedompeace For This Useful Post:

    miniMagi (07-30-2011)

  11. #9
    miniMagi's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Angelic
    Erlang? I'll take a good look at it.

    And C#.. almost everyone I came across suggested it and described it in good light :P
    Besides if I were to write an emulator it would most likely be running on windows platform anyways. To be honest I don't even know the reason I don't like it.

    Just to save myself some time... Could you suggest a good learning source for Erlang and C#?

  12. #10
    freedompeace's Avatar
    Join Date
    Jul 2010
    Gender
    female
    Posts
    3,033
    Reputation
    340
    Thanks
    2,792
    My Mood
    Sad
    Quote Originally Posted by miniMagi View Post
    Erlang? I'll take a good look at it.

    And C#.. almost everyone I came across suggested it and described it in good light :P
    Besides if I were to write an emulator it would most likely be running on windows platform anyways. To be honest I don't even know the reason I don't like it.

    Just to save myself some time... Could you suggest a good learning source for Erlang and C#?
    I think its a godsend. It's sped up my development so much, and I love the descriptive compiler errors! Everything from cryptography to network to file access libraries are available. And Mono means that it'll run on Linux, Mac and even Android and iOS!

    Wait a minute. If you know VB, then use it. VB runs on the same thing that C# does (.NET runtime), and has the same features, same compiler and same IL output. What's wrong with it, especially since you have 5 years experience?

    As for Erlang, there's Learn You Some Erlang for Great Good!


    Quote Originally Posted by miniMagi View Post
    I want to be able to eventually write server applications using that language (game servers/ emulators) so I know something like VB ain't gonna do the job.
    I missed this part.

    VB is completely capable of doing what you need. It's very powerful, though I (personally) hate the syntax and style. It is as powerful as C#, and perhaps more so than Java.
    Last edited by freedompeace; 07-30-2011 at 07:22 AM.

  13. #11
    Fovea's Avatar
    Join Date
    Mar 2011
    Gender
    male
    Posts
    325
    Reputation
    101
    Thanks
    411
    My Mood
    Amused
    The amount of "threads" (Erlang "threads" are more like fibers) that you are able to create is irrelevant as the correct pattern you should be using is the Thread Pool pattern. Simply spawning many threads is not efficient.

  14. #12
    freedompeace's Avatar
    Join Date
    Jul 2010
    Gender
    female
    Posts
    3,033
    Reputation
    340
    Thanks
    2,792
    My Mood
    Sad
    Quote Originally Posted by Fovea View Post
    The amount of "threads" (Erlang "threads" are more like fibers) that you are able to create is irrelevant as the correct pattern you should be using is the Thread Pool pattern. Simply spawning many threads is not efficient.
    That applies mainly to short and quick tasks. Large, long running tasks don't really benefit from a thread pool.

Similar Threads

  1. [POLL] what programming language should I learn 1st?
    By aswhooper in forum C++/C Programming
    Replies: 26
    Last Post: 07-18-2009, 11:05 PM
  2. Learn C Programming Language (E-book/PDF)
    By blueduece2 in forum C++/C Programming
    Replies: 1
    Last Post: 03-25-2009, 09:49 AM
  3. what programming languages do you know?
    By AN1MAL in forum General
    Replies: 7
    Last Post: 03-14-2009, 07:42 PM
  4. Which program is best?
    By sheligalo in forum WarRock - International Hacks
    Replies: 8
    Last Post: 07-03-2007, 06:51 PM
  5. Best Hacking Programing language
    By radnomguywfq3 in forum General Game Hacking
    Replies: 18
    Last Post: 05-27-2007, 12:01 PM