Ruby in universities ?

S

surfunbear

Not sure if this is a dumb question, but
if I start a masters degree in computer science, will the classes
require that I write in C++ and Java ? Since those are more common,
that's what I might expect. Too bad because I am really starting to
like Ruby alot.

Only 20 ruby jobs listed on boston craigs list, 300 or so for Perl. I
wonder when this
might start to change ?
 
J

Jonathan Heinen

Not sure if this is a dumb question, but
if I start a masters degree in computer science, will the classes
require that I write in C++ and Java ? Since those are more common,
that's what I might expect. Too bad because I am really starting to
like Ruby alot.

I'm loving java and I think it's a good thing to get to know about a
couple of programming languages! Learning something about java o c++
even can help you advance your ruby!

Jonathan
 
S

surfunbear

I have nothing against java per se. However, I have not felt motivated
to study j2ee.
I need something I can develop a project on on my PC and rails works
well with that.
That way I can learn a technology while writting code that seems
usefull and motivating
(fun).
I could see that j2ee might work well in a corporate environment with
lots of developers.
I'm not sure where I would fit into that picture. Maybe doing some sort
of enterprise bean work. The problem is there is so much infrastructure
to learn the details of. I was put off by the Java certification exams
which is about memorizing API's and things that seem
to go against the type of academic way of learning I enjoyed studying
computer science as an undergrad where you had development projects and
you wrote code. I wrote a linker in PDP 11 assembly language and we
wrote a pascal compiler in C++ that generated P-code. That stuff was
all great, but memorizing an API and then feeding it back to an
automated exam sounds like a scary way of learning to me. The first
level Java certification exam maybe wasn't so bad (SCJP), but I started
looking at what follows for the SCWCD and it seemed even less
appealing. I have both those books and read most of the SCJP and alot
of the other one, but after I bought my first Ruby for Rails book I
haven't touched any of that stuff. In the past month I have purchased a
total of 7 ruby or ruby/rails books. I wrote a shopping cart for a
friend and am on another project currently . I can understand perhaps
the argument for the certified exam process in terms of cost saving,
but if that's what higher education is comeing to, then perhaps we are
in serious trouble. The other thing about studying j2ee, is I felt I
was learning
more about infrastructure than things more directly related to
programming. Programming is my strength and main interest. I am not a
good nor highly motivated admin. The level of infrastructure in j2ee
seemed very high such that for my own development project on my PC it
seems approaching the impractical. It seems more suited to a corporate
environment which is fine, but working with a learning project of my
own it seems harder to get motivated. I could do something else with
java unrelated to J2ee, but there's so many java requirements with j2ee
and all to land a job.





The other thing I like about ruby is the perl like way of processing
text and pattern matching which lads to very effective string
manipulation. I aloso really like the built in hashing. I see there is
a perl in java implementation, though I don't know how naturaly it fits
into the language.

I may have to go back to Java to get employment, but I'm not sure how
that would pan out, which Java API I would end up working with, or if I
would be happy with that situation or not.

Currently I am wondering how hard it would be to set up my own web
server on a PC
at my condo. I have a DSL connection, but am not very educated on web
servers,
I wonder if I could run my stuff or start a business using just a PC
for a web server and my current ISP. This would be for low to moderate
traffic. Any site I hosted
that started to have high traffic (and thus revenue hopefully) I would
have to move to some other host. I am fairly ignorant of the issues
involved in running a web server and need to find out more.
 
G

gregarican

Jonathan said:
Learning something about java o c++
even can help you advance your ruby!

Maybe I am a bit of a Ruby zealot, but I would argue the converse of
this statement. When I think of Java and C++ I think of more
complications in terms of syntactical hoops I have to jump through,
rules and gotchas that force me into certain peculiar ways to do
things, etc. With Ruby I am a lot freer and happier!
 
D

danbernier+ruby

I was put off by the Java certification exams
which is about memorizing API's and things that seem
to go against the type of academic way of learning

