Jump to content

jollyrancher82

Dedicated Members
  • Posts

    919
  • Joined

  • Last visited

Posts posted by jollyrancher82

  1. learn C then advance to C++

    and then learn some asm and download ollydbg and activly disasmmble your code

    it helped me learn quite a bit plus its cool to modify the .exe at machine level :P

    as for a free compiler i would recomend MiniGW(bassicly DevC++)

    and as an IDE Code::blocks nightly builds ftw

    as for asm i belive tasm and tlink are still win

    Tasm and Tlink are years out of date and the fact they're 16 bit, you should probably use Nasm if you're serious about assembly.

  2. I find it funny how everyone is like "omg explioits", sorry how many exploits has Firefox, Opera, and Internet Explorer had? Chrome does in fact render web pages faster than Firefox.

    when you consider that the really hard work was done by others (webkit is mostly apple engineers, and no osx version?) and the vastness of googles resources in both manpower and cash, then this duct taping of other people's work under their brand is not really as impressive as the firefox or ie efforts.

    They're not going to write a whole new renderer when one already freely exists. What is that problem with them implementing that renderer into their application? Windows is the most used desktop OS, it's obvious the Windows version will be released first. Porting a C++ application to Linux/OSX from Windows isn't as simple as recompiling for that OS.

  3. Is it really a hard choice? Ask your self a couple simple questions and I think you'll have the answer!

    1. Do I want my programs to be dependent on .NET frameworks?

    2. Do I want to lose performance because I'm using managed code, instead of good old unmanaged c++?

    3. Do I like dots(".") so much that I must splatter them throughout my code?

    Can anyone that programs in C# elaborate on why they think its better despite what was outlined above? And don't say the code is easier/faster to write, because I certainly don't think so...

    here's an example of two programs the first in managed C# the second in unmanaged native C++

    C#

    // HelloWorld.cs
    using System;
    
    public class HelloWorld
    {
        public static int Main()
        {
            Console.WriteLine("Hello World!");
            return 0;
        }
    }

    C++

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Hello World!";
        return 0;
    }

    Compile either one, then open a command prompt("cmd.exe") then run either program from it, they both will do the exact same thing, write "Hello World!" to the console screen and exit.

    The difference is the C# one compiles into IL(Intermediate Language) code and is stored in the EXE file, when run(requires .NET framework) the CLR(Common Language Runtime) converts it into machine code(Assembly code pretty much) that will run on the computer.

    The C++ version compiles directly into machine code and is therefore ready to be run immediately. No dependencies unless you choose to be dependent on something. For example if you made a directX app, then your choosing to be dependent on the machine having directx...

    Now although you won't really notice a difference in performance with this simple application(because it doesn't really do much) with code that does more, and code that is CPU intensive, the difference is pretty big, although you can optimize c# code to minimize performance loss, there will always be that overhead caused the .NET frameworks and CLR.

    C++ is the highest performance you can get without going totally assembly.

    Assembly is basically what you see is what you get, whatever you code, that's how it ends up in the EXE, it doesn't compile it assembles. The assembly opcodes are assembled into numerical byte codes that they are associated with. For example this opcode

    "pop eax"

    =

    0x58 (58 hex)

    these byte codes are machine code which with a disassembler you can see the assembly codes they represent, this is basically how reverse engineering takes place, studying the assembly codes you can figure out what a program is actually doing! you can't go from EXE back to source, but you can read the assembly code! ;)

    so im going the end this with a quote from the masm32.com website

    "Warning Danger Zone

    High speed software"

    although they changed the website for some reason, currently it can still be viewed in google's cache http://64.233.167.104/search?q=cache:SQSax...;cd=1&gl=us

    You basically wrote a complete post bias towards C++. I frequently use C, C++ and C#, C/C++ is fine if you have time to write a lot of your own code. C# is good if you want great documentation and thorough libraries. C# cuts down the development time because it is high level and you don't have to worry about the low level things. If you had a choice of learning C# or C++, I would say C# first, then moving onto C++ when you're comfortable with C#. A lot of people will tell you to stay away from C# as it's a Microsoft creation, but those people tend to forget that C# is an open standard.

  4. Apparently the American Army are developing an 'Iron Man' suit that will be in combat by 2010....

    This just reminds me of this little gem:

    NASA spends billions of pounds to make an ink pen that works in space, the russians used a pencil(*gasp* and what if the american astronauts made a mistake, there isn't a space worthy tipex bottle yet)...

    Using a pencil in space is dangerous.

×
×
  • Create New...