Re: multi-core software

2009-06-06 Thread John Thingstad
På Sat, 06 Jun 2009 21:46:51 +0200, skrev George Neuner  
gneun...@comcast.net:



On Fri, 05 Jun 2009 16:26:37 -0700, Roedy Green

Add to that the fact that programmers have shown themselves, on
average, to be remarkably bad at figuring out what _should_ be done in
parallel - as opposed to what _can_ be done - and you've got a clear
indicator that threads, as we know them, are not scalable except under
a limited set of conditions.

George


I find the dataflow model of concurrency on Oz to be interesting and to  
address many of the issues you just mentioned.
See in particular: 'Dataflow variables and declarative concurrency' and  
onward.

http://en.wikipedia.org/wiki/Oz_(programming_language)


-
John Thingstad
--
http://mail.python.org/mailman/listinfo/python-list


Re: The Complexity And Tedium of Software Engineering

2009-06-05 Thread John Thingstad

På Fri, 05 Jun 2009 08:07:39 +0200, skrev Xah Lee xah...@gmail.com:


On Jun 3, 11:50 pm, Xah Lee xah...@gmail.com wrote:



The point in these short examples is not about software bugs or
problems. It illustrates, how seemingly trivial problems, such as
networking, transferring files, running a app on Mac or Windwos,
upgrading a app, often involves a lot subtle complexities. For mom and
pop users, it simply stop them dead. For a senior industrial
programer, it means some conceptually 10-minutes task often ends up in
hours of tedium.


What on earth gave you the idea that this is a trivial problem?
Networks have been researched and improved for the last 40 years!
It is a marvel of modern engineering that they work as well as they do.



In some “theoretical” sense, all these problems are non-problems. But
in practice, these are real, non-trivial problems. These are
complexities that forms a major, multi-discipline, almost unexplored
area of software research.


Again, it is it not a trivial problem theoretically.
Unexplored? What world are you on?


I'm trying to think of a name that
categorize this issue. I think it is a mix of software interface,
version control, release control, formal software specification,
automated upgrade system, etc. The ultimate scenario is that, if one
needs to transfer files from one machine to another, one really should
just press a button and expect everything to work. Software upgrade
should be all automatic behind the scenes, to the degree that users
really don't need fucking to know what so-called “version” of software
he is using.



Actually they mostly are. At least on my machine. (I use Windows XP and  
Ubuntu Linux.)



Today, with so-called “exponential” scientific progress, and software
has progress tremendously too. In our context, that means there are a
huge proliferation of protocols and standards. For example, unicode,
gazillion networking related protocols, version control systems,
automatic update technologies, all comes into play here. However, in
terms of the above visionary ideal, these are only the beginning.
There needs to be more protocols, standards, specifications, and more
strict ones, and unified ones, for the ideal scenario to take place.



No, there are already to many protocols and the ideas of how a network  
infrastructure should be built are mostly in place. I think we would  
benefit from cleaning up the existing interface. That is by removing  
redundancy.


What does need further research is distributed processing. Again this is a  
highly complex problem and a lot of work has been put into trying to make  
simpler and more manageable interfaces and protocol's. See for example the  
languages Erlang and Oz to get an idea.


-
John Thingstad
--
http://mail.python.org/mailman/listinfo/python-list


Re: The Importance of Terminology's Quality

2008-05-30 Thread John Thingstad

På Fri, 30 May 2008 02:56:37 +0200, skrev David Combs [EMAIL PROTECTED]:


In article [EMAIL PROTECTED],
Robert Maas, http://tinyurl.com/uh3t  
[EMAIL PROTECTED] wrote:

From: [EMAIL PROTECTED] [EMAIL PROTECTED]
the importance of naming of functions.




Lisp is *so* early a language (1960?), preceeded mainly only by Fortran  
(1957?)?,
and for sure the far-and-away the first as a platform for *so many*  
concepts

of computer-science, eg lexical vs dynamic (special) variables, passing
*unnamed* functions as args (could Algol 60 also do something like that,
via something it maybe termed a thunk), maybe is still the only one
in which program and data have the same representation -- that it'd
seem logical to use it's terminology in all languages.

From C is the very nice distinction between formal and actual args.

And from algol-60, own and local -- own sure beats static!

