SitePoint Sponsor

User Tag List

Results 1 to 19 of 19

Thread: Ruby's Future

  1. #1
    SitePoint Member
    Join Date
    Nov 2007
    Posts
    3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Ruby's Future

    I'm starting to learn about building web sites with something more than HTML created by FrontPage. Java/Ajax is an option, but Ruby is another.

    I want to know, what is the future of Ruby? Is it's use growing compared to Java and to other technologies? Should I be starting elsewhere first?

    Some short balanced opinions are welcome; I don't what to start anyone throwing rocks at each other over this thread.

  2. #2
    SitePoint Wizard
    Join Date
    Feb 2007
    Posts
    1,274
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ruby definately manages to catch a lot of mindshare. In that respect it is growing and Java is stagnating. I don't know any hard statistics on the actual penetration of Ruby compared to Java. But it does vary depending on industries. Ruby is more popular with the startups; while so far its adoption into the enterprises (where Java and .NET rules) happens more slowly.

    The biggest problem ith java is the almost complete fragmentation of the community. There is not just "one" Java web technology; there are literally hundreds. There is smaller number of "most popular" frameworks, but they are very different, so learning each of them is a comparable to learning the other web techs: Plain JSP/Servlets, Struts, Wicket, Tapestry, JSF JSP/MyFaces, WebWork, Spring MVC, Echo, Cocoon, Turbine. That's just those I can remember right now. Sun would like for JSF to succeed but it has been marred by compatibility problems with JSP and is also up against some really well designed and entrenched open source frameworks.

    Either way, it is hard to predict the future. Learn one or two server technologies well (Ruby on Rails, PHP, Java (pick one), ASP.NET, ColdFusion). A lot of people with your background have gone the PHP way.

    My personal prediction is Ruby on Rails and ASP.NET will continue to increase in popularity (the former primarily with startups and amateurs; the latter with enterprises). Java is going to decline (slowly); some java shops will migrate to Ruby or Python; others to ASP.NET (the "other" enterprise tech). Java will eventually consolidate around JSF and Groovy. With JavaFX as an outsider. Until consolidated i suspect Java will continue to slowly decline. Keep in mind that a lot of enterprises is deeply entrenched in Java. For a long time a Java web tech is going to the the best option for those enterprises; even though it may not be the most productive/effective option if taken isolated.

    Ajax is really orthogonal to the server side technologies. Any respectable server side technology today integrates with Ajax and client side scripting. Do check out prototype, jQuery, script.acolo.us.
    Last edited by honeymonster; Nov 2, 2007 at 02:55.

  3. #3
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    honeymaster,

    I don't see any reasons for Java decline, it comes from the enterprise world, it's backed by the huge corporation, while RoR is mainted by the community only. It's not a deal for big companies who cannot rely on a community only, instead they want to have an ability to call Microsoft or Sun or even Zend (!) who will send their engineers and fix a problem. Even PHP is backed by Zend, without Zend Lufthansa, Yahoo! and other well known names wouldn't use PHP.

  4. #4
    SitePoint Wizard
    Join Date
    Feb 2007
    Posts
    1,274
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    My point is that at this point in time, there is no "Java for the web". There is a number of relatively good frameworks, each with pecularities, different backing and community size. On the other hand, RoR is not just a tool/framework; it is also a community which produces plugins, components etc; which in general are compatible. In the java community you can't take a calendar from Tapestry and use it in JSF. The fragmentation hurts. Sun dropped the ball; JSF came too late and was plagued by too many issues to wipe the board. It is my experience that enterprises uses Java for the web (some framework) when they have to (i.e. when it must integrate tightly with an existing java backend); but look for other more productive and homogenous alternatives when possible. The managers I meet when consulting (both Java and .NET) are growing more and more impatient with poor Java productivity.

    Granted, with the Oracle backing behind JSF it looks more and more like a favorite, but there is a long, long way to go.

    I'm not predicting the demise of Java. But Java for the web is under intense pressure right now. RoR, PHP and ASP.NET are formidable competitors. There is no sign of Java losing out as the language/tech of choice for large backend systems. But on the web; it's a mess. Really.

    In my personal experience what enterprises look for in a technology is dependability rather than support options. They ask themselves the question "can we depend on this technology being maintained and advanced in 3-5 years?". Obviously with Java and .NET, they can (or so they believe). RoR? Hmm. what if something new becomes the darling, perhaps Django or ...

  5. #5
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by honeymonster View Post
    My point is that at this point in time, there is no "Java for the web".
    That's correct, I think. However I doubt if Java have ever neeb for the web. It's certainly been for business applications, for intranet systems, it's never been for a majority of small and medium sized websites. This means Java won't experince a decline unless RoR gets targeted to the applications that were mentioned above.

    Quote Originally Posted by honeymonster View Post
    I'm not predicting the demise of Java. But Java for the web is under intense pressure right now. RoR, PHP and ASP.NET are formidable competitors. There is no sign of Java losing out as the language/tech of choice for large backend systems. But on the web; it's a mess. Really.
    That is what I'm talking about except the fact I don't agree that Java has anything to do with the regular Web. PHP is more likely to be under pressure by RoR rather than Java.

    Quote Originally Posted by honeymonster View Post
    In my personal experience what enterprises look for in a technology is dependability rather than support options. They ask themselves the question "can we depend on this technology being maintained and advanced in 3-5 years?". Obviously with Java and .NET, they can (or so they believe). RoR? Hmm. what if something new becomes the darling, perhaps Django or ...
    A very interesting point, frankly I didn't even think in this way. You are right that if anything interesting pops up in the community world it takes over the old technologies. Like it's already been with Perl when it was taken over by PHP.

  6. #6
    SitePoint Member
    Join Date
    Nov 2007
    Posts
    3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    An interesting commentary, and more or less what I surmised from what I see.

    My goal is to produce applications for intranet use, but perhaps for small widespread independent offices - physician's offices, in fact. They may have a server in their office or use a main corporate server in the city or province/state.

    My point is that stopping to learn intricate details of how to program these applications isn't really productive - the technology changes too much. Its more important to start getting a useful application ASAP. I thought Ruby might be the tool of choice for now, hoping that it could be scalable.

    Java would do of course, but the technology around it is alot to pick from and alot to learn. Having never programmed Java before, it may take me months to determine the better framework and tool suite. Hense my reason for this post.

  7. #7
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by LouArnold View Post
    My goal is to produce applications for intranet use, but perhaps for small widespread independent offices - physician's offices, in fact. They may have a server in their office or use a main corporate server in the city or province/state.
    Do you have a Windows server? If so, it's sensible to use a native technology - ASP.NET, probably you don't even need to start from scratch as there is Microsoft Sharepoint that may already have anything you need. Anyway ASP.NET is the best choice in the Windows environment.

  8. #8
    SitePoint Guru
    Join Date
    Aug 2005
    Posts
    986
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mike Borozdin, have you used Ruby and Rails?

    I have used C# (though only for client side GUI app, not for web applications) and I can tell you that it is much harder to get anything done in a reasonable timeframe. I suppose it's even worse for web applications.

    C# and Java are much more complicated than Ruby, too. The static typing, the multitude of classes that basically do the same thing with different performance for various methods (linked lists, resizable arrays, and many other collections), the intricate syntax and the complex IDE make it much harder to learn.

  9. #9
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Fenrir2 View Post
    I have used C# (though only for client side GUI app, not for web applications) and I can tell you that it is much harder to get anything done in a reasonable timeframe. I suppose it's even worse for web applications.
    Harder than what? If you say something is harder than you must provide a comparison. Since you said you made a Windows applications than you should say if it was harder to accomplish your project with .NET than with MFC, VB, Win32 API, Borlands's VCL. So? Have you ever worked with the mentioned libraries? Are they really easy than .NET?

    Quote Originally Posted by Fenrir2 View Post
    C# and Java are much more complicated than Ruby, too. The static typing, the multitude of classes that basically do the same thing with different performance for various methods (linked lists, resizable arrays, and many other collections), the intricate syntax and the complex IDE make it much harder to learn.
    The things you mentioned have been in the programming world for ages, first in C++ STL, then in Java, now in .NET. They are not complicated, they don't bloat the language, as you may think. It doesn't make a language harder to learn, in fact it helps you by providing the appropriate tools for your job. Probably it makes learning a language difficult for an average script-kiddie, but an average programmer must know at least one C-like language and they know, C/C++, Java, C# is taught in school because these languages gives a better understanding of programming and algoritms than Ruby which uses a lot of functional programming. There's also the functional programming discipline that teachers the basics of functional programming with the languages like LISP, Haskel. Ruby incorporated many things from them.

    Anyway, I think we missed the point, the original thread didn't mean to be a discussion about the languages themselves, it was meant to be about their usage. I still think that for many reasons it's reasonable to use .NET in the Windows environment.

  10. #10
    SitePoint Enthusiast
    Join Date
    May 2001
    Location
    Kaysville, UT
    Posts
    68
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The real reason Java isn't as popular for websites is deployment. This is why PHP is so popular - it is pretty lightweight and doesn't require any special configuration. You can go signup for any random $3/month host, ftp your php files up, and call it good. Ruby is somewhere in the middle in terms of deployment.

    That said, JSF has been quite successful in enterprise web application development, as has Java in general. Support is only part of the problem - Ruby/Rails lacks many of the features you need for enterprise-level development. This isn't to say that Rails hasn't affected enterprise development at all - a lot of good ideas I've seen recently in the Java space have been at least partially inspired by Rails.
    Spencer Uresk
    Rails App Hosting
    Cheap Hosting - Directory of hosting plans under $10/month!
    My blog: Tech and Java Articles

  11. #11
    SitePoint Guru
    Join Date
    Aug 2005
    Posts
    986
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mike Borozdin, have you used Ruby and Rails?

    Quote Originally Posted by Mike Borozdin View Post
    Harder than what? If you say something is harder than you must provide a comparison.
    Harder than using Ruby (this is in the Ruby forums).

    Quote Originally Posted by Mike Borozdin View Post
    The things you mentioned have been in the programming world for ages, first in C++ STL, then in Java, now in .NET.
    Correct. So has the semicolon you need to type at the end of every line.

    Quote Originally Posted by Mike Borozdin View Post
    They are not complicated, they don't bloat the language, as you may think.
    Yes they do. For the vast majority of apps they're totally useless.

    Quote Originally Posted by Mike Borozdin View Post
    It doesn't make a language harder to learn, in fact it helps you by providing the appropriate tools for your job.
    They do make a language harder to learn, obviously. If you're using Ruby you don't have to learn these things. Are you saying that having to learn these things makes learning the language easier?

    Quote Originally Posted by Mike Borozdin View Post
    Probably it makes learning a language difficult for an average script-kiddie, but an average programmer must know at least one C-like language and they know, C/C++, Java, C# is taught in school because these languages gives a better understanding of programming and algoritms than Ruby which uses a lot of functional programming. There's also the functional programming discipline that teachers the basics of functional programming with the languages like LISP, Haskel. Ruby incorporated many things from them.
    Agreed that learning C is useful, because you need a fast language for certain things. But maybe you should read this: "I'm starting to learn about building web sites with something more than HTML created by FrontPage.". Would you say that he should learn about algorithms now? Learning how to build the website he wants to build is more helpful. Algorithms are mostly irrelevant, because he doesn't have a need for fancy algorithms, and the algorithms he does need are provided by Ruby's libraries.

    An example:

    Code ruby:
    people.sort_by &:name

    Can you understand what it is doing? Do you need to know how to program a quicksort algorithm? Please provide a C# translation!

    I don't understand what functional programming has to do with all this?

  12. #12
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Fenrir2 View Post
    Mike Borozdin, have you used Ruby and Rails?
    Harder than using Ruby (this is in the Ruby forums).
    That is highly debatable. Ruby looks like a Chinesse grammar for many programmers. Even if you don't know Java, you can read its code and understand its logic, you can hardly understand Ruby code without knowing the language.


    Quote Originally Posted by Fenrir2 View Post
    Correct. So has the semicolon you need to type at the end of every line.
    Heh , do you know that the semicolon denotes the end of the statement, but not the line, you can put more than one statement in one line:

    Code:
    string s; for(int i = 1; i <= 10; i++) { s = "Line #" + i; Console.WriteLine(s);  }
    Quote Originally Posted by Fenrir2 View Post
    Yes they do. For the vast majority of apps they're totally useless.
    You simply don't use them because you don't need it in your project, or you probably don't know about them or don't know how to use them.

    Quote Originally Posted by Fenrir2 View Post
    They do make a language harder to learn, obviously. If you're using Ruby you don't have to learn these things. Are you saying that having to learn these things makes learning the language easier?
    No. Do you learn every library your favourite programming language has by default? I don't think so, because if you don't your project doesn't deal with network, you don't have to know anything about its network library, correct? When learning C# you definetely should learn Collections, know that there're List, LinkedList and so on, but for many things simple List will be enough, so you don't bother about the rest. However if you feel that you can write a more efficient code, then you go into the details and you a more appropriate collection type.


    Quote Originally Posted by Fenrir2 View Post
    Agreed that learning C is useful, because you need a fast language for certain things. But maybe you should read this: "I'm starting to learn about building web sites with something more than HTML created by FrontPage.". Would you say that he should learn about algorithms now? Learning how to build the website he wants to build is more helpful. Algorithms are mostly irrelevant, because he doesn't have a need for fancy algorithms, and the algorithms he does need are provided by Ruby's libraries.
    Correct. A good tool must provide you the best do to a job and shouldn't be difficult to learn. Although did you notice that I mean a programmer, not a script-kiddie who needs to write a guestbook for his website and can get away with any code that just works. A good programmer must be aware of algoritms and many many things, however that doesn't mean you have to use low level tools.

    Quote Originally Posted by Fenrir2 View Post
    Code ruby:
    people.sort_by &:name

    Can you understand what it is doing? Do you need to know how to program a quicksort algorithm? Please provide a C# translation!
    Code:
    people.Sort(new PeopleSort(PeopleSort.ByName));
    Quote Originally Posted by Fenrir2 View Post
    I don't understand what functional programming has to do with all this?
    Ruby incorporates a lot from the realm of functional programming.

  13. #13
    SitePoint Guru
    Join Date
    Aug 2005
    Posts
    986
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Mike Borozdin View Post
    That is highly debatable. Ruby looks like a Chinesse grammar for many programmers. Even if you don't know Java, you can read its code and understand its logic, you can hardly understand Ruby code without knowing the language.
    That is a strange statement. I all depends on which languages you already know. If you know C# you can probably understand Java, because they are so similar. For someone who isn't a programmer, Ruby is easier to read because it's more like english.

    For example:

    Code ruby:
    10.times{ ... }
     
    - vs (c) -
     
    int i;
    for(i=0; i<10; i++){
      ...
    }

    Quote Originally Posted by Mike Borozdin View Post
    Heh , do you know that the semicolon denotes the end of the statement, but not the line, you can put more than one statement in one line:

    <snip>
    Good catch! The semicolon is useful in this case. I still forget semicolons when writing C. This is extremely annoying and distracting. The example was intended to show that not everything that has been around for a long time is good.

    Quote Originally Posted by Mike Borozdin View Post
    You simply don't use them because you don't need it in your project, or you probably don't know about them or don't know how to use them.
    Indeed, I don't use for them. I don't care how a collection is represented in memory, unless I have a performance bottleneck (which doesn't happen a lot at all).

    Quote Originally Posted by Mike Borozdin View Post
    No. Do you learn every library your favourite programming language has by default? I don't think so, because if you don't your project doesn't deal with network, you don't have to know anything about its network library, correct? When learning C# you definetely should learn Collections, know that there're List, LinkedList and so on, but for many things simple List will be enough, so you don't bother about the rest. However if you feel that you can write a more efficient code, then you go into the details and you a more appropriate collection type.
    Every time I use a collection the language forces me to think

    Quote Originally Posted by Mike Borozdin View Post
    Correct. A good tool must provide you the best do to a job and shouldn't be difficult to learn. Although did you notice that I mean a programmer, not a script-kiddie who needs to write a guestbook for his website and can get away with any code that just works. A good programmer must be aware of algoritms and many many things, however that doesn't mean you have to use low level tools.
    I'd certainly prefer code that just works! Algorithms are important, just not for most websites. Did you notice that the OT was about websites?

    Quote Originally Posted by Mike Borozdin View Post
    Code:
    people.Sort(new PeopleSort(PeopleSort.ByName));
    PeopleSort is missing.

  14. #14
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Fenrir2 View Post
    That is a strange statement. I all depends on which languages you already know. If you know C# you can probably understand Java, because they are so similar. For someone who isn't a programmer, Ruby is easier to read because it's more like english.
    Do you really think so? Don't forget that Ruby is written in C, so their creators just might think that Ruby syntax is more line English than C# and therefore it's easier for newbies. I do think that for a newbie C# and Ruby code doesn't make much sense.

    Quote Originally Posted by Fenrir2 View Post
    For example:

    Code ruby:
    10.times{ ... }
    [LIST=1][*][/LIST]- vs (c) -
     
    int i;
    for(i=0; i<10; i++){
      ...
    }
    I've seen similiar examples for many many times. With the for statement you can do a lot more depending on the context.

  15. #15
    SitePoint Guru
    Join Date
    Aug 2005
    Posts
    986
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Mike Borozdin View Post
    Do you really think so? Don't forget that Ruby is written in C, so their creators just might think that Ruby syntax is more line English than C# and therefore it's easier for newbies. I do think that for a newbie C# and Ruby code doesn't make much sense.
    But you're not familiar with Ruby, right? Arguing against a language you've never used. Strange isn't it?

  16. #16
    Put your best practices away. The New Guy's Avatar
    Join Date
    Sep 2002
    Location
    Canada
    Posts
    2,087
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)
    Quote Originally Posted by Fenrir2 View Post
    Arguing against a language. Strange isn't it?
    fixed.
    "A nerd who gets contacts
    and a trendy hair cut is still a nerd"

    - Stephen Colbert on Apple Users

  17. #17
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Fenrir2 View Post
    But you're not familiar with Ruby, right? Arguing against a language you've never used. Strange isn't it?
    I wasn't arguing against Ruby itself, I was defending C#. Well, I think this thread turned out to be yet another "Ruby vs. World" thread.

  18. #18
    SitePoint Enthusiast
    Join Date
    Oct 2007
    Location
    Texas
    Posts
    25
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I am a total programming newbie and i'll tell you right now Ruby is way easier to read without knowing the language. Since you are not a newbie, I don't see how you can say its harder to read
    Web design is cool. Roll with it.

  19. #19
    SitePoint Wizard Mike Borozdin's Avatar
    Join Date
    Oct 2002
    Location
    Edinburgh, UK
    Posts
    1,743
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I guess there were enough threads where we discussed Ruby languaged and compared to others. This topic had the other purpose.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •