Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
willtim
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
52 ms
·
511.
▲
by
willtim
8y ago
I respectfully disagree that Web Assembly really "exposes the underlying machine capability" in any meaningful sense. The situation we are in today, is that many assembly ISAs are no longer fit for purpose. A modern C compiler wil
512.
▲
by
willtim
8y ago
What's wrong with hibernating and suspending? It's been two months since I last rebooted my Linux laptop, I typically only do it when upgrading the kernel. I agree it would be nice to keep session state after a reboot, but it'
513.
▲
by
willtim
8y ago
Weight is not the same as thinness. The X1 Carbon is substantially lighter than the MacBook Pro, but with a much better keyboard and much more repairable.
514.
▲
by
willtim
8y ago
> you cannot use subtype polymorphism to have a heterogeneous list of objects You can by using an existential type parameter, which 'forgets' the types in much the same way as an upcast. [exists p. {x:int; p}]
515.
▲
by
willtim
8y ago
Well not really as row polymorphism is a form of structural typing.
516.
▲
by
willtim
8y ago
A consequence of this is that the language has many severe limits. For example, number of function parameters, number of local variables, amount of code inside a conditional branch etc. Working around these limits can often feel like being
517.
▲
by
willtim
8y ago
But the problem of correct program construction does not go away. There is certainly a middle ground somewhere, beyond which proofs become too expensive for most users. For the sorts of systems I work on, the sweet spot is close to Haskell
518.
▲
by
willtim
8y ago
IMHO, structural types are a better starting point. Nominal types can always be created by wrapping a structural type, but it is difficult to go the other way round. A language with row types can give a type to a query or have named functio
519.
▲
by
willtim
8y ago
I thought your comment was specifically about co/contraviance in type parameters with subtyping, because industry has explored the idea of making this unsound (e.g. the Google Dart team). But yes, co/contravariance pops up every
520.
▲
by
willtim
8y ago
You are I think making a comment about type parameters in object-oriented languages with subtyping? But why give up on static types so easily? How about a type system without subtyping (e.g. Haskell, OCaml) or even better one with structura
521.
▲
by
willtim
8y ago
Haskell does make a great semi-formal language with which to communicate functional programming ideas, even if you have no plans to ever use an implementation of it. Mainstream languages are beginning to borrow more and more ideas from it (
522.
▲
by
willtim
8y ago
Yes I am aware of this. It is explained very well in the tutorial paper "Practical type inference for arbitrary-rank types" : https://www.microsoft.com/en-us/research/wp-content/uploads/...
523.
▲
by
willtim
8y ago
Of course C#, because of subtyping, also has contravariant type parameters (unlike Haskell). The variance phenomena shows up in many places.
524.
▲
by
willtim
8y ago
Standardised principled abstractions make for better program composition and better API design. In the Haskell world, APIs are much less adhoc, more consistent and easily understood because of such mathematical abstractions (and the laws th
525.
▲
by
willtim
8y ago
I can certainly see merit in that idea. The problem is that it's often not clear what the idiomatic style for a particular language applied to a particular problem is. Many of the Haskell solutions also look quite old, predating for ex
526.
▲
by
willtim
8y ago
My post was more for the benefit of other readers, who might have otherwise concluded that modern GHC is "slow". There are many ways to compare the 'execution time' of e.g. Java and Haskell. Idiomatic Haskell code may we
527.
▲
by
willtim
8y ago
Those benchmarks do not compare like-for-like. Often the Haskell versions try to solve the problems elegantly with high-level functional code at the expense of performance, e.g. see Mandelbrot. GHC Haskell is an advanced optimising compiler
528.
▲
by
willtim
8y ago
A feature I would like to see in a mobile OS is per-process power quotas.
529.
▲
by
willtim
8y ago
If we had better languages and tools for integrating various parts of the tech stack, then perhaps we wouldn't need such monolithic constructions. See the Mirage unikernal project for an alternative to containers and virtual machines r
530.
▲
by
willtim
8y ago
Note the above is not totally correct, LINQ-to-SQL can be used as an ORM if required (i.e. is not restricted to one-to-one mappings from tables to classes).
531.
▲
by
willtim
8y ago
I suspect that GraphQL corresponds more to Erik Meijer's "coSQL" formalism (see A Co-Relational Model of Data for Large Shared Data Banks). The advantages with respect to SQL would be an open-world assumption (easier distri
532.
▲
by
willtim
8y ago
> I can't help but think that you are using GraphQL in a way for which it was not designed. The confusion exists because nothing even remotely formal appears to have been written down or documented. I can only find references like &
533.
▲
by
willtim
8y ago
The food industry needs a lot more regulation IMHO. It often misleads the consumer with its marketing, but a cereal or juice drink is not healthy when it's rammed full of sugar.
534.
▲
by
willtim
8y ago
This only makes sense for software that you use frequently and don't mind repurchasing everytime Apple breaks them with OSX upgrades.
535.
▲
by
willtim
8y ago
The power to reason is limited in complex languages.
536.
▲
by
willtim
8y ago
From the article: "Canonical can deliver an OpenStack platform to an enterprise in two weeks with everything in place."
537.
▲
by
willtim
8y ago
Unfortunately Apple hardware is not particularly well supported by Linux.
538.
▲
by
willtim
8y ago
> whole UI/UX thing on Linux just can't be compared to macOS and Cocoa. Beauty is in the eye of the beholder. I much prefer the look and feel of my i3/polybar setup. As a professional developer, I am not the target audienc
539.
▲
by
willtim
8y ago
If JOOQ is anything like LINQ-to-SQL (and it certainly looks inspired by it), then it isn't an ORM. It's a typed query language with a one-to-one mapping to SQL database tables/views. This gives us the low-level control of SQ
540.
▲
by
willtim
8y ago
> Despite the rhetoric about "freedom" the GPL is a huge disincentive for developers to participate. The "freedom" references from GNU are with respect to the users of the software, not necessarily to any entity that
More ›