And so on.


To me, it's too bad that that hacker-supreme (and certified genius)
Larry W. likes to make up his own terminology for Perl.  Sure makes
for a lot of otherwise-unnecessary pages in the various Perl texts,
as well as posts here.

Of course, a whole lot better his terminology than no language at all!


David




Perl is solidly based in the UNIX world on awk, sed, bash and C.
I don't like the style, but many do.

--
John Thingstad
--
http://mail.python.org/mailman/listinfo/python-list


Re: The Importance of Terminology's Quality

2008-05-08 Thread John Thingstad
På Thu, 08 May 2008 04:14:35 +0200, skrev Kyle McGivney  
[EMAIL PROTECTED]:



• Module, Block, in Mathematica is in lisp's various “let*”. The
lisp's keywords “let”, is based on the English word “let”. That word
is one of the English word with multitudes of meanings. If you look up
its definition in a dictionary, you'll see that it means many
disparate things. One of them, as in “let's go”, has the meaning of
“permit; to cause to; allow”. This meaning is rather vague from a
mathematical sense. Mathematica's choice of Module, Block, is based on
the idea that it builds a self-contained segment of code. (however,
the choice of Block as keyword here isn't perfect, since the word also
has meanings like “obstruct; jam”)


If the purpose of let is to introduce one or more variable bindings,
then I don't see how changing to block or module would improve
anything. I've always found it fairly intuitive to parse (let ((x
5)) ...) to let x be five. Additionally, replacing let with the
synonyms you provided would approximately yield permit x to be five
or allow x to be five. In my mind you have constructed an argument
in favor of let here (obviously it's better than block, because
nobody's going to come along and be confused about whether let will
obstruct or jam them :)


