We just lost our bid to develop in Ruby on Rails and have been told to
go back to Java.
The problem was that we couldn’t convince the guy in charge of the
Apache server to help us out (he insisted that he was too busy to
install fastcgi for example). Because he wouldn’t do it (and we CAN’T do
it - not allowed) we couldn’t prove up front that it would work, a more
senior colleague insisted to my boss that we were trying to make things
more complicated and we’ve been told we can’t spend time developing in
RoR.
Yesterday I was gutted, but resigned to my fate, until I started up my
text editor this morning and was struck with a dreadful sinking feeling.
In Java this is going to take an UNBELIEVABLE AMOUNT OF MY TIME. I’ve
really lost the motivation to continue.
Are there any job opportunities for an RoR newbie who’s keen to learn?
Alternatively, does anyone have any comforting words / cliches?
Thanks to everyone who helped me out with all the questions I posted to
the forum over the last few weeks.
Dot
We just lost our bid to develop in Ruby on Rails and have been told to
go back to Java.
Bummer!
The problem was that we couldn’t convince the guy in charge of the
Apache server to help us out (he insisted that he was too busy to
install fastcgi for example). Because he wouldn’t do it (and we
CAN’T do
it - not allowed) we couldn’t prove up front that it would work, a
more
senior colleague insisted to my boss that we were trying to make
things
more complicated and we’ve been told we can’t spend time developing in
RoR.
Couldn’t you show it working using a test computer that you CAN
setup? Even just your laptop, or something?
If your giving up after loosing one battle, your not going to last long
in a corporate environment. To convince a major bank to move from Token
Ring to Ethernet it took me 2 1/2 years of corridor working, networking,
& busines case writing, then another 2 years to implement. Things just
don’t move that fast as there is more than just technology X is better
than technology Y for management to consider.
If you like the company & want to keep working there, my advise would be
to change your approach, & consider the longer term commercial issues.
Cost of developing solution in RoR v’s Java
Cost of maintaing solution in RoR v’s Java [this includes training
for staff]
Independant opinions of Industry trends
If you can demonstrate a payback of less than 18 months, then its a very
sell.
At the same time, you will also have convince your influential
co-workers that RoR is not a threat.
If your not to attached the the company, then go & circulate that CV.
Dot D. wrote:
We just lost our bid to develop in Ruby on Rails and have been told to
go back to Java.
The problem was that we couldn’t convince the guy in charge of the
Apache server to help us out (he insisted that he was too busy to
install fastcgi for example). Because he wouldn’t do it (and we CAN’T do
it - not allowed) we couldn’t prove up front that it would work, a more
senior colleague insisted to my boss that we were trying to make things
more complicated and we’ve been told we can’t spend time developing in
RoR.
Yesterday I was gutted, but resigned to my fate, until I started up my
text editor this morning and was struck with a dreadful sinking feeling.
In Java this is going to take an UNBELIEVABLE AMOUNT OF MY TIME. I’ve
really lost the motivation to continue.
Are there any job opportunities for an RoR newbie who’s keen to learn?
Alternatively, does anyone have any comforting words / cliches?
Thanks to everyone who helped me out with all the questions I posted to
the forum over the last few weeks.
Dot
We just lost our bid to develop in Ruby on Rails and have
been told to go back to Java.
…
does anyone have any comforting words / cliches?
Hopefully this is comforting: Sun has just hired the JRuby team to work
full time on JRuby. This makes Ruby the first official dynamic language
supported by Sun on the JVM.
If your giving up after loosing one battle, your not going to last long
in a corporate environment.
But if you bang your head on the fucking wall over battles you can’t
win,
you’re not going last long in life. Make your trade-offs where they’ll
do
the most good.
If you like the company & want to keep working there, my advise would be
to
change your approach, & consider the longer term commercial issues.
From his manager’s point of view, the longer term commercial issues ARE
being considered.
Cost of developing solution in RoR v’s Java
… when the programmers all know Java already, and more Javniks
graduate
every year…
Cost of maintaing solution in RoR v’s Java [this includes training
for
staff]
… when the staff maintaining the solution all know Java already…
Independant opinions of Industry trends
… when businesses in general and managers in specific can’t see beyond
this quarter’s profit margin.
It’s easy to get all philosophical over these issues, but the bottom
line is
that managers rarely see anything other than the bottom line. If you
want
to prove to your manager that you can develop better more maintainable
code
faster in Rails (and if you do want to prove this it better be true)
then
do just that - on your own time, write up a demo that shows off the
features
you believe are worth changing everything over. If they still won’t see
it
your way and it’s still a big issue for you, at least then you’ll have
experience developing an actual application, something useful to show
others
who might be more amenable to the change.
You can talk to your manager and IT guy and coworkers until the next ice
age
and not change any minds. But walk in a few weeks from now with an 80%
(or
120%) solution developed in your spare time, and they’ll start paying
attention.
We just lost our bid to develop in Ruby on Rails and have
been told to go back to Java.
…
does anyone have any comforting words / cliches?
Hopefully this is comforting: Sun has just hired the JRuby team to work
full time on JRuby. This makes Ruby the first official dynamic language
supported by Sun on the JVM.
Didn’t “groovy” beat Ruby in that regard? Or is it not “supported”
beyond getting a JSR?
–
Premature optimization is the root of all evil. – Donald E. Knuth
Hopefully this is comforting: Sun has just hired the JRuby team to
work full time on JRuby. This makes Ruby the first official dynamic
language supported by Sun on the JVM.
Didn’t “groovy” beat Ruby in that regard? Or is it not “supported”
beyond getting a JSR?
That’s correct; Ruby is the first that is financially supported by Sun.
JSRs are approved by the JCP Executive Committee, not Sun directly. I,
too, wonder what that means for Groovy. While it may not be Groovy’s
death knell, it is certainly at least a hedged bet and may in fact be a
vote of no-confidence in Groovy. Time will tell.
It’s funny that the Groovy FAQ answer for “What is Groovy?” states,
“Think of it as a Ruby or Python like language that is tightly
integrated with the Java platform - allowing you the same powerful and
concise coding syntax as Ruby or Pyton [sic] but allowing you to stay on
the JVM…”
Once JRuby reaches 1.0 (a Sun goal) will there be any need for Groovy?
Does this mean that Rails would also run on JVM, or just Ruby?
JRuby on Rails already works for simple apps, and we’re improving
compatibility day-by-day. There are some quirky interpreter issues
remaining to be fixed and our poor marshalling support prevents using
anything other than the memory_store for session right now, but other
than that things work pretty well and Rails is pretty snappy and
responsive.
I’ll be demoing a few Rails apps running under JRuby next week at
RailsConf Europe, and talking about where we stand and where we’re
going…especially in light of the Sun announcement.
And yes, I lurk here watching for threads with the words “Java” or
“JRuby” in them Feel free to join the JRuby lists or ask me
questions offline as well.
Does this mean that Rails would also run on JVM, or just Ruby?
Hi,
Due to recent improvements in JRuby, Rails already runs mostly in JRuby.
I’ve added mostly to the sentence since there are a few things that
isn’t working yet, and performance will need to be improved. But Charles
Nutter and Thomas E. actually showcased a working JRuby on Rails at
JavaOne in May this year.
Hopefully this is comforting: Sun has just hired the JRuby team to
work full time on JRuby. This makes Ruby the first official dynamic
language supported by Sun on the JVM.
Does this mean that Rails would also run on JVM, or just Ruby?
Yesterday I was gutted, but resigned to my fate, until I started up my
text editor this morning and was struck with a dreadful sinking feeling.
In Java this is going to take an UNBELIEVABLE AMOUNT OF MY TIME. I’ve
really lost the motivation to continue.
Are there any job opportunities for an RoR newbie who’s keen to learn?
Alternatively, does anyone have any comforting words / cliches?
Dot
At the beginning of a project like this, you have one set of risks
relating to the requirements (are they understood?) and the solution
(is it a good fit?) and a separate set of risks relating to the use of
technology (what is the best way to do X in Spring MVC?).
You can address these separately - you could build a prototype in Rails
to find the best UI, object model, and data model for the application,
and you could build representative “thin slices” of the application in
your approved target technologies.
If, after that, you do have to implement on Java you will have a very
clear idea of what you need to do. It will also (a) buy time, and (b)
let you show very clearly the differences between Rails and Java.
I love programming RoR, but in my limited use I have run up against
roadblocks that say Ruby and RoR are not mature enough yet for my shop.
It is coming, but it isn’t there yet.
Examples:
Between Ruby 1.8.2 and 1.8.3 the behavior of undefining constants
that had not been defined changed. This broke the version of
ActiveRecord that instiwiki depends on (making the three step install a
7 step install if you don’t count looking all over the internet for why
“step 2 - run the application” was failing. The RUBY behavior changed
in a manner that broke a core library.
ActiveRecord uses two slightly different idioms for handling primary
keys. One idiom handles non-numeric primary keys well, the other idiom
does not. The net result is that for most operations you can use
ActiveRecord with legacy or distributed systems, but some operations
fail. Before I get flamed, submitting the dozen or so lines of code
fixes for review/approval/inclusion are number 8 on my priority list.
ActiveRecord dynamically generates SQL on every call, imposing the
overhead of the prepare phase of the query on every call to the
database. This seriously limits the scalability and performance of the
platform, since in a single SQL call up to 80% of the resources used
may be used during the prepare phase, before any of the work that the
statement does is actually performed.
In contrast, a prepared statement imposes that overhead once on the
first call, and thereafter only the resources used in the actual work
of the statement are used. When you’re on the heftiest hardware
available and it’s already maxed out, this is not just a stumbling
block, its a serious barrier.
For what its worth, I do not feel that programming in Java is quite as
bad as you seem to. Programming to EJB is that bad, and it is sad that
the java world has become so bloated that we now have an acronym for
plain old java objects (POJO). But let’s not blame the failings of
clunky frameworks on the language.
Now that Sun is officially supporting JRuby, it will not be long before
your server guy will have no say in the matter because a ruby app, to
him, will be a java app. Hang on, and work it into a small place
first. It will grow.
I love programming RoR, but in my limited use I have run up against
roadblocks that say Ruby and RoR are not mature enough yet for my shop.
It is coming, but it isn’t there yet.
Examples:
What I know about RoR will fit in a thimble.
What I know about working in “illegal” languages and trying to convince
the
overlords would fill a bookshelf.
It comes down to this:
If the company is worth sticking with, as a company, and this is the
first kick
in the head, then leaving might not be the best solution. You will get
many
kicks before you retire.
Work in RoR on little projects in little pieces.
For example – develop a proof of concept on webrick. You don’t need
the sys
admins support for that and you can still demonstrate a viable product.
If you
are able to show how agile the development process is (develop segments
in the
meeting) then it will have an impact on someone.
It may be a very long time, but it might prove more valuable to you and
the
company if you stick to doing this.
I’ve been 5 years in a company that lives and breathes java. And there
isn’t
anyone in the company who actually does java code – it’s all overseas
developers.
But I write things in Perl (sorry, Ruby just wasn’t on the radar 5 years
ago)
which is almost considered a sin. When I first started I had one friend
(boss)
and about 300 enemies (everyone in IT and all their contractors). Over
time it
became quite apparent that I was able to meet deadlines in my goofy perl
code
10X faster than any java developer (yes, they love EJB) which stopped a
lot of
bleeding over these years.
I have more friends now. I still can’t officially use Perl, but there
are some
significant and influential people who know when to look away. I
recently
started on the formal process (with IT support) of getting Perl blessed
by the
overlords. Once (if?) this is done, I can use it just about anywhere.
Considering that RoR isn’t quite there, don’t feel you have to get your
projects
in production in a month. Consider security – you would be much
better off
pitching for a language that hasn’t had any security issues in the news
lately.
If you pick a language that isn’t as mature as they are accustomed to,
you
will hurt yourself.
ActiveRecord dynamically generates SQL on every call, imposing the
overhead of the prepare phase of the query on every call to the
database. This seriously limits the scalability and performance of the
platform, since in a single SQL call up to 80% of the resources used
may be used during the prepare phase, before any of the work that the
statement does is actually performed.
Is it dynamically generated SQL, or a dynamically generated prepared
statement? If the latter, many databases will cache them locally.
Even when you do not do the standard “prepare, call, call, call, *”
sequence the db will pull the (prepared) statement from its cache and
use it. Too, some DB drivers do this.