Programming Newbie: Ruby or Java?


#1

Thanks for looking!

I’m brand new to programming and had just decided to learn Java as a
first language, then stumbled accross Ruby, which seems far simpler to
learn, but doesn’t seem to have as many resources/books etc.

I want to eventually write a Windows program for an Apartment
Management company that will keep track of their buildings
tenants…all their info, lockers, parking stalls, rental monies
owing, that sort of thing.

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money. And, I especially like the Open Source/Free program concepts
and community atmospheres.

What do you think?

Thanks so much for your help!
Dab


#2

On Tue, Nov 29, 2005 at 06:12:29AM +0900, Dab wrote:

I want to eventually write a Windows program for an Apartment
Management company that will keep track of their buildings
tenants…all their info, lockers, parking stalls, rental monies
owing, that sort of thing.

You don’t want to write a desktop application. You want to write a
web application. Trust me. It will be easier, and much more flexible
in the long run.

Learn Ruby and Rails and you’ll be good to go.

regards,
Ed


#3

If you want to get lots of jobs - Java.
If you want to go through life smiling - Ruby.
Yes, keeping track of apartment tenants should be easy with Ruby.
Visual Basic is free - if you download the Express edition of VS2005,
and at this point probably a bit easier than Java, but not as slick as
Ruby.


#4

Dab wrote:

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money. And, I especially like the Open Source/Free program concepts
and community atmospheres.

What do you think?

I think that if you learn Ruby as a first language, learning other
languages after that would feel like having your hands
chopped off.

OTOH I’m not sure Ruby is the way to go if you want to produce
a GUI type application very quickly since AFAIK there’s nothing
in Ruby that allows the ease of dragging some controls on a form
and setting their properties - like you could do with VB or Delphi.
VB is a terrible language, Delphi at least has some design to it,
I’m sure there’s RAD type development environments for Java
although I haven’t used them.

So Java is probably what you need - unless someone on the list
knows of a RAD type environment for building fast GUI apps in Ruby.


#5

I’m not sure why you guys think Ruby is easier than Java from a “Learn
It”
perspective. Maybe somebody can elaborate on this. I don’t really see
it.

In any case, something that I can tell you Dab, is that Java is a very
mature language. Documentation abounds, and the tools are plentiful.
The
ruby community is just beginning to flower. That’s usually a big
consideration for a lot of people.

If you go with Ruby, there are alot of smart, friendly people on this
list
that’ll help you out.

Good Luck!

Chris


#6

On 11/28/05, Dab removed_email_address@domain.invalid wrote:

I’m brand new to programming and had just decided to learn Java as a
first language, then stumbled accross Ruby, which seems far simpler to
learn, but doesn’t seem to have as many resources/books etc.

Ruby is going to be far simpler for you to learn than Java. Of course,
you knew I was going to say that, didn’t you? :wink:

