> Message: 2
> Date: Fri, 19 Jun 2009 10:39:30 +0200
> From: Samuel Tardieu <s...@rfc1149.net>
> Subject: Re: [Factor-talk] New here
> To: factor-talk@lists.sourceforge.net
> Message-ID: <877hz862il....@willow.rfc1149.net>
> Content-Type: text/plain; charset=us-ascii
>
>>From my two years experience using Factor, I never had any problem
> defining any data structure I needed. And if by "built-in data
> structures" you refer to builtin types (as opposed to builtin type
> constructors), I fail to see what basic type would be missing. Could you
> please explain what you mean here?

Just as a quick example, my list program provided the ability to link two 
lists together. Factor sequences don't; they only provide the ability to 
append or prepend elements onto a list. Mine were also circular, and the 
sequences (including dlink) don't seem to be. I say "don't seem to be" 
because it is not real clear what the underlying data structure is exactly. 
Most likely sequences are lists, but we aren't told how they are 
implemented.

The point that I was making is that in languages such as Factor (Python, 
etc.) there is the concept of "idiomatic programming." In Forth, this 
concept doesn't exist; you do things however you want to. In Factor, writing 
packages like list is frowned upon because it is not idiomatic. In Forth, 
writing packages like this is typical. Often, it takes less time to write 
your own code than to figure out how somebody else's code works. This is 
true for me anyway; I'm not very good at learning things.

> As a side note, I am also a big Forth supporter and wrote several Forth
> native and cross compilers that are used in production. But recently, I
> noticed that Factor combinators were so useful an abstraction that
> reimplementing them in my Forth compilers made me write even clearer and
> simpler code.  For this reason, I wouldn't recommend learning Forth first
> as an helper step. Jumping right into Factor is the best way to catch
> Factor idioms early.

I like Factor combinators too. Combinators are by far the coolest thing 
about Factor. The problem in Lisp (and Joy) is that there was no distinction 
between data lists and executable lists. Factor makes this distinction, 
which is a big part of why Factor is as efficient as it is. Lisp was cool, 
but it suffered from efficiency problems for so long that it became 
sidelined.

Factor is derived from Forth, but it has a different philosophy. It is 
likely that a Factor programmer will also know other idiomatic languages 
such as Python and Ruby, and a Forth programmer will also know several 
assembly languages --- but not vice-versa.

BTW, I've only written one Forth cross-compiler. This was called MFX and it 
was for the MiniForth chip (built on the Lattice 1048isp PLD). This was when 
I worked at Testra.


------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to