|
![](/i/fill.gif) |
>> It's more that when you have a very large number of things, some of
>> which are important and some of which are incidental, you tend to
>> forget about some of them.
>
> Only if you're using a functional language and therefore you have to
> pass everything around all the time, even if you're not using it right
> now. :-)
You don't have to do that if you don't want to. Smart programmers don't.
>> Also, if you *change* how your code works (e.g., you add an extra
>> layer of indirection), having a type system means you can just follow
>> the error messages to find the exact places where you need to change
>> something.
>
> This is helpful, but it also seems to not be much of a problem in
> practice. You have an object that represents a concept, and that's where
> you make the change. Yes, I suspect this is very problematic for a
> dynamically-typed functional language (like Erlang, say). But in an OO
> language, you don't have (for example) "state" and "list of states": You
> have "where I am now in the state machine processing". It's exactly this
> kind of change that good OO design is trying to make trivially simple.
> (It isn't, of course...)
I reiterate: I found this to be a major problem with *Smalltalk*, which
is a non-functional, OO language. My problem is *not* some design flaw
of functional programming. I hated using untyped languages long before I
even knew what functional programming *was*.
(I still find it to be a program with JavaScript, for that matter. Of
course, the beauty of JavaScript is that you can develop and run it
*anywhere*. No other language has that.)
> I suspect it's harder than just "follow the error messages"
In reality... yes, usually.
> One of my problems with Erlang is that the documentation for the
> libraries and especially the dev tools suck badly.
Not unlike Haskell, really.
Some things are very well documented. (E.g., how to invoke the
compiler.) Some things are very poorly documented. (E.g., how do I write
high-performance code?) And some things have no documentation at all!
(E.g., what does Control.Parallel.Strategies.sforce do?)
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |