I have a passion for talking to people, identifying problems, and writing software. When I'm doing my job correctly, software is easy to use, easy to understand, and easy to write... in that order. Michael is a DZone MVB and is not an employee of DZone and has posted 48 posts at DZone. You can read more from them at their website. View Full User Profile

Java's problem is that Jidigava idigis gididibidigeridigish

06.13.2013
| 2889 views |
  • submit to reddit

I posted a while back about how ruby's syntax is better for designing software than java because it removes extra language cruft and enables developers to write more succinct and direct code. A common response to this from detractors is that "it's only three extra characters" and "my IDE can automatically generate that code for me". Sitting at the train station today reading a comment from someone that said something similar to "geeze, if you've got thousands of lines of code, why do you care about a couple of letters and a parenthesis or curly brace here and there?". I started thinking about why I care and discovered the reason: With those little three letters here and there, your code literally becomes a type of Gibberish

In gibberish, you use simple rules to add extra characters here and there (sounds familiar) to create and quite confusing language that is a 1 for 1 direct translation to/from english. While gibberish, pig latin, and other language games are entertaining past-times to kill summer afternoons and baffle outsiders when you converse using them, MOST folks wouldn't subscribe to The New York times translated into gibberish. More importantly, almost nobody would agree that writing a blog post in gibberish is worth the effort. So java programmers, instead of arguing about how "it doesn't matter", lower your defenses and look around at alternatives available to you (there are a lot).

As a graphic illustration (and a bit extreme, I admit), the first sentence of this blog post translated to my best attempt at idig/adig gibberish:

Idigi pidigostiged idiga whidigile badagack adigabagout hadigow ridiguby's sidigyntadigax idigis bidigettidigetter fidigor didigesidigignigiging sadigoftwidigare thatigan jadigavadaga bidicadigause idigit ridigemidigoves idigextridiga ladigangidiguage crididguft adigand idigenadigables didigevidigevladigopidigigers tidigo wridigite madigore sadiguccidiginct adigand didigiridigect cadigode.

I'm pretty sure the "plain english" version is probably better to communicate an idea if the intent is to communicate clearly. The only thing I did to render that above sentence was add "idig" or "adig" after the initial consonant of each syllable and put it at the front of the vowel for syllables that start with a vowel. This is very simple and we could probably create a word plug-in to make it super easy to translate normal english to gibberish with the click of a button.

That having been said, if there was a subculture that wrote and spoke exclusively in gibberish, wouldn't normal english speakers/writers also question their choice of languages? After all, it's adding extra syllables and letters that don't provide any direct value. In fact, the whole value of gibberish (other than entertainment) is that it's MORE difficult to understand, why would we ever argue that this is a good thing or "Not a problem (tm)".

Published at DZone with permission of Michael Mainguy, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Nathanaël Roberts replied on Thu, 2013/06/13 - 6:33am

To make your point you made a big shorcut.

Gibberish is about adding something to an existing language specifically to confuse people.

Java is older than Ruby, well-known and readable.

No possible comparison with English vs Gibberish...

Peter Huber replied on Thu, 2013/06/13 - 7:41am

So you have to become a MVB to come up with a really "interesting" language bashing topic? I'm so interessted in this kind of stuff, that I hope there will be others following, like "perl vs ruby", "c++ vs f#", "Assembler vs Microprogramming" /sarcasm-off/

I guess you were bored or kind of had problems come up with a real good topic, yes? And I like the way you treat people that don't share your opinion, calling them "detractors" tight from the begining - are you not interessted in a discurse about your thesis or why do you diss people in the first paragraph, even before your gibbierish-stuff begun?

Worst articel on Dzone I've ever read.

Michael Mainguy replied on Thu, 2013/06/13 - 8:38am in response to: Nathanaël Roberts

I'd say that that it doesn't matter what the intent of the obfuscation is, it's only the effect that I was addressing.  The effect is exactly what you pointed out, it makes things harder to understand. I agree that this certainly wasn't the intent in the case of java.

