Earlier quoted context omitted.
Alright, as much as I love Haskell, do not attempt to learn it as a first language. Repeat: do not attempt to learn it as a first language. That's like learning to swim by taking a submarine into the Marianas Trench and then opening the airlock.
I wonder if Haskell is as hard for first-time programmers as for experienced ones, though. There are high school kids in #haskell that know way more and probably have an easier time learning than I did. They don't have any bad habits to unlearn. Also, many "tricky" Haskell concepts (algebraic data types, lexical closures, first-class functions, programming without state) are actually quite logical if you've never bee…
What programming language should I start with?
91–100 of 117 posts
Re: What programming language should I start with?
#92Re: What programming language should I start with?
#93Just curious, but would anyone recommend Javascript?
Re: What programming language should I start with?
#94Just curious, but would anyone recommend Javascript?
pg, would you recommend js?
If I knew them well enough to choose one, my pick would be whatever makes it easiest to write simple programs. Building confidence is the most important thing, not conceptual elegance. I wrote most of my first programs in old fashioned Basic. It was a kludge of a language, but it was good for writing the dumb little programs I started with. The worry that people will form bad habits from using ugly languages is overblown.
Re: What programming language should I start with?
#95Earlier quoted context omitted.
pg, would you recommend js?
I don't know enough about non-Lisp languages to recommend one. If I knew them well enough to choose one, my pick would be whatever makes it easiest to write simple programs. Building confidence is the most important thing, not conceptual elegance. I wrote most of my first programs in old fashioned Basic. It was a kludge of a language, but it was good for writing the dumb little programs I started with. The worry that…
The development environment is easy to find, obviously...any browser and any plain text editor. But user interaction is hard, and gets all mixed up with nasty DOM and browser incompatibilities in short order. You also have to have additional tools (like Firebug) to get anything resembling useful errors from JavaScript.
A good modern learning language probably ought to have an interactive shell. Ruby, Python, Scheme, and Smalltalk are probably all good choices. JavaScript can have an interactive shell in the form of FireBug...but again, it's scary when you get to doing anything that interacts with the user and very few tutorials of JavaScript cover interacting with JavaScript interactively. Having the knobs do something immediately when you twiddle them is almost certain to speed up the learning process. The human mind is pretty good at abstract reasoning: "flipping this light switch causes the light to come on over there". But the more you separate things out temporally and the more variables involved the less they stick: "flipping this light switch starts a timer, which depending on the current state of the light, will cause it to turn on or off in three minutes".
Merely being a non-compiled language is still a slower iterative process than direct interaction (which is the primary disqualifying point against Perl as a learning language in my opinion...corrected in Perl 6, of course, but that's still a few months out). The shorter the "try, debug, try again" cycle is the faster one picks things up, I think. I found Ruby very fast to learn, to some degree, for that reason. Python was almost as discoverable, though I found it less intuitive, where "intuitive" is probably defined as "kinda like what I'm used to". PLT Scheme was a pretty cool learning experience, but it became less interesting as soon as I wanted to build something useful with it--so few libraries (of course, as a Perl user, I feel that way about every language other than Perl...CPAN spoils you for all other languages when it comes to "just get it working" prototyping).
Re: What programming language should I start with?
#96Earlier quoted context omitted.
pg, would you recommend js?
I don't know enough about non-Lisp languages to recommend one. If I knew them well enough to choose one, my pick would be whatever makes it easiest to write simple programs. Building confidence is the most important thing, not conceptual elegance. I wrote most of my first programs in old fashioned Basic. It was a kludge of a language, but it was good for writing the dumb little programs I started with. The worry that…
Re: What programming language should I start with?
#97Earlier quoted context omitted.
How exactly did PHP ever make it "very easy" to do web programming? Was that when register_globals was on? Was it that there was plenty of example code to cut and paste? I hear this "easy" term applied to PHP by many people, but when I look at the language itself, I don't see it. PHP is easy for me because I did C for 12 years, but I look at the comp.lang.php newsgroup and see newbies tripping over all sorts of thing…
There is a well-worn path for beginners in PHP, with baby steps and encouragement all along the way. You can gradually mix PHP into your HTML site, line by line and file by file, and make your site better with each step. (Look, I've got the date in my Web page and it actually updates!) There's a tradition of building simple CRUD apps in PHP - a handful of database tables, and a PHP file for each URL that acts as a th…
Down that path lies madness. I've seen the newbie-focused tutorials for PHP, and it explains a lot of the garbage that passes for software in the PHP world. It is entirely possible to write good software in PHP (I'm reasonably impressed by the Dokuwiki and Flyspray code, for example), but you have to learn the language at least twice to get to that point. You learn it as a newbie, and learn horrible practices from the vast collection of misguided "help" in the Internet. You produce lots of code with those horrible practices...like no DB abstraction, inappropriate or no use of objects and encapsulation, and "gradually mix PHP into your HTML" design. And then you realize you've built an unmaintainable mess and start rewriting it with all of the better practices that have since been bolted on to PHP.
Of course, despite all of that I still recommend PHP for a large classes of application because it is pervasive, hard to make pathologically slow (whereas Ruby and Python can be made pathologically slow even by really good developers--see Plone for an example), and has a pretty large selection of libraries (some are so bad as to be counter-productive, but many are good). But as a newbie language it's rather toxic.
Re: What programming language should I start with?
#98They are all comfortable, require a pretty small platform, and provide some instant gratification...the excitement of seeing your code come to life as you type! I think if you simply want to interact with developers, understanding the thrill of creation is more important than knowing what to create.
Re: What programming language should I start with?
#99Re: What programming language should I start with?
#100Am I the only one who would suggest a more rigid language like C or Turbo Pascal? (am I showing my age here?)