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.
With so many programming languages out there, I find it a bit overwhelming choosing one to learn. Can anyone give me some suggestions given that I would like to program on windows and linux.
As you know a bit of C I would say learn this in more detail. I think C is powerful language to learn and fits in well with Linux. After you have spent some time mastering C I would suggest learn an objected orientated language say Python or C++. I am not a fan of Java but again that's just my opinion.
Note that C++ although widely used, does not force you to program in an oop style it just has support for oop.
IMHO it is not just worth learning the syntax of an oop language but you need to learn how to design your code to fit in with the oop methodology.
Smalltalk is a good language for oop as it is purely an oop language.
As for programming in Linux and Windows I would choose to use the GTK toolkit - google gtk, glade(interface designer) and anjuta (IDE) for more details.
I personally think C++ is a good one to learn. It has object oriented concepts and you have to learn pointers, memory management (all those good stuff). I have seen too many cases where Java programmers have no clue about those basic programming knowledge. C++ programmers ususally can learn Java pretty quickly, but not the other way around.
But that for learning how to program, for big software applications development, Java is the better than C++.
for compiler languages -> c/c++ has the widest capabilities
for interpretted, I'm just beginning to learn perl as we speak, but I'm likin it (its very powerful with regular expressions)
It also depends on what you want to do -- C is THE system programming language, C++ and Java are application programming languages, and there's Perl, Python, etc. for scripting. This isn't meant to "typecast" languages, but to illustrate what they are generally used for.
Another thing is don't learn a language, learn to program -- there's a difference. As a professor of mine once said (paraphrasing), languages come and languages go, but the fundamentals remain the same. So learn a bit about algorithms, data structures, computer organization, etc. Play with these concepts in multiple languages. That way you're not tied to just one, so you're not stuck if it goes out of fashion.
I' m still quite a n00b to programming, but taking ESR' s advice to learn the fundamentals with Python has worked out well for me... I like it a lot, especially the syntax. It has helped me understand bash scripting and javascript better, as well as object oriented programming. If you're a total nOOb (like me) this might be a good start.
I'm going to recommend either Scheme or C++...just because of my own personal experience. Scheme gave me a new perspective on programming and helped me understand how everything works, and, IMO, made it significantly easier to understand most other languages. C++ is the next best thing though.
To Phlx: FYI, Perl isn't intepreted, it's actually 'compiled' (sort of) at the start and the 'compiled' version is then run.
Read http://www.perl.com/doc/FMTEYEWTK/comp-vs-interp.html if you really want to know.
Anyway, the net upshot is that (for the same algo), it's about 80-90% as quick as C.
Pascal might be a good idea! I know that it's an old language, and that it is not really used now, however, it is good to learn, because it teaches
proper program structure, and includes functions and nearly everything else that is in c/c++. Colleges/universities here in the UK still teach Pascal for those reasons.
When it comes down to it, if you're really "serious" about programming, always go with a language that forces you to learn data structures, etc, because there are a few that do all the work for you, and make it much harder to learn new, more powerful languages. It's easy for someone who is good at C++ to pick up Java in no time, but the other way around, not so much...It's sad that many schools are cutting out these essential low-level languages in order to increase graduation rates here in the States. Good luck!
There is no universal language. Programming is also about choosing right language for exact task. Python is probably good to start with. You can use it further for common apps, GUI, fast development etc. But you will usually need more than one language.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.