On another note... java and ruby where both effectively released in 1995 so they're really about the same age.

Michael Mainguy replied on Thu, 2013/06/13 - 4:23pm in response to: Peter Huber

Sorry you didn't enjoy the post, thought I'd reply to you comments to help clarify some points:

So you have to become a MVB to come up with a really "interesting" language bashing topic?

I'm assuming this is ironic, I wasn't bashing java, I was illustrating a problem with java that occurred to me when trying to mentally figure out why I though ruby was superior to java for designing things.

 I'm so interessted in this kind of stuff, that I hope there will be others following, like "perl vs ruby", "c++ vs f#", "Assembler vs Microprogramming" /sarcasm-off/

Oh, there we go, it was sarcasm, ok, anyway moving on...

I guess you were bored or kind of had problems come up with a real good topic, yes? 

I wasn't bored, have other topics, this one was important to me because of the problem I've had articulating why I thought ruby was better for designing software than java.

And I like the way you treat people that don't share your opinion, calling them "detractors" tight from the begining - are you not interessted in a discurse about your thesis or why do you diss people in the first paragraph, even before your gibbierish-stuff begun?

To clarify, the definition of "detractor" I meant to use was "one who disparages or belittles the worth of something".  To clarify my position I would rewrite that sentence to be:

A common response to this from people who would disparage or belittle my previous statement is that "it's only three extra characters" and "my IDE can automatically generate that code for me".

Worst articel on Dzone I've ever read.

Tut mir leid---:)

Note, I assume English is not your first language and a misunderstanding might be from my use of the word detractor.

Fabien Charlet replied on Thu, 2013/06/13 - 4:48pm

 Truth is : no language is perfect.

You just have to practice some and choose the best one for your software (with its contraints).

Like I said on the previous post, when I have to deal with hundreds of thousands lines of business code, I want a strongly typed language. To me, this matters much more than properties access or a few more lines to iterate on lists. Because I can see immediatly most of impacts when evolutions come.

I also want a great IDE which can refactor quickly the code.

Java have all of that. I am not saying "Java is perfect", it's not. But, it's not a few more lines or more characters in a line that will change my mind.

Reading code in a language is an habit. After a few weeks of practice, you read car.color = blue and car.setColor(Color.blue) the same. When I read your Ruby code, I can't read it as fast as Java. It's not because Java is better, it's because I read Java code for years.

But if you prefer Ruby, code in Ruby. If you think you code faster in Ruby, code in Ruby.

Your feeling in the language is important and if you like the language you use, enjoy it !

Patrick Conway replied on Wed, 2013/06/19 - 8:54am

 thats nonsense..

Rubys problem is that it removes random characters its not Java adding them.

in Java...Rubys problem is that it removes valuable characters.

in Ruby..Rys plmth rvs vae charact

:P

Nathanaël Roberts replied on Wed, 2013/06/19 - 9:17am in response to: Patrick Conway

@Patrick Conway
Missing the G+ +1 button for this comment ! lol

Patrick Conway replied on Tue, 2013/07/09 - 6:00am

 Clean Code Chapter 1 page 12


"Ward Cunningham, inventor of Wiki,
inventor of Fit, coinventor of eXtreme
Programming. Motive force behind
Design Patterns. Smalltalk and OO
thought leader. The godfather of all
those who care about code.

You know you are working on clean code when each
routine you read turns out to be pretty much what
you expected. You can call it beautiful code when
the code also makes it look like the language was
made for the problem."

......

"We’ve all railed against the fact that our languages
weren’t designed for our problems. But Ward’s statement puts the onus back on us.
He says that beautiful code makes the language look like it was made for the problem! So
it’s our responsibility to make the language look simple! Language bigots everywhere,
beware! It is not the language that makes programs appear simple. It is the programmer
that make the language appear simple!"

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.