Edit a bit after posting: Hmm I hope this isn't something people had imagined would go in the DD, by the way. IMO this stuff doesn't belong there.
On programming language, I think a hybrid compiled/scripted solution would be the most flexible.
I think C or C++ is the best choice for a compiled language, mostly because they are proven, and lots of libraries exist for them already. The best argument for C would be simplicity. I think it's easy to learn (unless you don't have any programming knowledge beforehand) and there's a limit to how much "logical spaghetti" you can create. C++ allows for some very powerful/complex constructions especially using it's templating feature, which is IMO both a power and a weakness, because it can create exatcly that "logical spaghetti". Object oriented programming is almost a must though, so I think C++ will be the way to go. But as far as I'm concerned, almost any language will do, except VB, assembler and machine code

Now, on the scripted stuff I was talking about. I think it will be a great solution to put much of the actual game logic into some kind of dynamically compiled files. It can allow for faster development by simplifying the coding/testing cycle, because it removes the usual compilation step. Theoretically, it would even be possible to edit the code while the game is running!
This of course isn't a new idea, and I belive the currently most used solutions (apart from proprietary solutions used in some places) are Python and Lua. Of those, I've only tried Lua myself, integrating it into a Delphi application, which went very smoothly. Another possibility might be TinyCC, but I don't know how good a choice C would be for "scripting". (Also see my discussion about file formats below.)
Another topic that has previously been discussed was compiler choice. I think that's a moot discussion, since the obvious answer is: Every single compiler you can imagine. We'll just #define us out of it.
Now, on data file formats.
I believe we should aim for using open file formats and compression algorithms as far as possible, and attempt to avoid know-patented technologies, even if the patents aren't valid in the countries where the developers live. For sound, that would mean Ogg Vorbis, which has been proven as an excellent format numerous times before, and FLAC can be used in case we need "lossless" sound.
For images, PNG would most likely be the format of choice for most graphics, but we would probably also want to support some kind of lossy graphics compression. I believe JPEG is an option for that?
Also, if we need vector graphics for something, SVG would be a choice, I believe. I haven't had a real look at it myself, though, but I know it's used a bit in recent GNOME distributions.
The format for 3D models should probably be dictated largely by the choice of graphics engine, and what's easiest to generate models for. (Of course the choice of engine should also be affected by that.) I don't know enough about this to comment on any formats.
What's most interesting though, IMO, is object description formats. (Eg. how to describe a new vehicle to be available in the game.)
Many people immediately scream XML when it comes to this, but I think the most flexible solution would really be to use "scripted data files" for object descriptions! This is also one of the reasons I think a hybrid compiled/scripted language solution is good.
I think most people here have an idea of what can be done with GRF files in the TTDPatch alpha versions, and I'm sure everybody would want TE to be able to do the same (and more?), but in a much easier way

The final thing I want to discuss is the choice of a graphics (and perhapd also sound) engine. People have mentioned SDL and CrystalSpace. I think someone also said something about CS being best suited for FPS-style uses, and not so much for isometric-like almost-top-down views, like we'll need much of the time.
With SDL, we would (correct me if I'm wrong) still have to write most of the actual 3D stuff ourselves, since it only provides an operating system neutral interface to OpenGL. This is much more work. On the other hand, the developers would have to learn how to use another pre-written 3D engine we we choose such a one, and that could perhaps turn into just as much work.
I think a graphics engine would need to support not having actual displayable 3D data generated the entire landcape at all time. Also it's an obvious requirement that it must support PiP (picture in picture) for smaller views in eg. vehicle windows. Finally, I think it would be really great if we could have multimonitor support, perhaps with a separate viewport on each monitor. (So you could basically work in full screen on two different areas of the map at one time, given your hardware can support it.)
Hmm, this turned into a rather long essay

RFD
And if someone thinks this thread covers too many topics (it probably does) feel free to split it
