Whats the best language to learn...

This is a discussion on Whats the best language to learn... within the Programming Languages forums in category; "Pascal J. Bourguignon" <pjb @ informatimago.com> wrote in message news:87skt3jgv7.fsf @ hubble.informatimago.com... > Juha Nieminen <nospam @ thanks.invalid> writes: > >> Pascal J. Bourguignon wrote: >>> The best programming language to learn as a beginner is probably scheme. >> >> Is that a joke? > > No. > >> Functional languages like scheme and haskell may be wonderful for >> programming gurus and mathematicians (and if you are both, better). >> The average person does not think functionally nor recursively. A > Average persons have nothing to do in programming. There are enough > jobs at McDonalds for average persons. ...

Go Back   Application Development Forum > Programming Languages

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #21  
Old 08-18-2008, 12:25 PM
Bartc
Guest
 
Default Re: Whats the best language to learn...


"Pascal J. Bourguignon" <pjb@informatimago.com> wrote in message
news:87skt3jgv7.fsf@hubble.informatimago.com...
> Juha Nieminen <nospam@thanks.invalid> writes:
>
>> Pascal J. Bourguignon wrote:
>>> The best programming language to learn as a beginner is probably scheme.

>>
>> Is that a joke?

>
> No.
>
>> Functional languages like scheme and haskell may be wonderful for
>> programming gurus and mathematicians (and if you are both, better).


>> The average person does not think functionally nor recursively. A


> Average persons have nothing to do in programming. There are enough
> jobs at McDonalds for average persons.


That's not being elitist at all?

Programming should be for everyone and if that means using easy languages
then I don't see a problem.

The few functional programming examples I've seen have been bits of Ocaml
posted in this newsgroup, and most of it was utterly incomprehensible.
Except for the few bits that were written in imperative style to do some
everyday task.

I'm not familiar with Scheme -- the first thing Wikipedia says about it is
that it was Lisp-like, and I didn't bother to look further.

I do some language design myself (purely for fun) and I'm confident enough
about it's syntax being understandable that I sometimes post fragments here
but call it pseudo-code (usually, pseudo-code that has been tested!). And
someone else mentioned about Python also being pseudo-code that runs
(perhaps not quite as fast as mine though...).

I feel sorry for people trying to choose a language because there is no one
good choice. Everyone seems huge (.NET), overcomplex (C++), slow (Python),
weird (functional), primitive (C), or sometimes a combination..

And I keep seeing languages described as simple and easy-to-learn, and you
download them and you've suddenly got 27000 extra files, yet you have to go
on-line to find any docs! (That was one version of Ruby.)

--
Bartc

Reply With Quote
  #22  
Old 08-18-2008, 02:17 PM
William Pursell
Guest
 
Default Re: Whats the best language to learn...

