I'm a relatively young developer so I'm hoping to gain some insight from this mindset I see all too often.
I'm a relatively young developer so I'm hoping to gain some insight from this mindset I see all too often.
What I’ve noticed is that developers are incredibly annoyed when their tools don’t work well. Developers use their tools a lot, and when a tool starts “misbehaving” (resource hungry, sporadic failure, non ergonomic design etc) they are exposed to that failure constantly. This constant exposure can create intense feelings (either love or hatred) and nowhere to express them, so it will spill out on slack and on HN threads (eg count yourself lucky if you’ve worked somewhere that nobody has ranted about terraform).
So take these criticisms with a grain of salt. The creators of tools and the users aren’t always aligned on the most important thing to do next and you only have so much money and time to execute on as a company so you have to make trade offs.
Like a quote about Microsoft Office: A user only ever uses about 10 percent of the features. The problem is that all users use different 10 percents.
Why not do the same thing with software?
Release 10 different flavors of Microsoft Word and let people choose the one they want.
"They" makes it sound like IO Interactive (developers and publisher of Hitman) made that flow chart for people to use, but in reality it's community made by someone from Reddit.
And to be honest, it doesn't seem that complicated, seems like a joke flow chart to make it more complicated than what it is. These editions seems to exists (for the record, I have neither and first time I hear about them):
- Trilogy Premium Add-ons Bundle
- Trilogy Edition
- Standard Edition
- Deluxe Edition
- A DLC
Trilogy obviously is about the full series (1 to 3), and Deluxe edition contains "Deluxe Pack". Which one you want? Ok, want the DLC too? Ok.
It's really not that complicated.
People only use 10% of word, but this does not mean that you can partition all users in batch of "10% of features".
If you want to satisfy everyone, you have to make every possible combination of "10% of word features". Which is impossible.
So it's much easier to just combine all features in one product and try to give the user a good interface to find easily the feature they are looking for.
I remember Caddy used to have a "kitchen sink" packager or something like that available via their website, where you could pick and chose what features you'd want included.
Playing with the idea (I'm not saying it's a good idea or that I want it), Microsoft could offer something similar, where you tick boxes for what use-cases you want it to fit, and bundle it all together for you with a price per use-case.
I'd absolutely hate it, as I never know what I need in the future, but maybe for some people it'd make sense.
It would be interesting if we had a similar system for GUI applications. The interface would need to be generated to only show features that are included
You need to build a solution to problem x. You do that and then the project is over. Outside of maintenance work it's a stable code base and you the developer move onto a new problem.
Examples of this in my mind are things like uBlock Origin. I'm not getting bombarded with updates on that project. It does the job it sets out to do, and it does it well.
It seems, though, that when working in a business that you'll have many users with many use cases, you'll be competing with other software companies, the temptation is there to add the one feature more to please the user or compete a little better.
this becomes a very specific problem each group of developers / business must answer and maybe the ideal case becomes less realistic to achieve or at least have a general answer for.
If you take VC funding you're in for another world of pain, which is that your company may be perfectly profitable but if it isn't growing at a rate your investors want you'll get kicked out and replaced by someone who will take "product growth" seriously. In other words, Postman needs more paying customers so it needs to become more of a "one size fits all" tool.
One might think that the solution is to simply work on another product after Postman was declared "done," but it seems like nobody seriously attempts this anymore because the SaaS model is so much more profitable.
I agree that this and feature flags are a great way to toggle things, but unfortunately for apps like Postman you still feel the load in the download and load times for the app. Usually those fancier features are also more code/data which results in straight increases in memory/disk regardless of whether you use something or not.
In IDEs like Jetbrains and VisualStudio, a lot of features are built like plugins which are a separate download and installation and allow you to disable them. I wonder if apps could take that approach to to keep more people happy.
Rather than build one console app that has 50 features, you build 10 console apps with 10 features each. The complexity of each component stays small while your capabilities as a user grow and grow.
This worked originally as the Unix designers were free to organize their code however made sense according to their philosophy. But Conway's Law comes into play in organizations, where there is always a hierarchy centred around one or two main products. Rather than one or two people making 10 different apps, it's multiple teams making a couple apps each. They don't communicate between each other well or understand the other components, and it all has to fit inside one program.
That makes sense in terms of CLI utilities where text/files is the standard input/output, or APIs where json/xml/format-of-today is the standard input/output, but how would you do this with GUI tools? I'd love it if there was a solution, but I'm not aware of one.
Many suites of software use a standard format for things (like .obj/.fbx for graphic object/animation, or .wav for music production), but there is usually not a pipeline as in "pipe this output from this software into that input to that software" like we do with CLI utilities, and if there is, that pipeline is not standarized nor open for extension. Will it ever be possible? I hope so, but I don't see how it can be right now.
(You can pass actual file descriptors too.)
That said DBus is pretty fast. Basically somewhere around 25-30% of TCP.
https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-...
Historically the Amiga was quite nice here with systems using AREXX to communicate (but not embed), and Linux/POSIX has things like DBUS for the same (but less flexibly since there's no middleware between the two for coordinating control between systems, the components need to know about one-another directly - kinda).
VS Code gained its success mainly because of it's extensibility through extension
If one just reads the HN solely, they might get the impression that Google is the most evil company on the earth since the beginning of time. In reality very few people actually have that kind of view. It's mostly toxic people need to find a target to unleash their toxicity; on HN it's Google.
Since you are young, I'd advise to be very cautious on internet. Never take internet crowd as a proper sample of real world population. It's very skewed and almost always not in a good way.
Can't win I guess.