General discussion


Is "fast enough" really ok for language selection

By jslarochelle ·
My main development platform is Java (JVM) and in 2008 I started looking at alternative languages more seriously for deliverable application development. My first candidates were languages that I was using for in-house scripts: Ruby, Groovy. I was aware that these languages were much slower than Java but I really liked the dynamic aspects. I also knew that performance was improving for both these languages. However, I still feel that both languages should be faster. File processing for my in-house scripts for example is often very slow compare to what I am used too with Java.
Recently I started looking at faster alternatives (one alternative is Scala because it has performances comparable to Java). But I keep looking back at Groovy and Ruby (JRuby in my case) because the dynamic aspect of those languages is so incredibly powerful. The testing aspect is of special interest for me and being able to use things like <i>easyb</i> and the out of the box mocking capability of those languages is just incredibly atractive. I find myself thinking that a language (JRuby, Groovy) that executes millions of lines of code per seconds on a standard PC is fast enough.<br/>
Have some of you been through this kind of dilemma and how do you feel about those issues ?<br/>

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -

How fast

by boxfiddler Moderator In reply to Is "fast enough" really o ...

is fast enough?
For that matter, how fast is too fast"?
What has any of this to do with the end user??
What does what you like have to do with the end user?

You may develop, code, and build an application, but if it's not used, what the heck difference does it make what you like?

Collapse -

Consider this a bump

by seanferd In reply to How fast

All I'm really interested in here is <i>out of the box mocking capability.</i>

I think The Scummy One has plenty of that, and I wanna get me some.

Collapse -

Better testing helps me provide a better solution to my clients

by jslarochelle In reply to How fast

That is why dynamic languages are interesting and also why I call them powerful.<br/>
My feeling right now is that languages like Ruby and Groovy are fast enough to provide good solutions to my clients 95% of the time. However, I'm interested to hear the opinion of people who have actually used Ruby and/or any of the other new dynamic languages. What were the inconveniences if any.<br/>
What I like makes a big difference for my clients because it is highly correlated to providing correct, reliable and user friendly solution to my client. That is also why speed is a factor.<br/>

Collapse -

why not

by Jaqui In reply to Is "fast enough" really o ...

it's been around longer than Java even.
is just as powerful as Java.
Is just as flexible.
and is actually far faster than ANY other scripted language.

As a side benefit, is a FREE version, even for windows, so you can save cost for the environment.

only problem is the same with any scripted language, the end user needs to install the environment for it.
[ which is why I say the non-scripted languages are a better option. ]

Collapse -

Having to install the interpreter takes getting use too

by jslarochelle In reply to why not

I know it took me a while to adjust. I kept writing tools and utilities as C/C++ programs for a few years after the switch to Java. Now I have swallowed the pill and this is no longer a big factor for me.<br/>
Coming from a C/C++ however and being used to a fast interpreter I maintain a certain attachment to speed. It is interesting to have the input of other programmers with a strong C/C++ background.<br/>
When do you choose to use Perl and what criteria do you use when selecting Perl over C++ ? Did you ever have performance problem with Perl ?<br/>

Collapse -


by Jaqui In reply to Having to install the int ...

I've never had anything done in perl that didn't fly, but my perl use isn't extensive when it comes to complex scripting / programming.

slashdot is completely scripted in perl.
a very busy site, and about average in load times for me. which could be routing, or server load, or ...

since perl was designed with text processing in mind, it is ideally suited for a lot of current application development projects.

one significant benefit of perl over java, the environment for perl is the same, no matter which "distro" you use. commercial Active State or free, or ... , they all handle the scripts exactly the same. With Java, the jre / jvm used by the dev is the one required for correct function of the app.

Collapse -

Interesting. You bring up a good point

by jslarochelle In reply to personally,

Scripting languages often have high level construct optimized for specific tasks (often implemented directly in compiled C/C++) such as text processing in the case of Pearl. So I guess this could be a factor to consider when selecting a scripting language: what type of processing the language was original targeted at.
Thanks for the input.<br/>

Collapse -

Well if I needed performance

by Tony Hopkinson In reply to Is "fast enough" really o ...

I wouldn't be looking at any of them. Straight procedural and compiled is the starter for ten if performance is what you want.

Collapse -

Performance is just one factor

by jslarochelle In reply to Well if I needed performa ...

Sorry I did not state my dilemma clearly enough.<br/>
I look at other languages because I'm searching for better tools. Tools that would<br/>
- Allow me to provide solution to my clients with less lines of code.<br/>
- Make it easier for me to tests my code<br/>
- Make it easier to port my code to other platform<br/>
- ...<br/>
All of this in order to provide clients with a correct, reliable and user friendly solution.<br/>
Of course a user experience cannot be satisfactory if response time is too slow. However, these last few weeks my reflection on the subject and my study of different languages has made me start to think that maybe "fast enough" is good enough. That the speed of compiled code (C++, Delphi or other) is rarely needed and that other dimension of software are more important.<br/>
I was hoping that people with actual experience with languages like Ruby or other similar interpreted languages could step forward and explain what their experience has been and if they actually have had problem with performance in commercial application.<br/>
I know it can work because I have seen and even used some application written in some of the scripting languages. However, using the application one is not aware of the possible design and implementation compromise that were made to get a usable product. First hand account would be nice.<br/>

Collapse -

Then you answered your own question

by Tony Hopkinson In reply to Performance is just one f ...

It's all ways good enough. Even using C libraries over raw assembly is good enough at some point.
Or straight procedural over OO, processing client side as opposed to server.

I don't see how you can a get a general answer to your question, optimisation by definition, is targeted at a particular environment.

Related Discussions

Related Forums