On 18 Aug, 00:54, Juha Nieminen <nos...@thanks.invalid> wrote:
> It may be how a mathematician...thinks about (some) things,
> but [it's] not how normal people do.


Mathematicians are normal people, too.
Reply With Quote
  #23  
Old 08-18-2008, 02:49 PM
santosh
Guest
 
Default Re: Whats the best language to learn...

Juha Nieminen wrote:
> Pascal J. Bourguignon wrote:


<snip>

>> I would still learn C and Smalltalk, before C++.

>
> Hell no! Smalltalk maybe, but C? No, no and a thousand times no!
>
> Make a beginner learn C as his first language and he will struggle
> to learn good programming for YEARS to come. Just no.


Ah, that explains the "quality" of an average programmer's output I
suppose. C has been the single most popular beginner's language since
the mid-90s. Personally, I can see any reason why it would be a
terrible first choice. Granted it isn't really an ideal first language,
nor a beginner friendly one, but why would starting out with C lead
someone to struggle for years to learn good programming? Any concrete
reasons?

<snip>

Reply With Quote
  #24  
Old 08-18-2008, 03:02 PM
Casey Hawthorne
Guest
 
Default Re: Whats the best language to learn...

William Pursell <bill.pursell@gmail.com> wrote:

>On 18 Aug, 00:54, Juha Nieminen <nos...@thanks.invalid> wrote:
>> It may be how a mathematician...thinks about (some) things,
>> but [it's] not how normal people do.

>
>Mathematicians are normal people, too.


But I still hope that they don't drink and derive!
--
Regards,
Casey
Reply With Quote
  #25  
Old 08-18-2008, 03:02 PM
Patricia Shanahan
Guest
 
Default Re: Whats the best language to learn...

Gits wrote:
> What's the best language to learn as a beginner, for someone like I
> who has never programmed in any language before? I'm interested in
> learning python or c++, which would you say is the least complicated?


Regardless of what you learn first, make sure you learn at least one
other language soon after. The second language should be very different
from the first one. Perhaps pick a couple of languages suggested by
people who made non-overlapping suggestions.

People who stick to one programming language for the first few years of
their programming experience can fall into the One True Language trap.
Their thinking about programming becomes so intertwined with their first
language that programming in any other language feels very awkward and
inconvenient. They seem to think idiomatically in their first language,
and then try to translate, which does not really work.

That is OK if you happen to pick a winner, a language that remains
popular for the whole of your career. It is very bad if you pick a
language that becomes unpopular 20 years after you learn it.

Patricia
Reply With Quote
  #26  
Old 08-18-2008, 03:25 PM
gremnebulin
Guest
 
Default Re: Whats the best language to learn...

On 18 Aug, 17:25, "Bartc" <b...@freeuk.com> wrote:
> "Pascal J. Bourguignon" <p...@informatimago.com> wrote in messagenews:87skt3jgv7.fsf@hubble.informatimago.co m...
>
> > Juha Nieminen <nos...@thanks.invalid> writes:

>
> >> Pascal J. Bourguignon wrote:
> >>> The best programming language to learn as a beginner is probably scheme.

>
> >> * Is that a joke?

>
> > No.

>
> >> * Functional languages like scheme and haskell may be wonderful for
> >> programming gurus and mathematicians (and if you are both, better).
> >> * The average person does not think functionally nor recursively. A

> > Average persons have nothing to do in programming. *There are enough
> > jobs at McDonalds for average persons.

>
> That's not being elitist at all?
>
> Programming should be for everyone and if that means using easy languages
> then I don't see a problem.


You've never had to fix code written by a non-programmer?
Reply With Quote
  #27  
Old 08-18-2008, 03:28 PM
Roman Werpachowski
Guest
 
Default Re: Whats the best language to learn...

thomas.mertes@gmx.at wrote:
>
>
> AFAIK Java is used very often to teach programming nowerdays
> (interestingly nobody did it suggest until now). Java is also missing
> concepts like overloading and multiple dispatch.


I don't know what "multiple dispatch" is, but having first learned C++
and then switched to Java, I can say that I don't miss operator
overloading at all (function overloading, of course, is supported by
Java). I think that the decision not to enable it in Java was sound. On
the other hand, I miss C++ kind of "protected" access a lot.

RW
Reply With Quote
  #28  
Old 08-18-2008, 03:38 PM
Willem
Guest
 
Default Re: Whats the best language to learn...

Bartc wrote:
) That's not being elitist at all?
)
) Programming should be for everyone and if that means using easy languages
) then I don't see a problem.

Ah, so while other jobs require years of training and talent, this job
should be easy and accessible to everyone with half a brain ? You sound
like a manager.

Programming is not easy. No matter the language.
Easy languages make you think it is easy because you can quickly accomplish
some easy tasks.

Do you call yourself an electrician when you can install a wall switch ?
Do you call yourself a car mechanic when you can change the oil filter ?
Do you call yourself a programmer when you can hack together a web app ?


SaSW, Willem
--
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
Reply With Quote
  #29  
Old 08-18-2008, 03:55 PM
Pascal J. Bourguignon
Guest
 
Default Re: Whats the best language to learn...

"Bartc" <bc@freeuk.com> writes:

> "Pascal J. Bourguignon" <pjb@informatimago.com> wrote in message
> news:87skt3jgv7.fsf@hubble.informatimago.com...
>> Juha Nieminen <nospam@thanks.invalid> writes:
>>
>>> Pascal J. Bourguignon wrote:
>>>> The best programming language to learn as a beginner is probably scheme.
>>>
>>> Is that a joke?

>>
>> No.
>>
>>> Functional languages like scheme and haskell may be wonderful for
>>> programming gurus and mathematicians (and if you are both, better).

>
>>> The average person does not think functionally nor recursively. A

>
>> Average persons have nothing to do in programming. There are enough
>> jobs at McDonalds for average persons.

>
> That's not being elitist at all?


No, THAT was a joke. ;-)


> Programming should be for everyone and if that means using easy languages
> then I don't see a problem.


Yes, of course. If it was a non-CS professionnal who wanted to
program little commands for his personnal use, I wouldn't advise the
same than if it was a CS would be professionnal who will have to
develop applications or systems for use by innocent non-CS
professionnals or users.

Let's see.

For CS professionnaly, I'd advise scheme as a teaching language and
Common Lisp as a industry strong programming language.

For a non-CS professionnal, let's say a secretary who wants to
customize her editor[1], or a MD who wants write little scripts to manage
his patients, I would advise emacs lisp.

Oops! I advised lisp in both cases :-)


[1] http://www.gnu.org/software/emacs/emacs-paper.html
(see the Blue sky section)





