Log of the #nice channel on irc.freenode.net

Using timezone: Central European Time
* dbr joins08:42
* Glim joins13:57
* Glim leaves13:59
* ArtemGr joins14:05
* arjanb joins16:47
<ArtemGr>What language do you currently use?
<dbr>java atm. why?16:49
<ArtemGr>i'm still thinking about doing a part of my work in C++ - there are libraries i need to use, and i don't want to use a lot of different languages together...16:51
there is a nice FC++ library and so on.
i don't know, whether it's worth to deal with a "dangerous" language again...
C++ is a big hack...16:52
<ArtemGr>so, on the Java ground everything is more or less clear, but on the system-programming and C/C++ libraries ground i don't know... : )16:53
btw, i've liked reading the http://lambda-the-ultimate.org/node/1277 today... seems to be much in common with the author's expression on both C++ and Haskell...16:56
seems i want to grasp too much at once. : ) CSP and other concurrency alternatives, for example... Is there an ideal language? : )17:00
<dbr>hopefully not, or research would stop ;-)
<ArtemGr>: ))17:01
What do you thing about http://felix.sourceforge.net/17:50
<dbr>does it have object-orientation?18:13
<ArtemGr>seems so18:22
<dbr>first one is data-type, no subclassing i think
is the rest more than binding to c++ classes? how does it interact with the type system?18:26
<ArtemGr>the last is about the overloading with Koenig Lookup18:27
<dbr>seems to be static, not dynamic18:29
<ArtemGr>might be18:30
John Skaller states that there is an overloading, here: http://lambda-the-ultimate.org/classic/message10422.html18:32
to quote
Felix has overloading. You can even overload functors :-) At the moment:
fun add: int * int -> int = "$1 + $2"; fun add: float * float -> float = "$1 + $2";18:33
print (1 + 2); print (1.0 + 2.9);
'operator+' is spell 'add' in Felix at the moment (though I might change that to __add__ like Python, or perhaps 'op +' like C++ but shorter)
Ocaml allows arbitrary special symbol sequences as user defined operators. At present, Felix doesn't. One reason for bootstrapping is to allow the client to extend the lexer and parser -- its not really enough to just have new operator symbols, nor enough to just have user defined precedences. You really need to integrate the symbol in to the grammar properly..
One would like 'user defined domain specific sublanguages' and that is one of the goals. One of the key targets for this is SQL. I plan to add an SQL like subset directly into the language .. and then try to eliminate it with a library component.
This is the C++ committee papers, I know .. I've been a member of the C++ committee for over 10 years. They're anything but pros I'm afraid. Indeed, one reason for building Felix is the inability of the committee to grasp even elementary ideas accepted by theoreticians.
<dbr>overloading is only static (in the common understanding of the word)18:39
and his examples suggest that
<ArtemGr>Here's what he answers about dynamic dispatch.18:40
No classes yet. There is, however, a rudimentary dynamic mechamism for making objects from function closures.
[An object is just a factory function that returns a struct of some function nested in it, these functions are bound to the factory function's stack frame which may be considered the private data ..]
<dbr>i see18:41
the "yet" part is quite funny. adding classes to an ML-like type system is not the kind of thing you do as an afterthought18:42
<ArtemGr>perhaps he sees a way, since his compiler generates C++ code, and he states Felix to be C++ compatible, so he might just reuse some part of C++ semantics...18:44
considering that Felix code already must be able to invoke existing virtual C++ methods, if it's really compatible.18:47
<dbr>yeah, but that's only the code generation part. the hard part is typing18:50
i'll have to go19:00
<ArtemGr>some work on it has been done recently
http://sourceforge.net/mailarchive/message.php?msg_id=13836107 (bottom)
<dbr>structural subtyping. hum. in the spirit of Ocaml, but it's not very satisfactory i think19:02
i seem to know the guy from an ocaml context. the debian package maybe, or the ocaml list
ok, i have to go, see you soon19:03
* dbr leaves19:05
* ArtemGr leaves19:58
* Bluelive joins20:12
* Bluelive leaves23:30
* arjanb leaves00:17