The Java cert. exams aren't for learning Java, they're a way to tell
other software people (who might hire you) that you know Java well. I
took the SCJP after programming Java for a few years -- it filled out
the corners of my knowledge. I learned the things I hadn't seen in
practice yet, which was a considerable amount. I recommend the SCJP
for people to complete their core Java knowledge, but I'd never
recommend it to someone just starting Java.
The first
level Java certification exam maybe wasn't so bad (SCJP), but I started
looking at what follows for the SCWCD and it seemed even less
appealing.

I haven't looked much at the SCWCD, but the Developer exam is much more
practical -- you actually develop a working system, submit it to the
board, and explain your design choices. Definitely not just
memorization.
The other thing about studying j2ee, is I felt I
was learning
more about infrastructure than things more directly related to
programming...

Well, it *is* the Enterprise edition. ;-) Much of it is built for
working in that kind of environment, not just one piece of software.
Working/studying at that level, you'll learn more about networking and
architecture than programming topics.
I could do something else with
java unrelated to J2ee, but there's so many java requirements with j2ee
and all to land a job.

Right on. There's some fun stuff going on with Java...check out
http://www.processing.org, an OSS Java-based graphics programming tool
that some people are doing neat things with.
The other thing I like about ruby is the perl like way of processing
text and pattern matching which lads to very effective string
manipulation. I aloso really like the built in hashing.

Java has no built-in hashes & such, which posed no problem for
me...until I got used to Ruby's. Now it's a pain to go back to the
Collections API that I once liked so much. But that's nothing compared
to the class casting...
I may have to go back to Java to get employment, but I'm not sure how
that would pan out, which Java API I would end up working with, or if I
would be happy with that situation or not.

Java will get you a paying job, for sure. You don't need to know every
API (I doubt anyone could, anyway) -- but I'd focus on knowing the
Servlet API (plus Struts or JSF), XML processing, and JDBC. Extra
credit for SOAP/Web services. If you know those, landing a job
shouldn't be *too* hard. Although, many corporations in my part of the
US outsource programmer jobs, and keep technical leads and architects
in-house. I think the ones who outsourced first are starting to bring
back in-house programmers, but at my last job, they were just starting
to outsource last year, so they probably have a few years left of it.
I am fairly ignorant of the issues
involved in running a web server and need to find out more.

I have a friend who tried this, and got hacked within a few days of
launch. Investigate thoroghly...
 
S

Schüle Daniel

gregarican said:
Maybe I am a bit of a Ruby zealot, but I would argue the converse of
this statement. When I think of Java and C++ I think of more
complications in terms of syntactical hoops I have to jump through,
rules and gotchas that force me into certain peculiar ways to do
things, etc. With Ruby I am a lot freer and happier!

it's more about using right tool for right thing

if you are programming a microcontroller you would be
even happier with C .. if you can some assembler you would
be tempted to objdump generated exe to see what compiler
did for you. You would grasp how things are done at this level.

If you are on the edge between hardware/software worlds you would
be happy with VHDL or Verilog. You could achieve datarates on FPGAs
which no microcontroller (or DSP) can give you.

Knowing more languages (for different domains) allow you to
compare techniques.
 
G

gregarican

I hear you. I definitely don't choose one language for any and all
tasks. But this being said, I _still_ don't see how learning Java or
C++ could help improve someone's programming abilities in Ruby.
Learning Smalltalk perhaps. Maybe learning Haskell or Scheme at a
certain regard. But Java and C++ ... I just don't see the parallel. I'm
not saying I wouldn't use them for a certain task. For example, there
was an PDA project I was working on where Ruby just wasn't a good fit.
So I had to delve into the depths of J2ME. It got the job done. But I
didn't find an outlet to channel what I had learned into Ruby. Maybe
that's just me I guess :-/
 
T

Timothy Goddard

I agree that beyond the basic programming principles C++ and Ruby are
very different. The exciting thing about knowing both is building C(++)
code and accessing it from Ruby :). You get a beautiful, clean language
for the higher levels of control and can do the dirty work quickly in
compiled code.
 
T

Timothy Goddard

