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.
This question might need a little framing, so bear with me.
I was previously in tech support with a heavy Windows focus, but I'm not interested in pursuing that any further... So I decided to go back to school, and I'm meandering toward a dual degree - one in health care (who would guess?) and the other in computer science. Who's to say if these interests will converge at some point in the future. Where the option exists, my CS coursework is geared in the direction of nix platforms. I'm a programming newbie; I fell into it through an affinity for databases.
What are the best languages to learn, read, write, apply, work with, etc?
"if your only tool is a hammer every
problem looks like a nail"
Or, in other words, there's no such
thing as the optimum language ;)
It all depends on your personal style,
cost, time frame, necessity of future
maintenance (the latter three are as
you can easily spot depending on
an actual project) ...
But since you want to go Unix, C
and/or C++ would recommend themselves
in general, and you also want some
bash and/or perl-skills here ..
If you are so newbie in programming, and don't have any previously experiments in the field, I suggest start with Pascal. As far as I know, it's the best programming language for STARTING. Then, after you understand the main cases in programming (variables, functions, pointers, IO, ...) try C/C++.
First he should make up his mind
whether he wants to learn procedural
or object oriented programming (which,
again, might be closely tied to the
project he's going to work on).
Despite the object extensions in
borlands compiler pascal is primarily
a procedural language (OO purists would
claim the same is the case for C++ :}
and recommend something like smalltalk).
As said previously, it totally depends on what you want to do. C is a safe choice as first language - you will certainly be able to do something useful with it, and find lots and lots of documentation. But then again, if you want to build combinatorial parsers, you want Haskell, and if you want to do lots of string manipulation, you want Perl, and if you want something simple but powerful you want Python...
My advice would be to try to learn the basics of two or three fairly different languages. This will make you a much better programmer overall, since useful techniques common in one language can often be applied to another. It also puts you in a much better position to learn new languages, so you can always use the right tool for the job, instead of sticking with what you know.
Sounds
Although I'm a C++ programmer, and really love it, but it's not true. When I started programming C, there were no program of mine which didn't hang ones (grammer? spelling? meaning?). There is almost no range check in C which could be dangerous to those who program in DOS (or a non-protected mode OS) and are new to C.
So again my suggestion is Pascal for starting but it's true that it has nothing to satisfy someone (but safe).
I take your point, but these days there are many "safe" languages which are so much nicer than Pascal. I think most people would have a much more pleasent experience learning, say, Python as a first language instead (or if they want a typed, compiled language, why not something a bit more modern like Objective Caml).
Thank you all for the valuable insight. To keep it interesting, how about this: What are the 3 most ideal programming languages out there to you - to learn from, read, write, work with, apply, get a frickin job [insert your reason], etc, etc, etc.
Andrew
C++ for application development because
it conceptually supports re-use of code
very well and has a VERY broad basis in
the industry, and Perl & PHP if you are
into Web-development ;) because ASP sucks ;)
And if Borland managed to get their asses into
gear towards a real-linux (not just wine) Kylix
it would absolutely kick-ass ;) ... I have to say
that I love Delphi (yucky Pascal and all) :}
Great support for application building, a
fantastic editor, very quick turn-arounds
in compile/run test cycle-terms... *sigh* :}
Java would be cool if the VM's were a lot faster,
even with jit and native compilers I wouldn't want
a big app developed in java at the moment, though.
Middleware (Java or .Net) are being pushed out there by the big software vendors. Middleware skill would lead to a job because of the vendor class framework libraries, and the ability to reuse them through inheritance.
On the other hand, if you are interested in research and development, as well as computer science, than Standard C++ would be a good system implementation language. It is also impossible to get away from the use of C, in this day and age.
I'm curious: there are a few products out there that tout themselves as being written in C or C++. For example, on Dillo's home page, they say:
"Dillo is a web browser project completely written in C."
And the Blackbox window manager is written in C++.
I've tried Dillo, and it's ridiculously fast - the same [speed] is claimed for Blackbox (which I haven't used). Is the fast execution of the code why the writers use and mention C/C++? Or is this just part of the reason?
Thanks again for all the insight ;-)
Andrew
C and C++ programs are pre-compiled to machine language and executed. On the other hand, middleware languages are compiled to an intermediate language and than compiled again during execution by a runtime compiler that execute line by line. In other words, it is not precompiled to machine code, only an intermediate language. There are advantages to both. If you want really fast code, write all your programs in binary.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.