> if you needed venture capital to produce a viable small-scale business, you didn't really have a viable small-scale business to begin with. Triplebyte's break-even status was an illusion, predicated on funding that would probably never have existed if that scale were the founders' only ambition.
I wonder if there's a way to build a viable business out of a product like FastTrack that does not depend on venture capital to get going?
Mostly because US companies keep buying their EU competitors. Nokia, Skype, Spotify, ARM, ASML and countless others all originated in Europe. The ones that remain European are the ones that cannot be bought so easily, like Matrix (UK) or Mastodon (DE).
Programming comes from a place of first principles, the goal being to understand what is needed completely so that a solution that meets many parallel constraints can be constructed.
Coding comes from a place of completing a task, the goal being to get from the requirement to the operating task in as short a time as possible so that one might move on to the next task.
Both disciplines have value. The original question was unclear about where the author hoped to end up.
To put this in a slightly different perspective, a graphics programmer can write a program to show a shaded object on any platform with a CPU and a way to display graphics. A graphics coder can write a program to show a shaded object only on those platforms where they have previously mastered the APIs for generating display graphics.
(Sorry, this probably sounds more critical than I'm intending...)
Yeah, that's more or less how I would have defined DOP, too.
Could it be that there is a slight difference in meaning when people refer to "data-oriented design" (OP) vs. "data-oriented programming"? At least that's been my (anecdotal) impression so far.
As far as I can tell, Data-Oriented Design is a reaction to trauma experienced by game programmers trying to undo damage inflicted by the... inapt... application of OO techniques in game codebases by their (probably well-meaning, but ignorant) peers. (Hence the contrast in the names: OBJECT-Oriented Design -> DATA-Oriented Design.)
The keystone idea seems to be, instead of organizing your program's data as objects in an inheritance hierarchy, figure out which data will be accessed together in tight loops, and pack that data together in arrays. (I.e., prefer structs of arrays to arrays of objects.)
P.S., There's an interaction during the Q&A section of that presentation by Mike Acton which I love: one questioner asks, somewhat incredulously, (and I'm paraphrasing here) "If I were to follow the principles you have laid out in this talk, then, if I ever needed to alter the layout of my data--after having invested (perhaps significant) time already writing my program--I would subsequently be required to rewrite all the code which accesses that data." and Mike Action answers, basically, with a stone-cold "Yes."
Obviously, I'm not articulating my perspective very persuasively. Here's some additional flavor that might help (probably won't:)
1. In Magic: The Gathering, the most expensive deck is not always (or even ever, really) the best.
2. Is Golf pay-to-win? I can spend more on a set of clubs that have bigger sweet spots & will give me more distance with the same swing than my opponent's set.
3. The term "pay-to-win" comes from free-to-play MMOs.
I think most people that claim MTG is pay-to-win are just frustrated by how expensive it is. I agree. Don't play it!
It would be pay-to-win if you could do stuff like, pay a fee to take a second card at once during a draft, or tutor a card from your collection during a game, etc...