I’m hesitant to give advice about how to learn programming since I’ve
never taught anyone how to do that. Having said that, a lot of people
recommend “The Poignant Guide to Ruby” (online at
http://www.poignantguide.net/ruby/) as a fun to read Ruby
introduction. (I can vouch for the fun-to-read part; I just don’t know
how good it is for teaching someone how to program.)

If you can wait for another month or so, Chris P.'s “Learn to
Program” is supposed to hit the bookshelves in January 2006 (see
http://www.pragmaticprogrammer.com/titles/fr_ltp/index.html). Although
the book’s description doesn’t explicitly say so, I think it’s safe to
assume that Chris is using Ruby as the programming language in his
book.

I also definitely recommend the book “Programming Ruby” (2nd ed.) by
Dave T. and friends, although it’s not a book for new programmers.

I want to eventually write a Windows program for an Apartment
Management company that will keep track of their buildings
tenants…all their info, lockers, parking stalls, rental monies
owing, that sort of thing.

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money. And, I especially like the Open Source/Free program concepts
and community atmospheres.

You can certainly write such an application with Ruby. At some point
down the road you will need to make some decisions about how users
interact with the program, e.g. whether it’s a standalone application
that they run on their PC (such as Microsoft Office) or a Web-based
application that they access through a browser.

But that’s not something that you need to decide about at this point.
In either case, Ruby’s got you covered (and all with free tools and
software). :wink:

Hope this helps,

Lyle


#7

On Tue, 29 Nov 2005, Daniel S. wrote:

Ruby on Rails is definately the way to go. And if you have any questions,
you know you can ask them here. Round the clock community help, mate! Yeah,
baby, yeah!

Considering how many highly skilled Ruby programmers are scattered
around
the globe, help is readily available in all timezones.

Also, there’s a great IRC channel as well.

From the description of the problem, Ruby on Rails is probably the easiest
way to go. If you only want to run on one machine, you can just use a
web
server internal to that system.

– Matt
Nothing great was ever accomplished without passion


#8

Dab wrote:

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money. And, I especially like the Open Source/Free program concepts
and community atmospheres.

What do you think?

Thanks so much for your help!
Dab

Ruby on Rails is definately the way to go. And if you have any
questions, you know you can ask them here. Round the clock community
help, mate! Yeah, baby, yeah!

Cheers,
Daniel


#9

On 11/28/05, Christian L. removed_email_address@domain.invalid wrote:

I’m not sure why you guys think Ruby is easier than Java from a “Learn It”
perspective. Maybe somebody can elaborate on this. I don’t really see it.

Well, to be sure, it’s a subjective thing. I suppose that when I think
about the overhead that Java imposes for even a simple “Hello, World!”
program (in terms of syntax and system configuration), Ruby wins. But
as I noted, I’ve never actually been in the position of having to
teach someone else how to program, so it’s conjecture on my part.


#10

“Will Ruby lead me to being able to do that eventually?”

yes. more quickly, actually, and with more easily maintainable code.

“I don’t want,nor can afford, to use any programs like Visual Basic”

that’s good, because if you did, you’d be depedent on windows being
wherever you wanted to sell/install your product. probably true, but why
take the chance ? i’ll avoid editorializing about the limitations of
windows, but you should do your own comparisons about the operating
system that VB applications run on, and the operating systems(nb. thats
plural) that ruby and java run on.

“And, I especially like the Open Source/Free program concepts
and community atmospheres. What do you think?”

we like it too.

i think you should learn both: java and ruby. they both have strengths
that you’ll probably enjoy mastering. as a confessed brand new
programmer who seems to have an open mind, you should learn at two
languages anyway.

good luck, looking forward to hearing how it turns out.


#11

Wow, thanks for the great feed-back thus far!!

Learn both Ruby and Java? Hmmm–never thought of that! Good idea!

Ruby and Rails—that seems interesting, but if I’m thinking about
marketing my software (my first project idea) eventually, to
independent Apartment complexes/Property Management companies, would
that limit me at all? I’m thinking about creating a Point-of-Sale
program next, to use in Optical Stores.

I like that Ruby is an emerging, blossoming language, despite the
limited resources, compared to Java. A contrarians dream! Maybe I’ll be
able to contribute to it’s growth, which sounds exciting.

As long as Ruby can enable me to create GUI programs, I’m not too
concerned about having an instantaneous RAD environment (Like NetBean’s
for example). My chief objective, after many years of wishin 'n
dreamin, is to learn how to program—to be a programmer—so I can
create, use and maybe market, my own programs.

Based on your responses…y’all sound like a community I’d love to
join! Again, thank you so much for the tremendous feedback and gracious
welcome!


#12

I see where you’re coming from. I think there may even be a thread over
on
java.net talking about boiler plate code in Java (eg. the new for/in
syntax
in 1.5 was added to get rid of the repetitive iterator blocks).

I wish people wouldn’t use lines of code as a metric for the goodness of
Ruby though. I think Ruby is neat too, but not because I’m typing less.
;p

Take care,

Chris


#13

On 11/28/05, Dab removed_email_address@domain.invalid wrote:

Based on your responses…y’all sound like a community I’d love to
join! Again, thank you so much for the tremendous feedback and gracious
welcome!

Just watch out for that Jim W. fellow. He’s a troublemaker who
will come to a bad end. Just mark my words…


#14

Dab wrote:

I like that Ruby is an emerging, blossoming language, despite the
join! Again, thank you so much for the tremendous feedback and gracious
welcome!

You’re quite welcome.

By the way, the community spirit here is driving me crazy! I better
start a flamewar to get things balanced… “Python r0xx!!1” :slight_smile:

Cheers mate, and may your days of programming be as fun as ours have
been
Daniel


#15

Hello,

one thing that might be difficult to learn with no programming
experience is Ruby’s meta programming. in this respect Java is easier.
one of the languages that they use in academia to teach programming is
lisp. you might want to take a look at that too. but just to learn
because doing something real in lisp is painful. Ruby is much more
suitable. i think. but in general of course programming is not about
language syntax and semantics…

konstantin


#16

On 11/28/05, Dab removed_email_address@domain.invalid wrote:

Thanks for looking!

I’m brand new to programming and had just decided to learn Java as a
first language, then stumbled accross Ruby, which seems far simpler to
learn, but doesn’t seem to have as many resources/books etc.

I learned Java first. And I never. Ever. Ever. want to write it again.
Though it does offer a fair balance for some very different
methodologies.

In a sense, Java will enlighten you on just WHY ruby is so much nicer
to work with (in most cases).

I want to eventually write a Windows program for an Apartment
Management company that will keep track of their buildings
tenants…all their info, lockers, parking stalls, rental monies
owing, that sort of thing.

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money. And, I especially like the Open Source/Free program concepts
and community atmospheres.

Yes… that sounds like an ideal RoR project, as others have mentioned.

Also, the Free Software community is alive and well in Ruby, though…
speaking too loudly about the GPL might get a few fingers chopped off.
( I seem to be one of the few FSF supporters around here who believes
Stallman is right. But maybe that’s just because of all those email
fights I had with him when he made me feel bad :wink: )

What do you think?

Learn both. Go as far as you have to in Java and as far as you can in
Ruby. :slight_smile:
A warm welcome to you, being a ruby nuby is less scary that most other
languages, so you’ll probably enjoy your stay. :slight_smile:


#17

Dab wrote:

Thanks for looking!

Will Ruby lead me to being able to do that eventually? I don’t want,
nor can afford, to use any programs like Visual Basic that cost wad’s
of money.

The VB.net/C# SDK is free. So is SharpDevelop.

Worth a look.

James

http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - Ruby Code & Style: Writers wanted
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools


#18

ako… wrote:

Hello,

one thing that might be difficult to learn with no programming
experience is Ruby’s meta programming. in this respect Java is easier.

On the contrary, if you start with a dynamic language such as Ruby,
metaprogramming is much easier to pick up. Java encourages the idea
that message == method, whereas Ruby teaches you that the message a
client sends to an object need not map to any actual object method, and
how the object handles the message request is none of the client’s
business.

Metaprogaming is programming. You just learn it as you would anything
else in Ruby, and it should be a natural part of any program (albeit
where appropriate). It only gets harder if you start off with
misconceptions fostered by other languages.

one of the languages that they use in academia to teach programming is
lisp. you might want to take a look at that too. but just to learn
because doing something real in lisp is painful.

Is this true for people who learn Lisp as their first language?

James

http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - Ruby Code & Style: Writers wanted
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools


#19

This may be anathema on this list, but I suggest neither for a first
language.

Python or Scheme would probably probably best as a first language.

Python:
Bondage and discipline is not a bad thing when you are first learning.
Force good whitespace habits
Potentially confusing things tend to be drummed out of the language
Even if very powerful

Scheme
Encourages good program design
PLT rocks
Very little magic while still being full power

It is kind of like learning to ride on a normal bicycle before
getting a 24 speed with a suspension and disk brakes.

-Brian


#20

Quoting James B. removed_email_address@domain.invalid:

one of the languages that they use in academia to teach
programming is lisp. you might want to take a look at that too.
but just to learn because doing something real in lisp is
painful.

Is this true for people who learn Lisp as their first language?

They adapt to the pain – it’s mainly just syntactic. The thing
about Lisp is that the syntax isn’t very humane, but you can
certainly get used to it (macros are a powerful incentive to come
to grips with it once you discover their utility).

But that Lisp is actually “hard” is a myth, due mainly to the way in
which the language is usually taught. Syntax aside, the language is
plenty familiar. There’s nothing magical about it. It’s just that
most Lisp courses are taught on something of a “throw the kid in
the deep end of the lake and he’ll learn to swim real quick”
principle.

People get jittery about things like first-class functions because
they’re presented as so strange and mystical, but really they
aren’t. What are Ruby blocks, after all? They’re just syntactic
sugar for lambdas.

Ruby is a sly little victory for functional programming, actually.
I mean, what if you told someone that a language had no for loops,
and that instead you had to get by by passing functions to iterator
primitives?

“How can I do anything useful without for loops?!” they would say.
That’s a common objection to Scheme, actually (never mind that
Scheme actually does have ‘do’, which is the same thing). At that
point many Scheme advocates start talking about recursion, and
people’s heads explode.

But then Ruby showed people it was okay.

We don’t normally use recursion, but then again neither does
well-written Scheme code for the most part. In functional
languages when you need recursion you usually want to reserve it
for implementing little combinators (of which ‘map’, ‘loop’ and
‘each’ are simple examples) and then build on top of those.

-mental