Re: [Algorithms] Complexity of new hardware
Brought to you by:
vexxed72
|
From: Nicholas \Indy\ R. <ar...@gm...> - 2009-04-26 04:00:39
|
On Sat, Apr 25, 2009 at 5:01 PM, Rachel Blum <r....@gm...> wrote: > Actually, I'm referring to type annotations in Haskell. While they are not > necessary (the inference works quite well), they allow to generate better > (i.e. faster/shorter) code. I'm looking to extend that into a more generic > system where you slowly annotate your code as you learn more about the > problem at hand. I ment type annotations to be included in advantages of type inference, as I haven't seen a type inferred system without optional type annotations. Anyways, as far as my understand goes, type annotations provide no runtime performance benefits, but help to increase safety of computation, a compile time 'assert' of sorts. > "Calcify" because your code becomes harder and harder to change - the price > of specializing it for the task at hand. > > Since I'm at the hand-waving stage with my thoughts on this, that's about as > much explanation I can give - it sounded better in my mind ;) It's nice to be able to start with more malleable code, and then add types later to ensure safety, I understand. > I'm curious - what do you feel C++ gives you (on a systems level) that's not > achievable with C and a decent set of libraries? > > Some are, some are not. None of them seem to call for C++. Systems level > work is done in C. If I need to step onto an OO level while doing systems > work, ObjC seems a better choice to me, and pretty much *all* prototyping is > done in Python or other HLLs. > > If I'm trying out performance intensive stuff, I'm more than happy to throw > rather large amounts of computational power at it if it gains me fast > development. EC2 is your friend ;) I mostly mean C++ as a superset of C, alas I think C++ has quite a few valuable additions, destructors, and typed containers which I often find to be valuable in a lot of code (depending on what value of 'system' I wouldn't choose C++ over C for driver development for instance. Other then that, C++ has some valuable performance characteristics, while I agree that there is great reason to prototype in higher level languages the performance is often not acceptable in production game code. For instance the dynamic nature of ObjC classes can provide some problems, and the insistence for all newer programming languages to be garbage collected proves to be largely problematic. > That's entirely due to inertia and unwillingness to explore alternatives. If > we spent less time on reinventing existing wheels, I'm confident we could do > a lot of useful work in terms of generating alternatives. Creating alternatives ends up being much more difficult then switching to existing alternatives if none of the existing alternatives are a great match. > (Side note: I'd *really* love to focus the "game development universities" > on that. I'd think students would benefit from doing actual research, as > opposed to vocational training...) I'm not sure that "game development universities" are yet mature enough for this. > I'm surprised that you as an Indy guy (or so I guess from the signature ;) > feel there are no alternatives. XNA/C# seems a viable one? (Note - this is > said as a bystander. I haven't used it yet. There's only so many hours in a > day :( ) Sorry for the confusion, the "Indy" in my signature is a nick name of mine I've had since long before I got into game development. However I do have quite a bit of experience with XNA/C# and as it turns out they have a lot of problems, the performance can be problematic, GC isn't always desirable when developing games, The large amount of bounds checking can also be problematic. Additionally, the nature of being a proprietary language/library vastly limits the platforms that can be developed for (Mono does a nice job at running C# but XNA is still a Microsoft only sort of thing). Lastly while it is possible to call into C/C++ libraries though managed C++, it's never very pleasant, and on some platforms it may not be possible at all. Depending on the game, these may actually be non-problems. But I doubt we will be seeing any AAA titles in XNA/C# very shortly, and I doubt that is due to the inertia of the entire industry and C++. Nicholas "Indy" Ray |