Dependency injection can throw you into analysis paralysis. Here are some rules of thumb.
This is not an Anti-Java rant Per Se. It is a rant about the two main things missing from the language that force people into code heavy work-arounds.
Java has two flaws that hurt programmers using the language. The first is that the reflection API does not provide the parameter names for a function. The second is that Java allows null pointers. This article explains why these two flaws are the impetus for many of the workarounds that require a lot of coding to do simple things. This added complexity in turn leads to code that is harder to maintain and less performant.
A programming language is a tool. When choosing the right tool for the job, you want to have good information about it. I’ve worked with both C and Java, and have dealt with a lot of misconceptions about both. I’m going to try and generate some data to use in helping guide discussions about the different languages. Consider this, then as the next instalment of my comparison of programming languages that I started in my IPv6 days.
One undervalued aspect of Data modeling is that you actually get time to consider the form of the data before you get the data. In a Map reduce job, you kow that your map phase is going to get the data, and that it is not going to be normalized . I could have said, not likely to be normalized, but the reality is that if you are using Map-Reduced, you are not going to get structured data.