Author Topic: Release date  (Read 15963 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Release date
« Reply #15 on: April 29, 2008, 06:00:40 PM »
Also, maybe the best thing about Java is that it can run in your browser. Imagine being able to try-out DB without downloading it, or using an account system to save your sim and look at it and continue running it at the library, just by logging in. You can't do that with c#.

Offline goffrie

  • Bot Builder
  • **
  • Posts: 65
    • View Profile
Release date
« Reply #16 on: April 29, 2008, 07:41:08 PM »
Quote from: jknilinux
Also, maybe the best thing about Java is that it can run in your browser. Imagine being able to try-out DB without downloading it, or using an account system to save your sim and look at it and continue running it at the library, just by logging in. You can't do that with c#.

IMHO, Java web applets are infernal.
In C#, you can have a program which can be compiled into a machine code executable. I haven't seen a viable solution for that in Java. I'd rather not have an interpreter for a program like this, even if it's very efficient.

Also, C# is portable with Mono. Please try to make it compatible - a native Linux Darwinbots would be nice

I'd still use C, although I can see some problems arising with complexity and coding time.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Release date
« Reply #17 on: April 30, 2008, 02:19:07 AM »
I'm mindful of Mono and Linux, but I haven't ever played around in Linux, nor do I have a Linux install, so I can't guarantee anything.

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
Release date
« Reply #18 on: April 30, 2008, 09:04:50 AM »
java would be nice but then I cant run it.
I think.
I could just download it
but I dont have the inernet.
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline gymsum

  • Bot Destroyer
  • ***
  • Posts: 215
    • View Profile
Release date
« Reply #19 on: April 30, 2008, 09:57:32 AM »
Rubla is better than Java or Python, but we're not making heirarachle web page browsing are we.

Anyways, I know physics, but nothing about prgoramming, if you would like me to test it out I could.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Release date
« Reply #20 on: April 30, 2008, 11:10:13 AM »
Hi nums,

go to getpclinuxos.com . It is an extremely good, extremely easy linux distro, so just install it on a tiny partition of your hard-drive or on an emulator, or on a thumbdrive, and problem solved. Also, isn't java like THE_MOST_PORTABLE_LANGUAGE_EVER? No matter what machine you're on, java will run with no modifications. With C#, though, it sounds like you have to actually work to make it portable.
« Last Edit: April 30, 2008, 11:23:22 AM by jknilinux »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Release date
« Reply #21 on: April 30, 2008, 11:45:57 AM »
You pay about a 20% perf penalty for managed code of any ilk.  All that garbage collection and memory management and range checking the runtime does for you is nice, but it isn't free.  This is one reason operating systems and database servers and similar engine code such arn't written in managed code.  

DB is mostly an engine, mostly systems code.  A portable lanaguage like C or C++ would be fine, but IMHO, you want native compiles to specific platforms for engine code.
Many beers....

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Release date
« Reply #22 on: April 30, 2008, 01:00:49 PM »
I don't think garbage collection is worth 20%... although I'd immagine that number is a litle exagerated...
But generaly a destructor rarely takes any time to make... and it may take a litle longer to propperly manage objects and pointers, but it's also nice to know it's being done right (A good performance test should make it easy to fix any leaks you may have caused). And I guess debates about C++ vs Java is nothing new, and I bet there's tons of stuff I know nothing about. But I know you still have to be carefull in java not to make any pointer loops and other stuff the garbage collector can't handle.
But in the end, I find C and C++ to be a lot easyer and more intuitive than Java. I have a real feeling that I can do anything I wan't, and I can either make it myself or find a library that does it for me. I also have a hard time imagining that you can make as efficient code in Java without having to be as thorough as in C. In the end I just dislike the odd syntaxes and "wierd stuff" you need to do when using Java libraries, could just be a personal preference, but when I use a C library it makes sence to me, that's not always the case with Java...
Appart from that any larger framework I ever worked with has always been in C++, not that I've tryed a lot (Unreal Engine 3 and Kynapse), so it's easyer for me, and I think the performance and compatibility of C++ shouldn't be the issue...

A history of popular FPS game engines, noticed Crysis is in C++, as are most of them...
http://upload.wikimedia.org/wikipedia/comm...8/Fpsengine.svg

But I actualy started with Java and I still found C to be a lot easyer when I first tryed it... maybe it's just me... just seemed like you need to know half the lib functions for Java before you can use it effectively... and all the dev environments I tryed where awfull...

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Release date
« Reply #23 on: April 30, 2008, 01:20:39 PM »
Quote from: Moonfisher
I don't think garbage collection is worth 20%... although I'd immagine that number is a litle exagerated...
It's not, at least it wasn't a few years ago when I worked in the Windows kernal group.  Managed code does a lot more than garbage collection such as object sandboxing.  Very usefull stuff for allowing large numbers of people to collaborate effectivly on a large project or for running third party code inproc without security concerns.  Not much use for DB as currently designed.  If bots were code objects like in Terrarium (written in C#) then that would be another matter.   Features are great if you need/use them.  Their baggage if you don't.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Release date
« Reply #24 on: April 30, 2008, 01:37:27 PM »
I think it's closer to 10% than 20%.  That's been my experience (ported a 3D app from C++ to C#, both using Ogre (the C# version used a managed wrapper), and the experience of most people I've talked to.  The actual number varies with whatever is going on, but 10% seems to be the magic number.  And of course only 1% of the code uses 99% of the execution time in any CPU bound project (like Darwinbots), so that 10% overhead is very easily reduced if you can write key parts of your code in C++ or assembly or something like that.  So I'm very specifically ignoring any issues with constant code overhead, and instead entirely concentrating on the program's Big O.

I don't know much about Java, so it was never really in the running.  What I like about C# are things like run time reflection (ie: easily determining the type of an object at run time.  You can do this in C++, but there's a whole bunch of limitations that prevent me from doing fun things like BasePair bp = new BasePair("cond") easily), the huge .NET library, semi-easily interacting with unmanaged code (ie: with a little bit of work I can link with a regular old C++ library), greatly expanded exception handling (including things like a stack trace and line number), etc.  Garbage collection isn't something I either need or don't need.  It has its perks and downsides, like anything else, but it's far from the deciding factor.  If you like C++, and you spend time in C#, I can't walking away without good things to say about C#.  It's just a lot of fun to code in, and specifically has addressed language issues with C++ (I'm looking at you explicit cast conversions!).

gymsum, I'm actually getting pretty close to where a tester would be nice.  I'll create a topic in a month or so when I get that far (fingers crossed).
« Last Edit: April 30, 2008, 01:39:13 PM by Numsgil »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Release date
« Reply #25 on: April 30, 2008, 03:02:42 PM »
Quote from: Moonfisher
A history of popular FPS game engines, noticed Crysis is in C++, as are most of them...
http://upload.wikimedia.org/wikipedia/comm...8/Fpsengine.svg

Video game coders tend to be about a decade behind the curve as far as adopting new languages or ideas that the rest of the software industry embraces.  At my job right now, it's an uphill battle to use stl (I'm not allowed to use any of the containers, for instance), and most of the code would charitably be described as C with classes.  OO design is lacking at best.  On the other hand, it's pretty much solely video games that are driving any of the computing advances on PCs these days.  So it's a weird dichotomy of super high tech hardware and super ancient software.

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Release date
« Reply #26 on: May 01, 2008, 09:21:24 AM »
I was always under the impression that it was a performance and memmory thing. It seems easyer to optimize performance in C++.
But I'm not geting the impression they're behind the times though. Not sure C++ is to be considered ancient technology, it's an old language by now, but I can't imagine all these people are using it just because they know it better. It shouldn't take too long for them to learn C# if that's what they wanted to use...
Unreal Engine 3 just buildt their own scripting language for the engine, and generaly OOP seems to be rather important, you're not forced to make it OO but it invites you to do so, and most of the things you make will become a base for many different types (NPC's, weapons, projectiles, asf...) so you don't realy have a choice.
I'm assuming the reason they used C++ was because it was the language in which it was easyest for them to reach the performance they needed. If there was a better way I don't see why they wouldn't try it.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Release date
« Reply #27 on: May 01, 2008, 02:33:51 PM »
Adopting C++ is a very recent development.  Halo, for instance, was coded entirely in C.  Super Nintendo games were coded in assembly.  Programming with good OO design is rare in the industry, usually you have old salty programmers who like to code down to the metal in C or assembly still.  Ostensibly it's for performance reasons, but IMO this is a good case of Premature Optimization.
« Last Edit: May 01, 2008, 02:39:13 PM by Numsgil »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Release date
« Reply #28 on: May 01, 2008, 02:40:24 PM »
Also, codebases are old.  Word, Excel, etc.  have decades of history.  Porting is hard hard hard.   Code written in a specific language tends to stay in the language.
Many beers....

Offline Blacksmith

  • Bot Neophyte
  • *
  • Posts: 24
    • View Profile
Release date
« Reply #29 on: May 03, 2008, 02:48:24 AM »