On Sep 19, 6:42Â am, Benjamin L. Russell Yahoo.com>
wrote:
> A) Your chronological evolution in programming languages
1988 - first contact with programming with Basic at an MSX (damn! I
should be retarded by now)
1994 - Pascal in Turbo Pascal at University
1997 - C, all by myself with guidance from Thompson&Ritchie and some
free compiler for Windows (later learned it was GCC underneath)
2000 - learned some Java, hoping for some stupid job
2001 - first contact with Linux and the full stack of scripting:
perl, python, tcl, ruby. Found guile scheme.
2004 - C# for work. It was either this or old VB ASP code...
2005 - first geared my head towards functional programming. Learned
some Haskell, settled on Scheme (PLT).
2006-today - Delphi and SQL for work
> B) Relevant comments; e.g. (in my case):
At work, I don't discuss technology choices with the guy paying my
salary. Whenever I get my hands at any code, though, I immediatly
begin some cleaning up by removing it away from aggressively
imperative programming by at the very least replacing lots of
mutations to a single variable scattered across the code to the
evaluation of a final single expression with values provided by single-
assigned variables. Specially in SQL code, which although inherently
functional, is too poor a language by itself and is complemented with
lots of features (like cursors, lame stored procedures with out
parameters and variables) that quickly turn it into a huge pile of
dirt with mutation and variable overwriting all around. Even with
debugging facilities, it sucks way too much to track all the mutations
down the different branchs and all.
Of course, I use Python or PLT Scheme to do automation for my personal
tasks, including work-related.
>>After graduation with a Bachelor of Science in computer science, since I was
>>more interested in the theory of programming languages than in business
>>applications, I looked for ways of using this background at work, but
>>unfortunately, most careers in industry did not use any of this background.
Yes, I think it's the same depressing scenario for everyone in love
for compsci: TI is not compsci, at all. It's about 50%% business and
bureaucracy, 30%% buying of stock software packages and about 20%% of
efforts to adapt such software to the business needs, and those
efforts usually just require sweat, not brain...
> 1) A recent discussion on
comp.lang.prolog, entitled "How long it
> takes to educate Prolog/CLP programmer?", where Nick Wedd stated, "The
> more C++-like experience they have, the higher this factor [of the
> amount of time required to learn Prolog and CLP compared to that
> required to learn a C++-like language such as Java] will be.
> Logic and mathematics are barely relevant." Â Wedd's hypothesis is that
> there exists an inverse correlation between experience in
> object-oriented programming and speed in learning Prolog. Â I suspect
> that a similar correlation exists between experience both procedural
> and object-oriented programming and speed in learning non-strict,
> purely functional programming languages, such as Haskell or Clean.
Isn't it like the old Dijkstra saying about Basic mutilating the
brain?
http://en.wikiquote.org/wiki/Edsger_Dijkstra
It can certainly inflict some damage, but it's recoverable. I think
it has much more to do with lazyness (not of the language!)...
> 2) A blog entry that I read in 2006 (in Japanese) in which one person
> who desperately wanted to learn programming, but who was inadept in
> the art, failed at learning VB, Perl, Python, C, C++, and Java, but
> was eventually able to learn Haskell (see the (Japanese-language) blog
> entry
athttp://d.hatena.ne.jp/scinfaxi/20070523/1179935877). Â (He
> then complained that he remained a NEET (one "Not currently engaged in
> Employment, Education or Training") because he had difficulty finding
> a programming job using Haskell.)
The Japanese are very math-oriented. :)
I wonder if ruby is any worth there...
> At the time, I did not consider this entry surprising, but since then,
> I have discovered that Haskell seems to have a much steeper learning
> curve (at least for me) than Scheme or Ruby (even though I also find
> it highly interesting precisely for this reason).
Yes, that steepness is called monads. And type classes. And type
type classes. And type type type ...
OTOH, I love currying and comprehensions, but these are also available
to some degree in strict languages...
> not have such difficulty with Haskell, and suspect that there is an
> inverse correlation between familiarity with alternative programming
> paradigms and the ability to learn a non-strict, purely functional
> programming language such as Haskell or Clean; i.e., the less one
> knows about alternative programming paradigms, the easier it is to
> learn Haskell or Clean.
That sounds about right. But I'm not sure. Perhaps some people just
have an easier time with math and evaluation of expressions, while
others just prefer carefully crafted linear steps describing how to do
something. Those others would find C++ pretty easy when contrasted
with Haskell.
> 3) A discussion I read several years ago (reference unavailable) in
> which somebody once said that students of programming should not learn
> BASIC as a first language because it leads to students writing
> spaghetti code. Â Somebody else also wrote (reference unavailable) that
> line BASIC should be especially avoided (presumably for this reason).
Thankfully, I was spared. But then again, I only learned the very
basic of basic and never gave it too much thought... :)
I have to say I just love programming language theory and love to get
my hands at as many interesting languages/concepts/paradigms as I
can. I'd probably have much more difficulty adapting to functional
programming if it was not for my curiosity. Most people just use a
language as a tool to get money, but I love the tool itself. People
with that kind of attitude will complain whenever something new and
shiny pop up in front of their dusty noses...