Sign in with Twitter


Occasional OCaml programmer

117 Following   3,822 Followers   2,833 Tweets

Joined Twitter 6/21/09

@pavpanchekha that's not an open problem: there are clear impossibility results. @rzezeski I did have one sales guy telling me that I needed to know about the CAP theorem. I declined.
Retweeted by Yaron MinskySeparation of prod and dev is one of the great unsolved problems of computer science.
@marius and whatever else you might think of Go, it's not a car crash language. @marius Agreed. Building a simple "car crash" language that combines very different worlds is hard. @yminsky I think OCaml hits a sweeter spot in this sense: almost all the power but far less of the complexity tax of Scala.
Retweeted by Yaron Minsky @marius what makes OCaml special is that it does this without a lot of complexity in the language. @marius Because we can use OCaml for a wider variety of tasks, our investments in tooling and expertise go farther. @marius one of the thingsi really like about OCaml is what I sometimes call it's dynamic range; the ability to use it for many tasks. @nikhilbarthwal Base is a subset of Core. We don't have full documentation up yet, but we're hoping to have this all settled by mid-feb.
@mensch04 no, but we'll post it to YouTube after if the recording comes out well. @dosco not steamed, yes recorded and posted on YouTube. @__avik @samth Look, this whole soundness thing is pretty new. You can't expect them to have all the details worked out yet. @zeRusski Fixed now. @zeRusski Well that's a mistake...Oooh. OCaml is a javascript-trend now. Or something. @yminsky 🤔
Retweeted by Yaron MinskyHey, Jane Street is doing a public tech talk! Come Feb 2nd to learn about the architecture of a modern exchange: @samth Also, they appear to help when building an exotic thing called an AOT compiler. I've never used one, but it sounds cool. @samth It was an interesting post, actually. Did you know that sound type systems are better for finding bugs? @samth Why choose?Does this mean that sound typesystems are cool again?
A practical introduction to OCaml's new memory profiler.
@marius syntax: @marius stdlib: @marius I suspect OCaml's GC trounces Go for single core work. And I have high hopes for the multicore GC. @marius to what degree are you describing OCaml? Maybe just OCaml plus multicore? @marius I'd love to see what happened to you after six months inside our walls... a whole new set of antibodies! @marius that does sound lovely. Jane Street's internal story is pretty great, but work is needed to make it more widely available. @marius taste is essential. @marius yeah, the OCaml team has been pretty good about not adding unnecessary features to the language. @marius For sure. To a large degree we just avoid those features. @marius or maybe it's that type systems don't matter? @marius and should my take away from this be that programming languages don't matter, and that one should focus on tools instead? @marius OCaml feels pretty simple to me, but I do wonder if I'm just drunk on the Kool Aid. @marius I also wonder to what degree the simplicity win is in contrast to Scala. @marius what kind of tooling helps wth refactoring in Go? Is it testing related? @marius And man, the loss of variants seems huge to me. The ability to refactor with little risk of introducing bugs derives from that, no? @marius I would think its absence would get in the way of all sorts of useful abstractions. @marius It's interesting. I'm surprised that the lack of parametric polymorphism doesn't start to wear. @marius So, how has Go been wearing on you? Are you still pretty positive about it?
@bobpoekert also, you want to minimize effort, not quality. Quality costs more effort now, less effort later. @bobpoekert I think this assumes that requirements are binary, which simply does not match my experience. @bobpoekert Sure. Engineering for a start-up is very different. Personally, I like the focus on quality engendered by longer term outlook. @bobpoekert also, I worry that a "min quality" mindset doesn't work out well in the long run. @bobpoekert it's not binary, though. More effort on quality can buy more future maintainability and flexibility.You really do learn a lot by getting something decent out quickly. But you need to find time to come back and clean it up.More experience tends to push towards higher quality, from having seen the costs of previous choices. Sometimes too much, I think.The choice of the level of quality at which to execute a project is tricky - a trade-off between time now writing and time later supporting.
@yminsky @nnash @github You can read more about it here:
Retweeted by Yaron Minsky @jacobmcarthur @s_tolksdorf I don't think so, but I'm not sure. @Symbo1ics simple doubling gives you amortized O(1), even though the doubling is a big all at once cost. @nnash @giltene @github it doesn't affect the amortized analysis: but the idea is to spread the work of resizing over time.
@s_tolksdorf While there are some tradeoffs, it seems like it might make sense to give up on complete non-mutation to get incrementality. @s_tolksdorf That's a good point. I was thinking about this in the context of a single-threaded implementation. @bitbckt but not the stdlib? And if not, any idea why not?Without it, an application can experience an unpleasant pause when it hits a big resize. Avoiding this by carefully pre-sizing is a pain.Do any standard hashtables implementations do incremental resizing? It seems like such a clear win, but I don't know if anyone does it.
My latest fun teaching idea: using Racket's image teachpack to do "random art", using random numbers for drawing pretty pictures.It's always a little sad to see a great PL-dependent idea like openscad implemented with a limited and broken language...An awesome educational tool I'd love to have: an openscad like system based on @racketlang and integrated with drracket.So you can easily thwack some transformations on top of sample data, and see what the result looks like. Really nice.Expect tests are also a surprisingly nice tool for doing this kind of work. They serve as reproducible traces of your processing pipeline.I've been playing around with lambdasoup for doing some HTML munging. It's a really pleasant and convenient API.
Some interesting responses to that "Go GC sucks" article that's been making the rounds
Retweeted by Yaron Minsky
@das_kube Oh, don't get me wrong. I know it's absolutely hopeless.A thoughtful, very sane post.'t we all just get along and agree to use s-expressions for serialization?
@jordwalke For us, the small amount of work per package required to get a proper Jenga build is eminently worth it. @jordwalke Also, proper incremental rebuilds with correct handling of stale build artifacts, inotify-based filesystem watching, etc. @jordwalke Also, being able to run everything under one build engine has big advantages. Jenga does a lot to ensure build determinism. @jordwalke I'm pretty unconvinced by META files and the whole findlib setup. In practice it slows down builds by quite a bit, for one thing. @jordwalke @yarnpkg the key enabler would be a shared build language, so we could integrate nicely wth Jenga. @jordwalke @yarnpkg but some kind of opam integration could be good, even if we cache dependencies in the tree. @jordwalke @yarnpkg perhaps. But reaching out over the network to do our builds would be a real cost. @jordwalke we prefer the self contained reproducibility of a monorepo workflow. @jordwalke almost every external dependency is vendored. Not compilers, but nearly every library. @bitemyapp maybe a book. Or just a series of blog posts. Not sure which way to go... @bitemyapp someone should really write a survey paper about approaches to software version management...