Go Back   Champions of Regnum > English > The Inn

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

Reply
 
Thread Tools Display Modes
Old 08-08-2008, 06:05 PM   #21
magnet
Count
 
magnet's Avatar
 
Join Date: Jul 2007
Location: France
Posts: 1,416
magnet is on a distinguished road
Default

Quote:
Originally Posted by Solarus
First ask yourself what you would like to do when you complete schooling. Just saying "I want to write software" isn't going to cut it. Your answer will dictate what you should learn first.

Once you learn any language, learning others will come easy but you need to make sure you have a decent mastery of the language used in whatever you wish to do when school completes.

Let me give you an example of statistics from the USA.

If you do a search on monster.com you'll find that currently nation wide there are about 1000 jobs that use python, perl and the like. There are over 5000 jobs posted that use C or C++, over 5000 jobs that use Java, and over 5000 jobs that require knowledge of Linux platforms.

Not sure what country you are from; however, I would concentrate of the fundementals of C/C++ on a *NIX platform. Then pick up other languages on your own. Truly using C/C++ can be complicated so having an instructor available is EXTREMELY useful. Other languages like python, perl, ruby, etc are a walk in the park.

I do this professionally and I spend alot of time as a professor for software applications and programming. Look at what the market needs and hone your skills accordingly. Otherwise, you'll be an out of work hack....plain and simple.
I totally disagree. The guy is a highscooler. He is planning on going to the uni next year(s). For now the best thing for him is to stay away from technical details and learn programming with languages that help rather than languages that hinder.

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.
magnet no ha iniciado sesión   Reply With Quote
Old 08-08-2008, 07:33 PM   #22
ArcticWolf
Duke
 
ArcticWolf's Avatar
 
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
ArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of light
Default

Quote:
Originally Posted by magnet
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).
Magnet, C and ASM will never disappear, but indeed the demand of programmers using this language will drop substantially. You can't write a kernel without C and ASM, and write some apps in C++. Yes, it's true that Java and Python will play a major role in the future, but I still think that C, C++ and ASM are advisable if you plan to do some low-level programming (at least as a hobby).

Python is perfect for small projects and games. Java is awesome in portability for small apps. You can even use both of them to write net apps, and the deploy would be just "download and run". I'm not a programmer, just a beginner, but I can say that Java + Python (I still have to master the latter) are perfect for my needs.

As a side note: once you learn to program then you can use any language. Hey, lisp is not that difficult once you get it. Oh, and once you learn the sintax of any c-like language, then it will take you just some weeks to switch to other c-like one.
__________________
I don't have a solution, but I admire the problem.
ArcticWolf no ha iniciado sesión   Reply With Quote
Old 08-08-2008, 07:48 PM   #23
Comp
Count
 
Join Date: Jun 2007
Location: Jippy's Mom's House
Posts: 1,286
Comp will become famous soon enough
Default

Sorry, misunderstood...thought he was in college. If that's the case.....learn whatever you want because by the time you get into college the workforce may have changed drastically....you never know.

However, if you only want to be an application level programmer then yes....python, java, etc will be great. If you ever want to do operating system, device drivers, or system level engineering then lower level languages is what is needed. I myself live in C, use perl for scripting, and make portable GUIs using PHP and XML. Previous job I wrote ColdFusion and Java....
__________________
Compost (60 Hunter) Alsius
Compoundious (Dead and gone...)
Comp no ha iniciado sesión   Reply With Quote
Old 08-08-2008, 09:31 PM   #24
magnet
Count
 
magnet's Avatar
 
Join Date: Jul 2007
Location: France
Posts: 1,416
magnet is on a distinguished road
Default

Quote:
Originally Posted by Xephandor
Magnet, C and ASM will never disappear, but indeed the demand of programmers using this language will drop substantially. You can't write a kernel without C and ASM, and write some apps in C++. Yes, it's true that Java and Python will play a major role in the future, but I still think that C, C++ and ASM are advisable if you plan to do some low-level programming (at least as a hobby).
Who said they would disappear? C is special. Read again what I said. ASM is special, but no one actually needs to learn it, you can understand it without learning it. Only times I ever coded in ASM were in my studies (for MISC, RISC, ARM, x86...) or when I wrote a compiler (for my studies). If I were to write a compiler again I would output Java bytecode.

Anyway, I'm answering to the problem at hand. A beginner should stay away from C and ASM. And as an hobbyist, I would enjoy Python and its ability to make real, live applications much, much more.
__________________
magnet no ha iniciado sesión   Reply With Quote
Old 08-08-2008, 10:11 PM   #25
ArcticWolf
Duke
 
