It have some learning curve, but it actually makes sense when you get used to it and work for other format too. It is much better than other transformation language, and you can even call Java.
I think they kind of stuck in the development, even the mule engine only have one active developer from the github commit ….
It depends on your end goals, if your target is to find a job, implement some feature without going into too details. Not every people like to deals with the implementation details. Being a generalist is the road.
For example, many people just know how use React components, Angular components. But that’s ok in many jobs become there is no strict UI requirement on many jobs.
However, If your endpoint is to write components with design system / customise / optimise the components a little bit, you really need to understand how CSS and JS works.
The biggest pitfall I think is career development, if you are too generalist and your knowledge just stays on the surface, you just can’t solve some problems with technical complexity. It is hard to know what you don’t know … and some problems need expertise.
I think OOP as a way of abstraction. It make sense to abstraction something in OOP style, for example, collection such as LinkedList, Stack.
But sometime it is too verbose to use OOP, for example lambda vs anonymous listener. The biggest problem is it is easy to do wrong abstraction with OOP style, for example, store state that make no sense and put weird method inside a class
I think the value of unit test is to test the logic in software abstraction instead of relying on external dependencies, but I believe many unit test is just for the sake of unit test
I have colleague who still write desktop application in Delphi. I sometimes work with him and to observe how he write Delphi, which is quite impressive, and the performance is remarkable.
However, it is really bad at some points.
First, it is not friendly to web, we have some special web requirements, we decided to spawn a node process to do it.
Second, the tooling is so much better in Visual Studio. And the compiler is so much smart with sophisticated and syntactic analysis.
Last but not least, it really lacks 3rd party libraries so people always need to implement themself.
C# may not be the best option for any application. But it is general enough to almost support every types of application.
I used Visual Programming in my previous job. It is pretty good for waterfall logic and certain workflow. However, it is not scalable well for custom pattern, custom architecture, and Async, operation and functional programming paradigm
I think the main reason is many developer lacks the skill of systematic learning. Never attempt to read the basic manual / document and understand the basic theory behind the technology
I think document is good for filling the details, but it will not solve all the problem . And I kind of hate Architect with an extreme authority from top to the bottom and just assume people know everything. From my experience, casual communication between developers is an important factor in software development.
The perfect role of architect I believe is an individual contributor. People just come to ask your idea and respect you to make the majority of design. And you need to help other to understand your idea.
I think framework is extremely abstract today. Sometimes I need to check the source code to understand what kind of magic is going on inside the framework.
Server side rendering is not really that slow, and SPA is not really that fast if your bundle size is huge.
More important is that most users will not able to distinguish the difference. I have asked my friends how they feel to compare Facebook to a traditional MVC web site in term of speed difference, none of them can feel the difference.
However, the transition from page to page do affect the user experience. As a user, when I want to do a task that involve many UIs and I need to click multiple pages, I will think it is a bad experience, but I do accept to switch to another page for another task. Therefore, It makes sense to have a SPA for some rich UI feature so that user can remain in the same page
I would say the biggest challenge of this kind of field is it is so big so no one actually know everything.
The rule also varies between countries. For example, the construction rule in England may be different from the rule in the US