The future of programming...

Started by
48 comments, last by Razorpro 19 years, 6 months ago
Ok. I know that the majority of the programmers at GDNET use C++, and C. But lets face it, 5-6 years from now, computers will be fast enough that we can allow to compromise speed for productivity. Things like Java and .NET will be considered fast enough, even for games. New languages will emerge. As I see it, after implemeting more realistic physics, the next thing will be AI. Unless we get some spectacular new development in this field, we won't be seeing any leap. So instead, games will have to have more levels, characters, etc. Also, longhorn will speed up all .NET applications, because .NET is essentially a part of the OS, so there is not as much over head. Here is my question: over the course of the next few years, what major changes will we see in terms of language syntax, standards, speed vs. productivity, ide's, and RAD? What about game development? How will the process change?
Advertisement
I predict that in the future, computers will be fast enough that people will feel free to waste billions of cycles for virtually no gain, but that even in those days there will be a need for people to write in low/medium-level languages like assembly and C++ because there will always be problems that require nondeterministic polynomial time (well, unless somebody proves otherwise =-).

Over the next few years, I predict that virtually nothing changes. Dot Net might become more popular (and other similar events might occur), but I don't predict a language revolution any time soon.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Yeah, but 10 years from now, I can super JIT optimize my program, something that would take 20-30 minutes right now, and have what, .001% speed compromise? Of course things like word will have shit loads of AI in them, and keyboards will be less and less used. I think programming languages will be designed so that we can speak it without saying "if" "open parentheses" ...
Quote:Original post by Sagar_Indurkhya
Ok. I know that the majority of the programmers at GDNET use C++, and C. But lets face it, 5-6 years from now, computers will be fast enough that we can allow to compromise speed for productivity. Things like Java and .NET will be considered fast enough, even for games. New languages will emerge.

Plenty of people consider them fast enough as it is, and new languages emerge all the time.

Quote:Original post by Extrarius
I predict that in the future, computers will be fast enough that people will feel free to waste billions of cycles for virtually no gain, but that even in those days there will be a need for people to write in low/medium-level languages like assembly and C++ because there will always be problems that require nondeterministic polynomial time (well, unless somebody proves otherwise =-).

Unless I misread you terribly (which, going on ~2 hours of sleep, I concede is possible), this is a property of the algorithms, not of the implementations; what do low-level languages have to do with it?
Computers are already fast enough to handle most applications in "modern" languages like Java and C#.

Besides people will always find new ways to send any super computer to a crawl. Therefore some of us will have to continue writing über optimized sphaghetti C, while the majority just think they need it.

However the reason most of us stick to C++ is just inertia.
The problem with the comments above is that when you say Longhorn is part of "the OS", you mean "Windows". Windows is not a realtime operating system which is necessary for an awful lot of stuff. So, I don't really see .NET taking over the planet, unless Linux, UNIX, etc, go the way of the dinosaur, which I don't consider very likely.

Java is a bit more likely, but so much is in C++ right now that it's more likely to be used in conjunction than instead of. Reusability is a big thing in industry, most of them are simply not going to have the cash, especially in this economy, to rewrite their entire source base in another language, nor are they likely to see a reason to. Yay inertia.

-fel
~ The opinions stated by this individual are the opinions of this individual and not the opinions of her company, any organization she might be part of, her parrot, or anyone else. ~
Quote:Original post by felisandria
Java is a bit more likely, but so much is in C++ right now that it's more likely to be used in conjunction than instead of. Reusability is a big thing in industry, most of them are simply not going to have the cash, especially in this economy, to rewrite their entire source base in another language, nor are they likely to see a reason to. Yay inertia.

-fel

It's a good thing then that you can reuse a lot of your C++ source code with .Net. [grin] Especially with C++/CLI.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

Whenever I see a sentence like "computers are/will be fast enough to ..." I feel like killing something innocent! [smile]

Yes - the computers will be faster, but I don't think, that's an excuse for being lazier (do less algorithm-level optimalizations). Java is already fast enough for things like theese and so are other languages. But Java is very often used in database programming or simillars, not games. There are so many languages, because every language has its purpose (C++ has evolved from C which is designed to be portable assembly, Java designed to be plattform-independent).

And for games - faster computer, means you can do more calculations within the same amount of time. So the number of effects will increase, the physics will be better and so on. The games will be still as fast (or slow) in means of frames rendered per second. The graphics will be nicer and nicer, the physics more and more acurate. And the rendered scene will still be so different from real world scenes, so the computer will still be too slow to be able to render real-world like looking scenes. (And if this had been possible once, the graphics would have moved to a higher level)

Oxyd
I recall hearing that the AI field has been stuck since the eighties. I also recall hearing a Knuth quote to the effect of, "any programming language attempting to mimic spoken language is doomed to failure."

Your future is now. GD.net just happens to house some very vocal C++ advocates. I expect future languages to continue to slowly pull features from functional languages and tout them as new and exciting. It certainly seems to be the dominant trend right now. (oooooo lambda functions in C# what a revolutionary concept!!)

I see games becoming something of a sport. You already see it with games like Counterstrike, but since most* games don't have a concept of virtual athleticism, you need fairly deep gameplay to keep people immersed for long periods of time. I am talking about skills that must be learned and practiced and are unfamiliar to the average FPS gamer. Skills that enhance the gameplay and shatter expectations.

Meanwhile, the MMOs will continue to afflict those with addictive personalities, but there won't be as many.

* Tribes has the best approximation of virtual athleticism I have seen.
--God has paid us the intolerable compliment of loving us, in the deepest, most tragic, most inexorable sense.- C.S. Lewis
Quote:Original post by Miserable
[...]
Quote:Original post by Extrarius
I predict that in the future, computers will be fast enough that people will feel free to waste billions of cycles for virtually no gain, but that even in those days there will be a need for people to write in low/medium-level languages like assembly and C++ because there will always be problems that require nondeterministic polynomial time (well, unless somebody proves otherwise =-).

Unless I misread you terribly (which, going on ~2 hours of sleep, I concede is possible), this is a property of the algorithms, not of the implementations; what do low-level languages have to do with it?
You are correct that algorithms determine the order of time, but that is only the 'number of steps' so to speak to complete the algorithm. If each step takes 0.1% longer in Java (for example), and you're doing trillions of them, it adds up to "using lower level languages to get that 0.1% speed increase can make a BIG difference in run time" =-)

Of course, that really applies to scientific programs more than anything else. We already have enough processing power to make great(as in fun, meaning good gameplay and potentially mediocre 2d graphics, sound, etc) games in any language that I know of.

Quote:Original post by Sagar_Indurkhya
Yeah, but 10 years from now, I can super JIT optimize my program, something that would take 20-30 minutes right now, and have what, .001% speed compromise? Of course things like word will have shit loads of AI in them, and keyboards will be less and less used. I think programming languages will be designed so that we can speak it without saying "if" "open parentheses" ...
I don't see any huge increase in computing power over the next 10 years really. Sure we might have quad 4GHz machines as the default, but not everything can be made out of paralell building blocks. I guess as far as java goes, you could have 3 processors compiling various classes and 1 processor actually running the code, but I wouldn't really count that as 'faster' unless the binary is cached so you only have to compile it once. I'd hate to have to wait 5 minutes each time I want to start up notepad just because it was written in a language where the program had to be recompiled on each run.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk

This topic is closed to new replies.

Advertisement