<det>
jdh30, I don't think it is fair to use Mercurial and Darcs as a comparison of Python and GHC/Haskell, they both implement different algorithms.
<jdh30>
mbishop: Indeed.
<det>
Not that I don't see the humor of GHC migrating away from Darcs :-)
<jdh30>
det: There are so few non-trivial Haskell programs that it is basically impossible to compare the performance of Haskell with anything on real code bases.
<det>
That may be true. But so is my statement.
<jdh30>
det: So I deliberately avoided trying to reason about it and simply stated the facts.
<jdh30>
det: Sure.
<jdh30>
Then the e-mails started coming in... :-)
<jdh30>
They seem really afraid of what I might say, particularly with regard to the Haskell in Industry page.
<jdh30>
To be honest, I'm surprised I keep getting invited to CUFP. I had assumed that CUFP was populated entirely by academics wanting evidence that their work is useful IRL to put into their next grant proposals. ;-)
<jdh30>
Did I tell you about my new friend?
jdh30 is now known as haskelllover
haskelllover is now known as jdh30
<jeddhaberstro>
Anyone here use Lisp or Scheme also?
<jdh30>
jeddhaberstro: I've dabbled with them.
<jeddhaberstro>
Did you like them?
<jdh30>
jeddhaberstro: But I only know enough to make a Lispers blood boil.
<jeddhaberstro>
lol
<jdh30>
jeddhaberstro: No. Lisp is completely devoid of merit. Scheme is interesting from an academic perspective but I would not use it for any real work.
<jdh30>
jeddhaberstro: Why?
<jeddhaberstro>
Just wondering what other people's opinions on other functional languages were
<jdh30>
jeddhaberstro: I can give you a run down if you like. :-)
<jeddhaberstro>
Sure
<jeddhaberstro>
I originally started with Scheme, but I found the learning material for OCaml much easier to get into
<jdh30>
jeddhaberstro: Scheme is a sane Lisp which makes it much easier to learn what cool features Lisp provides.
<jdh30>
jeddhaberstro: Interesting.
<jdh30>
jeddhaberstro: Lisp/Scheme basically have two interesting features: meta-circular evaluation and macros.
<jdh30>
jeddhaberstro: The meta-circular evaluator lets you generate Lisp/Scheme code at run time, compile and run it. Macros let you fork the language.
<jeddhaberstro>
Yeah
<jeddhaberstro>
I've heard wonderful thing about their macros (especially when compared to C's macros)
<jdh30>
jeddhaberstro: Both have some applications but they also come at a grave cost in terms of other language features. Hence all modern FPLs sacrificed those features for the others.
<jdh30>
jeddhaberstro: Oh yes, Lisp macros are far more powerful than C's macros.
<jdh30>
jeddhaberstro: However, Mathematica's term rewriting does essentially the same thing and is far more powerful than Lisp's macros.
<jdh30>
jeddhaberstro: Mathematica is just as worth-learning as Lisp, IMHO.
<jeddhaberstro>
Do you think OCaml's has the "best" language features?
<jeddhaberstro>
I couldn't see myself ever using Mathematica (in the near future, maybe college)
<jdh30>
jeddhaberstro: In the grand scheme of things (excuse the pun), there are no significant differences between Lisp and Scheme except that Scheme requires tail calls that turn out to be essential for functional languages.
<jeddhaberstro>
How does it require tail calls?
<jdh30>
jeddhaberstro: Mathematica should be of interest to computer scientists as well as (real) scientists because it is a great term rewriting system and would be an ideal basis for writing toy optimization stages.
<jeddhaberstro>
I *think* I've written bad Scheme code that doesn't use tail call recursion.
<jdh30>
jeddhaberstro: The Scheme language requires that implementations implement tail calls, IIRC.
<jdh30>
jeddhaberstro: Probably: it is easily done.
<jeddhaberstro>
oh, I see
<jeddhaberstro>
Don't you need to buy software to use Mathematica?
<jdh30>
jeddhaberstro: ML was derived from Lisp (its first implementation was even written in Lisp).
<jeddhaberstro>
Yeah
<jdh30>
jeddhaberstro: For ~$50, yes.
<jdh30>
jeddhaberstro: ML then developed from something designed specifically for the implementation of the Logic of Computable Functions theorem prover into a real programming language with additions like a unique module system.
<jeddhaberstro>
cool
<jdh30>
jeddhaberstro: The insideous French stole the idea and "invented" the Categorical Abstract Machine Language.
<jeddhaberstro>
I'd rather focus learning the free functional languages first, OCaml, F#, Lisp and Scheme will fill my time wwell :)
<jdh30>
jeddhaberstro: NP.
<jeddhaberstro>
wasn't that name suppose to be a joke kinda?
<jdh30>
jeddhaberstro: Which one?
<jeddhaberstro>
CAML
<jdh30>
jeddhaberstro: I'm not sure. I'd like to think Coq was deliberate.
<jeddhaberstro>
I think I read that somewhere, but I could be wrong
<jdh30>
Interesting.
<jdh30>
So CAML became OCaml and added guarded patterns, polymorphic variants, structurally typed objects etc.
<jdh30>
But the emphasis remained on performance in OCaml and it still lacks some important basic features like equality types.
<jdh30>
SML became SML 97 and was to become SML 2000 but nothing ever happened.
<jeddhaberstro>
Intersting
<jeddhaberstro>
Interesting*
<jdh30>
SML is now primarily SML/NJ and MLton.
<jeddhaberstro>
Why would someone use SML over OCaml now-a-days?
<jdh30>
There are less-used research dialects like Alice ML as well. Same for OCaml with JoCaml and MetaOCaml, both of which are well worth learning.
<jdh30>
JoCaml and MetaOCaml are both still actively developed as well.
<jeddhaberstro>
I'll probably eventually take a look at that
<jdh30>
I wrote an OCaml Journal article about MetaOCaml and will write one about JoCaml ASAP.
<jeddhaberstro>
I saw
<jdh30>
Then OCaml turned into F#.
<jeddhaberstro>
Once I get some more cash, I'm gonna buy a subscription to the journal
<det>
OCaml turned into F#?
<Associat0r>
jdh30 : didn't they start of Caml instead?
<det>
You should probably restate that more accurately.
<jeddhaberstro>
I think he meant it just influenced F#
<jdh30>
F# is quite a different language though: most of the module system is missing, no polymorphic variants, no structurally-typed objects...
<det>
Also, how free is F# ?
<jdh30>
I mean Microsoft were making such heavy use of OCaml internally that they decided to create their own knock-off, fixing the things they wanted fixed and not bothering with the thing they didn't use.
<jeddhaberstro>
structurally-typed objects is what is used when testing for equality with the = operator, right?
<jdh30>
This is why F# is more of a "production ML".
<jdh30>
No!
<jeddhaberstro>
?
<jdh30>
Structurally typed objects means I can create one immediate object with a foo method and another immediate object with a foo method and no classes at all, and OCaml will treat them as being of the same type.
<jeddhaberstro>
oh
<jdh30>
This is related to duck typing: they both quack like a duck (have a foo method).
<jeddhaberstro>
gotcha
<jdh30>
Polymorphic variants are also structurally typed.
<jdh30>
This is structural as opposed to the nominal typing found in most OO languages, where two objects are only considered to be of compatible types if that is stated explicitly in the source code in the form of an inheritance hierarchy.
<jdh30>
of classes.
<jdh30>
OCaml also has the unique advantage that polymorphic variants and objects have their types inferred.
<jdh30>
So if a Haskeller tells you that Oleg reinvented polymorphic variants in Haskell without extending the language, ask them for the Haskell equivalent of `a.
bluestorm has joined #ocaml
<jeddhaberstro>
Hey bluestorm
<jdh30>
Haskell is also related to ML but drew upon lazy languages as well. I know little about its history but it is another practically-useless language worth learning if you want mind expansion.
<jdh30>
hi bluestorm
<jdh30>
Mathematica is probably most closely related to Lisp, but its development environment is its main strength: it blows everything else away.
<jeddhaberstro>
Only purpose I could see in learning Haskell is to learn "true" pure functional programming
<jdh30>
jeddhaberstro: Exactly. It has some other interesting features like type classes as well.
<jeddhaberstro>
But, I guess that could be achieved in any functional language by just avoiding the impure stuff
<jdh30>
I suppose this brings up the question of what kinds of applications suit each language.
<jeddhaberstro>
yeah
<jdh30>
OCaml is a great all-rounder.
<jdh30>
Lisp/Scheme are good for metaprogramming, so regexp engines.
<Associat0r>
I think haskell came from miranda
<det>
It's worth noting that F# is essentially Windows-only because mono performance is so bad.
<jdh30>
Mathematica is probably best for graphics.
<det>
And how free is F# ? Is someone free to fork the compiler? Is the compiler source even available?
<Associat0r>
and KRC I think
<jdh30>
det: I'd say lock-in rather than performance is the main reason to stick with Windows for F#.
<jdh30>
det: Note that OCaml is not free by that definition either.
<jdh30>
det: This is arguably the single worst thing about OCaml. We cannot fix its flaws.
<jdh30>
Associat0r: Mozart?
<det>
Yes, I'd agree with you. That is a problem.
<jdh30>
det: And F#'s compiler source is currently available.
<jeddhaberstro>
I think it's good that OCaml is closed source
<jdh30>
jeddhaberstro: Why?
<jdh30>
jeddhaberstro: I just had to wait a year to get a trivial bug fixed in the OCaml stdlib just because the OCaml guys are busy and won't let me throw money at them.
<jeddhaberstro>
I hate it when there are a million different implementation of one language. Then code starts to become uncompatible with other implementations, and the lines blurs between what is standard and what isn't
<jdh30>
I wish we had a truly open source functional language that combined the best aspects of the current generation.
<det>
jeddhaberstro, Python doesn't have that problem.
<jdh30>
jeddhaberstro: Yes. Haskell has that problem. I tried to explain it to them on their mailing list but they just banned me.
<jeddhaberstro>
Python might eventually though
<dibblego>
that's because you talk shit
<jdh30>
det: Ever used PyPy?
<Associat0r>
jdh30 : not related to mozart I think
<jdh30>
Associat0r: Ah, ok. Just an idea...
<det>
jdh30, Nope. Does PyPy get serious use? And besides PyPy isn't a fork of the Python interpreter anyways.
<jdh30>
So dribblego is either a Lisper or a Haskeller.
<dibblego>
or perhaps I just think you talk lots of shit
<jeddhaberstro>
Please, lets not get into some fight. It's rather annoying, and reminds of the old forums where I use to go to that were full or immature teenagers.
<jdh30>
dibblego: Can you code?
<landonf>
Can we fast-forward past this?
<jeddhaberstro>
We're having a nice discussion
<jdh30>
jeddhaberstro: He started it!
<dibblego>
jeddhaberstro, agreed, just noting the reasons why he might be banned
<jdh30>
jeddhaberstro: Yeah, before dribbleglow turned up.
<jeddhaberstro>
jhd30: Be the bigger man and don't let it get to you.
<jdh30>
jeddhaberstro: He didn't even call me Dr.
<jdh30>
jeddhaberstro: Anyone on Facebook already knows I'm the bigger man.
<jdh30>
hehe
<jeddhaberstro>
dibblego: No one really cares
<jeddhaberstro>
lol
<dibblego>
jeddhaberstro, you seem to be listening to his shit, so at least you do
<jdh30>
My wife does.
<landonf>
We are talking about programming languages, right?
<jeddhaberstro>
dibblego: I haven't read much of anything of his. Just his website. I'm unbiased.
<jeddhaberstro>
landonf: yes
<jdh30>
landonf: What? You think I have a picture of my huge programming language on Facebook?
<dibblego>
jeddhaberstro, just a warning; I don't want to start anything
<jdh30>
Anyway, then there's Erlang. Very interesting for concurrency because it is a proven technology (unlike Haskell ;-).
<jeddhaberstro>
Fair enough
<jdh30>
jeddhaberstro: You listening?
<jeddhaberstro>
Erlang is used for phone stuff, right?
<Associat0r>
jdh30 : I think I saw some pic of you and it reminded me of Seth Rogen
<jdh30>
Yes.
<landonf>
I'd really like to see one solid runtime emerge. Operating system threads, concurrent GC, optimizing compiler, runtime or otherwise.
<jdh30>
ROTFL. Yeah, that was probably me.
<jeddhaberstro>
I saw a pic of you on DotNetRocks
<jeddhaberstro>
Just your face.
<jeddhaberstro>
:P
<Associat0r>
yes that one
<jeddhaberstro>
Man, I can't wait until I can drop all C and C++ programming from development
<jdh30>
Toonto_del_alma: MetaOCaml development is about to restart, beginning with an update to OCaml 3.11. I suspect lack of funding was the reason.
<bluestorm>
jdh30: the QPL is arguably a free licence
<bluestorm>
(i just jumped in so might be a bit late, sorry)
<bluestorm>
i agree that the development process of OCaml is not that great, but in itself it is untrue that the Ocaml software is "not free"
<jdh30>
bluestorm: NP. I asked Xavier about this. You can also pay to join the OCaml Consortium in order to get a freely licensed OCaml distribution and then redistribute it yourself under the GPL so we could all contribute.
<Associat0r>
jdh30 : the F# source code won't remain available right?
<jdh30>
Associat0r: Probably not but I don't actually know.
<Associat0r>
since you said they closed it down or something
<bluestorm>
jdh30: would they do it ?
<det>
How much to join the consortium?
<jdh30>
bluestorm: That depends entirely upon your definition of "free" in that context but, at the end of the day, I only care that I am unable to fix the problems that I find in OCaml. Even if I send Xavier a trivial verbatim fix it takes him 1 year to put it in.
<kig>
Have a yet another ocaml extlib: http://glimr.rubyforge.org/cake/prelude.ml Including: some useful stuff, some weird stuff, some "this might be nice". Started it as a partial port of Haskell's prelude. Convenience focus is on combinators, lists, strings, files and shell commands.
<jdh30>
Associat0r: The FSharp.Compiler.dll, yeah. That sucks.
<jdh30>
det: IIRC £1,000
<Associat0r>
that one isn't in the source or isn't anymore?
<bluestorm>
jdh30: jane street blogged about a float optimization fix wich was done not so slowly it seems
<jeddhaberstro>
Is F# made in c#?
<mbishop>
No
<mbishop>
it's F# and OCaml
<Associat0r>
it was made in ocaml
<bluestorm>
i'm not sure they gave the precise timing but on that issue Leroy reacted quite fast it seems
<det>
So less than $2000 to get a LGPL/GPL version of Caml? Sounds cheap!
<Associat0r>
jdh30 : what is you opionion on dependent types?
code17 has quit ["Leaving."]
<jdh30>
Its really weird. I had a chat with the president of a major corporation in the finance sector and he offered to "throw a few million dollars at Mono to see if it helped". I wanted to say "throw a few million to Xavier Leroy" but Xavier isn't interested.
<jdh30>
mbishop: F# has OCaml in it?!
<jdh30>
bluestorm: Very interesting. So Jane St. can get them to work quickly.
<Toonto_del_alma>
In all time that it was commercing, they were doing nothing in the innovation ...
<jdh30>
det: Yes, that is very cheap for what you get.
<bluestorm>
jdh30: if think it is more a matter of communication, how much the patch is ready (and acceptable to the maintainer taste), and the topic/simplicity of it
<jdh30>
Associat0r: I have no idea about dependent types.
<jeddhaberstro>
How the hell did they get Ocaml to mix with .NET, interop it with C, the interop that with .NET?
<mbishop>
jdh30: hmm? looking at the sources, it seems like it's mostly OCaml, with libarires and such in F#
<jdh30>
bluestorm: If so, why wasn't my trivial bug fix put in sooner?
<bluestorm>
don't know
<jdh30>
mbishop: Are you absolutely sure that is OCaml and not a minimal bootstrapped F#?
<mbishop>
well
<jdh30>
bluestorm: Still, maybe we should join the consortium. I was only concerned that it is not clear what exactly you get for your money.
<mbishop>
it looks like OCaml (no light syntax) and it has comments that say stuff like (* F# foo.bar *)
<mbishop>
as if it's perhaps both valid OCaml and F# or something
<jdh30>
det: I think that is £1,000 per year that you want up-to-date snapshots of the OCaml distro under LGPL.
<bluestorm>
yes, i wouldn't suppose that you are free to release OCaml under a more permissive licence
<Associat0r>
it is now valid F# too I think
<jdh30>
bluestorm: I read their legal docs and you can actually rerelease it. I asked Xavier and he said that the downside of doing that is that you annoy him.
<mbishop>
WARNING: Slight flood incoming
<mbishop>
let compilerProcessRunsMono10() =
<jdh30>
Toonto_del_alma: What were you saying about innovation?
<mbishop>
(*F#
<mbishop>
begin
<mbishop>
let sysDir = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory() in
<mbishop>
sysDir.EndsWith("1.0")
<mbishop>
end or
<mbishop>
F#*)
<mbishop>
false
<bluestorm>
did he expanded on why it is an annoyance ?
<mbishop>
that's an example of some of the code...looks like the comments are used as ifdef's
<jdh30>
bluestorm: Well, he should really put something legally binding in the contract but I guess he couldn't be bothered. :-)
<bluestorm>
mbishop: don't be afraid to use a pastebin :p
<jdh30>
mbishop: Odd.
<mbishop>
jdh30: and the file itself is .ml
<Toonto_del_alma>
jdh30, is being innovated the OCaml ?
<jdh30>
OCaml is doing really well though, with 20 coders at Jane St. and lots more at XenSource.
<jdh30>
Toonto_del_alma: OCaml has not seen any innovation for many years now, IMHO.
<bluestorm>
i happen to have read some F# source, trying to understand how the #light syntax was implemented, and have seen some weird ocaml/f# things too
<jdh30>
That's why I think the time is ripe for a complete rewrite.
<mbishop>
bluestorm: I would have, but I didn't feel it too much trouble to paste that small example here :P
<bluestorm>
moreover, iirc the style was quite awful
<jdh30>
bluestorm: Varies depending who wrote it.
<Associat0r>
jdh30 : I think if a new lang should be written from scratch
<mbishop>
hope it isnt my code you're talking about :P
<bluestorm>
it's only the lexer anyway, but i wan't impressed
<jdh30>
mbishop: Hah! I think he meant in the compiler... :-)
<mbishop>
Oh :P
<bluestorm>
(moreover, i now suspect the suggested implementation of the #light syntax wich is in the spec. is flawed)
<jdh30>
bluestorm: Oh, their lexer doesn't support named subresults. That really sucks and breaks almost every lexer I have ever written.
<Toonto_del_alma>
Associat0r, it's good idea to create new own licence from scratch
<Associat0r>
take the best bits of ocaml, F#, haskell, epigram, bitc
<jdh30>
EVERYONE: You must use that feature in ocamllex because it rocks.
<jeddhaberstro>
I like jdh30's idea of implementing an OCaml like language with LLVM
<bluestorm>
Associat0r: oh yeah, that's sooo easy
<Toonto_del_alma>
avoiding the virality of non-own licences
<Associat0r>
I meant language
<bluestorm>
and then you become the master of the known world
<jdh30>
bluestorm: What if you are already master of the known world?
<jdh30>
Seriously, I think that is entirely feasible.
nuncanada has joined #ocaml
<bluestorm>
yeah, i guess we can read more about that in the next issue of your OCaml Journal
<jdh30>
Take a concurrent GC and JIT (could be LLVM-based or just use Mono) and reimplement the core of OCaml. Then add views and operator overloading. That alone would be an awesome new language.
* mbishop
pops popcorn
<Associat0r>
according to I think it was Smerdyakov creating a lang was easy
<Toonto_del_alma>
jdh30, the language is PWNED
<jdh30>
PAWNED?
<jeddhaberstro>
jdh30, how much time and man power do you think that would take?
<Toonto_del_alma>
it's better to build a translator of PWNED language to MY New Own language
<Associat0r>
a new lang needs dependent types
<Toonto_del_alma>
remove the PWNED language ...
<Toonto_del_alma>
and so a different licence
<jdh30>
jeddhaberstro: Depends entirely who did it. If you target Mono and keep everything to a minimum, a talented developer like Torben could do it in 2 months.
<jeddhaberstro>
I wish I was talented enough to do, else I would.
<jdh30>
So I think this really is feasible. Once you have the basics in place, you spend your time garnering users/developers who help to build everything else with you.
<jdh30>
jeddhaberstro: Me too. :-)
<jdh30>
jeddhaberstro: I think I could do it in 6 months of full time work but I just don't have that much time right now.
<jeddhaberstro>
The klaideoscope llvm tutorial would probably be a good starter to get the basics of a ML like language created
<Toonto_del_alma>
by example, C# was a translation of Java, Java was a translation of C++, C++ was a translation of C, C was a translation of BCPL, BCPL was a translation of Algol-60
<jdh30>
bluestorm: And yes, the OCaml Journal articles are actually leaning in that direction. Which reminds me, writing something that outputs code for Mono would be cool...
<jdh30>
jeddhaberstro: Yes and no. You can build a compiler for a simple ML upon LLVM easily but that is the easy part. The hard part is pulling in a concurrent garbage collector to work in harmony with your generated code.
<Toonto_del_alma>
two languages seem be similar, hehehe
<jeddhaberstro>
Yeah
<jeddhaberstro>
I don't really know the first thing about writing a compiler
<mbishop>
Toonto_del_alma: actually, that's wrong
<jdh30>
jeddhaberstro: That's why it would be much easier to use Mono but then you inherit all of Mono's problems.
<jeddhaberstro>
Yeah
<mbishop>
Toonto_del_alma: Java had a lot more influences than C++, C actually came from B, which came from BCPL, which came from CPL
<jdh30>
jeddhaberstro: Mono even supports C# 3 now though, which means delegates (i.e. first-class functions) in the IL. How hard can the rest be? ;-)
<jeddhaberstro>
Exactly
<jeddhaberstro>
Really, I don't think Mono is *that* bad of an alternative. It may be comparitvely slow, but it's got a great foundation and good backing
<jeddhaberstro>
I don't think it's going to die out anytime soon.
<jdh30>
jeddhaberstro: I think it has an extremely poor foundation.
<jeddhaberstro>
I don't mean code wise per se
<jdh30>
jeddhaberstro: It also has no proven track record (like Haskell but unlike OCaml).
<Associat0r>
the big problem is the linux world doesn't like mono
<jeddhaberstro>
It's relatively stable, and all ready in wide use.
<jdh30>
jeddhaberstro: From an architectural standpoint, building a new VM upon Boehn (which is designed to be retrofitted onto legacy C/C++ code bases as a last resort) is awful design.
<jeddhaberstro>
True.
<Toonto_del_alma>
other problem is that neither OCaml or Haskell are ready as target code of UML
<jdh30>
jeddhaberstro: I don't think it is in wide use.
<jeddhaberstro>
How so?
<jdh30>
jeddhaberstro: The Debian and Ubuntu popcon results show that OCaml has more developers than Mono.
<jdh30>
jeddhaberstro: IIRC.
<jeddhaberstro>
Developers working on each, or individual developers using it?
<Toonto_del_alma>
while Java, C++ and C# are ready.
<jdh30>
Developers = users of the mono-gmcs C# compiler.
<jeddhaberstro>
gotcha
<jdh30>
Currently 13,922 on Ubuntu compared to 8,715 for OCaml. So not that far off.
<jdh30>
1,891 vs 1,920 on Debian.
<jeddhaberstro>
I don't think those are very accurate, if it's only developers using Debian and Ubuntu they're focusing on.
<jdh30>
But Debian and Ubuntu account for more than half of all Linux users.
<jeddhaberstro>
They should expand it to Mac and Window IMHO.
<jeddhaberstro>
As a game developer at least, I know Mono has gain wide acceptance
<Associat0r>
jdh30 : if you had all the free time in the world how long would it take you to create new ML like language that is usable?
<jdh30>
That's exactly the argument that Don Stewart put forward on the Haskell list. He started talking about "Arch Linux" having loads more Haskell packages than OCaml and how could I explain that? But who cares, Arch Linux has about 1% market share.
<jeddhaberstro>
I know Disney used Mono indirectly :P
<jdh30>
Associat0r: Depends what you mean by "usable". I have already written toys but they are not useful because they are slow and lack FFIs and so on.
<Associat0r>
jeddhaberstro : there are some people like sweeney who want a Haskell/ML-like C++ replacement
<jeddhaberstro>
sweeney?
<Associat0r>
Tim Sweeney
<jdh30>
Associat0r: You can knock up a mini ML interpreter using OCaml in no time.
<jeddhaberstro>
I don't know him.
<jdh30>
Hmm, Sweeney.
<Associat0r>
from unreal
<jeddhaberstro>
Oh
<Toonto_del_alma>
or the Smalltalk-8x language never being extended
<jdh30>
jeddhaberstro: He gave a talk a long time ago where he mentioned Haskell and the FP communities leapt on it.
<jeddhaberstro>
ah
<Toonto_del_alma>
and much people uses it
<jdh30>
Just hype, IMHO.
<jeddhaberstro>
I found it pretty cool the game Jax and Daxter was scripted in GOAL, and lisp like language
<Associat0r>
the kinda lang Sweeney had in mind I liked too
<jdh30>
jeddhaberstro: Once upon a time. I believe it was long since ditched.
<jeddhaberstro>
It was
<Associat0r>
jeddhaberstro : yes that was pretty cool
<jdh30>
Sony inherited a game that had once been written in Lisp and the Lispers claimed Sony were migrating to Lisp in the droves. In reality, they dropped Lisp like a sack of potatoes, of cours.
<Toonto_del_alma>
do you imagine writing a game in only one line of code?
<Associat0r>
some of the GOAL devs talked about it
<jdh30>
Toonto_del_alma: I can but I cannot imagine anyone wanting it.
<jdh30>
Archives are broken...
<jeddhaberstro>
sure, I could imagine it. Just never hit return ;)
<jdh30>
What do you guys think of all the hype on Reddit?
<jdh30>
jeddhaberstro: Yeah but where would the documentation go?
<jdh30>
jeddhaberstro: Would it have an .mli?
<jeddhaberstro>
pff, who needs documentation ;P
<Associat0r>
jdh30 : just like that yahoo thing from paul graham
<jdh30>
jeddhaberstro: These are serious issues.
<jeddhaberstro>
I'm just kidding of course
<jdh30>
Associat0r: What about Arc? His latest and greatest creation.
<jdh30>
Associat0r: That guy is such an idiot.
<Associat0r>
infact only a small part of that yahoo thing was written in lisp and they ditched it, I think it was mainly because they couldn't find anyone to maintain it
<jdh30>
Associat0r: Yes.
<Associat0r>
well I can't really call him an idiot
<jdh30>
There is something about this senseless hype from the Haskell and Lisp communities that I cannot quite put my finger on. I'm so grateful that you just don't get any of that in the OCaml community...
<Toonto_del_alma>
lispkit is a smallest language
eelte has quit [Read error: 113 (No route to host)]
<jdh30>
I just couldn't believe that Haskell in Industry page when I tried to research it.
<Toonto_del_alma>
i won't want tons of bloat language
<jdh30>
And instead of fixing it, they get upset.
<Associat0r>
well you are the paul graham of the ocaml community
<jeddhaberstro>
There's this cool little Lisp like language designed for Cocoa called Nu.
<Associat0r>
kinda
<Associat0r>
hehe
<jeddhaberstro>
It's an interesting language
<jdh30>
Associat0r: Yeah, except I have a PhD and triceps like a bunch of ripe bananas.
<Toonto_del_alma>
how many tons is weighted Haskell?
<jdh30>
Toonto_del_alma: 0.17
<Toonto_del_alma>
and how many kilos is weighted LispKit?
<jdh30>
Toonto_del_alma: 3
<Associat0r>
also the thing I don't understand is the D language
<jdh30>
Associat0r: How so?
<jeddhaberstro>
D language was a good idea gone bad
<Toonto_del_alma>
LispKit will be the champion of lighweight languages
<Associat0r>
I saw some talk of you between you and Walter Bright and he never heard of hindley milner type inference
<Associat0r>
that was reason enough for me to not consider that language
<jdh30>
jeddhaberstro: I think D was designed to be a commercial product to milk C++ junkies using careful rehabilitation.
<jeddhaberstro>
Yeah
<Toonto_del_alma>
as Cyclone C
<jdh30>
Associat0r: Hehe.
<jeddhaberstro>
but it quickly became bloated
<jdh30>
jeddhaberstro: In some areas, lines of code sell.
<mbishop>
D will be good if Walter Bright lures the C++ programmers into an alley and then kills them all silently
<jeddhaberstro>
and never gained widespread acceptance
<Toonto_del_alma>
the D language was used in the NASA
<jdh30>
That's what sold XenSource: little OCaml programs generating huge Java programs that sold for $$$ per line.
<Toonto_del_alma>
now, Java replaced it
<Associat0r>
I expect a serious lang designer to know that kinda stuff and all of type theory and cat theory
<jdh30>
mbishop: Ninjitsu Walter?
<jeddhaberstro>
Hopefully C++0x will fix much of the problems of C++ that D failed at.
<mbishop>
jeddhaberstro: C++0x will just make it worse
<jeddhaberstro>
Probably
<jdh30>
jeddhaberstro: I thought D was actually quite well accepted, considering it was a single dude doing all of the work.
<mbishop>
There's a Knuth quote about C++, that also describes what's happening in the latest standard
* mbishop
finds
<Toonto_del_alma>
there are 2 different families of roads
<jeddhaberstro>
D is *used*, but it was intended to replace C++, which is will never do.
<jdh30>
Associat0r: Then prepare to be seriously disappointed. All of the PL researchers I have met have seriously misconceptions about the state of PL research.
<jeddhaberstro>
it will*
<jdh30>
Xavier and Don are the nearest to exceptions but I disagree with many of their comments.
<mbishop>
Whenever the C++ language designers had two competing ideas as to how they should solve some problem, they said, "OK, we'll do them both". So the language is too baroque for my taste. -- Donald Knuth
<Toonto_del_alma>
the family of typed lambda calculus and the family of imperative programming
<mbishop>
C++0x is basically "let's pile all the features we can on the already feature rotting C++!"
<Associat0r>
jdev : which Don?
<jdh30>
Syme
<jdh30>
Not Don Stewart, obviously. ;-)
<Toonto_del_alma>
ML and OCaml were in the 1st family, Java, C#, C++0x, ... in the 2nd family.
<Associat0r>
you know the first time I got into the #haskell channel I thought dons was Don Syme
<Associat0r>
so I asked him all kinds of F# questions
<Associat0r>
hahaha
<jdh30>
Oh yeah. Don Stewart reminds me of the guy from True Lies.
<jdh30>
He purports to be an elite Haskell hacker for a major US defense contractor.
<jdh30>
When actually he is a bottom-rung web coder for a rich-daddie company.
<rainmann>
can you show evidence for this claim?
<jdh30>
rainmann: Which one?
<rainmann>
the one you just made
<Associat0r>
mbishop: I don't think C++ is that bad
<rainmann>
He purports to be an elite Haskell hacker for a major US defense contractor. When actually he is a bottom-rung web coder for a rich-daddie company.
<jdh30>
rainmann: Nah, just heard it on the grape vine.
<rainmann>
I thought so
<Associat0r>
the features are very orthogonal compared to a lot of othe rlanguages
<Toonto_del_alma>
the big problem of Haskell so as the big problem of the major US defense contractor is .... hehehe ...
<jdh30>
Know some people that know some people etc.
<jeddhaberstro>
Associat0r: Have u done serious development with C++?
<Toonto_del_alma>
the bloated memory that uses it.
<Associat0r>
yes
<jeddhaberstro>
k
<Associat0r>
C++ was my main language
<jeddhaberstro>
And you don't find it to be a PITA?
<jeddhaberstro>
Same here
<jdh30>
Tony Morris
<rainmann>
Shit Talker
<jdh30>
Ha ha ha. I can't believe I didn't look sooner.
<jdh30>
Ha ha.
<jdh30>
And how is Scala-Debate?
<Associat0r>
jeddhaberstro I like it better than C#
<mbishop>
Hmm?
<Associat0r>
that for sure
<jeddhaberstro>
Wow
<jdh30>
I see they still haven't worked out how to unsubscribe me.
<jdh30>
Ah man, I saw your lecture recently.
<rainmann>
there is still the occasional idiot, but it has improved somewhat
<Associat0r>
you have to remember C++ is a systems language
<Toonto_del_alma>
start to write your own language from zero
<jeddhaberstro>
I rather use C or Objective-C than C++ any day
<jdh30>
LMAO at "well the, err, stdout isn't part of the, err, equation" but it works so much better with the ozzie accent.
<jeddhaberstro>
But, I did like C++ for a long time
<Associat0r>
well in C be prepared to repeat a lot of code
<jeddhaberstro>
So, I can see where you're coming from.
<rainmann>
I don't recall that, but I am glad you are entertained
<Associat0r>
and objective C is dynamically typed
<Toonto_del_alma>
the future is no the machine's language, the future is the mathematical language
<Associat0r>
not in the same boat IMO
<jeddhaberstro>
so?
<jdh30>
So I was right on the money when I accused you of being a Haskeller.
<jeddhaberstro>
Can still do the same thing for the most part
<rainmann>
no you weren't
<jdh30>
But you are a Haskeller.
<rainmann>
I don't subscribe to your cliques
<Associat0r>
I am glad they C++ won over Obj-C back in the days
<rainmann>
I use Haskell, so I can make qualified statements about it, yes
<jdh30>
But you do blindly evangelate Haskell with no idea what you're talking about?
<jeddhaberstro>
Objective-C is a very fun language
<rainmann>
like yourself? no
<Associat0r>
I find the syntax a lot more consistent too
<jeddhaberstro>
in C++?
<jdh30>
ROTFLMAO
<jdh30>
Ah man.
<jdh30>
That's hillarious.
<rainmann>
written a Haskell program yet?
<jdh30>
Nope.
<rainmann>
I noticed your deliberate evasion of my question three times
<rainmann>
oh yay! answered it on the fourth
<rainmann>
you fucking fraud
* jeddhaberstro
sigh
<Associat0r>
Toonto_del_alma : I agree that yhe future is a math languge
<rainmann>
be warned of the intellectual fraudster kids
<rainmann>
I've had enough
rainmann has left #ocaml []
<jdh30>
Hey, maybe I could be the first person to write something in Haskell that doesn't just crash or consume all resources?
<Toonto_del_alma>
i want a machine that performes efficiently for my mathematical language, not an imperative language that performes efficiently in a machine.
<jdh30>
LOL.
<Associat0r>
wich neuther Obj-C nor C# are
<Associat0r>
Toonto_del_alma : did you look at bit-c?
<jeddhaberstro>
I just know that since I ditched C++ my life has become much easier
<jeddhaberstro>
Maybe I was just a bad C++ programmer, lol
yziquel has joined #ocaml
<jeddhaberstro>
I avoided templates and the more advance features for the most part.
<jeddhaberstro>
(I used templates plenty, I just didn't create new templated code)
<jeddhaberstro>
Has anyone read SICP?
<Associat0r>
I don't understand why anyone would take C over C++ these days when not being constrained by embedded systems
<jeddhaberstro>
I think well written C code is cleaner to read and program than C++
<mbishop>
In C++, there are 50 ways to do anything, 49 of which are disastrously wrong. -- John Cowan
yziquel has quit [SendQ exceeded]
<Associat0r>
you almost can't write abstract C code
yziquel has joined #ocaml
<mbishop>
There are only two things wrong with C++: The initial concept and the implementation. -- Bertrand Meyer
<jeddhaberstro>
and when you're doing system programming, do you really need that much abtraction?
<jeddhaberstro>
There's a reason it's called system level programming
yziquel has quit [SendQ exceeded]
yziquel has joined #ocaml
<Associat0r>
some abstraction is nice
<jdh30>
mbishop: You even checked out Tony Morris (rainmann from here).
<Associat0r>
jeddhaberstro : I only looked at SICP briefly
<mbishop>
jdh30: yeah, no idea who he was
<mbishop>
jdh30: found his blog, looks like some haskeller
<jdh30>
jeddhaberstro: Yeah, I read SICP. It sucks.
<jeddhaberstro>
Why does it suck?
<jeddhaberstro>
I'm about 2.5 chapters through it atm
<mbishop>
I'm still reading SICP, and it's great :)
<jdh30>
mbishop: Kind of. On his resume he also claims to be an expert OCaml programmer. You may recall that he has never posted anything on the list or written any OCaml code.
<jdh30>
Bah, SICP sucks.
<jeddhaberstro>
I can't seem to get much out of it though..
<Toonto_del_alma>
the purpose of SICP is only academic
<jeddhaberstro>
Except for some witty quotes :)
<jdh30>
Well, it only really sucks if you don't know a statically typed FPL first because it leads you into a typeless way of programming that is difficult to get back out of.
<Toonto_del_alma>
0% usage in industrial
<jeddhaberstro>
I'm use to typeless, dynamic programming and static typed
<Toonto_del_alma>
UML is the future too
<Toonto_del_alma>
AOP too
<Toonto_del_alma>
MOP too
<jeddhaberstro>
I guess it should be a good read then if I know OCaml :)
<Associat0r>
Wadler said they should have used a language like Miranda or something instead
<Associat0r>
and I kinda agree
<jdh30>
mbishop: Tony Morris gave a hillarious talk on Haskell. The audience kept asking him these really easy questions and he obviously didn't know the answer so he just said a load of complete nonsense, which is what I was referring to before he used the f word and left.
<jdh30>
jeddhaberstro: Knowing OCaml is like having invulnerability in this context. Lisp/Scheme is like quad damage: it only gives you the impression that you are invincible.
<jdh30>
but you are actually really likely to blow your own head off with the rocket launcher by accident in Lisp/Scheme.
<Toonto_del_alma>
the problem of Lisp/Scheme is ohhhh, only there are parentheses!
<jeddhaberstro>
But, knowing OCaml beforehand can help though, right?
<jdh30>
mbishop: Anyway, he's an Aussie and all I could think about through his lecture was "stewth mate, Austrian! Better put another prawn on the barbie!".
<jeddhaberstro>
Jon, where are you from?
<mbishop>
heh
<jdh30>
jeddhaberstro: Absolutely. You are invulnerable. You will look at their typeless code and laugh, appreciating its stupidity.
<jdh30>
jeddhaberstro: UK
<jeddhaberstro>
ah
<jdh30>
jeddhaberstro: Spiffing
coucou747 has joined #ocaml
<Associat0r>
well typeless code has it's uses I guess
<jeddhaberstro>
I don't see typeless languages as stupid, since to me programming is more than just business and speed. It fun
<jeddhaberstro>
It's*
<jdh30>
If I am the Paul Graham of the OCaml community then Tony Morris is certainly the Brandon Van Every of the Haskell community.
<Toonto_del_alma>
i like reusable typed languages
<jdh30>
Associat0r: Typeless code belongs at code boundaries only.
<jeddhaberstro>
jdh30: Would you mind some constructive criticism? :)
<det>
jdh30, So Tony
<det>
err
<Associat0r>
what about those Strong AI stuff?
<det>
jdh30, So Tony's interest in Haskell is only transitory ?
<Toonto_del_alma>
Associat0r, not until 2150
<jdh30>
det: Yes. He moved on to Scala in a flash.
<jdh30>
He does at least try to remain positive in the feelings he puts forward. Personally, I think that is a sign of a girly man.
<jeddhaberstro>
jdh30: ??
<jdh30>
jeddhaberstro: Eh? What? Oh, sure, go for it.
<jeddhaberstro>
ok :)
<det>
jdh30, Insulting someone's sexuality is a powerful tool. You are a smart man.
<jdh30>
det: I knew it!
<jdh30>
I was quoting Arnold Schwarzenegger BTW.
<Associat0r>
not having done any AI yet, what is you opions of Lisp being used there?
<yziquel>
Wow, this flies high!
<jdh30>
Associat0r: I have no idea.
<jdh30>
yziquel: Flies high?
<jeddhaberstro>
You're a much smarter person than I, and many others. But... I think you care about what to many other people do. Even if you're right, I think you should lay of of the mindless bashing. Especially if you don't know what is exactly true from first hand experience.
<yziquel>
perhaps a frenchism...
<jdh30>
Associat0r: I have not even been able to pin down exactly what is meant by AI in that context.
<jeddhaberstro>
I think that's why a lot of people have a gripe with you.
<jeddhaberstro>
But, I do like the fact you're not afraid to call out a phony :)
<jdh30>
jeddhaberstro: Oh no, I think people gripe with me because I diss their favourite language.
<yziquel>
jdh30: Something like "Eight miles high" from the Byrds...
<jdh30>
jeddhaberstro: True.
<Associat0r>
I imagine an evolving AI should be able to rewrite itself very easily
<jdh30>
yziquel: I have no idea what that means but it sounds poetic.
<Toonto_del_alma>
i should microprogram A.I. stuff in microcode of a GPGPU chip.
<Associat0r>
without shutting down itself
<jdh30>
Associat0r: Err, are you getting your idea of AI from The Terminator?
<jeddhaberstro>
it's more than dissing their favorite language, it's how you diss it
<yziquel>
jdh30: i.e. going from Tony Morris' sexuality to evolving AI.
<jeddhaberstro>
also
<jdh30>
Associat0r: When did Lisp become self aware?
<det>
jdh30, I'm sure it has nothing to do with the fact that engage in ad-hominem attacks.
<jeddhaberstro>
But anyways, I enjoy what you have to say :)
<jdh30>
det: That wasn't a sentence.
<Toonto_del_alma>
to simulate the robot Arnold Schwarzenegger
<jdh30>
jeddhaberstro: Well, I'm only ever kidding.
<det>
"you engage in"
<jdh30>
Toonto_del_alma: And around we on.
<jdh30>
det: Do I?
<jeddhaberstro>
You and I may know that, but that doesn't mean other people do ;)
<Toonto_del_alma>
Had Arnold Schwarzenegger refrigerators of KiloWatts?
<Associat0r>
well isn't that what strong AI was all about?
<Toonto_del_alma>
of the warmed chips
<jdh30>
jeddhaberstro: Although it may not seem it, I am actually very careful to check out my facts. I have to be, of course, because if I got things wrong then people would stop giving me work.
<det>
jdh30, You've used several personal attacks here.
<jdh30>
jeddhaberstro: For example, I was going to write a "Functional programming in Industry" report aimed at managers that detailed case studies of the applications of functional languages in industry.
<jdh30>
det: I have?
<jdh30>
jeddhaberstro: That is why I was researching the Haskell in Industry page.
<jeddhaberstro>
Sometimes it's better to keep quite even if you are right.
<Associat0r>
det that is his nature, that doesn't mean he is a bad person
<jeddhaberstro>
Which you probably are right most the time :P
<Toonto_del_alma>
the functional style is ...
<det>
I never claimed he is a bad person.
<jdh30>
jeddhaberstro: So I wrote to the people involved personally. In several cases, this meant that I was talking to the employer of the person I was otherwise conversing with. And those employers have a completely different take on things.
<Toonto_del_alma>
why not the imperative style ...?
<jeddhaberstro>
Ah
<Associat0r>
I am also sure he doesn't mean it in a bad way
<jdh30>
det: Well, I don't want to make ad-hominem attacks.
<jeddhaberstro>
:)
<jdh30>
det: But I made the personal attack on Tony Morris before he had even had a chance to say anything technical. So technically it cannot have been ad-hominem because there was no context.
<jdh30>
det: I was also following a previous discussion we had on the Scala mailing list before I left.
<Toonto_del_alma>
i will build a gigantic project one-person made that will dominate projects from 1000-persons
<jdh30>
They also hate me BTW.
<jeddhaberstro>
heh
<det>
There was obviously a prior history.
<jdh30>
Exactly.
<Toonto_del_alma>
i'm the Strong A.I.
<jdh30>
Hence I knew he was an Austrialian.
<Toonto_del_alma>
myself
<jdh30>
etc.
<Toonto_del_alma>
until the death
<jeddhaberstro>
Yeah, obviously take my opinion with a grain of salt as I don't know of everything you have done and all (if I did, that'd be a bit freaky lol).
* mbishop
hides in the bushes
<jdh30>
jeddhaberstro: Well, I try to find out as much as possible about the people I converse with. Hence I was intimately familiar with Tony Morris' resume/CV and so on.
<Associat0r>
in normal apps I agree in static strong typing but in Strong AI the rules are much different I guess
<jdh30>
And mbishop apparently does the same about me. ;-)
<jeddhaberstro>
that's good :)
<Toonto_del_alma>
I'm John O'Conner
<Toonto_del_alma>
hahaha
<jeddhaberstro>
So, does that mean you know a lot about me all ready?
<jeddhaberstro>
If you did, that'd be talented
<Toonto_del_alma>
s/O'Conner/O'Connor
<jdh30>
It is quite handy. For example, some people in the Haskell community have many nicks. Heffalump on IRC is hsenag on Reddit who is Ganesh from Credit Suisse IRL. I have even met him in person.
<Toonto_del_alma>
i will kill to every stronger A.I. robots
<jeddhaberstro>
Seems like you have a good memory for that
<jdh30>
Widget Monkey Games?
<jeddhaberstro>
Yeah, that's been my recent employment
<bluestorm>
jdh30: maybe the mailing list (and wikipedia and reddit and ...) people would stop hating you if you were doing less advertisement of your commercial products
<jeddhaberstro>
If you can find out where I got my roots programming, that'd be amazing
<jdh30>
bluestorm: I think that is certainly part of it but I literally cannot afford not to advertise.
<bluestorm>
(it's none of my business, and i think this is very smart of view, from a, err, commercial point of view)
<jeddhaberstro>
Widget Monkey Games is easily found by google :p
<bluestorm>
s/view/you/
<jdh30>
Reddit is an obvious place to advertise.
<Associat0r>
#fsharp really needs some more people
<jdh30>
Of course, I only advertise when I know it is productive.
<jdh30>
The caml-list is a waste of time in that respect: they already know OCaml.
<Toonto_del_alma>
F# is owned by damn M$
<Associat0r>
the channel I mean
<mbishop>
if I had something to make money with, I'd spam the hell out of reddit, and anywhere else quite frankly haha
<jdh30>
Associat0r: Agreed.
<Associat0r>
jdh30 : some weeks ago we had almost 20 people in the channel
<jdh30>
mbishop: Piece of cake: just setup a website with credit card transactions and put some stuff on there. You can even start "selling" before you actually have any product, which is not a bad idea because some products never sell anything so it saves you wasting your time.
<Associat0r>
but almost nobody is talking
<jdh30>
Associat0r: LOL.
<jdh30>
So, speaking of my knowledge of people.
<jdh30>
Heffalump is in there right now, yeah?
<Associat0r>
not now
<Associat0r>
o yes he is
<Associat0r>
sorry
<jdh30>
He is an employee (a quant) at Credit Suisse in London. They are migrating to F#. Hence his interest in F#.
<jdh30>
Out of 150 coders, two use Haskell.
<jdh30>
According to his boss.
<Associat0r>
he uses haskell too
<Associat0r>
I think
<jdh30>
Who?
<jdh30>
Sorry, he is one of the two using Haskell.
<jdh30>
The other is Lennart.
<Associat0r>
ah ok
<Toonto_del_alma>
F# is the rival of OCaml
<Associat0r>
strange thing is I heard dons say that companies want to move away from .NET
<jdh30>
Only according to Xavier Leroy, who thinks that OCaml doesn't suck under Windows.
<Toonto_del_alma>
Associat0r, why?
<jdh30>
Associat0r: Stewart or Syme?
<Associat0r>
because it is a lock in
<Associat0r>
Stewart
<jdh30>
Associat0r: Morgan Stanley are moving 100,000 computers from Linux+Java to Windows+.NET
<Toonto_del_alma>
hahaha
<jdh30>
Associat0r: AFAIK, Don Stewart doesn't know anything about anything.
<Associat0r>
yeah I saw you say that the other day
<jeddhaberstro>
does xavier ever visit this channel?
<Toonto_del_alma>
the solution is moving 100,000 64-bit computers
<jdh30>
Associat0r: Microsoft have positioned themselves incredibly well with .NET, IMHO.
<bluestorm>
jeddhaberstro: probably not on troll day
<mbishop>
I've seen Xavier in here a few times
<jdh30>
jeddhaberstro: I hope not. ;-)
<Toonto_del_alma>
s/moving/moving to/
<mbishop>
he comes in as xleroy
<jeddhaberstro>
ah, ok
<jdh30>
bluestorm: :-p
<Toonto_del_alma>
because 100,000 computers can be used with a force of 100,000 computers
<Associat0r>
jdh30 : do you see ocaml and F# as rivals?
<Toonto_del_alma>
as a cluster
<jdh30>
Associat0r: No, I see OCaml as dominating Linux for clever people and F# as dominating Windows for clever people.
<jdh30>
Associat0r: There is this untapped market of idiots but who cares.
<Associat0r>
that is true
<Toonto_del_alma>
F# doesn't work in clusterized machines
<Associat0r>
Toonto_del_alma : are you sure?
<jdh30>
OCaml runs circles around F# on Linux and vice-versa on Windows.
<Toonto_del_alma>
yes
<jdh30>
Associat0r: Bah, of course F# works on clusters.
<bluestorm>
that's strange, i always thought a big part of your F# material was aimed at "noobs" (sadly, not necessarily smart people) attracted by the F# hype
<jdh30>
Didn't you read my F#.NET Journal article about MPI.NET?
<Associat0r>
yeah I thought so too
<jdh30>
bluestorm: Smart noobs.
<Associat0r>
I mean the that is works on clusters
<jdh30>
Associat0r: I was consulting last week about the use of F# on clusters.
<jdh30>
Associat0r: yes.
<bluestorm>
fair enough (i'm not into that elitist thing anyway)
<Associat0r>
bluestorm: I don't see F# as a noob langauge
<jdh30>
Associat0r: Almost all of our F#.NET Journal subscribers are coming from C++/C# backgrounds.
<Toonto_del_alma>
what's the latest version of F# and its minimal C#?
<jdh30>
Obviously we also cater for scientists and engineers who have no prior programming experience but, again, they are the smart noobs.
<jdh30>
One of the things that put me off the Scala community was the idiotic conversations.
<jeddhaberstro>
Wouldn't it be good if "noobs" were attracted to F#? Means the programmers of tomorrow would be using functional programming, which means more mainstream programmers using functional languages
<Associat0r>
maybe because it is from MS and on .NET makes it attracts some noobs but most stay away anyway
<jdh30>
They won't get smart noobs.
<Associat0r>
I also heard somewhere it won't be a mainstream language
<jdh30>
jeddhaberstro: Not really, no. The buy-in for these funky languages is that they make smart programmers much more productive (e.g. top 25% get 10x more work done).
<jeddhaberstro>
mhm
<jdh30>
Associat0r: If you're already on Windows then getting coding with .NET is really easy.
<Associat0r>
exactly
<Toonto_del_alma>
where is valgrind-like for windows?
<Associat0r>
for me it is not .NET itself that attracted me to F#
<Toonto_del_alma>
valgrind works ok for linux/*bsd
<jdh30>
jeddhaberstro: Seriously, that's where they make inroads in Jane St. (unbelievably clever people), XenSource (employ the highest and second highest 1sts from Cambridge) etc.
<bluestorm>
Associat0r: i certainly don't think F# is a noob language
<jeddhaberstro>
ah
<jdh30>
Associat0r: F# is also obviously good if you want to sell software to people who are locked into MS.
<jeddhaberstro>
I don't know what XenSource of Jane St. is though...
<jdh30>
bluestorm: What do you mean by "not a noob language"?
<jdh30>
jeddhaberstro: Companies with many OCaml developers.
<jdh30>
Something Haskell doesn't have.
<bluestorm>
i'm not sure what *he* means by a noob language
<jeddhaberstro>
I figured that :)
<jdh30>
bluestorm: Oh.
<Associat0r>
will Xen switch to F# too?
<Toonto_del_alma>
the question is ... if you develop a gigantic project in F#, you will be locked into M$
<yziquel>
Got a small question when it comes to object defined in modules. Suppose I've got a private virtual method defined in some module A. Is it possible to create a module B where this virtual method is properly defined?
<jdh30>
Associat0r: No. I spoke to them about it and explained the benefits of F# but they are not relevant for their work.
<coucou747>
jdh30> I'm sure that bluestorm work at home with F#
<jdh30>
Associat0r: They have a Windows GUI in C# but there is no point in using F# for that (no GUI support) and XenSource are entirely Linux-based under the hood.
<bluestorm>
i was just saying that, with the hype around FP these days, programmers of the C++/Java/C# fame are getting interested. Among them are some noobs also, and i suppose that they might come to F# more than OCaml right now
<bluestorm>
because "it works with Visual Studio", "it is MS-supported" or what not
<jdh30>
yziquel: I have no idea.
<jeddhaberstro>
yay! Finally fixed a bug that's I've spent the last 6 hours on :)
<Associat0r>
bluestorm: that support is important
<Toonto_del_alma>
where Visual Studio came F# from?
<bluestorm>
probably
<Associat0r>
practical interop and stuff
<jdh30>
bluestorm: Maybe. F# is not yet great for noobs though, e.g. syntax error messages suck.
<bluestorm>
you know i don't really like the .NET thing Associat0r , but i meant no disrespect to the language wich is certainly interesting to some extent
<jdh30>
bluestorm: I think a lot of people are using Linux now and they are probably much less inclined to use F#.
<Toonto_del_alma>
can you debug OCaml? can you debug F#? what're the differences?
<Associat0r>
bluestorm : I was also anti VM
<yziquel>
jdh30: The idea is that I'd like to make a post_multipart class for multipart-form HTTP posting. And I'd like to create it in a new module. I mean, other than the http_client module of the netclient package (where the virtual class is defined).
<jdh30>
bluestorm: I also think that esoteric languages like all FPLs do not compete. I've heard this "poison people" lecture before and I think it is complete nonsense. There is no competition between FPLs for noobs: all of our noobs come from C/C++/Java and not Haskell/Scala.
<jdh30>
Toonto_del_alma: F# has a nice interactive debugger in Visual Studio but I don't use it: you just don't need a debugger with languages this good.
<Associat0r>
jdh30 : see that link about what normal people thought of F# on the MS dev days
bohanlon has quit [SendQ exceeded]
<yziquel>
Toonto_del_alma: the ocaml debugger is quite good.
<jdh30>
OCaml has its time travel debugger but I never bothered getting that to work either.
<bluestorm>
i agree that people discovering FP is important, wether it is with F#, OCaml or whatever
<jdh30>
Associat0r: No, what did they say?
<jdh30>
bluestorm: Exactly.
<bluestorm>
actually i think OCaml is quite well positioned as a "quite easy to learn and also very interesting FP language" these days
<Toonto_del_alma>
has F# a coverage as Nant for C#?
<bluestorm>
more feature-complete than Erlang (typing system, basically), much simpler than Haskell
<jdh30>
Toonto_del_alma: Not AFAIK.
<jeddhaberstro>
What editor/ide do you guys use for programming OCaml?
<jdh30>
jeddhaberstro: Emacs.
<yziquel>
vi / emacs
<jeddhaberstro>
mhmm
<jdh30>
jeddhaberstro: Have you read the OCaml Journal article about it?
<jeddhaberstro>
Um, I don't think so.
<jeddhaberstro>
Is it a free one?
<bluestorm>
and i suspect it is also simpler than F# on the whole, because the whole "methods everywhere" thing tends to make the language a bit more complicated
<bluestorm>
agreed. but we have revised syntax :-'
<bluestorm>
(and this is a syntaxic, not semantic issue)
<bluestorm>
(disclaimer : i don't know F#, just happen to have quickread some parts of a F# books a week ago or so)
<jdh30>
"the practical usefulness remains in the crystal ball hanging"
<jdh30>
LOL
<Associat0r>
bluestorm : well I can't miss operator overloading
<bluestorm>
jeddhaberstro: M-x tuareg-mode ?
<jdh30>
jeddhaberstro: What distro?
<jeddhaberstro>
mac os x
<Toonto_del_alma>
is #F faster than OCaml? hahaha
<Associat0r>
also the boxed float stuff of ocaml is an issue to me
<jdh30>
bluestorm: l33t
<jdh30>
Toonto_del_alma: Mostly yes.
<jeddhaberstro>
what is m-x? I know it's a key command, but I don't know what the M is for
<Associat0r>
and single precession floats issue
<jeddhaberstro>
and actual M?
<jdh30>
bluestorm: That is not a syntactic issue.
<jdh30>
bluestorm: Not really.
<yziquel>
Meta key
<Associat0r>
those issues are reason enough to go for F#
<jeddhaberstro>
hmm... not sure what that is
<Associat0r>
for me
<jdh30>
bluestorm: You can fix it using syntax, but that is not the same.
<yziquel>
It can be Alt...
<jdh30>
Associat0r: But lack of polymorphic variants, decent graphics libraries, fast GC?
<jdh30>
bluestorm: Anyway, the revised syntax no users has.
<Associat0r>
MDX / SlimDX / OGL
<Toonto_del_alma>
goes F# out of memory?
<Associat0r>
fast GC can all be fixed later
<Associat0r>
with the bartok and midori stuff going on
<bluestorm>
i see your point : the fact that, for performance reasons, constructors can have numerous parameters (while one would be expressive enough) is quite similar to the F# problem
<jdh30>
Associat0r: Exactly: MDX is horribly broken. MS do not support OGL and the only libraries that interface to it are horribly broken.
<bluestorm>
Associat0r: btw, i wanted to know something
<bluestorm>
does F# with the #light syntax parses correctly the match clauses with nested expression in a guard ?
<bluestorm>
eg.
<jdh30>
Associat0r: Tomorrows fix for todays problems might not suffice.
<bluestorm>
| foo when (match () with () -> true) -> ...
sbok has quit [Remote closed the connection]
<jdh30>
bluestorm: probably, yes. I think it just puts brackets around more-indented code.
<bluestorm>
the way the F# informal spec. describes it, it should result in an horrible mess
<jdh30>
bluestorm: Sure, but the spec is brand new and, as I understand it, wildly inaccurate for now.
<bluestorm>
jdh30: the spec. describe a more complicated lexing-stage process that i think should fail on that point
<jdh30>
I'm more worried about.
<jdh30>
let x = 2
<jdh30>
printf "%d\n" x
<jdh30>
What does that do?
<Associat0r>
jdh30: that is true but MS is has heavily invested in .NET so I expect these issues to be fixed
<jdh30>
Associat0r: Why? MS don't care about the performance of F# code.
<jdh30>
bluestorm: Interesting.
<Associat0r>
won't windows apps be fully managed in some future windows?
<jdh30>
Are they not already?
<jeddhaberstro>
jdh30: you really don't know what printf "%d\n" x does?
<jdh30>
Almost all of Windows was to be managed in Longhorn but they didn't finish it in time.
<Associat0r>
if they want that midori thing to happen I expect them to fix those perf issues
<jeddhaberstro>
or what that rhetorical?
<jdh30>
jeddhaberstro: No, I believe the code is ambiguous.
<jdh30>
jeddhaberstro: Specifically, if you try to evaluate it as a single block then #light will silently inject an "in" that makes the definition of "x" local so it does not supercede an existing definition.
<jeddhaberstro>
ah
<jdh30>
jeddhaberstro: But if you evalute them separately then there must be no "in".
<Associat0r>
jdh30 : are you sure MS don't care about F# perf?
<Associat0r>
with all the numerical stuff they are pushing
<jdh30>
Associat0r: "all the numerical stuff"? The CLR lacks almost all basic numerical optimizations. That's why it is so slow.
<Associat0r>
: btw what gfx lib do you use for F# for viz?
<jdh30>
Associat0r: Microsoft care about money. They don't even care about software, let alone F# or its performance.
sbok has joined #ocaml
<jdh30>
Associat0r: An exec will situp and take notice when they land their first F
<jdh30>
F#-related contract (which might be Morgan Stanley). Only then will they throw money at optimizing F#.
<jdh30>
Associat0r: WPF.
<jdh30>
Associat0r: And before you say it, that also sucks.
<Associat0r>
I mean they are targetting the matlab crowd with F# right?
<jdh30>
Associat0r: A "pen" is the name given to a line width and color in WPF. You allocate a pen.
<jdh30>
In a sane language like OCaml that would be: let type pen = { width: float; color: Color.t }
<jdh30>
But in WPF, the "Pen" object is thread specific so you can create pens on any thread but only the ones that were created on the UI thread will work.
<jdh30>
Associat0r: No, they are targetting the finance sector right now.
<Associat0r>
well F# is almost as fast as C# right now right?
<jdh30>
Associat0r: They had delusions of grandeur that they could attack the likes of MATLAB and Mathematica but the standard libraries are far beyond the capabilities of Microsoft.
<jdh30>
Associat0r: Absolutely. Haven't you read the F#.NET Journal article about the SciMark2 port to F#? It beats C# on every test.
<Associat0r>
it also has all the low level unsafe stuff that C# has inluding inline IL
<jdh30>
Yes.
<jdh30>
In the compiler.
<Associat0r>
I am not subscribed to it
<jdh30>
Drop me a mail.
<jdh30>
jeddhaberstro: You there?
<Associat0r>
do I get a free subscription?
<Toonto_del_alma>
you don't need F# when there is AutoCAD's Lisp
<jdh30>
Associat0r: Maybe.
<Associat0r>
thanks I'd appreciate it
<jdh30>
NP
<Associat0r>
Toonto_del_alma : the problem with lisp is the notation
<Associat0r>
it lacks standard mathematical notation
<jdh30>
Associat0r: And the performance, and the lack of static checking, and the community and ...
<Toonto_del_alma>
don't you like the notation? it's not my problem, i solve problems with this weird notation
<Associat0r>
yes all that too
<Associat0r>
Toonto_del_alma : even guys like Wadler have issues with the notation
<jdh30>
Associat0r: and the lack of pattern matching
<Associat0r>
yeah that too
<Toonto_del_alma>
pattern matching can be implemented in lisp
<jdh30>
Associat0r: And the way that Lispers advice for all of Lisp's flaws is "Greenspun your own pattern matcher".
<Associat0r>
I don't see why you would use lisp for the majority of the apps unless it is for AI
<jdh30>
Toonto_del_alma: Everything can. I don't want to do it myself and, even if I did, I wouldn't go via Lisp.
<jdh30>
Associat0r: I still don't know what AI is.
<Associat0r>
and even for AI I am not even sure these days
<Associat0r>
Artificial Intellegence
<Associat0r>
intelligence
<jdh30>
Associat0r: I know what it stands for. I mean I cannot define it.
<jdh30>
Ha ha.
<jdh30>
Iteligngence
<Associat0r>
yeah same here
<jdh30>
:-)
<jdh30>
Its like Idiocracy.
<Toonto_del_alma>
the language of A.I. is Lisp, not F#
<jdh30>
AI, its got what Lispers crave.
<Associat0r>
Toonto_del_alma: I didn't say F# is teh lang for AI
<jdh30>
Toonto_del_alma: Lisp is just a particularly naff precursor to modern FPLs.
<jdh30>
Associat0r: But I'm convinced that it is.
<Associat0r>
but I am sure you could greenspun some some lisp like DSL easily
<jdh30>
Don't forget to drop me that mail.
<Associat0r>
yes I will jdh30
<jdh30>
Got my address?
<Associat0r>
I guess it is on the FFC site somewhere right?
nuncanada has quit ["Leaving"]
<jdh30>
comp.lang.lisp is the best place to find my e-mail address. ;-)
<jdh30>
It is jon@ffconsultancy.com
<Associat0r>
thanks will drop you a mail
<jdh30>
BFn
jdh30 has left #ocaml []
thermoplyae has joined #ocaml
<yziquel>
OK now that the channel is calm...
<yziquel>
I'd like to add a class to Http_client (of the netclient package).
<yziquel>
Is it possible to make a new module, in which I would "open up" Http_client, and write a new class?
<yziquel>
The main issue I have is that it seems that I cannot access some private methods of classes in Http_client from my new module.
<yziquel>
Any idea?
coucou747 has quit ["bye ca veut dire tchao en anglais"]
seafood has joined #ocaml
<jeddhaberstro>
Night everyone
jeddhaberstro has quit []
ygrek_away has joined #ocaml
wolgo has joined #ocaml
<wolgo>
hi
seafood_ has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
<yziquel>
hi
bluestorm has quit [Remote closed the connection]
Apocalisp has joined #ocaml
ozzloy has joined #ocaml
ido_ has joined #ocaml
ido has quit [Read error: 104 (Connection reset by peer)]
ido_ is now known as ido
thermoplyae has left #ocaml []
ygrek_away has quit [Remote closed the connection]
ygrek_away has joined #ocaml
seafood_ has quit []
seafood has joined #ocaml
code17 has joined #ocaml
seafood has quit []
code17 has quit [Remote closed the connection]
code17 has joined #ocaml
Asmadeus has joined #ocaml
filp has joined #ocaml
Jeff_123 has joined #ocaml
<Jeff_123>
hi mbishop
<Jeff_123>
<--- Jeff Shaw
<flux>
not surprisingly haskell vs ocaml -thread kept on living on caml-list :)
<flux>
(although I do prefer that (intelligent rather than flamewar discussion) over nothing)
Yoric[DT] has joined #ocaml
<Jeff_123>
mmmmmmmmmmmmmm apples vs oranges
<Jeff_123>
my favorite dish
<Yoric[DT]>
hi
<Jeff_123>
hi
<Jeff_123>
Yoric, stop being smart.
* Yoric[DT]
wonders if it's a reference to Apple's iPhone being distributed by Orange (tm).
<Jeff_123>
It makes me feel small.
<Yoric[DT]>
What have I done?
<Jeff_123>
I decide, but it has something to do with you knowing stuff.
<Jeff_123>
I can't*
<Yoric[DT]>
Well, I'll take that as a compliment.
<Yoric[DT]>
Although I have no clue what it's about.
<Jeff_123>
It's good for you, but I'm so small now.
<Yoric[DT]>
Could you give me a hint?
<Jeff_123>
It's the influence the #scheme channel's had over me.
<Jeff_123>
They're a strange bunch.
* Yoric[DT]
has never even visited that channel.
<Yoric[DT]>
Would your perceived smallishness have applied to anyone who happened to show up on the channel 4 minutes ago?
<Jeff_123>
Lately I've been figuring out how to left factor a grammar production, but there's 2 different nonterminals to factor in parallel.
<Jeff_123>
Weak parsers are so annoying.
<Jeff_123>
oh hm, never mind. I think I was wrong.
<Jeff_123>
nm I wasn't. it's messy
<Jeff_123>
A -> A a | A b | B c | B d | C e, C -> B
<Yoric[DT]>
mmmhhh
<Jeff_123>
A -> A a | A b | B c | B d | C e | C f, C -> B
gdmfsob has joined #ocaml
<Jeff_123>
A -> a | b | C d | e | C f | A g A | A h A, C -> b | j
ygrek_away has quit [Remote closed the connection]
landonf has joined #ocaml
landonf has quit []
asmanur has joined #ocaml
asmanur_ has joined #ocaml
asmanur has quit [Read error: 110 (Connection timed out)]
Jeff_123 has quit []
ygrek_away has joined #ocaml
asmanur has joined #ocaml
asmanur__ has joined #ocaml
asmanur_ has quit [Read error: 110 (Connection timed out)]
gdmfsob has quit [Read error: 104 (Connection reset by peer)]
asmanur_ has joined #ocaml
asmanur_1 has joined #ocaml
mishok13 has joined #ocaml
asmanur_2 has joined #ocaml
asmanur has quit [Read error: 110 (Connection timed out)]
asmanur has joined #ocaml
mishok13 has quit [Read error: 104 (Connection reset by peer)]
asmanur__ has quit [Read error: 110 (Connection timed out)]
asmanur__ has joined #ocaml
asmanur_1 has quit [Read error: 110 (Connection timed out)]
asmanur_ has quit [Connection timed out]
asmanur_ has joined #ocaml
asmanur_2 has quit [Read error: 110 (Connection timed out)]
mishok13 has joined #ocaml
asmanur has quit [Read error: 110 (Connection timed out)]
ygrek_away has quit [Remote closed the connection]
asmanur__ has quit [Read error: 110 (Connection timed out)]
* Yoric[DT]
is tired.
bluestorm has joined #ocaml
mishok13 has quit [Read error: 104 (Connection reset by peer)]
<bluestorm>
because "tuple" includes f, wich is a function whose type includes tuple's type
* Yoric[DT]
was thinking along these lines, too.
<bluestorm>
you could probably get away with the problem using a sum type constructor somewhere
<bluestorm>
yes, _, _, `Fun f) compiles correctly
<bluestorm>
(it compiles correctly with -rectypes also, but rectypes program don't mix with non-rectypes one, and rectypes is generally bad practice, so i don't think you'd want that)
<rwmjones>
bluestorm, I can't mix modules compiled with -rectypes with ones not compiled that way?
<bluestorm>
i don't think so
<bluestorm>
actually iirc that was added in a non-so-old OCaml version
<bluestorm>
(i think i've seen that in a changelog)
<bluestorm>
- Referencing an interface compiled with -rectypes from a module
<bluestorm>
not compiled with -rectypes is now an error
<bluestorm>
(3.10.0)
<bluestorm>
hm
<bluestorm>
but that's about the interface only
<bluestorm>
maybe you can still use -rectypes in the implementation
<bluestorm>
if it doesn't show in the interface (wich is doable if the only rectypes parts are private and inferred)
sporkmonger has joined #ocaml
coucou747 has joined #ocaml
guillomovitch has left #ocaml []
Camarade_Tux has quit [SendQ exceeded]
Camarade_Tux has joined #ocaml
asmanur_ has quit [Read error: 110 (Connection timed out)]
sporkmonger_ has joined #ocaml
sporkmonger has quit [Read error: 110 (Connection timed out)]
ygrek_away has joined #ocaml
lasts has quit ["Quitte"]
Jedai has joined #ocaml
seafood has joined #ocaml
seafood has quit []
marmotine has joined #ocaml
Snrrrub has quit []
pango_ has quit [Remote closed the connection]
pango_ has joined #ocaml
Philonous has joined #ocaml
Axioplase_ is now known as Axioplase
vixey has joined #ocaml
code17 has quit [Remote closed the connection]
code17 has joined #ocaml
code17 has quit [Remote closed the connection]
code17 has joined #ocaml
bluestorm has quit [Remote closed the connection]
bluestorm has joined #ocaml
tsuyoshi has quit [Remote closed the connection]
ido_ has joined #ocaml
ido has quit [Read error: 104 (Connection reset by peer)]
asmanur has joined #ocaml
filp has quit [Read error: 110 (Connection timed out)]
filp has joined #ocaml
code17 has quit [Remote closed the connection]
code17 has joined #ocaml
ido_ has quit [Read error: 60 (Operation timed out)]
hkBst has joined #ocaml
ido has joined #ocaml
jdh30 has joined #ocaml
jdh30 is now known as Guest34753
bebui has joined #ocaml
bebui has left #ocaml []
Jedai has quit [Read error: 110 (Connection timed out)]
code17 has quit [Remote closed the connection]
asmanur has quit [Read error: 60 (Operation timed out)]
milesj has joined #ocaml
milesj has left #ocaml []
filp has quit [Read error: 113 (No route to host)]
filp has joined #ocaml
smimou has quit ["bli"]
ygrek_away has quit [Remote closed the connection]
smimou has joined #ocaml
<Guest34753>
hey ho
Guest34753 has left #ocaml []
Guest34753 has joined #ocaml
jlouis has joined #ocaml
<Guest34753>
hello
Guest34753 is now known as jdh30
<jdh30>
Someone registered my nick?
<jdh30>
Hmm
jdh30 is now known as Guest92448
Guest92448 is now known as jdh302
<vixey>
you could ask #freenode about it
<jdh302>
Bah. No worries.
<vixey>
probably can't do anything though
<jdh302>
Did you see the fake me on usenet BTW?
<vixey>
no I don't read usenet
<jdh302>
Some people were actually conversing with "it".
<vixey>
haha
<jdh302>
Maybe I should charge them. ;-)
<vixey>
or employ them, if they can do a really good job
<jdh302>
I wanted to employ Thomas Fischbacher at one point.
<jdh302>
He did such a good job selling our stuff.
<jlouis>
json-static or pickler combinators ... oh the choice...
<jdh302>
jlouis: pickler combinators all the way, baby.
<jlouis>
that is the way I am leaning currently too :)
<jdh302>
jlouis: I don't know anything about json-static BTW. I'm guessing it won't give you that warm, loving, combinator feeling.
<jdh302>
jlouis: More like a harsh, dank macro.
<jlouis>
exactly
<jdh302>
det: you here?
<jlouis>
it has a macro for defining a datatype with embed/project pairs to/from json
<jdh302>
jlouis: How unhygeinic.
<jlouis>
in camlp4
<jdh302>
Hmm, Camlp4 is very cool. Tough call...
code17 has joined #ocaml
code17 has quit [Remote closed the connection]
code17 has joined #ocaml
<jlouis>
I am wondering how hard it would be to do a backend for LLVM
<vixey>
backend for what?
<jlouis>
Standard ML in fact
<jlouis>
probably just the core to start with
<vixey>
why would you want SML on LLVM?
<jlouis>
maybe even some mini-ml thing
<jlouis>
To get a decent compiler for SML
<vixey>
jlouis: I want an ML with lambda prolog in the type system (for typeclass dispatch type stuff)
<vixey>
can you write a GUI program on LLVM ?
<vixey>
like a web browser
<jlouis>
well, a naive compiler shouldn't take that long. The hardest part might be a closure-conversion ;)
asmanur has joined #ocaml
<vixey>
I like this idea jlouis
<jlouis>
it means you can "outsource" the native code generation and get all the pesky peephole optimizations and proper modulo scheduling, pipeline optimizations etc
<jlouis>
and frankly, that moving target is not something I want to target ;)
<vixey>
does it also mean you need to write everything in C++?