The functions that you access from Ruby have to be standard C
functions, so it will work with any C compiler. To use a C++ compiler
you'll need to use extern C.
 
A

asj

I have nothing against java per se. However, I have not felt motivated
to study j2ee.

Are you certain what Java EE is? Java EE is more than EJB you know....

It's hibernate/struts/JDO/JMS/Spring/etc,etc,etc

Unlike Ruby where the choices you have are limited, Java EE is so vast
you get to pick the best things for you....

This might be more your style perhaps...it's Groovy on Rails (or
Grails):

http://grails.codehaus.org/Home

Haven't tried it (when not doing Java ME mobile stuff I usually stick
to Struts), but have heard some good things about it...
 
S

surfunbear

I'd be interested in a really objective comparison between java and
ruby.
Even though I like ruby, it may have some disadvantages that some
future
language might address in a few years. Without an detailed analysis, I
couldn't really say to what extent that might be true or not. Our
Programming language class in college
did an exhaustive semantic study like this of many languages.
Based on something like that, I might be able to have a better idea of
how ruby/java might pan out.

I worked on a XML parser in java which had alot of code bulk, and
perhaps
could have been done using Perl xml:twig in 1/3 or 1/4 the amount of
code.
I was never happy with object oriented perl however. I have also looked
at XLST,
but I never really liked it and it seems limited in what it can do.
 
A

asj

I'd be interested in a really objective comparison between java and
ruby.

Practical reasons?

1. There are heck more things to do in Java than Ruby (try writing
mobile apps in Ruby that you can amaze your friends and family with, or
try creating something as cool as the desktop app Aerith -
https://aerith.dev.java.net/ , or try writing smartcard apps in Ruby,
or Blu-ray disc apps for the new Blu-ray High definition players)

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

3. Java has a class library that is second to none. You can do almost
everything in Java, from AI to Genetic algorithms to programming Lego
Mindstorm robots, etc.

For example, there's even a new book on some cool things to do:
Wicker Cool Java:
http://www.amazon.com/gp/product/1593270615/102-0789996-4096956

4. The tools and IDEs available to Java programmers are light years
better than those for Ruby (or almost anything else).

Honestly, Ruby is a scripting language that is better compared to PHP
or Python than Java.

And don't fall for the hyperbole of so-called "thought-leaders". They
usually have no freakin' idea what the grunts really need.

It's what you do with the language that counts, not how poetic the code
is.
 
G

gregarican

