- Examples -
C + OS APIs: They can't change things just for fun without inflicting serious self-harm.
Golang: Really great about not breaking things.
- Counterexamples -
Mobile: New bureaucratic hurdles for every freakin' build!
JavaScript+DOM: Caniuse.com hell.
Elixir: Two languages in one, two different string types, and new, exciting, warnings with every release:
warning: String.strip/1 is deprecated. Use String.trim/1 instead
warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead
I'm sure that extra underscore was just killing someone.
Example from 25 years ago: HTML and CGI were a much easier way to build and distribute reasonable applications than the current desktop technologies. There were a lot of customers too.
Example from 10 years ago: mobile apps are as difficult to create as desktop apps. I gave them a try and I stuck to web development. There are enough customers even nowadays.
Example from 3 years ago: a new customer wanted to make me work with Python and Django. They are worse than Ruby and RoR (which I worked with since 2006) but OKish. I accepted to collaborate with them.
At the same time another new customer was looking for Elixir developers. I looked into the language a couple of years before, better than Python for web development, I started to work with them too, with more enthusiasm except for the React frontend. The complexity is insane, worse than the desktop apps of the 90s.
I also did some Rails web development in the last years, that was easier money than both Python and Elixir. I go Ruby for my pet projects: it's easier and quicker to code. My time matters.
Applicability - The platform has to get me to some goal faster, easier, better than if I got at it alone. The goal can be anything. Ex. If I need to build messaging within my app I'll use Twilio, if I need distribution/users, I'll list on iOS/Android.
Trust - It's all the signal that platform has staying power. Great APIs and docs means they care and are investing in developers, years in existence, community, amount of end users, pass history of doing what they say relative to roadmap, etc. I think it's weighing all these tings before you start to build.
maybe related, I think this is the best article on "platform" , Marc Andreessen 2007 - https://pmarchive.com/three_kinds_of_platforms_you_meet_on_t...
Why does this draw me to a platform? Because it leads me to think that I'll be able to use it to solve business problems[1] despite having non-infinite mental abilities[2]. That includes the ability to communicate about timelines with stakeholders.
What makes me think that about a platform?
- Well-written documentation, with appropriate amounts of the 4 types of docs: tutorials, model explanations, how-to guides, and references.[3]
- If applicable, docs which show how to write automated tests with the platform.
- Interfaces which do a good job of containing complexity. The information they require me to learn "pays its rent" for the space it takes up in my mind. The modules are deep enough to have solved problems that would otherwise take up my time.[4]
- An active community so that StackOverflow has a body of high-quality questions and answers.
[1] see https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pr...
[2] see https://news.ycombinator.com/item?id=21303314
[3] see https://www.divio.com/blog/documentation/
[4] see https://www.amazon.co.uk/Philosophy-Software-Design-John-Ous... a concise book which is worth the £8 and 150 pages.
Now it is easy to judge this for well established platforms like Linux, GitHub and software in the similar league but it is not so easy to judge this for new upcoming platforms offered by emerging technologies and startups. For the latter I look at what people are talking about the platform online, how much financial or community support it has got. For example, I would be more willing to put effort into learning a new open source platform with 1000+ GitHub stars and 100+ forks than I would be willing to learn a platform with 20+ GitHub stars. Similarly, I would be more willing to put effort into a new startup's platform that has got several millions of dollars of funding and good reputation than I would be willing to put into a platform with little to no funding. These are not perfect metrics but they make a good start.
Bonus points if it is popular, with some technologies there is a risk of going into a career dead end.
What I worry about is the WordPress/Stack Overflow effect. Where something becomes so popular it attracts the wrong crowd, either dumbing itself down too much or becoming elitist. It bloats itself, trying to expand into too many things and isn't good at any one thing.
- Tested in production
- Activity that gives the impression that it will be maintained