About programing, a general question
Parshwa Murdia
ubuntu.bkn at gmail.com
Fri Dec 17 09:10:58 UTC 2010
hi,
The first issue is to consider what sort of applications interest you.
> If you would like to try web site development then I would suggest
> Ruby on Rails would be something to look at. If you would like to
> build programs to run on your desktop to interact with your computer
> then possibly Python. If scientific data analysis and statistics then
> possibly C++. Any of these will allow you to learn the basics of
> computer programming, but it is advisable to use a tool which is good
> for what interests you. Others will no doubt suggest other languages,
> though I think it unlikely anyone here will recommend .NET, VB or
> COBOL.
>
> Colin
>
I have been away from the ocean of programing language, but (apart from my
job) I am trying to start learning a new language (for the sake of interest
to know more about the technology), so wanted to understand the the basic
principles keeping in my mind that I have to learn Linux in future, of
course because of its thousand times for security as compared to the Windows
OS. So as in future, I would be turning towards Linux, I guess C would be
good (based on the suggestions of the community members) though I always
understand that there are principle which are to be grasped at first and
these are same irrespective of the language adopted via interest. Possibly,
C++ would not be that easy to start with (without knowing C!!) as it is
merely the 'More C', what guys comment. Perhaps, taking the first priority
as Linux, I hope I would not be having bad luck if I starting with C and
simultaneously look into the basics of Linux too.
> I recommend python because it's easy to learn and has a consistent syntax.
> The main thing in learning to program is to understand the concepts, so you
> want a language where the syntax doesn't complicate things, and python is
> perfect for that. Perl's syntax is horrible - stay away.
>
> Mike
>
Well, as you say to understand the concepts first that it correct, but I
please let me know if going for python would be a better decision than to go
for C?
> My personal opinion? I would start with c++. (I'm teaching my
> daughter to program -- much to her dismay -- and I am teaching
> her c++ -- also, much to her dismay.)
>
I agree with your decision, but directly learning C++ would not be good but
better is to go first through C, isn't it? As you say, C++ is just 'More C'.
It is better for the Linux too, I guess.
> You will get many different heartfelt opinions on this -- some justified,
> some not.
>
Yes of course, because I guess the programing is an ocean and we have to
select the one from that ocean (agreeing the fact the the basic
understanding remains the same) but due to wide range of varieties, everyone
says according to his own taste and I never say he/she is wrong in his/her
decisions, it is his/her own experience he/she shares and true also.
> If your goal is to better understand the underlying machine, then I
> would definitely start with c++, as it's the closest to the machine
> (among reasonably common, modern, high-level languages). It is
> (nearly) a superset of c, and, in general, a more expressive language
> than c, so I would recommend it over c. The lower-level constructs
> of c are closer to the machine than the higher-level constructs offered
> by c++ (and preferred stylistically in modern c++), but these c-style
> constructs are available to you in c++ (as it is a near superset of c).
>
Agreed.
Note, if you want to get even closer to the machine, you can use
> assembly language. Many c++ compilers support (as a non-standard
> extension) the ability to insert assembly language fragments (e.g.,
> using "_asm" in g++, the gnu c++ compiler that you can install
> on ubuntu).
>
I don't want to go much closer to the machines that I would have to learn an
assembly language but the meaning of my saying 'understanding machines' if I
elaborate would mean to know the basic of programing so that a code could be
generated. Yes, you are not wrong, but C/C++ would be cool, I assume too.
> Linux is written in c, so the core operating-system api it exposes to
> you is a c api, and is directly available to you in c++. So if you want
> to write programs that interact with the linux os in a significant way,
> c++ (or c, of course) is the way to go. (The same is true of the windows
> os.)
>
> K. Frank
>
But I guess starting with C is the best, what you say? Directly should go
for C++ or from C and then C++?
I second that, what do you want to do?
>
> For my own needs I used tcl/tk. RealBasic is not a bad RAD tool, object
> oriented, but it's not open source and it's not even clear if the Linux
> version is still free, but then it's portable.
>
> I don't like C-like syntax myself, and had many bad experiences with Java
> (would run nowhere, always missed this or that library, jar file, etc...)
> but
> others will certainly have another opinion.
>
> Another question would be: how far do you want to go? I program for myself,
> so
> that's different from developping apps for others.
>
> Thierry
>
Yes, I also want to program for myself only. But not to develop the large
apps or for any organization but to have a understanding of the code only. I
wonder you don't like C, the base of all the languages, I guess that C is
the primitive language or the base of programing world, as I reached to this
conclusion!
> I?d also recommend Python and this book
> Mikehttp://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/ don?t
> be put off by the '..for kids', it really is good if you?ve never done
> any/much programming.
>
> Python's ok, but Ruby would be my recommendation.
>
> Best regards,
> Bill
>
The python books seems pretty cool. I would have a look and see it. If
finalized to learn Python, would go through it. But as a guy commented,
Python is not that cool as C (but I don't know why he said like that). It is
his own opinion and I know different ones would have different opinions.
join a development team for one of the Gnu applications and
> contribute while you learn and are mentored.
>
Can you please let me about how to about the various development teams and
join one of them? Same like I joined the ubuntu user list?
Give us your motivation, and we can better help.)
>
Again I would say:
I have been away from the ocean of programing language, but (apart from my
job) I am trying to start learning a new language (for the sake of interest
to know more about the technology), so wanted to understand the the basic
principles keeping in my mind that I have to learn Linux in future, of
course because of its thousand times for security as compared to the Windows
OS. So as in future, I would be turning towards Linux, I guess C would be
good (based on the suggestions of the community members) though I always
understand that there are principle which are to be grasped at first and
these are same irrespective of the language adopted via interest. Possibly,
C++ would not be that easy to start with (without knowing C!!) as it is
merely the 'More C', what guys comment. Perhaps, taking the first priority
as Linux, I hope I would not be having bad luck if I starting with C and
simultaneously look into the basics of Linux too.
> Here's a break down of some by popularity:
> http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-la
> ngauges/<http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-la%0Angauges/>
>
This link is quite interesting, giving the status!
Your second paragraph screams out for Bash. For cut-and-paste utility
> programs, Python has a very large library of useful modules. But, Ruby
> is cleaner, prettier, and closer to true OOP. The Cadillac of OOP is
> Smalltalk, my favorite all time language, but totally useless for what
> you say you want to do :)
>
Albert, if you say for Bash, I don't know but ask if it is an independent
language like C or just supporting scripts for Linux?
I'm going to have to look into Python. Years ago, before you could buy or
> get for free a whole batch of scientifically-related
> software, folks in engineering and some other disciplines wrote their own
> code to solve cumbersome, repetitive calculations.
> Those who were in school a bit later than I studied Fortran, and used
> that. It's complicated, and I never learned any of it.
> Most of us, in those ancient days--when your mainframe was a half-continent
> away and connected to your model 35 Teletype
> machine by an acoustic modem, used BASIC. This was not a terrible
> language, no matter what anyone says. It suffered mainly from a lack of the
> "case" statement. In 1983, I went on to learn Pascal--the kind without
> graphics--and found it quite useful to do the same sort of work. It
> suffered from a difficulty of writing control code; that's where C and C++
> came in. I would think that for
> general purpose use nowadays (not knowing Python) that C and its offspring
> would be the most widely accepted language for
> doing almost anything. It's not as clear-cut as Pascal, which is fairly
> rigidly constrained--an advantage, in my opinion--but
> it's the language that most professional code seems to be written in, from
> control of CPUs and microprocessors, to Windows
> and Linux and the other Unixes. Also, if you ever desire to progress to a
> work situation that requires coding in a common language,
> C and/or C++ would almost surely be it.
>
Yes, many members suggest me C over Python too, for the beginners but as
someone claims Python is simpler and faster and not that low level as like
C, the mother of many languages!
> One of the responders mentioned syntax: I just took a course in Bash
> programming, one of the most commonly used languages
> of the Unix/Linux operating systems, and the syntax of that is also pretty
> rough. If you don't need it, then don't do it. (If you do
> need it, you will have to just put up with it. (Bash, the "Bourne Again
> Shell" is an outgrowth of the Bourne Shell, from earlier
> Unix days; the other two common ones are the C Shell and the Korn Shell.)
>
> --doug--
>
Oh. I guess, for the first step into the program, C over weighs bash.
As one of the older guys, I also would start to point to FORTRAN. It is not
> a good language for those who are not very disciplined but it is the "Mother
> of all computer languages" and many of the principles for good programming
> are incorporated. However, it's largest deficit is the lack of dynamic
> structures (arrays) but it is very efficient and fast.
> I personally like PASCAL with it's Linux dialect Lazarus. The greatest
> advantage is the strict type-checking and checking of array limits for that
> reason I don't like C and its derivatives as it invites sloppy programming
> but I know I'm a minority.
> Perl is not a compiled language but an interpretor just like basic and
> script languages and therefore not well suited for large programs.
> Actually all the other languages like Python, Java, Ruby, Delphi, etc. are
> all meta-languages: wrappers around lower level languages (mostly C for
> Perl. Python, Java, Ruby and Pascal for Delphi).
> And as others has told you it is not important which language you take, it
> is only important to learn programming principles, eventually you choose the
> language you can yourself familiarize with.
> My 0,02 €.
> Joep
In this ocean, I came to the conclusion of 'C', I think is the oldest
daughter of FORTRAN, the mother of all computer languages.
--
Regards,
Parshwa Murdia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-users/attachments/20101217/7ec44476/attachment.html>
More information about the ubuntu-users
mailing list