"Eustaquio Rangel de Oliveira Jr." <eustaquiorangel / yahoo.com> writes:

> Hi!

Good day!

> | Ruby culture says: keep it simple, keep it short, keep away from XML.
> 
> This XML stuff is weird. Seems that a lot of people have a bad idea about
> it because of the *huge* XML files a lot of Java stuff needs. I agree that
> there's a lot of mess around there, a lot of no necessary complexity, but
> this kind of generalization is not healthy.

As you've noticed, my post is a gigantic generalization.  Sorry about
that.

> I know YAML is very, very more simple than XML, but XML is helping us to
> make the web more well-designed and with more semantics.
> 
> Try to give a look on XML with XSLT, it can make some cool stuff.

I like using XML to store documents, and XSLT is pretty neat, too.  What
I don't like about Java culture is how it tends to overuse XML for
configuring stuff that should be done in code.  See Rails vs any of the
overengineered Java web stuff.

> | Java culture says: make it complex, make it long, and there's no such
> | thing as too little XML.  Java programmers would deny having those as
> | goals in themselves.  But I think they like those properties.
> 
> I don't think ALL that *programmers that use Java* think this way. Another
> generalization here.
>
> I think we can talk about *people that uses languages*, and not *people
> that are used by languages*. There's a lot of missing points about that on
> the hype created with, let's say, the Java hype these days, the C# hype.
> 
> A lot of people learn how to do things the hard way. Some dudes learn that
> to make a simple query on a database they need to install Hibernate, to
> "keep the OO pure concept", for Christ sake. And some are lazy, ok.
> 
> This is not a fault from the language, but from where people are learning
> things, the way people are learning things.
> 
> Even if people comes to Ruby, they could start to find how to find huge
> things there also (and can make a mess, do you have some doubt about
> that?), because it's the way *they think they need do things*, not the
> language they're using. The concept of a text editor and a compiler is far
> away from their ideas.
> 
> And, I know, talking just about the languages, Java is *very* heavier than
> Ruby. This is a clear point.

I agree with you.  People used to the Java mentality try to use it in
Ruby, too.  But that stuff doesn't survive in Ruby's culture.  People
used to the Ruby mentality will probably apply it to Java development,
and I'm not sure what will happen.  Maybe the recent undercurrents of
simplicity are due to Pythonic and Rubian influence.

> | I used to be a Java programmer.  I used to like that stuff.  Some
> | perverse part of me still does.  There's something strangely appealing
> | about a behemoth.  Like the U.S.S. Enterprise.
> 
> Thanks God I never used J2EE or EJB's and never tempted by it. :-)

Me neither.  :-)

> | I wouldn't hire myself as I were back then.
> 
> You could hire yourself and give you some cool tips about programming. :-)

Yes, that would be fun!

> | Your preferred language says a lot about your personality.  I don't want
> | Java personalities on my team.  In case I'm not offending enough
> | demographics: I don't want C++, C#, or Windows personalities, either.
> 
> Seems you see them like demons or something like that. :-)
> 
> This take us back from the original point here: about people and languages.
> 
> I think, sorry if I offend you, that if you have a chance to have a *really
> good* Java/C++/C# programmer in your team, and you know that the guy loves
> his work, likes to study, is creative, smart, and you refuses to hire him
> and hire a guy that started yesterday using Ruby or Python or whatever,
> you're doing a foolish thing.
> 
> A good Java/C++/C# programmer can *learn* things (agreeding or not) and
> *teach and discuss* things (some contestation and brainstorming is good!) a
> lot better than somebody that thinks that is a programmer just because is
> using a cool language.
> 
> I'd like to have a *very good* Visual Basic (ouch!) programmer on my team,
> if he's interested on solving problems with the tools we use, than hiring a
> stupid kid just because he comes here and say "yo, bro, I use Ruby, I'm
> fucking smart, let me work for ya".
> 
> The problem here is the creative mind and the being able learn and create
> cool things. :-)

I'm not disputing that excellent Java/C++/C#/VB developers exist.  I
just think they're a lot rarer than excellent Rubyists, Pythonistas,
Smalltalkers, or Lispers.

That's partly because these languages are smaller.  They don't attract
as many programmers, and the ones they do attract are generally just
more interested in programming than yer average VB coder.  They managed
to discover an obscure language, so they have to be!

But I also think those languages and their cultures have certain
qualities that great developers enjoy more than average developers.
Examples: dynamicity, simplicity, brevity.

So if someone tells me they love Ruby, that's a good sign.  If someone
tells me they're really into VB, that would set off some warning bells.

> | I can imagine finding myself in a situation where Java, C++, C#, or even
> | Window would be the best solution.  I wouldn't hire anyone who doesn't
> | realize that.  But I'd be suspicious if he used that stuff in his free
> | time.
> 
> Wow, man, you need to buy some crosses and nails. And some gasoline too
> (fire works better with it). You can do not allow people think different on
> their works (it's ok if you're their boss) but will watch them on their
> free time also? Did you heard about freedom? About learning about other
> things (good or bad, your point)? :-)
> 
> This way a lot of people that comes to Linux from Windows we'll be screwed
> (I'm one of those guys). People will not having a chance to trying
> something different (good or bad).
> 
> Apple was trying to make that with their employees, I don't know that
> happens, but they were trying to stop people of developing free software on
> their free time.

Don't accuse me of stuff like that.  I wouldn't try to *stop* my
employees from doing whatever they like in their spare time.  But I'd
certainly ask them about it before I'd hire them.  Because if a
candidate works on open source projects in Ruby in his spare time,
that's a fantastic sign.

> But thinking here ... some cell phones nowadays have some JVMs there. What
> will be your solution for that? Ruby is not running there, Python is on
> some Nokias, but if your boss tell you "hey, we need to make some apps
> there", what will be the best solution?
> 
> This will not lead you to hell, anyways. You can stay a little angry to
> have to use that, but, *the situation needs a solution*. You can give it or
> not. It's your choice, but the situation is there. :-)

Indeed.  If I were on that project, I'd suck it up and use Java in a
heartbeat.  Maybe I'd see if one of the JVM dynamic languages would
work.  If not, sure, use Java!  The great Ruby coders I hired can
probably adapt to anything.  :-)

This is why I'd ask about their spare time.  If they worked on Java
projects for work all their life, well, you can't really blame them for
that.  It's a popular language.  What they do in their spare time tells
me what they really *like* doing.

mikael