Friday, July 29, 2005

Hardware: Super Fast Storage

See this article on which is a good site for hardware reviews. The article is about the review of a new product - Solid State Storage (i-RAM). Simply put, i-RAM has a 4 RAM slots. Put in upto 4*1GB RAM cards and what you get is a super fast and silent Storage device. i-RAM plugs into the PCI slot for power and has a battery backup for maintaining data in the RAM cards after power shut down. More on the power to the card.. "As long as your power supply is still plugged in and turned on, regardless of whether or not your system is running, shut down or in standby mode, the i-RAM will still be powered by the 3.3V line feeding it from the PCI slot."

Costly but cool.

Sunday, July 17, 2005

Re: Java Generics Considered Harmful

He's right to say that Generics adds a certain level of complexity to the language. But it's designed to simplify programming. If you don't abuse it, it is a benefit rather than a hindrance.

Consider C++... Why do people think it's so difficult? It's because there are so many different ways to do things and a lot of the features are abused. But if you only use a controlled subset of the features in a consistent way, that complexity goes down and it becomes manageable.

It's the same with Generics. He's given some examples of some real weird stuff that could be done with it. But why would you want to do it? If the whole point of this is to simplify things, why do things like that? I've used Generics and I feel it has made things better. When you're looking over code and you see them declarations which specify what type of object the data structure contains, it makes things so much more clear.

I can't say people in the .NET community have voiced similar concerns, but that may be partly cause .NET 2.0 hasn't come out yet. Maybe once it's out there for a while and people start seeing problems like this there'll be some complaints. I haven't seen a total/complete comparison between the Java/.NET implementations and what can be done with them so I dunno if what he's talking about can be done in .NET also (I would assume so). So lets see.

As I said, my personal feeling is that Generics is definitely an improvement and is something that is needed.

As an aside - Just noticing these two trends... Java and .NET are moving to things like Generics which require you to specify MORE detailed type information, whereas there's also a huge move towards dynamic languages like Python, Ruby and Javascript which are the opposite and infer all type info.

Thursday, July 07, 2005

Re: Why Indians Aren’t Software Innovators?

In the current software industry, there is little ongoing innovation.

The Indian education system fails to teach underlying concepts and understanding.

What you said about education in India is mostly correct. The majority of the students perform really well by rote learning. Although the Indian educational system has flaws, I suppose the courses in schools are much more rigorous compared to stuff taught in Western countries.

If the Indian education system does not actively foster innovative thinking, one may ask why there are so many successful Indian entrepreneurs in the software industry in the United States.

One reason may be that many of these successful ventures were started by graduates of the Indian Institutes of Technology (IIT).
One many then ask about the success of non-IIT Indian software entrepreneurs in the United States. Most of the remaining Indian entrepreneurs are likely completed graduate studies in the United States have developed innovative thinking through these institutions.

I somehow believe that innovation cannot be taught. Pawan mentioned fostering innovation which is more correct. Without a doubt there are many intelligent guys in India. I believe that there are also many innovators. Why? Simply because of the environment. There is a lot of chaos and huge ammounts of competition. This harsh environment makes the best innovators. Those Indians who move abroad find an environment where it is easier to explore new ideas. They can survive anywhere. Remove red-tape and Indians really thrive.

Also IITians are a bunch of really intelligent guys. But not necessarily good at software and definitely not necessarily good innovators. Innovation like Leadership is self-taught. For a similar reason I find it absurd that people are taught managerial skills in MBA schools.

As Pawan mentioned, there is a less demand for products in India. And so most guys move to services.

Therefore, the Indian software industry will inevitably either perish or will have to become innovative as the payoffs for outsourcing decrease.

The Indian software industry has a very long life ahead. They are already moving to higher end services. From testing jobs, companies are now doing some design stuff too. Even in hardware and other domains, more jobs where high skills are needed are being shifted. The quality of the "outsourced jobs" is improving.

Java Generics Considered Harmful

Ken Arnold is one of the authors of The Java Programming Language along with James Gosling.

In this post on Java.Net blogs; he says..

"I don't know how to ease into this gently. So I'll just spit it out.
Generics are a mistake. "

That is a pretty big statement to make.

His reasoning is that for the benefit Generics offer, they are too complex to learn and hence a mistake.

As lazy as I am I have still not played with Generics; so I cannot say much.

Any such feeling in the .NET world??