How about bind?
 (bind ((v f (mod i)) ((a b) list) (t (rem q)))

1. is a multiple-value-bind
2. is a destructuring-bind
3. is a let

http://common-lisp.net/project/metabang-bind/

To me this is a example of where the ANSI group could have spent more time  
on naming.


--
John Thingstad
--
http://mail.python.org/mailman/listinfo/python-list

Re: Python's doc problems: sort

2008-04-30 Thread John Thingstad
På Wed, 30 Apr 2008 06:26:31 +0200, skrev George Sakkis  
[EMAIL PROTECTED]:



On Apr 29, 11:13 pm, Jürgen Exner [EMAIL PROTECTED] wrote:


[EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

Is this self-promoting maniac still going at it?

Although i disliked Perl very much [...]

Then why on earth do you bother polluting this NG?

Back into the killfile you go

jue


   \|||/
 (o o)
,ooO--(_)---.
| Please|
|   don't feed the  |
| TROLL's ! |
'--Ooo--'
|__|__|
 || ||
ooO Ooo


Doesn't copying Rainer Joswig's troll warning constitute a copywright  
infrigment :)


--
John Thingstad
--
http://mail.python.org/mailman/listinfo/python-list


Re: Choosing a new language

2007-12-29 Thread John Thingstad
På Sat, 29 Dec 2007 19:16:09 +0100, skrev Joachim Durchholz  
[EMAIL PROTECTED]:


 However, for web applications, I found a far easier variant: I just  
 reload the page being debugged. (I have to make sure that the backend is  
 in the same state when reloading, but that's usually easy to accomplish.)
 So web pages are one area where code modification during debugging is  
 less important.


Haveyou looked at selenium?

I quote:

Selenium is a test tool for web applications. Selenium tests run directly  
in a browser, just as real users do. And they run in Internet Explorer,  
Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool  
covers such a wide array of platforms.
Browser compatibility testing. Test your application to see if it works  
correctly on different browsers and operating systems. The same script can  
run on any Selenium platform.
System functional testing. Create regression tests to verify application  
functionality and user acceptance.

There is also a Lisp interface cl-selesium though I can't find the code on  
the net now.

--
John Thingstad
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Choosing a new language

2007-12-29 Thread John Thingstad
På Sat, 29 Dec 2007 18:58:30 +0100, skrev Arnaud Delobelle  
[EMAIL PROTECTED]:

 On Dec 29, 3:11 pm, Achim Schneider [EMAIL PROTECTED] wrote:
 [...]
 Lisp throws lambda calculus right into your face, which is a good
 thing. Scheme might be the better choice, it's lexically  
 scoped:http://mitpress.mit.edu/sicp/
 There are also video lectures with people with funny hats speaking wise
 words.

 Common Lisp has lexical scoping as well (although defvar allows you to
 declare dynamically scoped variables).

 --
 Arnaud


More precisely defvar, defparameter, progv  and (declare (special var))  
create variables with dynamic scope.
let and let* do as you said use a lexical scope. (unless you use a declare  
as above)


--
John Thingstad
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: is laziness a programer's virtue?

2007-04-15 Thread John Thingstad
On Sun, 15 Apr 2007 18:25:19 +0200, Xah Lee [EMAIL PROTECTED] wrote:

 Laziness, Perl, and Larry Wall

 Xah Lee, 20021124

 In the unix community there's quite a large confusion and wishful
 thinking about the word laziness. In this post, i'd like to make some
 clarifications.

 American Heritage Dictionary third edition defines laziness as:
 “Resistant to work or exertion; disposed to idleness.”


In this context I think you can safely take it to mean:
Don't work hard, work smart.

Avoid repetitious work. If somthing seems to elaborate find a more  
efficient way.

In a course I took on verifiable programming I found working with Hoare  
logic
extremely tedious. So I started using rewriting loops as recursive  
procedures and
using induction instead. It took about a quarter of the time as the  
invariant of a loop
fell out rather naturally this way. I failed the course, but when I took  
the course
over again a year later I noticed that the book had been rewritten and now  
half the book
was dedicated to Generator Induction. (Seems the professor noticed I  
failed in a interesting
way and figured out it was not so stupid after all.) Naturally I had no  
problems the second time ;)

This is just one example but it should convey the idea.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: merits of Lisp vs Python

2006-12-17 Thread John Thingstad
On Mon, 18 Dec 2006 05:19:49 +0100, //[EMAIL PROTECTED] wrote:

 [EMAIL PROTECTED] writes:
 So don't (poke (random) value).  That would be obvious to anyone
 capable of writing a device driver in C or Lisp or Oberon or 

 Similarly in C programs, don't do

   *random = 0;

 Avoiding that is easier said than done.  C programs suffer endless
 bugs of that type.

Don't know where you get that idea.
I have used a bounds checker in C++ since 1990..
If I set a pointer to a space on the heap that isn't allocated
I would get a error. If I forgot to deallocate it it would
warn me when the program terminates. Then I just jump to the place
in the file where the memory reference was allocated. Admitably
it could be a great problem if such tools weren't available, but that  
hasn't
been the case in years.
Much worse are buffer overflow errors. Functions that don't check buffer
constraints. But then most modern compilers can turn that on too.
Wanna overwrite the return stack. A cookie at the end checks for this
as well.
As for old libraries like string(s) modern replacement's are available
that check constraints. For that matter C++'s type checks are much stricter
than C's.
In fact it hasn't been much a problem for a long time.

(Debugging template error's now that is a pain..)

Incremental linkers and fast compiler time also makes incremental  
developement
possible.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-16 Thread John Thingstad
On Sun, 17 Dec 2006 00:19:40 +0100, //[EMAIL PROTECTED] wrote:


 Incorrect, I believe.  The above is like saying Lisp's lack of
 optional manual storage allocation and machine pointers makes Lisp
 less powerful.  It's in fact the absence of those features that lets
 garbage collection work reliably.  Reliable GC gets rid of a large and
 important class of program errors and makes possible programming in a
 style that relies on it.

Truth with modifications. The foreign function library of most systems does
allow manual storage. If it didn't it would go into conniptions when  
talking
to C where stored values are never moved.

 You can make languages more powerful by
 removing features as well as by adding them.  This is what Haskell
 does, with its functional purity.  Haskell's lazy evaluation semantics
 pretty much depend on the purity.


Some people like it some people don't.
(I should add I have never put serious effort into learning Haskell so my  
opinion
should be taken with a grain of salt.)
Like many lispers I use multiple paradigms.
I have similar problems with SmallTalk by the way.

 See also SPJ's papers on composable memory transactions in Haskell:

   http://research.microsoft.com/~simonpj/papers/stm/index.htm

 These transactions rely on Haskell's pure functional semantics and if
 I understand correctly, can't be implemented reliably without it.  And
 just like GC gets rid of a large class of pointer and storage
 allocation errors, composable transactions in concurrent programs get
 rid of lock-related errors, traditionally a huge source of problems in
 real-world code.

These days modern CPU's have multiple cores.
Parallelism is obviously easier to accomplish with a functional style
so I might take a closer look in the near future.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread John Thingstad
On Wed, 13 Dec 2006 03:13:26 +0100, Paddy [EMAIL PROTECTED] wrote:

 Not even close.

 In my example above:
  for a in y:
dosomethingwith(a)
 y could be a lot of built-in types such as an array, list, tuple, dict,
 file, or set.
 - Paddy.


I was refering to the recursive Lisp example.
Did you even read the post?

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread John Thingstad
On Wed, 13 Dec 2006 09:39:44 +0100, Timofei Shatrov [EMAIL PROTECTED] wrote:

 On 12 Dec 2006 18:03:49 -0800, Paddy [EMAIL PROTECTED] tried to  
 confuse
 everyone with this message:

 There are a lot of people that use Wikipedia. I think some of them
 might want to learn to program.

 I think you misunderstood the goal of Wikipedia. It is not to teach  
 people
 programming.

 I make it easier for them to find
 Python by helping to maintain Python within Wikipedia.

 If someone wants to find Python, he types Python in the search bar and  
 works
 from there. He certainly wouldn't end up in doctest article.

 Some people dislike Wikipedia which is fine. Some people dislike
 Wikipedia and deliberately sabotage it, which is vandalism.

 Writing vanity articles about non-notable things is not much better.


You are being silly. Wikipedia has for instance the best coverage of math
of any encyclopedia (if you can call it that). This is how I came in touch
with it. If you want trivia you get trivia. If you want Phd. level math it
has that as well. It is as diverse as the people that use it.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-12 Thread John Thingstad
On Wed, 13 Dec 2006 01:54:58 +0100, Paddy [EMAIL PROTECTED] wrote:


 Robert Uhl wrote:

 Steven D'Aprano [EMAIL PROTECTED] writes:
 
  Speaking as somebody who programmed in FORTH for a while, that doesn't
  impress me much. Prefix/postfix notation is, generally speaking, more
  of a pain in the rear end than it is worth, even if it saves you a
  tiny bit of thought when pasting code.

 Of course, you use prefix notation all the time in Python:

   for x in range(0,len(y)):
 dosomething(x)

 In Python, most containers are directly iterable so we are much more
 likely to arrange our program to use:
 for a in y:
   dosomethingwith(a)

 -Paddy.


In lisp: (loop for a in y do (do-something a))

There is one difference.. There is no iterator so you have different  
pronouns for each sequence type:

list:  (loop for a in y ..
array: (loop for a across y ..
hash:  (loop for a over y ..

hardly ideal, but workable.

Still it is a lot simpler to change the declaration in the start of the  
loop
than having to changing the access to all references to a variable as you  
might have to
with recursion. Consider

(defun func-iter (list)
(func (first list)))
(when (not (endp list))
  (func-iter (rest list)))

(You could write (mapc #'(lambda (e) (func e)) list) but that is beside  
the point.)

or something like that. What happens if you change the type to a array?  
Total rewrite..
 From a software engineering point of view iteration is preferable to  
recursion because
maintenance and aggregation is simpler. (Sorry about the digression.)

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-09 Thread John Thingstad
On Sat, 09 Dec 2006 22:04:04 +0100, mystilleef [EMAIL PROTECTED]  
wrote:

 Bill Atkins wrote:
 Are any of these not subjective?

 Objectivity is in the eye of the beholder.

 Lisp is much more than a functional language.

 Maybe so. But I've only ever appreciated its functional aspects. I
 wouldn't choose Lisp or its derivatives for OO related tasks even if
 I'm high.


You are just being silly.
Lisp's OO environment CLOS is vastly superior to Python classes.
Both in terms of expressive power and flexibility.
You might even find out if you ever learnt how to use it.

Lisp also supports procedural programming just fine.

In the windows world the best way to access system libraries are
via .NET. Thus each language inventing it's own libraries is quickly  
becoming
a thing of the past. Also you can mix and match languages according to  
need.
Python is fine if you approach programming as Lego, simply gluing together  
libraries.
But if you want to do some serious algorithmic's you may find that it is  
just to slow.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-09 Thread John Thingstad
On Sat, 09 Dec 2006 22:49:59 +0100, mystilleef [EMAIL PROTECTED]  
wrote:


 Donkeys have wings.


? You attitude towards CLOS is obviously insane.

 In the windows world the best way to access system libraries are
 via .NET. Thus each language inventing it's own libraries is quickly
 becoming

 You're only proving my point. Why do you think most windows developers
 use .NET?


Lisp can also use .NET.  .NET =/= C#

 Python is fine if you approach programming as Lego, simply gluing  
 together
 libraries.

 You mean it's fine for what 90% of programmers do?


Yes CRUD (Create, Read Update, Delete)..
Sure you can do that in any languge..
Not sure I would call it programming.

 But if you want to do some serious algorithmic's you may find that it is
 just to slow.

 Slow for users who aren't familiar with Psyco, Pyrex and C extensions,
 sure.


Even then..

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-09 Thread John Thingstad
On Sun, 10 Dec 2006 01:29:43 +0100, Steven D'Aprano  
[EMAIL PROTECTED] wrote:



 Oh my god! Lisp can echo STRINGS to the interpreter Why didn't
 somebody somebody tell me that That *completely* changes my mind  
 about
 the language!

 I'm especially impressed that it knew I wanted them printed in uppercase
 without being told.




Except it is not a string. It is a list of symbols. Hence the upcase.
This is how you write a string in Lisp
and that does preserve case.
(If you want symbols to be case sensitive and default case to be lower  
then most
Lisp's allow that, but the ANSI spec dosn't give a standard way.)

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What is Expressiveness in a Computer Language

2006-06-26 Thread John Thingstad
On Sun, 25 Jun 2006 20:11:22 +0200, Anton van Straaten  
[EMAIL PROTECTED] wrote:

 [EMAIL PROTECTED] wrote:
 In this context, the term latently-typed language refers to the
 language that a programmer experiences, not to the subset of that
 language which is all that we're typically able to formally define.
   That language is not a subset, if at all, it's the other way round,  
 but
 I'd say they are rather incomparable. That is, they are different
 languages.

 The subset characterization is not important for what I'm saying.  The  
 fact that they are different languages is what's important.  If you  
 agree about that, then you can at least understand which language I'm  
 referring to when I say latently-typed language.

 Besides, many dynamically-typed languages have no formal models, in  
 which case the untyped formal model I've referred to is just a  
 speculative construct.  The language I'm referring to with  
 latently-typed language is the language that programmers are familiar  
 with, and work with.

 That is starting to get a bit too mystical for my tastes.
   I have to agree.
  \sarcasm One step further, and somebody starts calling C a latently
 memory-safe language, because a real programmer knows that his code
 is in a safe subset... And where he is wrong, dynamic memory page
 protection checks will guide him.

 That's a pretty apt comparison, and it probably explains how it is that  
 the software we all use, which relies so heavily on C, works as well as  
 it does.

 But the comparison critiques the practice of operating without static  
 guarantees, it's not a critique of the terminology.

 Anton

Actually I have never developed a C/C++ program
without a bounds checker the last 15 years.
It checks all memory references and on program shutdown
checks for memory leaks. What is it about you guys that make you blind
to these fact's. Allocation problem's haven't really bugged me at all
since forever. Now debugging fluky templates on the other hands..
But then debugging Lisp macro's isn't much better.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Software Needs Philosophers

2006-05-23 Thread John Thingstad
On Tue, 23 May 2006 15:58:12 +0200, John D Salt jdsalt_AT_gotadsl.co.uk  
wrote:

 [EMAIL PROTECTED] wrote in news:[EMAIL PROTECTED]:

 [Snips]
 Wrong. We live in a paradise of ideas and possibilities well beyond the
 wildest dreams of only 20 years ago.

 What exciting new ideas exist in software that are both important and
 cannot be traced back to 1986 or earlier?

 I'd like to believe that there are some, but I can't think of any at the
 moment.

 All the best,

 John.

Well most have to do with wireless nets and connectivity.
One is that all compoters will be connected to the net all of the time.
When you go out you will not bring a mobile phone you will bring a PDA  
(Personal data assistant).
You can call people, listent to music, wach videoes. You can connect to
the web cans at home and see that the children are ok or turn the oven on
while on the way back from work, etc.
As you move from sector to another the PDA aquites the closest transmitter
and hooks on to it. Most use wireless networks to
connect aplliances in their homes.
Instead of tv stations you order movies and TV series from online
servers. etc..

Also the AI part. AI will not consist of cumputers trying to pretend to
be people. The will take vocal commands. The will remember your  
preferences.
It will know when you are on vacation. Turn the alarm on, lower the house  
theperature
and turn on lights periodically to make it look inhabited.
It will know what movies and shows you like to watch and order them  
accordingly.
It will know who you know and order incoming messages accordingly by  
priority,
also block out those you do not what contact with.

There is now a clear idea of how windows systems should behave.
Windows interfaces have evolved accordingly. It is now far less
tedious to connect systems to the net or make a windows interface..

etc, etc..

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Xah's Edu Corner: accountability lying thru the teeth

2006-02-14 Thread John Thingstad
On Tue, 14 Feb 2006 10:33:49 +0100, Xah Lee [EMAIL PROTECTED] wrote:

 i longed for such a accountable predictions for a long time. Usually,
 some fucking fart will do predictions, but the problem is that it's not
 accountable. So, lots fuckhead morons in the IT industry will shout
 ... more obscene language

Fine, I will hold you accountable for what you said abot IT security
two weeks ago. Let's see 'By switching from C to a high level
language like Lisp all security problems go away, it's that simple.'
Look up 'insertion attack' Then eat SOAP.

lol

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: write a loopin one line; process file paths

2005-10-24 Thread John Thingstad
On Wed, 19 Oct 2005 11:48:01 +0200, Xah Lee [EMAIL PROTECTED] wrote:

 Thanks a lot for various notes. Bonono?

 I will have to look at the itertools module. Just went to the doc
 http://www.python.org/doc/2.4.1/lib/module-itertools.html
 looks interesting.

 But I believe Python is designed for easy to code and read and maintain
 in mind.

 One has to admit that without some training, FP is not very
 intuitive, my head spin when I see haskell code. A for loop is easier
 to understand.

 This i'm not sure. Of the past couple of years i increasingly developed
 a theory (probably well-known among proper experts), that the
 difficulty of human feats of various forms, are primarily a perception
 and familiarity thing. This may be getting off topic, but i wrote an
 essay expresising much of the idea using Juggling as a example:
 Difficulty Perceptions in Human Feats
  http://xahlee.org/Periodic_dosage_dir/t2/juggling.html

 likewise, i think this applies to mental feats as well. In particular,
 i think that whether imperative code or functional code is easier for
 the mind is almost ENTIRELY dependent on which one the person is more
 familiar with, coulped with a innate attitude one may have picked up.

 Well, if you want clean FP, you can always try haskell which is getting
 better and better in terms of real world module support(file system,
 network etc).

 oh Haskell, my love! I am really going to learn it now. (maybe i'll
 start A-Java-Haskell-A-Day) This month i just learned and read about
 how Perl 6 is implemented in Haskell! (because one Taiwaness hacker
 single-handedly by happenstance tried to do it, as a by-product of
 learning Haskell) This Pugs (Perl6 in Haskell) really brought two
 rather incompatible communities together somewhat for mutual exchange.
 (the learning, on the surface, is politely said to be mutual, but i'm
 pretty sure it's mostly Perlers learning from the Haskell folks)

 ... there is a sentiment among the elite tech-geeking morons, early on
 imbued by the concept of troll, so that they in general don't
 communicate and learn from any other language except their own.
 Anything cross-posted is considered as troll, and the inter-language
 communication has been essentially completely cut off. Basically, the
 only ones generating all the garbage posts are these troll-criers
 themselves. (will have to flesh out on this particular point of
 net-sociology in a essay some other day.)

  Xah
  [EMAIL PROTECTED]
 ∑ http://xahlee.org/


Honestly.. your programming skills suck

John

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list

huygens lands on titan

2005-01-14 Thread John Thingstad

--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
--
http://mail.python.org/mailman/listinfo/python-list