ArcticWolf's Avatar
 
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
ArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of light
Default

Quote:
Originally Posted by magnet
Who said they would disappear? C is special.
Nobody, but I thought it was good to point it out
__________________
I don't have a solution, but I admire the problem.
ArcticWolf no ha iniciado sesión   Reply With Quote
Old 08-08-2008, 10:30 PM   #26
Eli2
Apprentice
 
Eli2's Avatar
 
Join Date: Jun 2007
Posts: 73
Eli2 is on a distinguished road
Default

I personally think the less resouces you have,
the more you should swich to lower level languages.

Just use what solves the problem most elegant and efficiently.
You don't need to be portable,
if you sell a whole product.

Mono is in a really good state.

If you work in a very small team you got to be flexible in terms of languages.

Edit:
If you like stuff like this, welcome to c ^^.
Code:
void UartPutPackage(void *data, unsigned char len)
{
    unsigned char i,c;
    
    for(i=0;i<len;i++){
        c = *( (unsigned char *)data+i );
        uart_putc(c);
    }
}
Edit2:
The challange is, how to optimize this code.
__________________
Regnum: It's Highly Addictive!

Last edited by Eli2; 08-09-2008 at 01:39 AM.
Eli2 no ha iniciado sesión   Reply With Quote
Old 08-09-2008, 04:38 AM   #27
Mikan
Baron
 
Mikan's Avatar
 
Join Date: Jul 2007
Location: In Nekoko's lap ;)
Posts: 768
Mikan has a spectacular aura aboutMikan has a spectacular aura about
Default

To those arguing about C# vs Java, I just want to say I think Java is superior, because:
* It's unencumbered by patents and other issues that will plague C# in the future
* It's currently more portable and far better supported
* It can be compiled natively now (gcj) with execution performance similar to C++

And:
* In the case of web applets, there is a 90% chance of it running in any user's webbrowser (simlar to Flash)
* NetBeans offers Rapid Application Development (RAD) on a level similar to Visual Basic
* There will simply always be more jobs for Java programmers

It's true that the language is a little worse, but not by much, considering.

Regards.
__________________
Hannah AmelieCatalina NevenaAlicia Godwyn
Alsius Horus ✝ No chance of victory, no chance of defeat ✝ Frozen Flame
Individually, we are one drop. Together, we are an ocean. An ocean of drama.
Mikan no ha iniciado sesión   Reply With Quote
Old 08-10-2008, 05:56 AM   #28
Rising-Phoenix
Pledge
 
Join Date: Nov 2007
Posts: 1
Rising-Phoenix is on a distinguished road
Default

Quote:
Originally Posted by magnet
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.
Why is this?

Quote:
Originally Posted by solarus
First ask yourself what you would like to do when you complete schooling. Just saying "I want to write software" isn't going to cut it. Your answer will dictate what you should learn first.
At first I intended to work with anti-virus protection software or things similar to this, but instead now my interests have turned towards the gaming industry, wishing to code in game work.



I have to say Eli2 that the introduction to C you just showed is very off putting



The language that I know most in is SQL though I have not spent to much time sutdying that. Only 3 months worth of study in school.
Rising-Phoenix no ha iniciado sesión   Reply With Quote
Old 08-10-2008, 06:03 AM   #29
ArcticWolf
Duke
 
ArcticWolf's Avatar
 
Join Date: Nov 2006
Location: 0x00CAFE
Posts: 3,366
ArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of lightArcticWolf is a glorious beacon of light
Default

Because C and C++ are too complex if you want to write software for many OS's, I guess, and because Python & Java programs are platform independent, easy to write, maintain and deploy.
__________________
I don't have a solution, but I admire the problem.
ArcticWolf no ha iniciado sesión   Reply With Quote
Old 08-10-2008, 10:57 AM   #30
Rising-Phoenix
Pledge
 
Join Date: Nov 2007
Posts: 1
Rising-Phoenix is on a distinguished road
Default

Quote:
Originally Posted by Xephandor
Because C and C++ are too complex if you want to write software for many OS's, I guess, and because Python & Java programs are platform independent, easy to write, maintain and deploy.
Oh true, thanks Xephandor.


I have another issue, when I try to download python I get an error message saying:

Quote:
This installer package is not supported by this processor type. Contact your product vendor.
I am hoping one of you know what is wrong?
Rising-Phoenix no ha iniciado sesión   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:34 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
NGD Studios 2002-2024 © All rights reserved