Re: why learn C?



Le 22-02-2007, arnuld <geek.arnuld@xxxxxxxxx> a écrit :
1. C gives you a strong base of Procedural style of programming which
forms the basis of learning other paradigms e.g OOP

I am not sure that C gives better 'strong base' than Ada.

OK, 1st have to Google for Ada as i never came across some Ada-code. i
never even read about its design-goals and/or any articles related to
it.

comp.lang.ada

BTW, your "summary of Ada" can be useful for me, if you can.

In a very few words, Ada is a modern Pascal. And Ada 83
is, to me, a very good langage to learn procedural programming.

2. with C one will learn about pointers and algorithms.

pointers: yes
algorithms: why ?

why not ?

This is the one that states somthing that have to give argument,
not the opposite.

1. i tried some Common Lisp where i never had to worry about
algorithms.

How ? How did you do a balanced binary tree in Common Lisp
without algorithm ?

2. in C++, you get read-made algorithms from Standard Library, so
around 95% of the times, you only need to do "#include<algorithm>".

whereas in C, you have design the algorithms, from scratch.

No, they are several ready-made library for C. One difference
with C++ is that you have to chose one, this is not in the
standard. But you also can do everything by yourself in C++.

but may be i am biased, as i did not take the case of other languages
like OCaml, Haskell, Mercury or Eiffel here.

And so many others...

On algorithms: it depends what mean 'learning about algorithms'.

i meant, "applying the specific algorithm, in the language your are
working with".

There is a gap between writing and using. What did you mean by
'applying' ?

you can't. what i meant is:

abstraction, software-design & problem-solving are independent of any
programming language *and* you learn all of these by applying them in
a programming language, just like algorithms."

i think that was obvious.

No. The same problem is not solved the same way in SQL, Matlab, C or Prolog.
OK, the is a 'common base': clear interface, independant implementation,
and general enough but not too much.
But is there a way to learn it independantly from the langage?
I do not think so. I may be wrong.

Moreover, I am under the
impression that the 'good' software design is not langage-independant.

good software design is language-independent,as i said already, *and*
some programming languages are a not a good-fit for a particular
design but a perfect-fit for some other designs.

yes and no. It is a long debate...

At leats, learning C is usefull because the is C, a kind of universal
programming langage known by all, a little bit like 'English' in
natural langages.

Is this the only benefit you think of C (except pointers) ?

Benefit of 'learning' C or benefit of 'using' C ?

Marc Boyer
.



Relevant Pages

  • Re: why learn C?
    ... algorithms: why? ... whereas in C, you have design the algorithms, from scratch. ... learning a new programming language. ... problem solving' without any langage. ...
    (comp.lang.c)
  • Re: why learn C?
    ... Because whatever programming language you are using you are using algorithms, ... then I can find other algorithms I have needed which are *not* part of which ever language you choose to select. ... If you are implementing a design that has been produced and reviewed by others then there is sod all algorithm development to do whatever language you are working in. ...
    (comp.lang.c)
  • Re: [PROPOSAL/PATCH] Fortuna PRNG in /dev/random
    ... was good not to rely *entirely* on the ahsh algorithms. ... The point is that the current random.c design DOES NOT ... RELY on the security of the hash function. ... plaintext that's not one of the two. ...
    (Linux-Kernel)
  • Re: simple math question
    ... computer science, algorithms and math, let alone crypto, should NOT be ... Each design incorporated a new design idea, from SPNs to feistels, ... differential cryptanalysis, linear cryptanalysis, etc, papers you're ...
    (sci.crypt)
  • Re: OOP/OOD Philosophy
    ... languages only in a procedural way). ... > "structured design" and an UML class diagram. ... > Referent to the "infinite sets" want to say that some time ago a went to ... You have a series of algorithms ...
    (comp.object)