ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
It means that if you learn C, than you have a light weight language and you will need to look toward learning system interfaces and windows toolkits that are platform specific. In other words you will generalize towards native software architectures and even hardware architectures. On the other hand, Middleware Java is more or less an all in one package. You just have to learn the vendor classes of which there are several thousand that are organized into a namespace heirarchy. You can create your own libraries, but for the most part you will just be specializing premade classes (extending them). You will be a specialist that finds information needs through vendor libraries and you will not be encouraged to learn system interfaces or native toolkits.
It has to do with the programmers focus. Use middleware if you don't plan on joining an open source team or working as a system developer for a software corporation like Sun or Microsoft. (although there is some open source java work being done through the Apache Jakarta group ... but you are not forced to join teams if the vendor libraries meet your needs).
If you want to join an open source team and build systems, and perform research and development, than learn C or C++.
Originally posted by mhearn C is most certainly not more powerful than Python.
What? It IS more powerful than Python.
Quote:
Originally posted by mhearn The reason people say C has more power is just that more stuff is written in C, so you have access to more code, and because it's lower level you have more hardware access, so you can do more stuff.
Doesn't that contradict your last statement?
Quote:
Originally posted by mhearn [pointers] are also the easiest to get wrong.
Yeah ... at first. It gets easier though.
Quote:
Originally posted by mhearn It's perfectly possible to write desktop apps ...
yep ....
Quote:
Originally posted by mhearn ... and even games using Python.
! What? Like what? Tetris & Dr. Mario maybe, but not anything like Myst or Half-life.
Quote:
Originally posted by mhearn But right now you can get more done in C even if it's harder, just because that's what everybody else uses.
No, you can get more done in C because there are things you just can't do in Python (like access the BIOS, or direct hardware/video access) thus making C a more powerful language.
Powerful is a pretty subjective term, surely? I think you could say that Python is more powerful than C in that it has more economy of expression (Python programs are almost always shorter than an equivelent C program), but C is more powerful than Python in that there are more libraries for it.
What's all this stuff about C giving low-level hardware access, though? You need assembler to do that...I suppose it's easier to use assembler with C than it is with Python.
a nice feature of python is that you can plug C right into it. if you have sections of code that need more hardware control/speed. http://python.org/doc/current/ext/ext.html
lol. ok. don't get carried away or confused.
it seems that you want to program in C at the end of the day. so why are u talking about / learning python?
if you want to learn C, stick at it. if you wanna learn python, then learn python.
languages are just that: languages. they can be learnt over a period of time. all u really need is the mind to think the way a programmer thinks. the language is only a tool. a means to an end. i seriously doubt that you can be classified as generalist or specialist by the language you specialize in (pardon me, it's just a point of view).
different languages were created to address different problems of their time. what is it you want to do? knowing the answer to this would help you decide on the language you want to learn.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.