Albert-László Barabás, a physicist, created a network map that can predict an artist's future success based on their early network connections. His work outlines two key "laws of success":
- Performance drives success, but when performance can’t be measured, networks drive success. This highlights the importance of networks when objective measures of quality are difficult to establish.
- Performance is bounded, but success is unbounded. This indicates that small differences in quality can lead to large disparities in success due to the amplifying power of social networks
Barabási's model can predict an artist's career success with surprising accuracy based on the venues of their first five exhibitions. This model underscores the importance of early connections and the venues where an artist exhibits their work, which can significantly influence their long-term success4.
Wisp [0] is the big one talked about in Scheme land, and it wouldn't need 35 levels of indentation. Like the rest of Lisp-world, there's flexibility where you need it.
For example, this shows a bit of the mix available:
for-each
λ : task
if : and (equal? task "help") (not (null? (delete "help" tasks)))
map
λ : x
help #f #f x
delete "help" tasks
run-task task
. tasks
> Even with the discounts, savings plans, multi-year commit discounts, etc., the cloud costs are absolutely absurd if you are running stable applications where you understand the future growth, use, and demand.
This is true, but it doesn't preclude use of the cloud.
The core of the cost issue is, in my view, that software is still designed to run in a datacenter: always on, all code in a single process (yes, this includes microservices), expected to never stop mid-execution. That made sense when you owned the hardware and needed to fully utilize it for the duration of its life. This prevents the best cost-saving measure in the cloud: turning it all off.
People can complain all they want about how the cloud providers operate, but there are ways to utilize cloud infrastructure without breaking the bank. Software development practices have to change, and in the meantime the cloud platform providers are going to make a pile of money as companies shift legacy software to the cloud without the needed re-architecture. We need frameworks and other technologies that, similar to the abstractions we now have for memory management, multi-threading, asynchronous I/O, etc. relieve the burden of reasoning around distributed, disjoint processes from the developer. Then we can finally realize the ideal of "only pay for what you need".
A few unfortunate things about software development practice lately being mostly plugging together components:
* People make huge things out of often poorly-chosen components and frameworks.
* People 'engineering' the system don't actually understand how it works.
* Much/most of your time is spent figuring out a pile of library/framework bureaucracy that someone else created. Not even useful concepts that you are smarter for learning, just figuring out some muddled version of an old model, the particular forms of made-up incantations around, and discovering and working around the shortcomings of their design and implementation. Often you find the thing you're using is actually poor design and implementation, and you might feel stupider for having learned its bureaucracy.
* This plugging together of components can be done well, and sometimes is, but it's also a little too convenient for developers who think software engineering is like turning in homework assignments in school. In which the goal is to get your homework (sprint task) past the grader (PR approved), and that's the end of it (what's analysis, planning, and architecture?). So you do Web searches of Stack Overflow (and maybe some Copilot open source laundering), to slap together some components, and no one even seems to expect you to know how it works. Where's the pressure to do software engineering?
* Perhaps some of the churn of these components is due not to technical/business merit, but to the fact that putting the latest possibly-rising component on your resume can improve your marketability in an employment environment oriented around frequent job-hopping. It's a symbiotic relationship between people who spit out "new" components to plug together, and people who twist projects to put the new thing on their resume.
That's not exhaustive; just a few off-the-cuff that are annoying this weekend. :)
Albert-László Barabás, a physicist, created a network map that can predict an artist's future success based on their early network connections. His work outlines two key "laws of success":
- Performance drives success, but when performance can’t be measured, networks drive success. This highlights the importance of networks when objective measures of quality are difficult to establish.
- Performance is bounded, but success is unbounded. This indicates that small differences in quality can lead to large disparities in success due to the amplifying power of social networks
Barabási's model can predict an artist's career success with surprising accuracy based on the venues of their first five exhibitions. This model underscores the importance of early connections and the venues where an artist exhibits their work, which can significantly influence their long-term success4.