Thread: Most Impacting/Powerful Future Programming Language

  1. #1
    Registered User
    Join Date
    Nov 2001
    Posts
    1,348

    Most Impacting/Powerful Future Programming Language

    Hello.
    I began my journey to learn and practice programming using C++ four nearly four months ago and everything has been full speed thus far. I have little problem learning C++ because I practice and practice. I made up my own projects. I have one of them done, which I believe it quite impressive. I am working on the second project, which is going well especially because of all the insight from members throughout the web.

    Sometimes I see students programming with Java. C++ is the first programming language I enjoy and made use of with in terms of practicality via projects. Frankly, I love C++! I would like to know how does C++ compare to Java in terms of extensiveness and future? Does C++ have the tools for anything if the programmer chooses to use them?

    I know Java is a server based language. However, I am seeing more and more people programming with Java. Is it easier to learn? Not that I have any big problem with C++. I wonder why people sometimes move from C++ to Java.

    Lastly, what is the future of C++ once Microsoft releases .NET? Already I am hearing people boast C#. Is it true C# is relatively Jave-clone? If yes, then that could make Java one step ahead of C++ if it infact has something that Microsoft has implemented in C#.

    Frankly, I do not see any limitation with C++. Maybe that is just because of my inexperience. What do you think?

    Kuphryn

    P.S. Is it better to know one language really, really well? Or is it better to know many languages?

  2. #2
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    Java is mostly an internet based language, it lacks the speed of other languages and therefore isn't practical for a good many applications, games, and operating systems. Though there are ways around this it kills the protability that java boasts. Java isn't any harder or easier to learn than any other language, but you do have the benefit of not having to learn how to use pointers because java doesn't let you use them.

    C++ is a very powerful OO language based off of a very powerful procedural language, C. Put simply...if you can't do it in C++, it can't be done. I recommend learning both C and C++.

    C#. I haven't personally used it, though it appears to be a cheap ripoff of java, but I have been told by many of my friends that it really sucks. I'm still waiting to see how John Q Public takes it.

    My recommendation? Learn as many languages as you can, but master the more commonly used ones such as C, C++ and Java.

    -Prelude
    My best code is written with the delete key.

  3. #3
    Registered User
    Join Date
    Nov 2001
    Posts
    241
    yeah, you should definitly try to learn as many languages inside and out, and ones with limits are also good. For exampl, I like C++, but I write most of my complex algorithums in TI-BASIC cause it is simple, and you don't get as many problems due to variable type or other stuff like than. Once it works, you can then easily convert it

  4. #4
    Fingerstyle Guitarist taylorguitarman's Avatar
    Join Date
    Aug 2001
    Posts
    564
    I beg to differ that java isn't fast enough. Nowdays, computers are incredibly fast and I know of a great many internet based games that play very well and were done in Java. In reality you only need to get about 30fps for animation (perhaps 60 would be a safer speed) and if you program correctly in Java you should have no problem reaching the needed speed. And I saw a thing on which two robots played chopsticks together perfectly. So Java is plenty fast. If you want to go that route then everything should be done in assembly.
    <Sighs> Enough of my rant.
    Java will never replace what C/C++ were designed for. It's main purpose is portability and embeded systems as well. I've started to program in Java again because it quick and flexible and I think it's hundreds times better than VB.
    So my contention is let's use C/C++ for serious projects and Java for rapid application developing so we can phase out VB.
    At least Java looks close to C++.

  5. #5
    Registered User
    Join Date
    Nov 2001
    Posts
    1,348
    After reading responses from members here and at other forums, I acknowledge that I agree that C++ is still the impacting/powerful language in the overall spectrum of software development, if not elite (it is to me).

    Again and again I see members post two positive points about Java: platform independence and built in memory and input validation standard class libraries.

    Platform independence:

    I do admire Java because of this even though I have no experience with it if in fact is how I envisioned it (programming in any OS). However, I do not quite understand how C++ could not be used in the same way. After all, a programming language is a language that we understand, while a computer understands only zero and one. Are there performance issues because of platform independence? SUN had to have implemented something, maybe build in libraries, that comes with all installation like DLL.

    Easy and Safe:

    This is really effective since the programmer would not have to spend as much time developing a unique way to safeguard against erroneous user input, and it is a timesaver since the programmer is confident that there is no memory leak; however, I believe that it is better to learn and develope the ability to solve programs using a language rather than relying extensively on something that someone else made for trivial issues. The fundamental of programming is to design a program that would make a job easier or solve problems. Is it not better to gain experience through doing rather than using? There are exceptions however. The exceptions are C++'s STL various SCL like string.

    One interesting point I read is knowing Java gives the programmer a different perspective on OOP since Java is OO.

    Kuphryn

  6. #6
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >Nowdays, computers are incredibly fast and I know of a great many internet based games that play very well and were done in Java.

    Yes, that's within the realm of Java superiority. But these are always relatively simple games, let's take this off the web and make a game like Quake III. Then you'll see the diference in speed. However, Java can write directly to machine code instead of using the virtual machine that gives it portability, that will certainly speed the program up to about average standards, but you lose most of the portability in that process.

    >In reality you only need to get about 30fps for animation

    Okay, what if the program does more than animation? Mulitplayer connectivity for example, that kinda requires that you coax all the speed out of the program that you possibly can.

    >If you want to go that route then everything should be done in assembly.

    Why use assembly when it's hard to understand, not intuitive, and well designed and implemented C programs can run just as fast?

    -Prelude
    My best code is written with the delete key.

  7. #7
    Fingerstyle Guitarist taylorguitarman's Avatar
    Join Date
    Aug 2001
    Posts
    564
    Actually, the games I'm thinking of are good 3D games. Java does incorporate with OpenGL and has great potential. It is still a new technology though, where C programmers have been doing this kind of stuff for a very long time. With each new version of Java it gets faster. I admit that interpreted Java can never reach the speed of compiled C. But there are new techniques that are bringing the gap down.
    And as far as losing portability in compiling? Portability is being able to compile the same code on multiple platforms which you can still do. Only the compilers are specific to the machine.

    >>Okay, what if the program does more than animation? Mulitplayer connectivity for example, that kinda requires that you coax all the speed out of the program that you possibly can.

    one word: threads.
    Java is a great distributed programming language.

    >>Why use assembly when it's hard to understand, not intuitive, and well designed and implemented C programs can run just as fast?

    The "well designed" programs that run just as fast often have a great deal of inline assembly because the compiler just can't be trusted to do the right thing all of the time.
    Plus many things that are difficult to do in C are very easy to do in Java.

  8. #8
    -computers read only 0 and 1

    Have you ever heard of Octadecimal? Or Hexadecimal? If I remember right, they replaced regular binary like 15years+ ago.

  9. #9
    Registered User
    Join Date
    Aug 2001
    Posts
    47
    Sure, programmers work in hex, but the theory behind modern computers is still founded on the base-2 number system.

    Anyway, back on topic:

    Go ahead, learn Java. The more you know, the better. But don't stop working with C++ when you start Java. Code more complicated things, and understand more complicated OO theory. Continue to challenge yourself with C++. Code algorithms for their own sake. Make an equation parser. Write a shortest-path algorithm (A*, perhaps?). Etc. Just do things that seem very hard and very complicated in order to practice not just C++, but the problem-solving process of programming. Also, make sure you really do know all of C++. Understand things like inheritance and polymorphism inside and out. They are at the base of any complicated OO program.

    C and C++ are the two big languages. They are used almost exclusively (with the occasional addition of some x86 ASM) for developing programs in which run-time speed is a priority. However, VB is used widely in application and database programming, since development speed is the priority there; Delphi is used here too, though not to the same extent as VB. Perl is still used extensively in CGI - though things like Java and PHP (which is a lot like C++) are now gaining more of that market. If you're interested in marketable skills, learn those languages. If you want to challenge yourself and learn new ways to think, look at Prolog. Prolog is a very academic language, and is used in things like artificial intelligence research and natural language processing. Its practical uses in industry are few, but if you want to progam for the sake of learning instead of the sake of producing, then you may want to look into it. Personally, it's a bit much for me, though; I prefer procedural (OO or not) programming.

  10. #10
    Registered User
    Join Date
    Nov 2001
    Posts
    1,348
    C++ originated from C.

    Java derived from C++ (syntax, I think).

    C# derives from both C++ and Java (right?).

    Ultimately, what do you think C++ *needs* so that it is the language to know like, say, English?

    I understand that C++ does have the tools for practically anything if the programmer wants to create an entirely new class template for a particular problem. However, I have seen members posting that C++ is a hack of from C. What is the difference better a hack and an innovative change? Is it the differece between modifying and incorporating a whole new algorithm?

    So in the end, what does C++ need in order to eliminate some familiar flaws and how will developers come up with such solutions (since C++ is not backed by big corporations)?

    Kuphryn
    Last edited by kuphryn; 12-07-2001 at 03:29 PM.

  11. #11
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    >>Ultimately, what do you think C++ *needs* so that it is the language to know like, say, English?


    I dont think we this could ever be the the case........Java, C/C++, Delphi, VB...they all have their strengths and weaknesses and so are used according to the situation. You take away say the direct memory access of C/C++ and you might have a language that creates less error prone programs, but then you lose some of the cool adaptability that the language once had.....No language can properly cater for all eventualities.

  12. #12
    Registered User
    Join Date
    Dec 2001
    Posts
    88
    First of all:
    Java wasn't designed for applications!!! so don't use it for apps -> for applets java works quite well and i won't miss it...

    > Also, make sure you really do know all of C++ <
    what? oh man, you can never know all of a language like C++

    would suggest to learn the basics of as much language as possible! and the most important thing is: to learn the concepts!! learn how to structure a programm and how OOP works...

    time goes by and so languages do! in 20 years we maybe write in C#++ or so ;-) but the concepts won't change much -> ok, maybe in 20 years there will be a new concept better than OOP :-)
    Hope you don't mind my bad english, I'm Austrian!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. assembly language...the best tool for game programming?
    By silk.odyssey in forum Game Programming
    Replies: 50
    Last Post: 06-22-2004, 01:11 PM
  2. Language of choice after C++
    By gandalf_bar in forum A Brief History of Cprogramming.com
    Replies: 47
    Last Post: 06-15-2004, 01:20 AM
  3. Enough language discussions.
    By VirtualAce in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 06-13-2004, 09:59 AM
  4. Another new language? F sharp (F#)
    By XenoCodex Admin in forum A Brief History of Cprogramming.com
    Replies: 7
    Last Post: 07-07-2002, 03:20 PM
  5. The devaluation of the English (or American) language
    By Aran in forum A Brief History of Cprogramming.com
    Replies: 36
    Last Post: 09-03-2001, 02:12 PM