asj said:
1. There are heck more things to do in Java than Ruby (try writing
mobile apps in Ruby that you can amaze your friends and family with
[...]

There are several Ruby implementations for mobile devices. E.g. - Nokia
770, Embedded Linux ARM devices, etc. Albeit not as extensive or as
mature as applications of J2ME. But there are examples.
2. There are vastly more jobs available for Java...not even remotely
close.
[...]

True. There are also more jobs available for using Visual Basic than
Ruby I would ascertain. Justin Timberlake was also a popular music
artist this decade. Doesn't mean a lot to me in terms of what I choose
to get into.
3. Java has a class library that is second to none. You can do almost
everything in Java, from AI to Genetic algorithms to programming Lego
Mindstorm robots, etc.

You can find AI projects involving Ruby. You can also find genetic
algorithm projects. You can also find Lego Mindstorms projects. Check
out Rubyforge, Sourceforge, the Ruby Applications Archive, etc. before
assuming just because a language isn't as widely used that its
available class libraries don't exist.
4. The tools and IDEs available to Java programmers are light years
better than those for Ruby (or almost anything else).

Agreed. This has been a lacking area that many in the Ruby community
have pointed out and some are working to improve things. An example
would be the Sapphire Steel work where Ruby is added into the Visual
Studio IDE. Another couple of examples would be adding Ruby into and
IDE such as Komodo or Eclipse. But hands-down Java has the edge in
terms of tools and IDE's. But for what I use Ruby for I don't feel that
I need much more than Scite. That's just me :)
Honestly, Ruby is a scripting language that is better compared to PHP
or Python than Java.

Perhaps so. And what would be wrong with leading a college course in
scripting languages such as these?
It's what you do with the language that counts, not how poetic the code
is.

To me these concepts are interrelated. "What you do" with the language.
Some languages take me a lot longer to perform certain tasks with. I am
talking about syntactical hoops, API bloat, hidden gotchas, etc. In
terms of efficiency, effectiveness, and elegance Ruby is something that
I choose as my tool when I am looking to perform certain tasks that
aren't a large enterprise level application project. Perhaps then Java
might be a better choice. But for 90-95% of the other part of a
programmer's world you can likely get the job done using Ruby while
banging on less code, creating source code that's more readable by
others, and in shorter time than using Java.
 
A

Austin Ziegler

This is not what you're getting from "asj".
Practical reasons?

1. There are heck more things to do in Java than Ruby (try writing
mobile apps in Ruby that you can amaze your friends and family
with, or try creating something as cool as the desktop app Aerith -
https://aerith.dev.java.net/ , or try writing smartcard apps in
Ruby, or Blu-ray disc apps for the new Blu-ray High definition
players)

This isn't really true. There are more *environments* for Java -- but
it
is not really fair to say that J2ME is the same as J2SE or J2EE. They
only remotely share the same language, but the development environments
and limitations are vastly different. You can do *anything* with Ruby
that you can with Java, but it may not be appropriate to do it with
Ruby, and you may not have a native runtime in which to do it.

Ruby is limited by the runtimes available, not by the expressiveness or
capabilities of the language. That can change quickly.
2. There are vastly more jobs available for Java...not even remotely
close.

Yes, and a lot of these are code monkey jobs. Java is the new COBOL.
It's safe, but you're rarely going to get to do anything interesting in
Java. I've determined that most companies are stupid. They'd rather
hire
a code monkey with a year's "Java certificate" than someone who knows a
dozen different programming languages and will better be able to adapt
to the changing needs you have. Fortunately, there's companies out
there
that understand that code monkeys aren't what they need. They need
developers who can code in whatever language is needed at the moment.
My
day job has me programming in C++ 95% of the time. What makes me
valuable to my company is that I can adapt to various Unixes or Windows
and learn what needs to be done -- and that I know a number of
different
programming languages even if I don't use them in day-to-day work.
3. Java has a class library that is second to none. You can do almost
everything in Java, from AI to Genetic algorithms to programming
Lego Mindstorm robots, etc.

Each and every one of those things has an equivalent capability in
Ruby.
I would disagree that Java's class library is All That. There's a lot
of
unnecessary overhead because of the design of Java and a lot of
duplication. The .NET class library is pretty damned big, too -- but
big
doesn't mean impressive. It's what you *do* with the tools you have,
after all.
4. The tools and IDEs available to Java programmers are light years
better than those for Ruby (or almost anything else).

Because they have to be. Java is such a *stupid* RSI-inducing language
that if you don't have these tools you won't be programming Java after
five years. You'll be in for wrist surgery.

It takes me 10x as much Java or C++ to express the same algorithms that
I can in Ruby. This strongly suggests that there's a lot of unnecessary
code because of Java's design.

If I can write something in a tenth of the code, I have far less need
of
fancy project management tools, and I certainly don't need most of the
other tools that Java developers seem to require to just be able to
function. (Granted, this is much more a problem with J2EE than with
anything else Java, but the problem is endemic to Java. I've done a few
code comparisons and I'm not impressed with statically typed languages
any more.)
Honestly, Ruby is a scripting language that is better compared to PHP
or Python than Java.

This sentence here suggests that you don't know what you're talking
about. The term "scripting language" is used pejoratively by people who
think that it's a meaningful phrase.
And don't fall for the hyperbole of so-called "thought-leaders". They
usually have no freakin' idea what the grunts really need.

I don't think that's what they're trying to do. They're trying to
figure
out what the next step should be. I personally don't *want* Java code
monkeys doing what I do -- my salary is kept higher because I'm not
easily replaceable like Java programmers.

At the same time, I do want people who are interested to discover and
use programming languages that can make them happier, more productive
developers.
It's what you do with the language that counts, not how poetic the code
is.

Yes, it is what you do with the language. And most Java programmers are
apparently quite happy with doing COBOL.

I'm not.

-austin
 
G

gregarican

Independence Day is a popular grill-out time for we Americans and it
seems as if there's an early start on some side items. Mmmm. Roasted
Java :)
 
