707 karma · joined May 29, 2017
Are you juggling lots of messages concurrently and orchestrating across complex topologies of nodes? A BEAM language is going to excel. That's why Whatsapp, Discord, and RabbitMQ use Erlang/Elixir.
Are you trying to go really fast in a straight and simple concurrency scenario? Go/Java/C++/Rust is going to be faster than a BEAM language in those scenarios.
You won't want to implement a complex concurrency run-time in Java whereas Elixir is not a good choice for a 3D game engine.
Still, there's nothing wrong with using both.
I'd like to see some kind of generic HTTP contract or REST-API client builder library next so we can have swappable HTTP adapters (e.g. Mint/Hackney). I don't want to depend on a library like HTTPoison or Tesla directly when making a client, instead just generic Request/Response structs or protocols. That way an internal project can use a single HTTP adapter across all REST integrations rather than whatever the library author chose to use.
Authority (City, Utility, etc.) typically push and constrain the installation at least 3-6 weeks and they rarely actually know Solar well enough to be a real 'Authority'. Lots of poorly implemented review procedures from untrained city officials and inspectors. Many unnecessary revisions, nitpicks, and expensive truck rolls surface here.
Then we also have Sales and Financing Providers who have the most leverage out of the stakeholders. High leverage also means they tend to get the biggest cut for a given Solar contract. High commissions and high fees or they leave the installation company who has to fulfill a 2-6 month-payout-delay pipeline. The fulfillment team also has the most people to retain, train, and coordinate over what is typically a multi-state field operation problem.
Not at all easy. Still, it boils my blood seeing some of these organizations fall prey to these pressures and turn to customer exploitation. What it amounts to is some deep-rooted systemic issues with the government-enforced monopolies of our utility companies, overly-simplistic incentives, and a market moving faster than the training and organizational development.
I guess I was trying to approach a few concerns beyond just dependencies: learning curve, conventions/standards, framework volatility, and merit assess-ability of ideas.
The more people involved (popularity), the greater the difficulty to parse the merit of an idea without pre-existing competence. How easy is it for a new developer to find a cogent way of doing things in Javascript land compared to a smaller more specific ecosystem? In the smaller ecosystem the experts are easier to determine due to a smaller population, whereas in Javascript-land there's so many people, opinions, articles, and conventional disparities; a much more challenging exercise.
There's so much amateur work and muddied merit-sense-making of what's good software, who to listen to, and how to move forward - my feeling is that pendulum is just about at peak.
The idea being we're a few years at least before language and infrastructure can be mature enough to have value for most users beyond earliest of adopters. The other languages you've mentioned are much further along than any "dApp" platform at what they do. Decentralized application platforms like Ethereum are a new space with new requirements but, as far as I can tell, necessitate a new language to satisfy unique requirements. The hot-take is that Solidity is probably going to take some big changes to make it much further. I've not been impressed with it.
I expect we're going to see more niche gig-economy businesses being built around more complex workflows with higher skilled labor. Lots of B2B and B2C potential when you break up services into smaller tasks that can be fulfilled. Success is providing the benefits of scale without the challenge of doing it yourself.
So we take this imagined future and think about how aspects might be implemented. What problems and barriers are in the way? If I'm interested in hardware maybe I could tinker with Lidar sensors and software to model physical spaces. If I'm interested in machine learning and statistics maybe focus on object detection. Maybe you're more about design and UI and can focus on the way people will want to interact with the digital overlay. Maybe you're into architecture and can spend time thinking about how to design physical spaces to integrate with the new augmented reality capabilities.
You're not going to solve every problem across those diverse domains, but you can still imagine the possibilities and find areas of interest that you're motivated to spend time in. I feel like this is what they mean by being 'upwind' of opportunity - you're not consuming paths set by others (downstream effects) but what has a likelihood of future value and possibilities.
I think we'll see more Akka features built in Elixir through things like Genstage and Flow, but it's hard to argue with the mountain of exiting developer man-hours in the JVM.
The dynamic typing in Elixir/Erlang is a trade-off for Actor model message passing. You get a state of the art run-time for fault tolerance and concurrency, but the messaging aspect makes typing problem-prone. A co-dependency on a custom type is coupling you want to avoid when sending messages around. You don't want a long running process that knows about Type_v1 sent a message from a newer process messaging with Type_v2.
The Aeternity team is building blockchain systems with Erlang for nodes and infrastructure. However since smart-contracts necessitate so much type safety and formal verification - they're designing an ML flavor functional language just for that.
So what's the cost of a loan or other financial products? Of course there's utility in providing upfront capital in exchange for time-spread payments and interest (buy the $200 boots today), but what of the macro-cost of decreased market participation for the duration of the payments? The loan payments with interest is money that could've been used by an individual participating in the market that is instead piped to the financing provider who, by definition, is already richer.
Given the rich, or a rich organization, has different buying habits and participation in the markets (different perspective = different information), how much economic flow, throughput, and growth are we losing from financial mechanisms which go from poor -> rich? In this sense wealth concentration is a problem of bottle-necking economic potential by depriving our markets of participants and diverse perspectives.
How about a subscription / lease deal where they ship you the new model every year? Sell a cheaper tier for the 2nd year used vehicles. Do telemetry on driver safety and charge accident-prone drivers more! Replace/bundle/improve car insurance while you're at it. Are there regulatory hurdles preventing this for a company like Ford or Toyota? Is it just organizational momentum stalling these changes?
Maybe our existing methods are good enough given enough compute to reach AGI but our datasets are too low fidelity and non-representative of the problem space to reach desired results?
The more time/location dependent energy sources we add to the grid, the more valuable and necessary on-demand energy to buffer with will be. Same goes for a steady producer like fusion/fission: an increasing value proposition as these renewables are added.
We should definitely be doubling down on PV, but stay aware of other options as it comes with trade offs.
My advice to anyone moving into the Utah area is check the internet service provider options first. Last thing you want is to be in an area serviced only by CenturyLink.