Yurik has quit [Read error: 104 (Connection reset by peer)]
* two-face
is back (gone 00:55:42)
mattam has joined #ocaml
Segora has joined #ocaml
<Segora>
hi
<two-face>
hey
lebowski has joined #ocaml
two-face has quit ["Client Exiting"]
karryall has joined #ocaml
graydon has joined #ocaml
skylan has quit [Read error: 104 (Connection reset by peer)]
skylan has joined #ocaml
karryall has quit []
Yurik has joined #ocaml
<Yurik>
re
Yurik is now known as Yurik[7h
Yurik[7h is now known as Yurik
Yurik is now known as Yurik[7h_left]
nkoza has joined #ocaml
Yurik[7h_left] has quit [Read error: 104 (Connection reset by peer)]
Yurik[7h_left] has joined #ocaml
Yurik[7h_left] has quit [Read error: 104 (Connection reset by peer)]
<nkoza>
hi, im about to learn ocaml and i have a ton of questions to get a little better the big picture of the language
<nkoza>
ocaml has optional dynamic dispatch?
<nkoza>
anyone alive? i have more questions :)
<pnou>
lol
<pnou>
what does dynamic dispatch mean?
<nkoza>
suposse that you have an object with a method
<nkoza>
called 'doThing'
<nkoza>
and you want to call that method using an string with their name
<nkoza>
i don't know if what i'm saying is clear :)
<pnou>
no you can't do that
<pnou>
it would be untypable
<nkoza>
so, you can't do a general proxy object?
<pnou>
no, ocaml is a static language
<nkoza>
ok
<nkoza>
another question...
<nkoza>
are classes first class objects ?
<pnou>
you mean first class type?
two-face has joined #ocaml
<two-face>
re
two-face has quit ["Client Exiting"]
skylan has quit [Read error: 104 (Connection reset by peer)]
skylan has joined #ocaml
smkl has quit [Remote closed the connection]
smkl has joined #ocaml
zack has joined #ocaml
<nkoza>
back
<nkoza>
pnou: are you here?
<nkoza>
with classes as first class object i mean.. you can pass a class to a function, use it to instantiate an object, etc
<nkoza>
i mean.. in python, object.__class__ is an object, you can manipulate it as you wish
<nkoza>
i don't know if ocaml has that
<zack>
no, ocaml has not class as first class objects
jao_away is now known as jao
* jao
is back (gone for 20:42.15)
<whee>
mmmmm 10.2.2
* whee
drools
<nkoza>
can you redefine classes / methods / functions at runtime?
<zack>
nkoza: not in the Python sense
gl has joined #ocaml
<nkoza>
ocaml have some level of introspection?
<zack>
nkoza: what do you mean for "introspection"?
<nkoza>
zack: for example, query what member variables or methods has an instance
<nkoza>
zack: like seeing an instance.__dict__ in python
<zack>
ok, then no, ocaml keeps no runtime introspection informations for object
<nkoza>
so, how do you do to serialize/deserialize an object?
<zack>
defining your own serializing function inside the class :-)
<zack>
there is no generic function to serialize object (yet)
<zack>
Marshal module doesn't work on objects indeed
<nkoza>
there isn't any orthogonal persistence scheme yet?
<zack>
sorry, I don't understand ...
<nkoza>
i mean, you create the objects and are saved to disk in a transparent way
<nkoza>
like smalltalk.. making an image of your data at execution time
<zack>
as I already said, there is no generic function to serialize objects
<nkoza>
ok
<zack>
you have to defined your own serializing functions class-per-class
<nkoza>
can you define your own 'metaobject' protocol ?
<nkoza>
(sorry by the big number of questions, i'm trying to get the big picture :)
<zack>
nkoza: no problem, but you talk too complicated for me :)
<zack>
what is a 'metaobject' protocol? :-)))
<nkoza>
you define your own object system
<nkoza>
(this isn't a flame, i only want to know) what are the advantages of ocaml over c++, apart from declaration of types not be needed?
<whee>
my main reasons for using ocaml over anything else are the type inference, speed, and just the whole functional language thing (first class functions, partial evaluation, etc)
<whee>
it's much quicker to develop an ocaml program than it is one in c++ because of not having to deal with tons of pointers and memory issues as well
<nkoza>
sure, i forgot gc :)
<nkoza>
my questions are more pointed to compare ocaml against common lisp
<whee>
well it's faster than lisp and offers more higher level things (I think, been a while since I've used lisp)
<whee>
plus you don't have the problems with different lisp interpreters and how they implement things that aren't defined in the standard like sockets and all
<whee>
so it's more cross platform there
<whee>
I can't remember enough about lisp to compare the languages :\
<nkoza>
coming from a c++/python background, my first impresion of ocaml drawbacks is the lacking of classes as first class objects (i don't know if any other mechanism replaces it) and instrospection (so, i must code each one of the serializers for all the classes, like in c++, I don't know if MetaOCaml fix that)
<whee>
I actually don't use objects much so I'm not even sure what you mean by that :\
<whee>
I get by with basic modules for most of my programs
<nkoza>
ocaml has native threads support?
<whee>
with pthreads, yes
<whee>
what's introspection btw?
<whee>
the ability for an object to know its own type?
<whee>
oh nevermind you answered it earlier
<whee>
I don't think ocaml really lends itself to a dynamic approach like that at the moment, that could be problematic with the type syste
<whee>
m
zack has quit [Read error: 113 (No route to host)]
<whee>
seems like an odd feature to not have
<whee>
but more likely there was some discussion on it before and it's not there for a reason
<nkoza>
on making ocaml more dynamic?
<whee>
yeah
<whee>
I'm looking around the caml-list and there's a cople threads on it