A

asj

Austin said:
This isn't really true. There are more *environments* for Java -- but
it
is not really fair to say that J2ME is the same as J2SE or J2EE. They
only remotely share the same language, but the development environments
and limitations are vastly different.

FALSE. I code in Java ME everyday and the coding skills for Java EE/SE
are portable to Java ME. You just need to learn some additional APIS
because of resource constraints in those devices.

You can do *anything* with Ruby
that you can with Java, but it may not be appropriate to do it with
Ruby, and you may not have a native runtime in which to do it.

Actually, I was speaking more in the practical sense...as in, there are
actual JOBS for that in Java, and a lot of development efforts being
put into it,and a lot of actual DEVICES that can run your work. Java
right now is in the vast majority of mobile devices out there, so you
can write to those, whereas Ruby may be only in a handful of devices
(if at all), and not very well-supported either..

Java is EVERYWHERE....as in about 3 billion devices.....on smartcards
(like that SIM card in your cellphone, or the health cards of several
countries and the US army, or several VISA cards and AMEX Blue), on
mainframes, web servers, and desktop, and...well, you get the picture -
it's EVERYWHERE.

Yes, and a lot of these are code monkey jobs. Java is the new COBOL.

And you're saying all Ruby jobs are not code-monkey jobs either? Please
define "code-monkey" before you start insulting people. If it pays the
bills it's a good job. Elitist talk like this helps no one and just
shows that you have no idea about the needs of the vast majority of
coders out there - coding is a job, it pays the bills and lets you do
things that matter more - like traveling, and personal and family life,
etc.

It's safe, but you're rarely going to get to do anything interesting in
Java.

There is a very strong need for Java Blu-ray coders right now - So you
think coding for Blu-ray DVD discs is not intersting?

http://www.blueboard.com/bluray/

There are many many jobs for Java on mobile devices. I think it's WAY
COOLER to show you friends, family and others some cool Java mobile app
you made running on their mobile devices than it is to tell someone
some website is running on Java or ruby or whatever.

that understand that code monkeys aren't what they need. They need
developers who can code in whatever language is needed at the moment.

Why would a company want to have its IT infrastucture as a mess of
different languages? Woudn't that make for bad maintainability over the
long run?

In the end, there are helll more requests for Java than for Ruby, and
this will remain long after you and I are old wannabees. Just look at
any job site....
My
day job has me programming in C++ 95% of the time. What makes me
valuable to my company is that I can adapt to various Unixes or Windows
and learn what needs to be done -- and that I know a number of
different
programming languages even if I don't use them in day-to-day work.


Hey good for you. Me, my life is more than just coding and I'd rather
stick to a platform that can do as much as possible and give me good
money while at the same time adding on the year of experience. Gives me
more time to do stuff that actually matters more - personal,
recreational, whatever.

Because they have to be. Java is such a *stupid* RSI-inducing language
that if you don't have these tools you won't be programming Java after
five years. You'll be in for wrist surgery.


Uh, no....i've been using homesite (a text editor) for Java conding
until recently, when I switched to netbeans because of its great
support for pervasive devices:

http://www.netbeans.org/products/mobility/
It takes me 10x as much Java or C++ to express the same algorithms that
I can in Ruby. This strongly suggests that there's a lot of unnecessary
code because of Java's design.

I suggest because Ruby is a SCRIPTING LANGUAGE...you can write a lot
less using Perl too, but what does that show?

This sentence here suggests that you don't know what you're talking
about. The term "scripting language" is used pejoratively by people who
think that it's a meaningful phrase.


