lam has quit [Read error: 104 (Connection reset by peer)]
Swynndla has quit [Read error: 104 (Connection reset by peer)]
lam has joined #ocaml
Swynndla has joined #ocaml
farizeo has joined #ocaml
fariseo has quit [Connection timed out]
housetier has quit ["#breaks @ irc.highteq.de"]
Kinners has joined #ocaml
reltuk has joined #ocaml
Kinners has quit [Read error: 60 (Operation timed out)]
<pattern>
i saw a book on types in the bookstore today
<pattern>
they used ocaml for all of their example code
<Nutssh>
ocaml does seem to be growing in interest, or is it me?
<pattern>
it seems that way to me
<pattern>
and i've heard very few negative things said about it from people who've actually taken the trouble to learn it
<pattern>
but i still think it's going to take at least six years to reach the popularity of even something like ruby
<pattern>
...if the trend continues
<Nutssh>
I think it will. Its fairly approachable. But at the same time, its very different, and I've grown to accept that programming isn't a technology of the future, but seems incredibly tied to the past.
<pattern>
and it'll probably never be as popular as java or vb
<pattern>
programmis is certainly tied to the past with bounds of backwards compatibiilty and the reluctance of most programmers to learn anything too different from the way they've been taught
<Nutssh>
Advertise it as much lighter weight than java, but also as fast or faster, and SAFE?
<pattern>
and ocaml has too much of a feel of math, imo, for most people to take a liking to it
<pattern>
i think the early adopters of ocaml don't mind math, or even actively like math... can't say the same thing about the masses
<pattern>
and it's harder to just hack away in ocaml
<Nutssh>
I still find ocaml amazing for its agility. Fast compilation. And, a lot of the time, you can substitute datastructures by just changing types and fix the type errors.
<Nutssh>
I don't know what you mean by that.
<pattern>
making sense of all those type errors and figuring out how to combine functions can be pretty tricky... though i guess nothing'll stop someone from using ocaml in an imperative style, but that's kind of a waste
<cleverdra>
Indeed? I sometimes jot down notes to myself in the form of O'Caml type declarations and pattern-matches, because I can figure out key parts of my program just by looking at the types.
<pattern>
yeah, _you_ can
<pattern>
because you're comfortable with ocaml's type system
<Nutssh>
And I like the math orientation of it. Great for symbolic reasoning, and that probably really is the essence of programming.
<pattern>
i'm saying that there's a learning curve to get to that point, and to the average programmer that learning curve is pretty steep, maybe too steep
Kinners has joined #ocaml
<pattern>
it's not like learning just another imperative language
<cleverdra>
I don't really care, but OK.
<Nutssh>
No, I think its just lack of familiarity and a huge lack of interest in anything new.
<pattern>
yeah, if they were taught it early on then i think they'd probably find it more natural and easier
<pattern>
but i doubt that's going to happen any time soon either
<Nutssh>
Its taken almost 15 years for OO to become mainstream. 40 years for GC to become mainstream.
<pattern>
yeah, but using GC is not tough for the programmer
cjohnson has quit ["Drawn beyond the lines of reason"]
<pattern>
there's no learning curve in using GC
<pattern>
just some preconceptions to overcome, which is easier to do with young people
<Nutssh>
But 40 years for acceptance! Now thats being tied to the past.
<pattern>
and OO gained acceptance in a fad-like fashion... and i do see the potential for the functional paradigm to become the next programming fad... i'm just not sure how easy programmers will find picking up the functional style compared to previous fads (not that the functional style is _just_ a fad... i think it's very valuable, but anything percieved as "new" has the potential to be embraced because it's fashionable rather than on technical merits)
<pattern>
like "extreme programming"
<pattern>
another fad that, like using GC, really doesn't require much of the programmer to embrace it
<Nutssh>
I think its not the functional style --- lisp has had that for 35 years too. I think its the typing in ocaml I find more useful, but higher order functions sure come in handy.
<cleverdra>
Nutssh - no, lisp really didn't have it for 35 years.
<pattern>
actually, same with OO, as i hear many programmers are paying lip-service to the OO paradigm, but really write in a procedural style even in languages like java
<cleverdra>
and "it's".
<cleverdra>
pattern - have you read topmind, yet?
<pattern>
nutssh, yes, i love the typeing in ocaml... i think both are a hurdle for the average programmer
<pattern>
cleverdra, no, what's that?
<cleverdra>
pattern - c2.com/cgi/wiki?TopMind -- TOP for Table Oriented Programming, a fairly nifty and tenacious anti-OO person.
<pattern>
heh
<pattern>
i've read a few anti-OO wiki threads
<pattern>
they're usually not too coherent
<cleverdra>
Follow that link to his site, at least.
<pattern>
sure
<pattern>
i'm game
<pattern>
"Believes that non-trivial taxonomies, relationships, and structures should be data instead of code because data is allegedly easier to customize one's view of in order to inspect, study, and test."
<pattern>
so code should be trivial?
<pattern>
;)
<Nutssh>
From the summary, it strikes me as an instance of 'when all you have is a hammer, everything is a nail.' But could be willing to buy the premise that relational abstraction is underused.
<pattern>
"Believes that the majority of most algorithms can be reduced to DatabaseVerbs if one knows how" (database verbs being things like "search", "sort", "delete") wow, that's deep
Kinners has left #ocaml []
<pattern>
i dunno... i don't like databases
<pattern>
it's just a personal thing
<cleverdra>
This manner of read-quote-comment-read strikes me as an instance of not really wanting to read, but OK.
<pattern>
they just rub me the wrong way
<pattern>
i am reading
<pattern>
perhaps i should save up my comments, though
<Nutssh>
Oh, relational calculi is interesting. and a great high-level abstraction.
<pattern>
yeah, i'm no expert on databases to make a knowledgeable rejection of them... that oppinion is just coming from the gut... but maybe that's just an aversion bred of my familiarity with databases mostly thruogh administering them or dealing with their users rather than having explored their implementation and the theory behind them
<pattern>
and, now that i think more of it, i remember having to develop for an MS Access long, long ago... and remember how SQL was probably the simplest language i've ever learned (not simple in a good, elegant way either... though not the abortion that is HTML either)
<pattern>
but, i guess i could get in to the theory behind them, from a math perspective
<pattern>
anyway, back to reading...
<Nutssh>
The relational calculi is nice for expressing incredibly high levels of abstraction: SELECT a,b,c FROM foo, bar WHERE foo.a = bar.b && foo.d> bar.e Manually coding a procedure for this would take at least 10 lines of code, assuming a full datastructure library, and be slower.
<pattern>
yes, sql is simple
<pattern>
cleverdra, topmind's critique of heirarchical classification reminded me of faceted classification... have you heard of it?
<cleverdra>
pattern - no, but the name seems evocative enough.
gim|570 has quit [Read error: 54 (Connection reset by peer)]
<pattern>
i hate wiki threads
<pattern>
same with lambda threads
<pattern>
hopefully one day someone will reinvent the usenet news reader and end the pain
<pattern>
this is one case where heirarchy is very useful
<pattern>
"The problem with a static type system is that it tends to force us to distinguish crisp dollar bills from crumpled ones through-out the system, even if only one part of the system cares. This can be tolerable for small, stable systems but it doesn't scale well"
<pattern>
not hard to see the holes in that argument
<Nutssh>
Yeah. You store seperate flags like that not via inheritance/subtyping or even mixins, but as a seperate attribute. 'billstatus' that is a component of a abstractbill.
<pattern>
the route i took was to extend his analogy of passing around crumpled dollar bills
<Nutssh>
But figuring out the right way to decompose a messy problem using both inheritance and encapsulation is a bit of a black art. Ever used a MUD?
<pattern>
until the bills just fell apart
<pattern>
and you could hardly tell what was a bill anymore and what wasn't
<pattern>
(ie. a system with no types)
<pattern>
but, this makes me wonder if there's been any research on "fuzzy types" (ie. combining fuzzy logic with strong type systems)
<pattern>
probably not a good idea
<pattern>
i used to play muds, yes
* cleverdra
finds the OO used in typical IF more interesting =)
The-Fixer has quit ["Goodbye"]
<Nutssh>
Heh. :) Yeah, The rants seem like a reaction to a perceived fad of using OO to represent large amounts of data that would be better suited to a relational database.
<Nutssh>
And on http://c2.com/cgi/wiki?ReplaceConditionalWithPolymorphism IMO, OO is useful because it centralizes your data and your functions for modifying it, and it helps you think of a problem. The notion of inheritance and dynamic dispatch is less important.
<pattern>
well, modularization and encapsulation are important
<pattern>
and strong typing provides the link between functions and data
<pattern>
no need to have them both be in an "object"
<Nutssh>
Oh, and for the wiki, Wiki's have one advantage over news, they can be edited to remove the cruft, leaving the valuable arguments.
<pattern>
you can filter news
<pattern>
anyway, there's nothing stopping someone from creating a wiki page from a discussion, once you've distilled it to the essentials
<pattern>
but while it's in living thread form it makes more sense for it to be in news format, imo
<Nutssh>
Agreed. But C doesn't have that sort of nice encapsulation. You're right though, I never really noticed or cared that sml-nj didn't have objects.
det has quit [calvino.freenode.net irc.freenode.net]
pattern has quit [calvino.freenode.net irc.freenode.net]
rox has quit [calvino.freenode.net irc.freenode.net]
smkl has quit [calvino.freenode.net irc.freenode.net]
rox has joined #ocaml
smkl has joined #ocaml
pattern has joined #ocaml
det has joined #ocaml
mw_ has joined #ocaml
The-Fixer has joined #ocaml
mw has quit [Read error: 110 (Connection timed out)]
cleverdr1 has joined #ocaml
cleverdra has quit [Read error: 110 (Connection timed out)]
<Nutssh>
*hmms* I note that he discusses his opinion on OOP for 'small to medium' business applications. On the other hand, he is true pointing out that it is those that account for around half of the software out there, and its an area that is lacking an academic treatment.
gim|570 has joined #ocaml
karryall has joined #ocaml
__DL__ has quit ["Bye Bye"]
wazze has quit ["Learning about how the end letters on French words are just becoming more and more silent, I conclude that one day the French"]
cjohnson has joined #ocaml
Nutssh has quit ["Client exiting"]
buggs has quit ["restart X"]
gim|570 has quit [Read error: 104 (Connection reset by peer)]
malc has joined #ocaml
__mattam__ has joined #ocaml
mattam has quit [Nick collision from services.]
__mattam__ is now known as mattam
malc has quit ["no reason"]
mattam has quit ["leaving"]
mattam has joined #ocaml
mattam has quit [Client Quit]
mattam has joined #ocaml
gim has quit [Read error: 104 (Connection reset by peer)]
gim has joined #ocaml
gim|570 has joined #ocaml
gim has quit [Read error: 54 (Connection reset by peer)]
gim has joined #ocaml
gim|570 has quit []
gim has quit [Read error: 54 (Connection reset by peer)]
gim_ has joined #ocaml
Demitar has quit [Read error: 60 (Operation timed out)]
Swynndla has joined #ocaml
det has quit [Read error: 110 (Connection timed out)]
The-Fixer has quit ["Goodbye"]
Demitar has joined #ocaml
det has joined #ocaml
The-Fixer has joined #ocaml
karryall has quit ["bye"]
gim_ has quit [Read error: 104 (Connection reset by peer)]
gim has joined #ocaml
cmeme has quit [Remote closed the connection]
cmeme has joined #ocaml
Kinners has joined #ocaml
cmeme has quit [Read error: 54 (Connection reset by peer)]