[SOLVED] first language: instructive (good learning tool) yet practical for linux ?
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.
Distribution: Mint 16 RC, Elementary OS Luna, Crunchbang
Posts: 166
Rep:
first language: instructive (good learning tool) yet practical for linux ?
Okay so ive seen similar posts however given a specific question I figured I would ask. Feel free to ignore the specifics and forward me onto other posts of this sort where I can do research if you feel like answering would be a waste of time.
Question: I am new (6 months) to Linux and computing in general. Currently I am running Ubuntu 10.04 32bit, and have really enjoyed using command-line based programs (although menu driven) such as alpine etc. I would like to learn a computer language, my first one ever, to satisfy two conditions:
1. Generalization. One that, having learned it, would make it eas(y)ier to transition to other languages. Perhaps fundamental and instructive is what I mean. Even if if is "harder" to learn.
2. Something that can be used to write, simple, but practical programs (cli-based etc) for Linux as I get more comfortable.
Basically something that strikes a balance between usability (as a noob) and teach-ability.
I understand that some might say: "pick one and go with it". But just so I get a bit of feedback, please recommend one that you think adheres best to those two conditions.
Thanks in advance!!!
Click here to see the post LQ members have rated as the most helpful post in this thread.
Since Perl, by design, borrows from, leverages, and inherits many of the standard constructs and notations found in other Linux applications, it would seem to strongly satisfy your requirement of transitioning to other languages. In addition, it can be used in a purely procedural way, but also can be used to write object oriented applications, again building toward transition to certain other languages. The 'P' in the word Perl stands for 'practical', so there is not much left to say about the practicality issue.
Perl may not be the currently sexy language of the day, but it still has many virtues, and it would be hard to argue its usefulness, especially if you aren't focusing on GUI-based applications (and you can build GUIs with Perl, too).
Distribution: Mint 16 RC, Elementary OS Luna, Crunchbang
Posts: 166
Original Poster
Rep:
Quote:
Originally Posted by Sergei Steshenko
"C" + Perl, i.e. two languages.
Sergei, thanks! Do you find that the combination (additive) of these two languages accompishes together, what no other language does on its own (or that any other two languages together don't)?
Sergei, thanks! Do you find that the combination (additive) of these two languages accompishes together, what no other language does on its own (or that any other two languages together don't)?
Thanks again.
This is what I mostly am using. For example, Perl for automation, scripting, GUI, and "C" for real time/DSP stuff.
Also, Perl as preprocessor for languages like "C" - http://www.linuxquestions.org/questi...e-like-674387/ . Perl is a much more powerful language than, say, standard "C" preprocessor, and than C++ template engine.
It is hard to satisfy the above conditions, but Sergei is right, C would do it. It's just not that great for a first language ... it won't be easy. However, it does satisfy the rest of the conditions.
P.S.
I would have recommended python, because it's easier for a first language ... but then transitioning will not be as easy. I mean a large number of languages borrow C syntax and sometimes even C functions. C is also more efficient and versatile. Python is useful too tho, just because you can do things in a different way, a way that is often easier and more intuitive than the C way.
Last edited by H_TeXMeX_H; 09-25-2010 at 05:30 AM.
1. Generalization. One that, having learned it, would make it eas(y)ier to transition to other languages. Perhaps fundamental and instructive is what I mean. Even if if is "harder" to learn.
C, just for the "transitional" criteria.
Quote:
2. Something that can be used to write, simple, but practical programs (cli-based etc) for Linux as I get more comfortable.
Python. Its easy to read syntax is most suitable for a beginner/first language.
Quote:
Basically something that strikes a balance between usability (as a noob) and teach-ability. [/B]
Python.
Last edited by ghostdog74; 09-25-2010 at 06:12 AM.
For me absence of lexical scoping in Python (unlike in "C", Perl, Pascal, OCaml) is a killer/deal breaker.
Seriously, what you like or dislike is not my/our problem. We are discussing about a suitable first language here for OP to use. Let's just stick to that.
Seriously, what you like or dislike is not my/our problem. We are discussing about a suitable first language here for OP to use. Let's just stick to that.
Seriously, learning as a first language a degenerated one causes a problem of relearning later, which is much more painful.
Seriously, learning as a first language a degenerated one causes a problem of relearning later, which is much more painful.
Let me confirm with you which "degenerated one" you are talking about before i report you. So tell us, which "degenerated" language are you talking about?
Let me confirm with you which "degenerated one" you are talking about before i report you. So tell us, which "degenerated" language are you talking about?
No, since you have already mentioned a "degenerated" language. I would like to hear which one first. If you don't dare to say which ones and provide evidence they are "of no use", then why bother making those false claims?
No, since you have already mentioned a "degenerated" language. I would like to hear which one first. If you don't dare to say which ones and provide evidence they are "of no use", then why bother making those false claims?
The claims are not false by definition - according to my criteria the language I mean is degenerated, though slowly and painfully it's catching up.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.