Let me repeat that again, Ruby is a scripting language.
I personally don't *want* Java code
monkeys doing what I do -- my salary is kept higher because I'm not
easily replaceable like Java programmers.

Uh, Java is so large and widespread that salary depends on what you
actually do...for example, embedded Java developers or Java blu-ray
developers and the like earn significantly more than anyone else
because of their rarity...

But even overall, Java has one of the highest salaries on average...in
this survey, higher than C/C++ or ,NET....

http://hoskinator.blogspot.com/2006/04/what-is-average-java-salary-in-uk.html

Yes, it is what you do with the language. And most Java programmers are
apparently quite happy with doing COBOL.

And how is Java like Cobol again? I code for Java on pervasive devices
and I can tell you right now it's one of the most exciting, COOLEST
thing I've ever done, and I know your Elitist, Snobby comments about a
platform that has fed so many, and given rise to such cool stuff, and
is expanding much MUCH more rapidly today into so many areas than any
other platform out there, are just so much hot air....

I'm a grunt, coding for a living, and no amount of snobbery about how
i'm a code monkey for programming in THE coolest platform around will
make any difference in the long run.
 
S

surfunbear

Let me repeat that again, Ruby is a scripting language.
I think you could say ruby evolved from perl and perl evolved from
scripting clearly
as Larry Wall says.

However, it seems the C language evolved from assembly language
C++ evolved from C, and Java evolved from C++ in some sense.

To my way of thinking, what something evolved from may not fully
reflect
where it has ended up unless you can classify what you mean by
scripting
language to a greater meaning.

It is true that people will pick a language based on the API support
it has and so on, and it's current popularity. But an analysis of the
characteristics of the core language itself is also what is interesting
as from that type of analysis one may try to derrive
strengths, weaknesses of the language itself and thus possible future
trends might be divinated from this ...
 
A

asj

I think you could say ruby evolved from perl and perl evolved from
scripting clearly
as Larry Wall says.

However, it seems the C language evolved from assembly language
C++ evolved from C, and Java evolved from C++ in some sense.


Java actually was created in the early 1990s to meet the needs of
consumer or pervasive computing. It was never meant to become applets
on web pages, or server side apps running such thing as eBay or Google
or the national heath system of an entire country like Brazil.

This might in a sense explain its adherence to security as a prime
factor in its being - the manufacturers of consumer apps are extremely
leery of people hacking into consumer goods.

I've seen several otherwise logical people propose that there it is
somehow "time" for another language to supplant Java, but they all tend
to forget one thing.

Java right now is expanding so much more rapidly than anyone could have
expected 11 years ago when it first came on the scene.

There are several catalysts.

1. Open source developers are continuing to embrace Java in droves, and
new open source Java frameworks like Grails and Trails and RIFE and
what not spout up like flowers almost every month! Java has also
embraced scripting (see Groovy on Rails or Grails), and there is a
JRuby and JPython running on the JVM.

Java is the #1 language when it comes to projects in sourceforge.net
(the prime repository for open source projects), having passed C++ just
a few months ago.

In fact, the influx of open source developers may be what pushed the
population of Java programmers from an estimated 2 million or so
several years ago to approx. 4.5 million today....


2. Client side desktop Java continues to slowly expand. In fact, it was
surprising to me that Evans Data Corporation reported that Swing is the
dominant GUI
Toolkit for Northern American developers. "Java Swing with 47% use, and
it has
surpassed WinForms as the dominant GUI development toolkit, an increase
of 27% since fall 2004."

http://weblogs.java.net/blog/hansmuller/archive/2005/10/official_swin...


3. Java ME on pervasive devices is just unstoppable right now. In its
various incarnations (smart cards/SIM Cards, mobile devices, Blu-ray
devices such as PSP3, cale set top boxes) it is in more than 2 billion
devices and it continues to expand rapidly day by day

In fact it's so successful that I frequently meet Windows .NET
developers who are being introduced to Java in mobile talks about Java
ME!

Out of the 3, i still believe it's the 3rd factor that is the most
important - probably because I'm in that area ;-)
 

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,129
Latest member
FastBurnketo
Top