Ok, serriously, I can admit that python is selected by Pr. Norvig as
programming language for his non-CS students, (I'm all in favor
teaching some programming to non-programmers, as well as teaching some
history or some physic to programmers). And I can even admit
non-programmer programming their little program in any programming
language they please. But I won't be there to do any "maintenance"
when their little "programs" become big and when they start to dream
selling them to millions of users.


> I'm not familiar with Scheme -- the first thing Wikipedia says about
> it is that it was Lisp-like, and I didn't bother to look further.


Go look again. Actually Scheme was there before Common Lisp, and it
was on the contrary Common Lisp that took some ideas from Scheme.



> I do some language design myself (purely for fun) and I'm confident enough
> about it's syntax being understandable that I sometimes post fragments here
> but call it pseudo-code (usually, pseudo-code that has been tested!). And
> someone else mentioned about Python also being pseudo-code that runs
> (perhaps not quite as fast as mine though...).
>
> I feel sorry for people trying to choose a language because there is no one
> good choice. Everyone seems huge (.NET), overcomplex (C++), slow (Python),
> weird (functional), primitive (C), or sometimes a combination..
>
> And I keep seeing languages described as simple and easy-to-learn, and you
> download them and you've suddenly got 27000 extra files, yet you have to go
> on-line to find any docs! (That was one version of Ruby.)


You've not looked hard enough:

Metafor Interactive Natural Language Programming
http://www.lehigh.edu/~amsp/2005/03/...ogramming.html
http://web.media.mit.edu/%7Ehugo/dem...der-simple.mov
http://web.media.mit.edu/~hugo/publications/
http://web.media.mit.edu/~hugo/publi...05-metafor.pdf

(Watch the video!)




However, there more words about these "easy", "pseudo-code"
programming languages, from COBOL to AppleScript, etc. Remember that
they use the simplistic English grammar as a base, to be easily
processed by the system. First, for most native language users,
English is just as cryptic as scheme, probably even more. Second most
native language users have a language with a grammar much more complex
than English, so it will be harder to make a programming language for
them. From my point of view, it looks like the only people who can
read and write (some) English are the programmers. And finally, I
hope you will have much fun when you will have to read a routine
written in 茲蚨's natural "pseudo-code" language. I'd rather read
his scheme code...



--
__Pascal Bourguignon__ http://www.informatimago.com/

CAUTION: The mass of this product contains the energy equivalent of
85 million tons of TNT per net ounce of weight.
Reply With Quote
  #30  
Old 08-18-2008, 04:37 PM
Juha Nieminen
Guest
 
Default Re: Whats the best language to learn...

santosh wrote:
> Granted it isn't really an ideal first language,
> nor a beginner friendly one, but why would starting out with C lead
> someone to struggle for years to learn good programming? Any concrete
> reasons?


While in theory it is indeed possible to learn good programming even
when starting with C, in practice, however, programming in C leads to
what I call the "C-hacker syndrome". It includes things like:

- Aversion and prejudice towards programming paradigms other than pure
(C-style) imperative programming. This especially includes
object-oriented programming with its notions of data hiding and
abstraction (which the C-hacker detests above all things). This kind of
attitude can be very hard to learn away.

- A tendency to overuse things like global variables, simply because
they are much "easier" to use than passing pointers around.

- A natural tendency to micro-optimize code (so-called "hacker
optimization") while often dismissing the most relevant bottlenecks. In
other words, tendency to optimize the wrong things, often at the expense
of readability and clarity (and usually with no real speed benefit).

- A natural tendency to minimizing the length of the source code and
obfuscation rather than clarity.

- Aversion and prejudice against anything the compiler or a library
might be doing "behind the scenes", so that the programmer is not in
full control (which is one of the reasons why the C-hacker detests C++,
as he feels that C++ does too much behind the scenes, without the
control of the programmer).

Besides these attitude problems, C also has other more practical problems:

- Due to the nature of C, it tends to teach bad programming habits which
easily make the code very unsafe, obfuscated and hard to maintain. These
include things like passing tons of dangling pointers around, no bounds
checking, no encapsulation and an overall lack of good, systematic
memory management.

- Rather ironically (as C is classically viewed as an "efficient"
language), the C style of programming often leads the beginner to write
very inefficient code. The classical example is writing loops like
"for(i = 0; i < strlen(line); i++)" (especially in situations where the
compiler is unable to optimize the strlen() call outside the loop
because it has no way of knowing whether the contents of 'line' might
change inside the loop).

- Endless struggles with dynamic data containers (which C has absolutely
no standard library support for) and the countless unsafe standard
library functions related to them (such as the string functions).

(And no, I'm not claiming C++ is any better as a first programming
language in this regard. OTOH, it *does* offer many tools which can make
people's lives easier, so if I had to choose between the two, I would
definitely recommend C++, with the proper guidance.)
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 04:48 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.