This is extremely common in the Netherlands. Also very well sorted out these days. My parents' company used to assemble these. A specialised contractor digs and pours a concrete foundation for the walls and once those would be cured a crane, a loader truck and a crew of maybe 3-6 people would on average have a new house ready every 3 days (walls, floors, roofs, wiring, piping), 'ready' being very close to how they're sold to individual owners.
A prefab house design will typically be replicated in several projects / cities, usually with a few customisation options. Different prefab factories have different levels of standardisation and automation. The prefab production lines I designed long ago for example used fully parametric designs to offer standard concepts sized to fit. At the time (~10-15 years ago) a novelty, by now must be pretty standard.
Not in the Netherlands but in Sweden one of the biggest house makers is Älvsbyhus, you can select a base model (begin by selecting number of floors/layout, then size) and customize colors and some details online.
I've seen this in action: A startup I did consulting work for had a "genius" who convinced management that everything should be written in Haskell. As a consequence building a team was painfully slow, so slow that some guy in a weekend recreated in node.js what their 15 people team had painstaking put together in 3 months. Turns out doing a web service with tools meant for it was better than "everything should be functional".
Unpopular opinion - Haskell was intended for research and learning, not so much for mainstream production code. I'm not saying you can't use Haskell for that purpose, but you should think long and hard before doing so. If the answer is still yes then go back and make sure you've thought long enough and hard enough! :)
The problem is that there just aren't that many people who choose to invest in learning Haskell -- or for that matter, the essential-to-master nooks and crannies of Rust. And the learning curve to get there is intrinsically steeper that for, well, all those "dum-dum" ducktyped and/or mostly procedural languages one imagines you don't particular care much for, now do you.
Of course it's known that some shops, like Jane Street, have gone whole hog on FP and have managed to do all right, it seems (even arguing that "the fact that the learning curve for our bread and butter is significantly higher than for the usual college-taught languages is a feature, not a bug").
That may work if have the same brand recognition (not to mention salary and bonus pool available) as Jane Street. And even then, it's not exactly proven that large-scale FP worked out so well for them. Just that they didn't tank.
But if you don't have their clout and resoures... from first principles, you should probably think twice before making the same bet that they did.
> now do you
Depends. I like JS ok. I really like Lisps. I miss doing Ruby sometimes. I've been doing more Python lately and find it rather distasteful, all this tooling is just so so complicated for very dubious guarantees/benefit. Not all of us are a sum of tropes.
The main thing that I find frustrating is that the actual act of programming in an impure language is so much harder. Haskell is def harder to learn, like 10x at least imo. Especially for a mainstream dev. But, once you know it, there is a simplicity to what you're doing which is very easy to do. I find myself having to just think so hard when writing python. "what exacty does this function do? Oh it calls this other function, I have to go check that one." etc. And then with a myriad of control flow issues, and random syntactic "sugar" to contend with...
There are a number of haskell companies, not just Jane street, and they do pretty well. If you don't follow the space closely, it is not surprising that you don't know about it. But there are. Not nearly as many as Python or whatever, but the appeal to the popular is def problematic: mostly because, at one point python itself was a radical new thing, full of skeptics like "if its so great, why don't more people use it".
Many ideas from haskell/typed fp are slowly making their way out into the larger community. Witness Swift, Kotlin, Java, numerous features in C#, etc. People like them.
Its fine if you don't like Haskell and don't want to use it. But its not an insane choice.
Haskell community really needs to do better at making it easier to get started though. Eventually I hope to contribute to that.
You remind me that it's not the language that people use per se, it's the frameworks. Python has been around for 30 years. It was NumPy and SciPy that propelled it to the phenomenon we know today. Likewise with Ruby. I remember when Ruby was released in the mid 90's and wondering why would anyone use this language? Ten years later the Rails framework appeared and suddenly Ruby was a language that went mainstream.
Honest question - does Haskell have such a compelling framework driving its adoption? Or does Haskell suffer the "curse of Lisp" and people just create whatever they need when they need it and no big framework ever gets developed that drives adoption?
Sadly no. There are contenders for this that have arisen over the years, but we don’t have a RoR for Haskell yet.
If you’re curious, here is a talk that goes into this problem. It’s very accessible IMO. https://youtu.be/fNpsgTIpODA
To be honest, the compelling reason to learn Haskell for me was so I could engage with various academic literature. I just kept running into things I didn’t understand which were tangential to the topic of the paper, and it seemed like the most straightforward way to solve this was to start with learning Haskell. Once I learned it, I realized I was wrong in my biases, and Haskell is a fantastic tool for normal programming, with some important caveats.
But then it actually does get back to the language because the reason people build NumPy and SciPy (and Django and tons of stuff in other domains) is that Python is, after all (despite its warts) so damn easy to use. Making it easier to build all that stuff, and more rewarding also (because there's an audience).
Which is not an extra but in fact means a heck of a lot for a language's chance at long-term acceptance.
How do you know it didn’t work out very well for them and they keep it quiet just so the competion doesn’t gain the same advantage? There is that possibility or it could be that the same team would be capable enough to change the stack and paradigm and get more or less the same results, with some twist and a different flavor. It’s hard to know for sure I think.
We don't know of course; nor do we have any reason to believe it does work.
But as for "keeping quiet" -- that they aren't doing at all. They are (or at least were, when I last paid attention to this stuff) extremely forward about their belief in FP as part of their secret sauce for staying ahead of the competition.
Which, ironically, makes one further question whether it has all that much benefit. Because if it really did ... yeah, they'd probably want to keep quiet about it. Like any other truly winning strategy in their arsenal.
Yep. But sadly Haskell does give you more rope to hang yourself with. Refactoring and normal development is so easy and then people use all that power to go nuts. Such a shame.
Haskell culture is all about exploration, which means you do not know what you are doing, by definition. A large part of that exploration revolves around abstraction.
You shouldn't make the job harder than it needs to be. The main danger is using tools/techniques you don't know well. Learn radical new approaches on your own time. Don't bet the farm on the latest free monad framework which has 10 downloads on hackage.
I'd really love to hear more details about those Haskell services.
I'd put money on either the team not knowing Haskell when they started, or the "genius" was one of those completely impractical people who do type-level astronautics in Haskell.
Start with the smallest, simplest task you can complete. The endorphins from that you apply to the next small job and so on. Ideally each of these small tasks move you a tiny step towards your end goal(s).
The idea is to create and maintain a positive flow / momentum. If you stumble step back to something smaller and regain momentum. The difference with discipline (also a valuable trait) is that a good flow makes you _want_ instead of _need_, a more positive and less stressful mindset.
Yes, but that's a known issue that has nothing to do with it being airless.
Back when I used to go off-roading a lot it was common behavior to leave a lot of space between you and the truck ahead when you got back onto a paved road. The open tread pattern of offroad tires picks up lots of small rocks and sends them flying back at highway speed. Not good for the windshield on the following vehicle.
I live on a gravel road now. You learn not to follow other vehicles too closely!
That seems hard to do with preemptive scheduling. AFAIK, the decision is on function level, and done at startup. Even if you can decide on call-time, it's only function level, and the preemption can happen mid-function.
My 2c: Building a hierarchical structure requiring opening and closing tags/code/etc (like HTML) is where I like to use recursion. The code structure matches the data structure, so you only have to reason about it once.
For this reason I'm considering updating my Terms of Service to include a 'Windows 10 clause' clarifying that any OS that can't be trusted in its default state is in direct violation of any NDA provided by me and would nullify any NDA imposed by other parties.
This because, imho, the issue with every proposed 'fix' for Windows 10 is the same: The deal the Windows 10 buyer made with Microsoft is that Microsoft is allowed to monitor you. There is no guarantee that Microsoft won't disable any fix at a future time, like they do now with methods to bypass their software features (like activation).
A prefab house design will typically be replicated in several projects / cities, usually with a few customisation options. Different prefab factories have different levels of standardisation and automation. The prefab production lines I designed long ago for example used fully parametric designs to offer standard concepts sized to fit. At the time (~10-15 years ago) a novelty, by now must be pretty standard.