Recently my faithful mobile handset dropped dead after five years of duty as a phone and a bluetooth DUN. I reached the shop trying to get myself a similar device and the salesman lured to Xperia arc and started explaining the features. The one feature (ok fact) that sounded too ridiculous was 2,50,000 applications available and the numbers are increasing way too fast. I ditched any advice to go for a hi end phone and settled for a candybar one. I think that there is an android bubble and need to understand how big it is. First look at the market place shows that it allows any application to be available for use without QA from them. This one window allows vendors to mutate, replicate, spam their products on the market. Examples – Ringtones classified as mp3 players, wallpaper changers with just one wallpaper but rendering too many ads, very simple applications which could rather be rendered as a web page. Finding a useful product out of the store is an uphill task.
Secondly; like how every company wanted their website during the dot com boom, similarly they seem to be in line for mobile applications for themselves. Most of the applications are concentrated on content rather than getting innovative by using the accelerometer, camera, GPS, cell site information, NFC and others. Layar is one such application which is a true blue mobile application. My gut feel is once the excitement levels plateaus and the awareness of the mobile applications increase, then we will see high quality products on the market. As a developer I restrain myself not to create a mobile app which can anyways be rendered in a web browser with a good UI.
Between Spaghetti, Pasta and Sandwich which one would you choose if you are writing and maintaining code, how it should be like? Definitely not the spaghetti right? I have come across spaghetti code and detest it to the core.; but I have also observed that wrong understanding of OO or TOO (too much object orientation) and obsession with modularization leads to pasta like code. This makes us go through multiple files and sections of code to understand simple functionalities. Cannot we translate most of the software requirements into code like how a well prepared sandwich can be nutritious and filling too?
I don’t have an answer to this question but my readings like Worse is better (talks about less and useful features) make me infer that like every person’s hunger can be satisfied with cost-effective, tasty, nutritious and simple to make food; most of the software requirements should also be delivered with simple to write and maintain code. Aesthetics, modularization and other bells & whistles should not come at a cost.
I was very curious whether the way you think and act is directly related to the language you speak. I did some Bing search and stumbled on few blogs which mentioned about the lack of left or right in a language called Kuuk Thaayorre. They have to refer everything in terms of cardinal/ordinal directions. There were interesting examples in Scientific American. I was impressed by the fact that in the language Kuuk Thaayorre it is impossible for someone to refer something without knowing the direction. This forces them to be oriented always and that is because of the language they speak. It even affects the way people think about time and space, the English say the future is ahead and Chinese say the future is down there or the English say it is a long day and the Chinese say it was a big day. So a person’s thinking is influenced by the language s/he speaks.
Will these be applicable to programming languages? Is a programmer’s thinking influenced by the first language s/he learns? It seems it could be true. I observe that Java as a language did not change much (faster) but polyglot programmers have contributed to bring in efficiency and elegance which they learnt while using other languages. An example which I also stated in my older post (Don’t make me think) is LambdaJ, which helps in writing expressive code in Java when working with collections while not worrying about writing obvious for-loops. Frameworks like Roo help us to avoid mundane Java boilerplating and concentrate only on functionality. There should be many more out there which has helped Java developers but influenced by the features of other languages and frameworks.
A programming language has an option to keep growing through upgrades unlike the spoken languages. I am not sure why a spoken language need to be restricted from acquiring parts from other languages. I am the one who missed asking the question “How manyeth candy are you having?” when I started learning English. It took me a while to understand how to ask similar questions when I had to translate from Tamil to English.
Which developer thinks better? Java or Ruby or C#…..?