Earlier quoted context omitted.
What about the irony of pjmlp dismissing something because it's based on an obscure language going as far back as 2001? :-)
Except that Java isn't obscure and experiments like Featherweight Java contributed to Java generics final design, introduced in November 2009, 3 years before Go 1.0 was released. What about that then?
Featherweight Go
31–40 of 169 posts
Re: Featherweight Go
#32But more seriously, it's interesting how this produces publications before actual implementations.
Re: Featherweight Go
#33Earlier quoted context omitted.
The thing about C++ compilation time is that if you care you can spend the time to optimize it. Our app takes ~40 seconds to compile and run tests on a decent machine (16 cores).
This is interesting. What techniques are you using? Pimpl? Custom, non-STL containers?
Pimpl is more for reducing how much you have to change headers forcing a recompile during development. It's also really handy for keeping binary compatibility with published dynamic libraries so that you don't have to recompile dependants.
Re: Featherweight Go
#34Earlier quoted context omitted.
>Don't ever try Scala. Don't ever try C++. I work on a medium-sized low-level C++ application, and every time we need to compile from scratch it takes over two hours on a single core. Even with distributing the compilation out across over a hundred cores the fastest it can get down to is around 20 minutes.
how come hundred cores is only speedup of ~6?
Re: Featherweight Go
#35Thanks for reminding me how the rampant abuse of nearly unreadable mathematical notation for things that can be easily expressed in concise natural language contributed to (voluntarily) shortening my academic career. But more seriously, it's interesting how this produces publications before actual implementations.
The notation is abused though. Try looking up some of the work by Guy L. Steele in the recent years.
Re: Featherweight Go
#36Earlier quoted context omitted.
I don't think this is so ironic after all. Featherweight Java is an idealized language, small enough for doing experiments. These experiments often involve the necessity of a formal proof. But being a small language, still capturing the crux of the full language, greatly simplifies the problem space. Featherweight Go serves the same purpose: find the core. Give the core generics. Then you have a good chance at implem…
Except that these kind of experiments contributed to Java generics, being made available 3 years before Go 1.0 was given a green light. Which is why Go had already a good example to learn from on how not to do language design.
Second what Sun choose to implement was a smaller subset and not that close to Featherweight Java/pizza compiler. It was only generics, not first class functions at the time, nor algebraic types/pattern matching.
Re: Featherweight Go
#37Is that a jab at Haskell in the very first paragraph? > Today [Go] sits at position 12 on the Tiobe Programming > Language Index (Haskell sits at position 41).
Re: Featherweight Go
#38Earlier quoted context omitted.
>Don't ever try Scala. Don't ever try C++. I work on a medium-sized low-level C++ application, and every time we need to compile from scratch it takes over two hours on a single core. Even with distributing the compilation out across over a hundred cores the fastest it can get down to is around 20 minutes.
how come hundred cores is only speedup of ~6?
Re: Featherweight Go
#39Earlier quoted context omitted.
>Don't ever try Scala. Don't ever try C++. I work on a medium-sized low-level C++ application, and every time we need to compile from scratch it takes over two hours on a single core. Even with distributing the compilation out across over a hundred cores the fastest it can get down to is around 20 minutes.
The thing about C++ compilation time is that if you care you can spend the time to optimize it. Our app takes ~40 seconds to compile and run tests on a decent machine (16 cores).
Re: Featherweight Go
#40Thanks for reminding me how the rampant abuse of nearly unreadable mathematical notation for things that can be easily expressed in concise natural language contributed to (voluntarily) shortening my academic career. But more seriously, it's interesting how this produces publications before actual implementations.
Closer to logic. There is a straightforward rewrite into prolog if you want a program. Or one of the proof assistants. The notation is abused though. Try looking up some of the work by Guy L. Steele in the recent years.
Journal papers usually don't get rewritten into Prolog or fed into proof assistants. They're read by human beings. I've long suspected (and colleagues used to "joke" about it) that excessive use of mathematical notation is just employed to impress and/or confuse peer reviewers into just accepting the paper instead of trying to comprehend it first.