Ruby in universities ?

S

surfunbear

Java was the main reason I bought Sun stock years ago, though I never
look to see how it's doing.

I'm not sure if I may have to learn java to get a job in the next
year, but right now
I am enjoying learning ruby a great deal and am thinking that's what
I'd prefer to do.
I heard you can't just put java on your resume, but need to specialize
in J2EE or something, but I haven't felt motivated to learn J2EE. I
looked at some what papers for
the cell phone java stuff at one time.
I am interested in trying to predict where it will go as well as the
future of java.
 
S

surfunbear

Actually, I do know java and have done some work in it, not much
recently.
I did some parsing with JTree as well as xml parsing.

Still, an important question is in the core language. If the Ruby core
language
has many significant strengths then one would expect it to grow
because it would attract developers. If it had some weaknesses as well
as strengths, then one might expect yet another language to evolve
which would adopt the same strategy to maintain the strengths and other
new strategies to address the weaknesses.

As such language grows, various API's would grow as well. Since the
core language itself is what you use to write your code in, the
paradigms/idioms that it provides are the key issues. Perl had a number
of significant strengths as well as weaknesses. It was weak in object
oriented programming and classes, which are very important key
paridigms of the modern day. Ruby has carried forward the strengths
that perl had and improved on the weaknesses in a big way. But the
question remains if there are some other significant weaknesses. This I
can't fully answer. I have gotten a bit rusty being a maintenance
programmer for so many years and this is a very academic sort of
question.
 
A

asj

Still, an important question is in the core language. If the Ruby core
language
has many significant strengths then one would expect it to grow
because it would attract developers. If it had some weaknesses as well
as strengths, then one might expect yet another language to evolve
which would adopt the same strategy to maintain the strengths and other
new strategies to address the weaknesses.


So basically, you're waiting for a language with NO weaknesses
whatsoever? ;-)

Btw, your idea about this gradual evolution upward is not reflected in
reality. Why? Because:

1. Most people don't think like you. They just use the language that
they were taught or need to do their work

2. Some languages are driven by inertia and/or marketing (Java, C#)

In other words, there is no natural selection of "evolutionary
pressure" that is strong enough to create this optimal language. "Good
enough" is what occurs in the real world.

Which is why I'm VERY skeptical that Ruby will actually be this REALLY
big thing that some thought leaders think. Even with all the hype, the
vast bulk of coders won't use it, and even a lot of the ones that try
it don't actually use it for work but only for "trying" or for a side
hobby.

Unless Ruby gets a BIG marketing push from a big commercial entity,
it'll remain a second-tier language.

Of course, some here are going to cite PHP as an example of a language
that rose without any big marketing push.
 
T

Tim Smith

asj said:
2. There are vastly more jobs available for Java...not even remotely
close.

This is not necessarily an argument for Java. See Paul Graham's essays
"Beating the Averages" and "Revenge of the Nerds" at www.paulgraham.com.
The gist is that using a more powerful language on the server as opposed to
using a less powerful, but more common, language can be a big win if you are
in a competitive industry.

If I could only have one language on my resume, I'd pick one of the less
common but more powerful ones, and aim for jobs at companies that recognize
the value of this, rather than list an average language like Java and work
for companies doing average things.
 
A

asj

Tim said:
If I could only have one language on my resume, I'd pick one of the less
common but more powerful ones, and aim for jobs at companies that recognize
the value of this, rather than list an average language like Java and work
for companies doing average things.

I don't think programming for mobiles is all that "average" -

I mean, take this, I think doing stuff like this is cool, no?
http://www.rimlife.com/products/dustynotes/

Nor do I think programming for smartcards or Blu-ray devices or set-top
boxes is all that "average" either ;-)

If Java were only used for common desktop apps or servers, then perhaps
this makes sense. But the fact that it is in use for so many "unusual"
jobs makes it REALLY cool. You get the pick of "usual mainstream
coding" jobs but also quite a lot of jobs that are in the cool
category, even for normal non-geeks.

In other words, I think Java gives you the best of both worlds.
 
A

asj

Java was the main reason I bought Sun stock years ago, though I never
look to see how it's doing.

I'm not sure if I may have to learn java to get a job in the next
year, but right now
I am enjoying learning ruby a great deal and am thinking that's what
I'd prefer to do.

I suggest Java. More jobs, more possibilities, more cool stuff. But
hey, that's just my capitalist mind at work - lol....

For some reason, learning a language just cause of the syntax never
made it to my To-Do list ;-)

I heard you can't just put java on your resume, but need to specialize
in J2EE or something, but I haven't felt motivated to learn J2EE. I
looked at some what papers for


