Punch-M6.net
Baseband Member
- Messages
- 37
I've started to compile a list of pros and cons of various programming languages, partially from personal experience and partitially from various sources scattered around the net. I found it a useful activity for myself, and thought it might help others as well.
Java
Programming in Java is very similar to C/C++ development. It is object-oriented and well structured. There is wide usage of Java, and therefore there are a lot of libraries around that can be used in your Java program.
Pros:
· Java is platform independent, it can be run on everything.
· It's free, you can just download the SDK and go.
· It's easy to learn if you know C or C++.
· Provides automatic memory management.
· Large library of pre-built classes and many more available from around the net
· It's quite safe. It's fairly hard (if not impossible) to damage your computer through programming in Java.
Cons:
· Speed. Java is quite slow, because it is essentially compiled at run-time by the system's virtual machine.
· Difficult to compile into a stand-alone application.
· Memory pointers not allowed.
· Some people dislike being forced into object oriented programming. But that's their problem.
C
C has been around for years and has a large following. It is used by many, many different people around the globe. Many other programming languages were written in C.
Pros:
· Large usage base. Easy to find help, other programmers, libraries etc.
· Simple core language, with further functionality being added through the use of libraries.
· Very powerful. If your computer can do it, it can do it through C.
· Low-level unchecked access to computer memory using of pointers.
· One of the fasted running languages.
· C code can be used in C++ applications.
· Programs are compiled and stand alone, no need for interpretters (sometimes external libraries will need to be installed on the target PC).
Cons:
· Relatively difficult to learn.
· Very little safety net. If you choose (accidentally or otherwise) to make a program that will access memory incorrectly and cause problems with your system, it won't stop you. It only pulls you up on compile errors.
· Non trivial programs could be hard to port. Programs have to be compiled for each specific platform.
· Not strictly object oriented.
· Code can get messy easily.
C++
C++ is a derivation of the C programming language. C code still works in C++ programs. It is an object-oriented language and very powerful.
Pros:
· As close to a universal programming language as you're likely to get at the moment. It's used everywhere.
· Object oriented technology included, highly supported and recommended, but not forced upon you.
· Programs are stand alone, no need for interpretters (sometimes external libraries will need to be installed on the target PC).
· Easy to port to other platforms if standard C++ guidelines are adhered to.
· Many libraries available for added functionality.
Cons:
· Quite difficult to learn. You'll never really stop learning new things about it (which is also a pro, I guess)
· Non-trivial programs aren't easily ported if they use platform-specific libraries (e.g. DirectX etc.)
· Programs can be slightly larger and slower than those programmed in C. (Note that in general you're never going to notice, but in theory it's true)
Visual Basic
Visual Basic is a very easy language to use. It's code is similar to Pseudo-code, and many times the developer can simply type what they think should work and it does. Which is cool.
Pros:
· Very easy to learn
· Quick to implement an application or algorithm
· Lots of in-built functionality
· Recently added complete OOP support with the .Net upgrade.
Cons:
· Not as flexible as other languages. Can't do as much.
· Runs slower than C/C++
· Purely a Microsoft product and Windows based.
.Net Environment
Not really a programming language, but closely related.
The .Net environment is a relatively new creation of Microsoft's. It adds an overall cohesiveness to various programming languages by compiling them into a standard form that is interpreted by an intermediate language between the code and the OS. In this way it is similar to Java. The creation of the .Net environment means that the method of programming basically comes down to personal preference.
Pros:
· Easy-to-use tools may increase programmer productivity
· Has a strong framework for building rich graphical user interfaces
· Gives developers choice of working in more than 20 programming languages
· Is tightly integrated with Microsoft's operating system and enterprise server software
· Has built-in support for Web services standards
Cons:
· Users of prior Microsoft tools and technology face a potentially steep learning curve
· Choice of integrated development environments is limited
· Getting older applications to run in the new .Net environment may require effort
I'll come back and add more as I update the list.
Java
Programming in Java is very similar to C/C++ development. It is object-oriented and well structured. There is wide usage of Java, and therefore there are a lot of libraries around that can be used in your Java program.
Pros:
· Java is platform independent, it can be run on everything.
· It's free, you can just download the SDK and go.
· It's easy to learn if you know C or C++.
· Provides automatic memory management.
· Large library of pre-built classes and many more available from around the net
· It's quite safe. It's fairly hard (if not impossible) to damage your computer through programming in Java.
Cons:
· Speed. Java is quite slow, because it is essentially compiled at run-time by the system's virtual machine.
· Difficult to compile into a stand-alone application.
· Memory pointers not allowed.
· Some people dislike being forced into object oriented programming. But that's their problem.
C
C has been around for years and has a large following. It is used by many, many different people around the globe. Many other programming languages were written in C.
Pros:
· Large usage base. Easy to find help, other programmers, libraries etc.
· Simple core language, with further functionality being added through the use of libraries.
· Very powerful. If your computer can do it, it can do it through C.
· Low-level unchecked access to computer memory using of pointers.
· One of the fasted running languages.
· C code can be used in C++ applications.
· Programs are compiled and stand alone, no need for interpretters (sometimes external libraries will need to be installed on the target PC).
Cons:
· Relatively difficult to learn.
· Very little safety net. If you choose (accidentally or otherwise) to make a program that will access memory incorrectly and cause problems with your system, it won't stop you. It only pulls you up on compile errors.
· Non trivial programs could be hard to port. Programs have to be compiled for each specific platform.
· Not strictly object oriented.
· Code can get messy easily.
C++
C++ is a derivation of the C programming language. C code still works in C++ programs. It is an object-oriented language and very powerful.
Pros:
· As close to a universal programming language as you're likely to get at the moment. It's used everywhere.
· Object oriented technology included, highly supported and recommended, but not forced upon you.
· Programs are stand alone, no need for interpretters (sometimes external libraries will need to be installed on the target PC).
· Easy to port to other platforms if standard C++ guidelines are adhered to.
· Many libraries available for added functionality.
Cons:
· Quite difficult to learn. You'll never really stop learning new things about it (which is also a pro, I guess)
· Non-trivial programs aren't easily ported if they use platform-specific libraries (e.g. DirectX etc.)
· Programs can be slightly larger and slower than those programmed in C. (Note that in general you're never going to notice, but in theory it's true)
Visual Basic
Visual Basic is a very easy language to use. It's code is similar to Pseudo-code, and many times the developer can simply type what they think should work and it does. Which is cool.
Pros:
· Very easy to learn
· Quick to implement an application or algorithm
· Lots of in-built functionality
· Recently added complete OOP support with the .Net upgrade.
Cons:
· Not as flexible as other languages. Can't do as much.
· Runs slower than C/C++
· Purely a Microsoft product and Windows based.
.Net Environment
Not really a programming language, but closely related.
The .Net environment is a relatively new creation of Microsoft's. It adds an overall cohesiveness to various programming languages by compiling them into a standard form that is interpreted by an intermediate language between the code and the OS. In this way it is similar to Java. The creation of the .Net environment means that the method of programming basically comes down to personal preference.
Pros:
· Easy-to-use tools may increase programmer productivity
· Has a strong framework for building rich graphical user interfaces
· Gives developers choice of working in more than 20 programming languages
· Is tightly integrated with Microsoft's operating system and enterprise server software
· Has built-in support for Web services standards
Cons:
· Users of prior Microsoft tools and technology face a potentially steep learning curve
· Choice of integrated development environments is limited
· Getting older applications to run in the new .Net environment may require effort
I'll come back and add more as I update the list.