Ruby on Rails is a Niche Technology!

Here is a little piece written by Chris Shiflett in his Ruby on Rails Fans post:

“Ruby on Rails is a niche technology, and although all signs indicate that its popularity is growing rapidly, it’s a bit premature to be thinking that it will dethrone existing technologies.”

Alex Bunardzic writes in a recent post concerning this:

“The problem with the above statement is that it assumes that there are technologies which are not niche. But there really aren’t.

Even far-reaching technologies, such as web, are niche. Each technology has its niche, and there is no such thing as a general purpose technology.”

Alex, I have to disagree with you, somewhat. Your idea that every technology is a niche is somewhat flawed. Taking the word niche to it’s straightest definition:

Niche (noun): A niche is a special place within the scheme of things. It sometimes denotes the function or position of a thing within a structure.

Now, if you take niche to mean as defined above, then you are completely correct. If we were to use only that interpretation of niche, then there is nothing that is not filling a niche. The world and society are somewhat well-organized. Everything has a purpose to fill, or else it wouldn’t exist.

Common usage of the word niche, however, indicates something different. For something to be ‘niche’ within a group of other items or subjects typically indicates that it has a higher level of specialization than the norm. Taking this definition, calling Ruby on Rails a niche technology, is somewhat valid, especially if compared to COBOL, or C/C++, Java, etc. Ruby on Rails is meant to tackle a single, major problem - that of quickly constructing a viable web-based application, providing frameworks to assist along the way.

Therefore, I think it is fair to argue that Ruby on Rails is a niche technology.

In another point, Bunardzic writes:

“But if we look around, we’ll see that no technology ever goes away. Even though we live in the age of supersonic traveling, there is still plenty of trains, even horse carriages going around. These technologies will never go away.

Same is with high-tech. Mainframes running COBOL programs are here to stay. They will never get replaced by Ruby on Rails based software.”

I also disagree. how many 8-tracks do you still see, used seriously? Sure, vinyl is around, but what about the phonograph, or wax cylinders recordings?

Yes, COBOL systems are still used in some businesses, but they are on their way out. In 10 years, they will be gone. It is only a matter of time until the migration process is cheaper than the cost of maintaining inefficient legacy code. And every technology reaches that point at some time, even if it is 10 or 15 years overdue.

I am sure that there will always be hobbyists who will use these technologies. But they will be completely supplanted in common use. It cannot happen any other way.

I am open to a response, guys!

7 Comments so far

  1. Alex Bunardzic @ July 12th, 2006

    Hey Brian,

    Nice elaboration! Of course, what’s niche and what isn’t niche is open to interpretations. Maybe a question of semantics?

    Anyway, in response to your analysis, I though it would be nice if you could provide some examples of non-niche technologies as opposed to niche technologies. Something like:

    - Automobile (non-niche) :: Horse carriage (niche)
    - Airplane (non-niche) :: Helicopter (niche)
    - DVD player (non-niche) :: Portable DVD player (niche)

    And so on. But perhaps related to high-tech only.

    Thanks.

    Alex

  2. brian @ July 12th, 2006

    Niche, and General are relative terms, and it is somewhat meaningless to speak of something as niche without giving a more general case.

    For example, JSP is niche to J2EE.
    The new DIVX portable units are a niche compared to regular computers.
    For that matter, game consoles are niche compared to PCs.

    In general, my interpretation of niche is merely one of specialization. I would consider a technology niche compared to another if it is a subcategory of the more general category, modified and changed to serve a more specialized group.

    I guess it could be argued that every technology is a more specialized version of a slightly more abstract technology. For example, in increasing \’nicheness\’,

    JSP->J2EE->Java->Object Oriented Languages->Programming Languages->Computer Applications->Electronics etc. etc.

    So, to bring this ramble to a close, nicheness is relative, but I would think that in any pair of related technologies with a clear inheritance, one could be referred to as the niche technology, while another is a more general technology.

    If that is only as clear as mud, I will try to elaborate my meaning somewhat better.

  3. Alex Bunardzic @ July 12th, 2006

    For example, JSP is niche to J2EE.

    This line of thinking could end up being one dimensional. Unfortunately, world is not always organized the way our linear thinking would expect.

    You’ve used the ‘inheritance’ criterion to establish the niche vs. non-niche in the above example. Someone else could use the ubiquity criterion, for example, and thus possibly revert your conclusion. For instance, there is a possibility that there are more JSP applications in use today than there are J2EE applications. Which would render J2EE as being the niche technology relative to JSP.

    See where I’m going with this?

    Alex

  4. brian @ July 13th, 2006

    That is a good point, Alex. But, where does it lead? Do we conclude that ‘niche’ is a meaningless term apart from an immediate definition?

    There is no standard definition for niche. So, how can it be used? Unless there is a common, agreed-upon definition, it is an empty term, without a close by definition to define niche in the context of the current article, page etc.

    Therefore, in my writing, I will tend to base my use of ‘niche’ on the specificity of the item I am referring to, although I suppose I shall have to define it prior to use, so that any readers may know exactly what I mean when I use it.

  5. Alex Bunardzic @ July 13th, 2006

    Yes Brian, niche seems to be a tautology. A niche appears to be anything that’s of consequence to those who are affected by it. And who are those that are affected by it? Why, of course, it’s those who are in that niche!

    So, the definition is circular. Somewhat like ’survival of the fittest’.

    For our purposes, we might be tempted to say that niche is something that is specialized. But immediately we hit the conundrum — show me something that’s not specialized?

    It’s not easy trying to be intellectually rigorous. Much easier to stick with sloganeering, methink.

  6. mitchc2 @ July 14th, 2006

    i\’ll bet you $100 COBOL will still be in use in 10 years.

  7. brian @ July 14th, 2006

    mitch - COBOL will be in use somewhere in 10 years, but not as a mainstream technology. Just like 8-tracks still exists. Some people prefer and use 8-tracks over CDs, despite all the reasons CDs may or may not be better. Just the same, COBOL will be around somewhere in 10 years. But it’s days as a mainstream language are coming to an end. The amount of new COBOL code being written is nearly zero. The amount of COBOL systems being changed over to newer Client-Server systems is increasing.

    Therefore, COBOL will be nearly gone in 10 years, although it may never die out completely. I was merely referenciong to it’s death as a common programming language.

Leave a reply