|
|
The Inn A place to gather around and chat about almost any subject |
View Poll Results: What language is better? | |||
C | 9 | 64.29% | |
C++ | 5 | 35.71% | |
Voters: 14. You may not vote on this poll |
|
Thread Tools | Display Modes |
08-08-2008, 06:05 PM | #16 | |
Count
Join Date: Jul 2007
Location: France
Posts: 1,416
|
Quote:
Python will do just that, allow the user to think on the problem at hand rather than on whether the compiler will yell at a forgotten semi-colon with a totally unrelated error. C++ has the bad habit of exposing way, way too much to the user, and giving him too much control. The subtleties with plain old data object, pointers, references, the lack of proper template support (export), the linking process are too much to handle for a beginner. He has to focus all on the language itself rather than on programming. C++ tries to cover the whole tower, from low level to so-called high level, whereas the proper approach is to use different bricks made in different languages, all less complicated and more appropriate to the problem. There is no unique language for all problems, just like there is no unique solution for all problems. As a computer scientist I really don't recommend C++ for any task except very very specific systems -- and even then you should just write a component in C++ and use another language through bindings. You talk about the market for programmers, but the guy is just a highschooler, there are at least 3 or 4 years before he starts programming professionally. You will see that the demand for C and C++ programmers will decrease in that time, and Python and Java programmers will increase. As I said earlier I don't think Python is perfect, very far from it, but it is awesome for learning, and for small projects. C, on the other hand, is a language that every programmer should know. It is very simple and elegant, however the concepts involved, once again, which are low-level details are totally useless to the beginner. Any half-assed Python programmer will at some point have to program in C to make a fast Python module using C anyway; and Python mimics most of the C library, then wraps it (Guido Van Rossum and other Python devs are C fans). However C is easy to learn if you have to focus only on the language rather than on the problem. C++ is very hard to learn as a language. I have been using it for years before, and I was in the ##c++@freenode help team; most questions we received show that most self-proclaimed C++ programmers don't master the very language they work with daily. As a matter of fact I used to be a C++ enthusiast, I loved the challenge of fighting both with the problem and the language, having the total freedom C++ grants to the programmer, using all features like changing memory handling routines (new operator) or defining operators as methods to give a nice look to the library (ha, an old SQL wrapper I made to make queries using a thread-safe ostream wrapper I made, with start transaction, callbacks and commit objects) etc. But this isn't programming, this isn't useful, this is obfuscation and really sane people should stay away from it . Regarding Eli's post and C# vs. Java, I just think that the 30% of goodness of C# justifies the lack of portability (because most C# programmers will not care about Mono and use unimplemented features and libs), and the lack of a global patent protection over C# implementations. Sun is moving towards making the JVM the "Sun VM" and more languages are being implemented, just like the .NET platform. Already available are Python through Jython, Scala (an awesome language that buries C#) and I'm sure more are to come. And the whole stack is going to be Free as in Freedom. The problem here is ethical/political, I just wish people didn't drink Miguel de Icaza's kool aid.
__________________
Last edited by magnet; 08-08-2008 at 06:18 PM. |
|
|
|