What's J2EE? You don't need to learn EJBs to do webwork in java. There
are literally TONS of open source frameworks that allow very
lightweight web development in java such as Struts, Spring - I even
bought a book about POJOs
(http://en.wikipedia.org/wiki/Plain_Old_Java_Object) which is becomign
quite popular as lightweight Java moves into the PHP niche....

There are even new scripting languages based on Java coming out like
Groovy (and Groovy on Rails as we noted above).

Even for such new things as Groovy, there already are new job
opportunities...RFIDs are kinda becoming big nowadays, and guess what,
Sun's RFID sensor products use Groovy!

http://sun.java.net/rfid-sensors/
the cell phone java stuff at one time.
I am interested in trying to predict where it will go as well as the
future of java.

I suggest looking more at the future of Ruby. It'll never be more than
a second tier language - again, simply because the niche for enterprise
computing is already filled by Java/.NET, and the niche for lightweight
web work is filled (mostly) by PHP.

All the hyping in the world by a few "thought leaders" won't cover the
lack of marketing and big company support.

If you do Ruby, you'll very likely have to supplement that with other
languages in order to get and keep a job.

I've been a Java programmer for 10 years and have not had to learn and
use any other language in that time, although I've worked with PHP
coders, married a VB woman, and know some Perl on the side. I simply
kept moving from one Java niche to another - my skills expended greatly
in that I can now code for desktop (some Swing), servers (lotsa Java
EE), mobile (lotsa Java ME), and on the side I code smartcards (I still
have the first kits that came out in late 1990s!) and am looking into
the new Java SPOTs:

http://www.sunspotworld.com/

I figure I can use these tiny sensor-aware objects to monitor my garden
plants..I'll have the Java apps running on the sensors send my mobile
an email when the environment gets unstable (low water, high temp,
etc). I mean, HOW COOL IS THAT???
 
A

asj

I heard you can't just put java on your resume, but need to specialize
in J2EE or something, but I haven't felt motivated to learn J2EE.

Btw, Java EE (JEE, formerly J2EE, also known as Big Java) refers to
Java Enterprise Edition, so it's not exactly a "specialy" or "niche" as
it refers to the entire spectrum of classes and APIs that enable Java
to run on servers.
 
S

surfunbear

That is a very interesting graph. What does several up green arrows
for Pascal indicate ?
That type of information is very important to me, though I base most of
my appraisal of a language on
it's semantics and my own evaluation.
 
S

surfunbear

asj said:
So basically, you're waiting for a language with NO weaknesses
whatsoever? ;-)

No, just the best, or one of the best that's out there currently.

Btw, your idea about this gradual evolution upward is not reflected in
reality. Why? Because:

1. Most people don't think like you. They just use the language that
they were taught or need to do their work

Which language for me to focus on has allways been obvious.
First it was Pascal, but Pascal lost out to C because C was easier to
port
from machine to machine and there was no standard for Pascal.
C and Pascal are very similar, I never liked the pointer problems with
C,
and the shorthand didn't seem to be a big enough advantage and was hard
to read.
non standard Pascal had unsafe pointers so that you could do the same
thing
as C. So then I focused on C, then C++, then Java. There was a steady
progression. Right now I am in a strange place because Ruby and the
Perl which
it came from are very different from Java, although classes in ruby are
a move away from scripting twards programming.






2. Some languages are driven by inertia and/or marketing (Java, C#)

In other words, there is no natural selection of "evolutionary
pressure" that is strong enough to create this optimal language. "Good
enough" is what occurs in the real world.

That can be a scary thing if you have to work in a language that does
not
represent where technology could be. In a similar vien, I had to work
with developers
who did not understand basic software development very well, they where
not dumb,
they just had no time to learn and management allowed this situation to

develop. They tried to compensate by working hard and being experts in
bussiness logic, but it was a very painfull situation and their code
needed to be reworked every month.
 
S

surfunbear

asj said:
I suggest Java. More jobs, more possibilities, more cool stuff. But
hey, that's just my capitalist mind at work - lol....

For some reason, learning a language just cause of the syntax never
made it to my To-Do list ;-)

