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/> JS
This conversation is currently closed to new comments.
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?
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/> JS
Perl? 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, perl.org 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
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/> JS
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 perl.org, 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.
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/> JS
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/> JS
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.
If you're asking for technical help, please be sure to include all your system info, including operating system, model number, and any other specifics related to the problem. Also please exercise your best judgment when posting in the forums--revealing personal information such as your e-mail address, telephone number, and address is not recommended.
Is "fast enough" really ok for language selection
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/>
JS