3 ms·
I cant speak to ASP and PHP. I've programmed .NET in Mono a little, back on the Aurora OpenSim client (emphasize a little). I can see that reaction to .NET, I h
by Communitivity 6y ago
I cant speak to ASP and PHP. I've programmed .NET in Mono a little, back on the Aurora OpenSim client (emphasize a little). I can see that reaction to .NET, I had the same reaction to folks who liked DCOM.
Node and Ruby can be used to create pragmatic programs though, but those are typically created by programmers that came to those language from other, more typed, languages. Once you have three or more languages under your belt you start to look for and find each language's pitfalls and architecture astronautics - every language has them. Every language shapes the mind of someone who learns, none more so than the first language you learn. Some anti-idiom pitfalls are found in multiple languages: monkey patching, everything exposed as getters/setters rather than exposing the behavior, AbstractFactoryServiceClientFactory, etc.
However, I don't consider abstraction a dirty word. It has its place, if not overused. I try though to use what I call the 2-4 principle.
I have either 2 levels of abstraction (interface-implementation), or 3 (Abstract, Logical, Concrete) or 4 (Abstract, Logical, Concrete, Functional), and no more. I also try to use the lowest number of levels that makes sense. The You Ain't Going To Need It (YAGNI) principle goes hand in hand with this. I will go back and look at old code to see what I could have done better. Where I've gone wrong with abstraction is usually due to premature anticipation of future architecture.