<RobertFischer>
Smerdyakov: No -- by my friend (who is starting to pick of F#) re: a presentation I gave.
Deffie has quit []
<RobertFischer>
I think I'm a G- or H- list blogosphere celebrity. :)
<RobertFischer>
Cranks up to about C or D if you limit the scope to the Twin Cities, Minnesota.
<orbitz>
haha
<Smerdyakov>
RobertFischer, I don't like that essay. It tries to avoid making any practical claims.
<Smerdyakov>
The right answer to the questions mentioned in the first paragraph is "functional programming reduces the cost of development."
<RobertFischer>
Smerdyakov: True enough, probably because the guy isn't much familiar with them.
<Smerdyakov>
Either he misquotes you, or you gave a similarly bad (but much more condensed) answer.
<Smerdyakov>
By the way, moving up a level on the meta-ness hierarchy, I couldn't care less about convincing Ruby programmers to switch to OCaml.
<RobertFischer>
Smerdyakov: My answer was exceedingly succinct -- "it will warp your brain" -- you'll become a better coder by learning OCaml. Although I was arguing a different point: I was arguing that those who work day-to-day in Ruby should still learn and work with OCaml in order to learn it idioms and to think like OCaml does. To that point, whether or not it "reduces the cost of development" is pointless.
rwmjones has quit ["Closed connection"]
<RobertFischer>
Smerdyakov: I wouldn't expect you to care about drawing Ruby programmers into OCaml.
<RobertFischer>
You wouldn't be you if you did. :)
<Smerdyakov>
People with the potential to be good programmers are naturally curious and don't need to be coerced into trying new things.
<RobertFischer>
Smerdyakov: Assuming people with infinite free time, I totally agree with you.
<Smerdyakov>
People with little free time never become good programmers. :P
<RobertFischer>
It's not a matter of little free time.
<RobertFischer>
It's a matter of overbooked free time.
seafood has joined #ocaml
<RobertFischer>
What new thing should someone try out? Why OCaml among a seemingly endless field of alternatives? Keep in mind we're not just talking learning new programming languages here -- my audience at Ruby.MN are trying out new web applications, new UI frameworks, new libraries, new syntax stunts even within Ruby, new IDEs/text editors, etc., etc., etc.. And they're burnt by spending time learning things because of the hype, just to have them evaporate or
filp has quit ["Bye"]
Axioplase has joined #ocaml
<Smerdyakov>
It's pretty easy to find out what to try.
<Smerdyakov>
Ask smart people what's worth trying.
<Smerdyakov>
Smart people don't recommend "UI frameworks" first.
<RobertFischer>
Depending on your definition of smart.
<Smerdyakov>
I mean my definition, of course. :D
<RobertFischer>
Of course. Keep in mind that most of these people are employed day-in and day-out as web app developers.
<Smerdyakov>
Yeah. I hope they _don't_ learn OCaml, so they're easier to put out of business.
<RobertFischer>
Given that, learning a UI framework can mean the difference between staying relevant and falling behind the time.
<RobertFischer>
Sooner or later, a web framework/language based on functional programming is going to have to sell the wider development culture. To that end, laying a framework of familiarity with functional programming concepts is going to be critical.
<RobertFischer>
You want to be selling one thing at a time.
<Smerdyakov>
No, I don't agree with you.
<Smerdyakov>
There are at least two classes of developers: engineers and tradesmen.
<Smerdyakov>
I only care about tools for engineers.
<Smerdyakov>
And they are already pretty receptive to functional programming.
<Smerdyakov>
I completely repudiate the notion that popularity in "the developer community" is a requirement for success of a development tool.
<RobertFischer>
That's fine: you can disagree with me all you'd like. I'm just a guy who makes his living working in the business world and paying attention to the culture of corporate web application development. If you don't care about my opinion, that's your choice. :)
<Smerdyakov>
I don't care about corporate web application development.
<Smerdyakov>
I will replace all of that process, anyway. :P
<Smerdyakov>
I care about how trained people can build software cheaply.
<Smerdyakov>
But it's great for my competitive prospects to have people who think like you do, so keep it up. :D
letrec has joined #ocaml
<orbitz>
i hate it when peopel make pdf's where the index numbers dont' line up with teh pdf pages
<Smerdyakov>
orbitz, the PDF format supports that quite well. Perhaps you have an outdated client.
<orbitz>
i have the latest version from adobe
<orbitz>
the creators of teh pdf did not properly link it
jlouis has quit ["Leaving"]
rwmjones has joined #ocaml
<letrec>
Hey! Can I write something like: match ... with a::(b::tl as x) -> if (func a b) then x else [] ?
<letrec>
Doesn't look like it works.
<RobertFischer>
letrec: What are you trying to do?
<RobertFischer>
That doesn't really parse in my head.
<letrec>
I want to do pattern matching on lists, like a::b::tl but I'd like to define x as b::tl (as I want to reuse it).
<letrec>
So I thought a::(b::tl as x) :)
<RobertFischer>
And you want to use "b" and "tl", too?
<letrec>
Yes (I need a and b to make a decision on what I do).
jlouis has joined #ocaml
<RobertFischer>
Okay. Well, no, you can't do that kind of in-place aliasing. At least, I don't know how to do it.
<hcarty>
letrec: Would something like this work? match l with a::x -> let b::tl = x in tl
<RobertFischer>
Although a::b::tl gives you "if func a b then b::tl else []". That syntax isn't too bad.
<letrec>
hcarty: what does let b::tl = x do if x is the empty list?
<hcarty>
Throw an exception
<hcarty>
You would need another match to avoid warnings
<letrec>
How do you add another match to let b::tl = ... ??
<asmanur>
you must use the match .. with .. construction
<hcarty>
match x with b::tl -> ... rather then the let
<hcarty>
s/then/than/
<letrec>
Ok, thanks.
<bluestorm>
you could still use the proper syntax extension, and then let refutable b::tl = x in ... (wich makes sense only if you're sure that x is not [])
<Tetsuo>
match ... with a :: ((b :: tl) as x) -> ... works
<Tetsuo>
maye I missed the point
<Tetsuo>
*maybe
<letrec>
Ok, I'll give that a try
Axioplase is now known as Axioplase_
|Jedai| has quit [Read error: 113 (No route to host)]
<flux>
smerdyakov, who knows what kind of interesting things there are in the world you could get interested in, if you were provided the right push (for example: a short introduction), so in that sense I do think that giving a presentation on subject Z can be worthwhile, even if it is feasible that subjects might eventually encounter Z on their own
<Smerdyakov>
flux, sure, a presentation to the right audience is worthwhile. I don't think a Ruby UG is the right audience.
<Smerdyakov>
Most people doing Ruby programming are not cut out for serious development.
<struk_atwork>
Smerdyakov, harsh words, but likely true.
<flux>
that is possible (although the claim itself appears not be based on anything?), but then again can be some part of people in the audience that are cut out for it
<flux>
+there
<flux>
I suppose you are thinking this would be the same thing as making a repesentation on Ocaml to a visual basic user group
<flux>
in that case I would agree :-)
<bluestorm>
it's better to still give a chance to anybody
<Smerdyakov>
bluestorm, no, because that requires too much effort, if we're talking about going on the UG talk circuit.
<flux>
but I think (again, baselessly) that there can be bright people among the ruby people. for example, the implementors of ruby use ruby (I wouldn't think the same is true for VB..)
<Smerdyakov>
flux, just look through the set of Ruby users empirically, and you'll see that I'm right.
<hcarty>
The happy, huggable Smerdyakov is back! Hooray!
<flux>
I don't have many of those around
<flux>
I only know of one sysadmin who's into ruby
<flux>
but I suppose it cannot be much worse than python
<bluestorm>
hmm
<flux>
and I happen to know some people I believe are quite bright, who are into python
<bluestorm>
"it will warp your mind" ?
<bluestorm>
i guess i should ask RobertFischer for the meaning when he's back
<flux>
sometimes it just happens that even bright people can't get over their.. hmm, what's the word, when you have a feeling that that something is not good without actually trying it? .. -emotions
RobertFischer has joined #ocaml
<flux>
for example people who have learned (only..) C++ could easily be expected to have such feelings about any language that has a static typing
<flux>
and once they move from C++ to python it can seem like a heaven on earth :)
<flux>
(well, to some)
<flux>
just because they'd never imagined how nice a proper static type system can be..
<flux>
preconceptions was the word I was thinking
<bluestorm>
flux: (bad) assomptions ?
<bluestorm>
ah
<bluestorm>
-
<struk_atwork>
flux: I still don't understand why modern statically typed systems haven't pushed C++ more into the background...
<flux>
c++ has a huge tool and library support.
<flux>
and that counts for pragmatism.
<RobertFischer>
struk_atwork: Because nobody knows about them except academics? Nobody's tried selling them to business or trench developers.
<flux>
writing libraries you can use from C or C++ with for example ocaml or haskell is not easy
<flux>
I suppose technically it should be easy to write c-binding generators for ocaml libraries, right?
<flux>
much, much easier than in reverse :)
<struk_atwork>
but one of the primary purposes of C++, besides compatibility, is its optimization abilities. ocaml is reasonably close to such optimization and it has alot more guarantees wrt type safety
<flux>
I could actually make use of such a library!
<flux>
s/library/tool/
<RobertFischer>
flux: Are you thinking SWIG? http://www.swig.org/ Or something going the other direction (OCaml -> C)
<flux>
robertfischer, Ocaml->C
<bluestorm>
flux: i suppose it's much easier to do an edible binding for OCaml than for Haskell
<flux>
bluestorm, yeah, I can imagine lazy evaluation making things more complicated in the interface
<bluestorm>
hm
<flux>
atleast more cumbersome
<flux>
(perhaps, that's just an unresearched guess)
<bluestorm>
i was thinking at the non-triviality of typing side-effects
<flux>
hmm.. using monadified code from C?
<flux>
if the binding generator understood about monads it might not be that bad..
<flux>
when you go from ml-family to C you would need to add many runtime checks for types
<flux>
so that could be complicated
<flux>
well, atleast without patching the compiler
Tetsuo has quit [Remote closed the connection]
<struk_atwork>
I wish I had a better feeling for the future of jocaml
<struk_atwork>
lots of things I like about it
<RobertFischer>
struk_atwork: Yeah, me, too.
<struk_atwork>
RobertFischer, I want to write something cool in it, but worried at the same time :/
<RobertFischer>
struk_atwork: Until I see the 3.11 release, I'm not going to trust it will continue into the future.
<struk_atwork>
I may be a minority, but I think it should be integrated into native ocaml branch
Tetsuo has joined #ocaml
Linktim has joined #ocaml
<bluestorm>
on the other hand, you may help to make that future happen
<flux>
the new exception library looks quite neat
<flux>
does it have any shortcomings?-)
<asmanur>
the new exception library ?
<struk_atwork>
RobertFischer, hmm..what are one's alternatives in the functional framework?
<RobertFischer>
bluestorm: Yeah, so that's why I didn't use it.
<bluestorm>
you really need distributed processing ?
<RobertFischer>
bluestorm: Yup. What I'm working on is targeting cloud processing like Amazon's EC2 or multi-VPS situations.
<RobertFischer>
I'd be willing to chuck same-system functionality in favor of over-the-network functionality.
<bluestorm>
ocamlMPI, maybe ?
<bluestorm>
though it's probably a bit old
<hcarty>
camlp3l does distributed computing
<hcarty>
processing, that is
<RobertFischer>
hcarty: Yeah, I didn't know about camlp3l
<hcarty>
RobertFischer: It seems interesting at least. You can run a program sequentially or distributed with the same code from what I understand.
<RobertFischer>
hcarty: That'd be nifty. I'm a bit nervous about it not being supported long-term....but it's definitely something to look at.
struk_atwork has quit ["Leaving"]
<hcarty>
Yes, I've been worried for the same reason. The biggest benefit that I see with camlp3l over JoCaml is that it's a library on top of vanilla OCaml, rather than a change to the compiler.
<hcarty>
But if JoCaml is maintained then it could probably be more efficient and cleaner.
<RobertFischer>
I'd love love love love love to see JoCaml maintained.
<RobertFischer>
Actually, I'd love to see JoCaml merged into the core. But that's just crazy talk.
<hcarty>
Maybe if/when 4.x rolls around
<RobertFischer>
hcarty: Yeah. That'd be awesome as the defining feature of 4.x.
seafood has quit []
Linktim_ has joined #ocaml
Jedai has joined #ocaml
pattern has quit [Remote closed the connection]
Linktim has quit [Read error: 110 (Connection timed out)]