The language features allow you to express yourself or solve problems.
classes, procedures, inheritance etc. It's more semantics.
What's J2EE? You don't need to learn EJBs to do webwork in java. There
are literally TONS of open source frameworks that allow very
lightweight web development in java such as Struts, Spring - I even
bought a book about POJOs
(http://en.wikipedia.org/wiki/Plain_Old_Java_Object) which is becomign
quite popular as lightweight Java moves into the PHP niche....


Struts is not free correct ?


There are even new scripting languages based on Java coming out like
Groovy (and Groovy on Rails as we noted above).

Even for such new things as Groovy, there already are new job
opportunities...RFIDs are kinda becoming big nowadays, and guess what,
Sun's RFID sensor products use Groovy!

http://sun.java.net/rfid-sensors/


I suggest looking more at the future of Ruby. It'll never be more than
a second tier language - again, simply because the niche for enterprise
computing is already filled by Java/.NET, and the niche for lightweight
web work is filled (mostly) by PHP.

I looked at PHP, it appeared to be Perl with classes, it didn't seem to
be much different than perl in many ways. Ruby seems to have cleaned up
the mish mash of perl type variables where some are references, some
are scalers.
Having worked with Perl DBI, I must say I was very impressed with Rails
ORM and the fact that you don't have to write javascript. ORM should
make writting SQL by hand obsolete some day.


You seem very knowledgeable on Java I must say.
 
S

surfunbear

Another phenomenon about languages I should point out:

What happens is if a new idom comes along, it can be hard for an
existing language to incorporate that because it has to support pre
existing applications and be backwardly compatable. That's what
happened with C++. C++ had to be backwardly compatable with C. As a
result there was all kinds of complexities in the language to be both
object oriented and at the same time be able to compile any old C code
and support C styyle pointers. Java got away from that and did not have
to worry about C. But it's possible that Java may have the same problem
if it was to adopt some idiom associated with Ruby or Perl, and if some
kind of Lisp was to become popular Ruby would have the same problem,
it's just the nature of languages.
 
A

asj

Struts is not free correct ?

Struts is completely free and open source. It's from Apache:
http://struts.apache.org/

Having worked with Perl DBI, I must say I was very impressed with Rails
ORM and the fact that you don't have to write javascript. ORM should
make writting SQL by hand obsolete some day.

HIbernate, JDO, EJB, etc in Java. Hibernate is extremely popular right
now...it's one of the top-selling books in Amazon.

http://www.hibernate.org/
http://java.sun.com/products/jdo/
 
A

asj

Another phenomenon about languages I should point out:

But it's possible that Java may have the same problem
if it was to adopt some idiom associated with Ruby or Perl, and if some
kind of Lisp was to become popular Ruby would have the same problem,
it's just the nature of languages.

Well, speaking just about Java EE, it seems that Java has adapted to
the arrival of hyped products every few years by making adjustments...

In 2001 C# was introduced by Microsoft as a Java-kIller...I remember
the big hype back then, and even the editor-in-chief of JDJ magazine
said Java might not even last 5 years! As a result, the JCP started
introducing some C# like featuires (generics for one)
...
The rise of PHP and other scripting languages, and some aversion to
heavyweight tech like EJB resulted in a backlash (which we're still
feeling today) where more lightweight Java alternatives were quickly
introduced. Open source Java alternatives like hibernate, Spring came
into being, followed by the gradual rise in the use of POJO. Java also
tried to accomodate scripting language by pushing Groovy, JRuby,
JPython and the like.

Finally, the new hype (and it seems every few years a new hype comes
along) of Ruby caused the introduction of Rails-like frameworks like
Grails.

http://grails.codehaus.org/

In the end, this has resulted in an unparalled set of choices for Java
EE developers when it comes to providing different kinds of solutions
to meet the needs of a project.
 
A

asj

That is a very interesting graph. What does several up green arrows
for Pascal indicate ?


In the tiobe graph? It means there was a large upward change in the
"popularity" of Pascal since 1 year ago. You'll notice the large upward
trends in ActionScript and Ruby as well, but they are at such low
levels that unless they can sustain that upward trend for several years
(and again, I'm VERY skeptical in Ruby's case unless some big corporate
backers show up and REALLY push it - Actionscript of course is backed
by Adobe) the actual absolute ranks won't change much.
 
S

surfunbear

What exactly is JRuby and Grails ?

I did take a peek at the websites, they seem to be an implementation of
Ruby rather than some alternative in java as far as I can tell.

C# was microsofts rip off of java from what I understand and not an
alternative.
 
G

gregarican

C# was microsofts rip off of java from what I understand and not an
alternative.

I like to Microsoft bash as well as the next guy, but I don't think I
would go as far as to say this. Perhaps C# was Microsoft's response to
Sun's Java. If you look at C# sure there are some similarities. But
compared to their other language implementations like Visual Basic it's
not _that_ bad, not _that_ painful to code in, and not _that_ big of a
rip off.
 
O

Oliver Wong

asj said:
In 2001 C# was introduced by Microsoft as a Java-kIller...I remember
the big hype back then, and even the editor-in-chief of JDJ magazine
said Java might not even last 5 years! As a result, the JCP started
introducing some C# like featuires (generics for one)

Generics didn't appear in C# until version 2.0. Meanwhile Generics where
in Java as of 1.5. The release date of Java 1.5, according to
http://mindprod.com/jgloss/javareleasedates.html, is 2004-09-29. The
earliest mention I can find of C# 2.0 is dated 2005. Can anyone find an
earlier reference, or maybe even an exact release date?

Otherwise, it looks like Java had generics before C# did.

- Oliver
 
O

Oliver Wong

The problem with this is that people disagree with what are strengths or
weaknesses. Some people think it's great that language X has no
goto-statements. Other people think that that's a weakness. Some people
think it's great that language Y has garbage collection. Other people think
that that's a weakness. Some people think it's great that language Z hides
pointers from you. Other people think that that's a weakness. Etc.
No, just the best, or one of the best that's out there currently.

Whether a language is "the best" or not depends on what you're trying to
accomplish. What's the best language to write web applets? What's the best
language to write an x86 OS boot loader? You probably didn't give the same
answer to those two questions.

- Oliver
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,127
Latest member
CyberDefense
Top