Ruby Off the Rails 325
An anonymous reader writes "IBM DeveloperWorks has an interesting writeup on Ruby that takes a look at the programming language as a stand-alone solution rather than defining it in terms of Rails. From the article: 'Ruby on Rails is just one facet of what makes Ruby great, just like EJB is only part of the Java enterprise platform. Andrew Glover digs beneath the hype for a look at what Java developers can do with Ruby, all by itself. Ruby's syntax is quite different from that of the Java language, but it's amazingly easy to pick up. Moreover, some things are just plain easier to do in Ruby than they are in the Java language.'"
Loving complexity for complexity's sake (Score:4, Interesting)
He's correct that certain tasks are easier in Ruby than in java, not to mention that the code is more readable. But he is missing in my opinion the most important part of Rails and that the ORM. Use scaffolding or don't use it. But if you bypass Active Record you're just making more work for yourself.
Man Holmes
Re:Loving complexity for complexity's sake (Score:3, Informative)
What a great generalisation! Not everything that looks easy is really easy. Not all code can be 'quick fixes'. Ruby on Rails may have its place, but Java and it's frameworks really shine when you need very high performance and a range of scalability options.
Re:Loving complexity for complexity's sake (Score:2)
Re:Loving complexity for complexity's sake (Score:2)
Re:Loving complexity for complexity's sake (Score:2)
Re:Loving complexity for complexity's sake (Score:3, Interesting)
1) the JVM needs to start. That needs time. On a server, it basically starts once, and then it just runs. Also, JIT only really kicks in for long running applications.
2) Java needs a lot of RAM. If you try to run a java app on a smallish box, chances are it will start swapping.
3) Swing is Slow, it makes Java GUIs feel cluncky. SWT is much bet
Re:Loving complexity for complexity's sake (Score:4, Informative)
3) Swing is Slow, it makes Java GUIs feel cluncky. SWT is much better for the user, it "feels" more responsive.
Both these are now way out of date. Java memory handling has been tidied up. As even a 'smallish box' these days is more than 128MB, memory really is not going to be a problem at all.
Swing is hugely faster these days, to the extend where it is often reported to be more responsive than SWT on some platforms (such as Linux). Swing is now by default OpenGL or DirectX accelerated.
Re:Loving complexity for complexity's sake (Score:3, Interesting)
Amusingly, Java's three strongest positions are the portable market (J2ME,) followed by the server market (EJB,) followed by the embedded market (microcontrollers, especially with the upcoming blu-ray deployment.) Neither J2ME nor embedded average more than 23 meg per device, and for servers where parallelism is a serious issue, the smallest possible memory footprint is desirable.
For thirty years peopl
Re:Loving complexity for complexity's sake (Score:2)
Re:Loving complexity for complexity's sake (Score:2)
Just recently I saw the project that was basically just a few web pages and it was realized as a tasty soup of custom MVC framework, JSPs, JSP tag libs, Velocity (by itself and (horror) inside taglibs), Spring and XML/XSLT thrown in for a good measure.
Re:Loving complexity for complexity's sake (Score:3, Insightful)
Just because some developers make bad choices does not mean that this is any fault of the language, or is a general fault of all developers in this language. Such messes can occur in any language - I have seen some real VB horrors.
Re:Loving complexity for complexity's sake (Score:4, Insightful)
Go Java! (Score:4, Interesting)
Congratulations Java, you've finally proven yourself as the new Benchmark(TM). Enjoy a lifetime of groundless belittlement.
By the way, if moreover isn't on this list [cnt.org], it sure ought to be. Over.
The author of the article, Andy Glover... (Score:5, Informative)
I'm probably biased, though, since Andy also wrote the CPD Ant task [sourceforge.net].
Erm, hello (Score:5, Insightful)
That goes for any sane modern language.
Re:Erm, hello (Score:2, Insightful)
What is .Net's competition? (Score:5, Interesting)
What does the future hold in terms of what environment will "come out on top" when Java seems to be compared to or even competing against so many languages while
Re:What is .Net's competition? (Score:3, Interesting)
It seems to me that MS is in a position where they will forever be chasing the leaders in language development.
Re:What is .Net's competition? (Score:2)
Ruby & Java == Moriarity & Holmes (Score:2, Informative)
Ruby could be just an also-ran if it didn't have Java to kick around. After ten years of spotlight, it's not hard to find detractors. The real question is, can ruby be defined on its own terms, and not Java's? Doesn't seem like it so far, which isn't good news for longevity.
Also, what you're forgetting is that some programmers like the clarity of a w
Re:Ruby & Java == Moriarity & Holmes (Score:5, Insightful)
Re:Ruby & Java == Moriarity & Holmes (Score:3, Informative)
I'm not sure this is even a issue. the Disussion on Ruby Vs Java seems to happen totaly outside the Ruby 'community'. I read a lot of Ruby programmer blogs and don't see Java mentioned that much.
Interesting reading
http://www.artima.com/intv/ruby.html [artima.com]
The Philosophy of Ruby: A Conversation with Yukihiro Matsumoto
Re:Ruby & Java == Moriarity & Holmes (Score:2)
Apart from the fact that 'that pathetic excuse for a language' is now the most popular, I agree.
Ruby is a stunning language, elegantly designed and full of fascinating features, and deserves to be promoted like this, not by comparison with other languages.
Re:Ruby & Java == Moriarity & Holmes (Score:2)
Re:Ruby & Java == Moriarity & Holmes (Score:2)
Re:Ruby & Java == Moriarity & Holmes (Score:2)
I'm one. I make my living with it.
Re:Ruby & Java == Moriarity & Holmes (Score:3, Insightful)
When looking at who is "positioning" Ruby that way, it seems to be mostly Java users, actually - at times to belittle Ruby (there seems to be a few developers that feel threatened by the Rails framework) but mostly, it seems, as a basis from which to highlight shortcomings in Java. Ruby developers don't seem all that interested in these comparisons.
Smalltalk's inheritance (Score:5, Insightful)
In some ways Ruby is a bit too dynamic - one of the strengths of Smalltalk is its simplicity and the predictability of your code. With Ruby it's easy to adopt a programming style that makes it difficult to predict what will happen when you do something in your code. Experienced programmers should be able to avoid those pitfalls, but I worry that some of the features will ecourage neophytes to create code that is difficult to maintain or understand.
Re:Smalltalk's inheritance (Score:3, Funny)
Sounds like C++...
Use my new language called Booby (Score:3, Funny)
does but some things are easier and some things are harder.
Because its relatively new you get to rewrite a bazillion
lines of library code and API's that already exists in other languages.
Furthermore you will become even more multilingual than you used
to be so you can raise language critique to an even higher (f)art
form. One profound difference, for example, is that Booby uses braces
but they are reversed from C++ and Java i.e. the open brace is } instead of {.
I expect to see a whole book on the ramifications
of that alone.
Isn't anything off the rails... (Score:3, Insightful)
Rails hobbles Ruby (Score:3, Insightful)
I like Rails, but I love Ruby. The hardest part of learning Rails was (for me, an experienced Ruby coder) learning all of the things that you lose when you go to Rails. (One example out of many: in Ruby when you create a Hash you can provide a default function (rather than just a default value) to be used when an element is missing; with Rails, this generally doesn't work since the functions don't serialize).
Conversely, if you like Rails you really should explore standalone-Ruby to see what you are missing.
--MarkusQ
Re:Rails hobbles Ruby (Score:2)
Agreed (Score:2)
Agreed. The main reason that Rails's limitations don't sink it for me is how easy Ruby makes it to extend / modify the base to suit your needs. I didn't like the way ActiveRecord serialized some objects--so I wrote my own serialization in a few dozen lines of code.
--MarkusQ
How Ruby fits in for my work. (Score:4, Informative)
The programming hierarchy I tend to think of for my work,
1. Shell- Basic scripting. Glueing commands together.
2. Perl- More powerful sripting features, but not really OO.
3. Ruby- Still a scripting language, but designed around OO.
4. BeanShell- Good for quick glueing of java classes together
5. Java- When I need a full compiled application environment.
For me each language has its purpose and I use them where it best gets
the job done.
Ways of Using Ruby (Score:4, Informative)
Rails as has been said, is a framework. Ruby is the language, and all rails is just ruby with a design in place to make it easier. Some great tools for using rails are becoming available though, due to its increasing user-base. A lot of people are still "trying it, and going back to php" but its got a core user group now and that's what counts.
Is Ruby desperate ? (Score:4, Interesting)
Given the number of posts in java.net and slashdot on how Ruby is the greatest thing of all (and no mention at all of any negative side) I start wondering why is Ruby desperate to move Java programmers from Java to Ruby
Personally I do not trust a language that has no negatives sides (or at least the Ruby people seems to think so), until it becomes clear what is the other side of Ruby I am not going to use it.
(Yes, I have visited the Ruby website)
Re:Get the basic premise right, first (Score:4, Funny)
Re:It's obvious (Score:3, Informative)
Re:It's obvious (Score:2)
Why bother RTFA? The post title is Ruby Off the Rails. Which means Ruby without Ruby on Rails. So why did you even take the effort to copy-and-paste a post completely about Ruby on Rails?
Re:It's obvious (Score:5, Informative)
Re:What I need to know (Score:5, Interesting)
If speed and memory usage is your only criteria when choosing a language, why not use C or assembly?
Re:What I need to know (Score:2)
Re:What I need to know (Score:3, Insightful)
Because not getting the best performance out of hardware, no matter how old or new it is, puts your application at a disadvantage compared to your competitors. No matter how much you may try and justify things, your users don't care about the language you use to develop - they care about performance.
There are alternatives - you can use both Ruby and Java together (JRuby works on the JVM). I think this 'mix and match
Re:What I need to know (Score:2)
But if your product comes out 6 months before your competitors, and is developed at three times the rate, who's going to have the advantage then? People don't care about performance as much as they do feature
Re:What I need to know (Score:3, Interesting)
I really don't believe it will. Ruby is a wonderful language I agree, but actual language coding is not a major part of any project. Design, testing and debugging are. In these areas, in my opinion, there is little difference between the language (in fact, Java has a wider range of high-quality IDEs and debugging tools).
Re:What I need to know (Score:3, Interesting)
I must disagree here. I can think of several commercial Java web-based projects that I know could have been done in at least the third the time in Ruby on Rails. And the programmer and au
Re:What I need to know (Score:2)
Again, I disagree. Even coding of the web application is a minor part of the project except for the very smallest projects. Most reaso
Re:What I need to know (Score:2)
I suggest we agree to disagree. It's clear that this is coming down to personal experience, something that is a little difficult to base an argument upon, without degenerating to each of us blindly insisting the other is wrong.
Re:What I need to know (Score:2)
I have no intention of insulting
I am not basing on personal experience - part of my job is to understand and review web (and other) development processes, and I have seen projects at a range of scales.
Re:What I need to know (Score:2)
I said insisting, not insulting :)
Then whose experience are you basing this upon?
Re:What I need to know (Score:2)
Heh - sorry - a combination of not wearing my glasses and assuming usual slashdot comment standards
Then whose experience are you basing this upon?
Both my experience and the experience of many others whose projects I have had to review - how using different languages and technologies have worked for them. They have used a range of technologies, including
Re:What I need to know (Score:2)
But again it comes down to personal experience, not just of yourself, but of the people you have met and worked with. With all due respect, my own personal experience contradicts your assertions.
Re:What I need to know (Score:2)
No. It is based on actual evidence of how long projects take, not experience, not opinions.
With all due respect, my own personal experience contradicts your assertions.
You can say that your experience is different, but it doesn't invalidate my evidence. My evidence is based on the study of a large number of projects from many people.
Re:What I need to know (Score:3, Insightful)
But if I find that a project done in Rails is N times faster than a Java project of a similar nature I've done in the past, I'm hardly going to discount it based on the unseen evidence of someone on Slashdot. If, in my experience, Ruby proves to be a far faster development language than Java, I'm not going to hum and say, well, what about t
Re:What I need to know (Score:2)
Absolutely not! I wouldn't.
However, my point is that this may not be a general advantage.
Add to this the fact that there are many experienced developers who take the opposite of your position; Paul Graham, as I've already mentioned, and quite a few of the chaps at Google. I'd dig up more examples, but
Re:What I need to know (Score:3, Informative)
The chosen language is one of the things that the Consumer (maybe they not think the same, but, whatever) is most aware of. Let's see... The Consumer wants programs that are:
1 - Efficient (memory, processor, net, and disk usage,...)
2 - Bug-free
3 - Cheap
A low level language leads to 1, but not to 2 and 3. A good hight level language leads to 2 and 3, but not to 1. How well received your programs is depends only on how well it fits the Consumer's expectations (and how fat is your marketing bill), so the
Re:What I need to know (Score:2)
I don't understand why you said this, as they are already being used together, with JRuby on the JVM. Ruby has access to the features of the JVM (efficient threading) and Java class libraries and Java has access to the Ruby classes you produce.
Re:What I need to know (Score:5, Insightful)
Because not getting the best performance out of hardware, no matter how old or new it is, puts your application at a disadvantage compared to your competitors. No matter how much you may try and justify things, your users don't care about the language you use to develop - they care about performance.
Simply not true. 95% of software is developed in-house, by small development teams that don't exactly have time to spare. Managers care about productivity, about getting more features implemented in the same time. An extra server costs what, the same as hiring a programmer for a single month?
Re:What I need to know (Score:2)
Performance is unrelated to development time and features.
Also, not all projects are server-side and can have performance boosted by additional central hardware.
Re:What I need to know (Score:3, Interesting)
Come again? This might be true for a rather small percentage of software, but I don't think it applies even for a majority.
What I find funny is that I remember these same arguments being made about C because it
Re:What I need to know (Score:5, Informative)
In this shootout it was found that Ruby had lower memory consumption, but also ran much more slowly than Java:
http://shootout.alioth.debian.org/benchmark.php?t
Ruby has some Unicode support, what's missing? (Score:2, Informative)
Re:What I need to know (Score:2)
False.
Re:What I need to know (Score:4, Funny)
As for Shakespeare, he couldn't even spell his own name, so he didn't care.
Re:What I need to know (Score:4, Interesting)
Yes on both counts. It's faster for you to write programs, and requires less of a learning curve.
Re:What I need to know (Score:2)
No on both counts. There is as yet no high-performance VM for Ruby, and it's memory use is not optimised.
Having said that, Ruby is a wonderful language.
Re:What I need to know (Score:2)
Considering there has been a new release of Quake written in Java that is very much the same speed as the C version I feel it is reasonable to disagree.
With insufficient memory, almost any application (especially GUI apps) will slow to a crawl.
It is like arguing that C+
Re:What I need to know (Score:2)
This is simply not a fact at all. I am using the Java NetBeans development evironment in 64MB. Works fine and fast. I am using Java games on my mobile phone.
How much RAM would recommend burning up on shitty apps that are still slow even when you do have gigs of RAM?
I guess that is why the newly-released PC game Tribal Trouble (written entirely in Java) runs on a 700MHz pc with 128MB memory.
Sorry, but
Re:What I need to know (Score:2)
Of course not! Where do you expect the operating system and GUI to reside?
What it means is if that you restrict the memory allowed to Java to 64MB, Netbeans will run fine.
Funny that, because I've tried it on several machines ranging from 256mb to a gig of RAM and they've all been slow enough to make me sit there grinding my teeth while the PC thrashes (and that's "thrashes" in the CS definition
Re:What I need to know (Score:2)
Not just me; take a look at the recent 'Quake 2 ported to Java' thread posted on Slashdot.
I've seen the Java version... with hardware gfx acceleration, it runs about as fast as it used to on a pentium. Sure, you can run Quake in Java, now that we have several gigahertz of CPU power and a gig of RAM and a gfx hardware acceleration.
Sorry, but I saw a demo version years ago on much less that that.
Woo fucking hoo.
Well, you could post this, or perhaps discuss bencharks.
nor
Re:What I need to know (Score:2)
Typically a Ruby program will have fewer lines of actual Ruby code, and the rest of the work will be done in a C library. So, Ruby has less work to actually do.
Typically a Java program will be written in Java to much lower levels, and so have more actual Java code, so the JVM has to do more work.
In your example, the JVM isn't doing the 3D processing, so it's kind of irrelevent how fast the JVM is.
One of the strengths of lang
Re:What I need to know (Score:2)
Uhh, we're talking about computer memory, not developer memory.
Next!
Re:Flamewar.....NOW! (Score:3, Interesting)
Re:Flamewar.....NOW! (Score:2)
I too like Python, but let's put this into perspective. This is an article about Ruby and Java, not about Python.
But that is a bit odd. To my mind, Python, Perl and Ruby are a pretty close family of similar languages. Java is rather different (mostly because of all the strict type checking, and the idea that putting everything in classes makes a language OO). Stuff like duck typing is central in both Ruby and Python.
Either compare different types of apple, or apples and oranges. But why would you compare
Re:Flamewar.....NOW! (Score:2, Insightful)
Re:Flamewar.....NOW! (Score:2)
Then I respectfully submit that you, sir, should have worked an opinion on Lisp and Haskell into your answer.
Re:So, what's it like? (Score:4, Informative)
Why? The speed of C and C++ are hardly needed for most applications, and languages like Ruby and Python can leverage GUI toolkits like Qt and GTK. If your Qt Ruby application is indistinguishable from your Qt C++ application, why waste time developing in C++ if you don't have to?
Re:So, what's it like? (Score:5, Insightful)
This is the same excuse I have heard for decades when fans of a language try and 'justify' it's lack of performance. Sooner or later a lack of performance really does become a problem - if it wasn't then many Ruby developers would not be working on high-performance VMs for the language.
There are situations where performance doesn't matter, but this is not true for 'most' applications.
I really like Ruby, but I will find much wider use for it when it is truly fast.
Re:So, what's it like? (Score:3, Interesting)
I find this rather hard to believe. The resources needed to run Halflife 2, and the resources required to run a Instant Messenger application, are on a quite different scale from one another. Clearly, therefore, you can afford more inefficiencies in an IM application, than you could in the latest 3D game. Are you claiming that this isn't the case? That we need the latest graphics cards and processors to ru
Re:So, what's it like? (Score:2)
Actually, I am.... These applications contain things like image handling, grammar checking, spell checking, file parsing and transfer, and many sophisticated GUI features.
If you can develop your product and push it out into production 3 times faster than your competitors, with little noticable performance loss, then you're going to make more money.
Having d
Re:So, what's it like? (Score:3, Interesting)
If your text editor truly takes up as much processing power and memory as the latest 3D chart-topper, then perhaps you should look for a piece of software with a little less weight?
Re:So, what's it like? (Score:2)
In some respects, I agree.
The entire project could have done in days what had been done in weeks using Java tools.
I disagree. With some areas of a simple web project this is probably the case, although using visual design of JSF pages with JavaStudio Creator allows the production of data-linked web pages in seconds. There are also many new Java approaches to web development and data access that are far faster and more elegant than the traditional struts/JDBC
Re:So, what's it like? (Score:5, Informative)
I'm doubtful. I bump up against the limitations of Java every other day, and it seems like the only way you could get around such things is with an awful lot of code generation.
For instance, I was recently writing a Java class to convert an XML DOM into a custom object tree. This largely involved writing getters and setters, and for loops to iterate over NodeLists to pull out descendant elements. I couldn't help thinking that with Ruby, I could have written "has_attributes" and "has_descendants" methods, and generated the getters and setters and DOM handling automatically. Instead of my classes being 50 lines apiece, they could have just been 4. It would have taken me far less time in Ruby than I did in Java, because Java hasn't got metaclass-like abilities like Ruby or Python.
Re:So, what's it like? (Score:2)
What you get with modern Java tools is not code generation as such, but generation of non-Java stuff. For example JSF generates JavaScript and high-quality HTML. JDO generates high-quality SQL, and JDO tools allow automated generation of schemas from Java classes (and the other way around). IDEs like Eclipse and Netbeans allow the
Re:So, what's it like? (Score:2)
But that still doesn't solve the problem of repetition when parsing DOM elements. Java's introspection is too unwieldly to be used often, and I'm unfortunately constrained by Java 1.4 - no generics for me! Perhaps I
Re:So, what's it like? (Score:2)
Re:So, what's it like? (Score:2)
The thing is that so many useful Java APIs and tools want to have the ability to look at a field and even modify them on the fly (as in the fields of components in GUI tools). They do this using the getters and setters. As adding getters and setters is as s
Re:So, what's it like? (Score:2)
I find Java 1.5 features to be enormously useful.
True; for simple problems code generation can be a solution, but it's a solution that does have limitations, and one that strikes me as horribly inelgant. Perhaps, though, it warrents some further investigation on my part.
To be honest, I find that code generation is actually best for more complex problems - the more that is automatically
Re:So, what's it like? (Score:2)
Sure, as long as the IM is the only software running on your client's PC. However, most computers today are running multi-tasking OSes, and resources your inefficient software steals aren't avail
Re:So, what's it like? (Score:5, Insightful)
my limited history of languages says, a lack of performance is taken care of by compiler/VM writers when a market for such comes about.
C was unacceptable, and is now the standard for speed. C++ was way too slow now their are 100's of optimizers to turn off all the features that cause it to be slower than C.
Java started out with horrible performance, but this story talks many times about how fast it is, it has compilers now, and a hundred different optimized VM venders to speed it up.
I see no reason why Ruby would be slower as a language, except the lack of optimizers, perhaps due to the lack of time in the spotlight, and thus the lack of a market requesting it.
Re:So, what's it like? (Score:2)
True. Languages often do tend to speed up with time. But is if often hard to predict which languages do this. I used to use Smalltalk, and was constantly waiting for really fast cross-platform implementations. These never appeared.
Re:So, what's it like? (Score:2)
C/C++ is all static type checking.
Java is also static type checking (mostly).
Ruby/Perl/etc are dyanamically typed. This == slow(er).
In addition, Java/Ruby/Perl like to sandbox your program in (with good reason) so you cant go and fly off the end of the stack (or any other low level data structure) and explode into a million pieces. This also makes it slower.
Optimization can only do so much when you dont know what it is you are going to be getting.
Re:While we are at it: finding a Ruby group near y (Score:2)
Re:Purpose of being verbose (Score:3, Interesting)
I've seen enough cryptic, overterse code that was incomprehensible, but I've se
Re:Purpose of being verbose (Score:3, Funny)
Thanks,
Sean
Re:Purpose of being verbose (Score:5, Insightful)
Re:Purpose of being verbose (Score:4, Insightful)
Hmmm, this attitude sounds somewhat familiar. Oh yeah, Paul Graham has written about it at length in this essay [paulgraham.com]:
The pointy-haired boss miraculously combines two qualities that are common by themselves, but rarely seen together: (a) he knows nothing whatsoever about technology, and (b) he has very strong opinions about it.
Suppose, for example, you need to write a piece of software. The pointy-haired boss has no idea how this software has to work, and can't tell one programming language from another, and yet he knows what language you should write it in. Exactly. He thinks you should write it in Java.
Why does he think this? Let's take a look inside the brain of the pointy-haired boss. What he's thinking is something like this. Java is a standard. I know it must be, because I read about it in the press all the time. Since it is a standard, I won't get in trouble for using it. And that also means there will always be lots of Java programmers, so if the programmers working for me now quit, as programmers working for me mysteriously always do, I can easily replace them.
On your own dime, go jump in leaf piles, run through a field of flowers, play with Python, Ruby or whatever is good for your spiritual wellbeing, but when you're working to pull a paycheck, you don't get to put your own flights of fancy before things which make your team (not you as an individual performer, but your team as a whole) more effective in achieving business objectives.
Horseshit. Python and Ruby and Lisp are real-world workhorses that don't need tens of millions of dollars in hype to be successful. For instance I have tens of thousands of lines of Python code out on the field doing real work, 24 hours a day, seven days a week for really demanding clients, including governments and advertising agencies. In one case, I finished a project in a third of the time it took three Java programmers - and mine was smaller, faster and more maintainable for the guys who took it over. Time is money and succinctness is power in software development and Java doesn't make the cut on either. Oh sure, it's a great tool to allow development by the lowest common denominator (money quote from James Gosling) but the really smart teams I know despise it for the ugly hack it really is. When I expressed this opinion in a column for a local computing mag, I was assailed with all kinds of outraged squeals from the local Java gurus. But none of them could answer my points honestly.
If readers disagree, answer honestly with words rather than modpoints. I've tried Java. I really have. I found it ugly, slow, anal and seriously limiting to work with. And I don't seem to be allowed to fix flaws in it either. That's not good.
Re:Purpose of being verbose (Score:4, Funny)
Tsk tsk. You're taking this way too personally.
I'm sure it's easy to copypaste some strawman argument containing hilarious phrases such as "pointy-haired boss" which the children will find irresistible, since they know nothing about the actual merits of the arguments, having never managed anyone, let alone a group of people who work together to achieve objectives such as saving people's lives, or even less noble objectives such as creating a software platform to aid the collective research efforts of thousands of researchers.
I rest my case. The above paragraph is one sentence! Obviously working with Java's crufty verbosity has affected your writing. I'd suggest taking a course in a more pithy language. By the way, Graham's argument is not a strawman: he's made it clear over a few different essays that because programming languages vary in power, smart coders who use more powerful languages can code circles around those using Java. Also if you're going to drag in logical fallacies then I need to point out yours too: "saving people's lives" and "aiding
I have used hundreds of thousands of dollars on Python code which the author believed to be really maintainable and work really well, but in the reality-based world turned to be such crap that the whole team, including me, had to work a breakneck pace to rewrite it in Java, which has such incredible features as working threading support, no Global Interpreter Lock, actual Oracle and LDAP support that doesn't leak memory like anything, and isn't 20 times slower than the Oracle and LDAP support in other languages, no monkey patches (oh yeah, Python coders seem to think that it's SUCH a good idea to monkeypatch others' code, since after all, SMART people should know without any documentation what's going on, and documentating code is useless anyway, people should just go in and read all of those millions of lines of code if they want to know what's going on) and, you know, clear and accurate documentation and HORDES of pre-existing components which make your life so much easier, if only you're not infected with the dreaded Python community NIH disease.
Sheesh, I thought the previous sentence was bad but this one takes the cake. Full stops are your friend. So is coherence. Some answers:
Java does have an additional useful feature: because of its mandatory coding practises and standards it's pretty easy to spot when an amateur has written something really broken, and contain the problem to those components which the amateur has touched. Perhaps this is what has happened to you?
Entirely possible. But I've seen good Java - really top of the line guru-doing-an-exercise-proposed-by-Martin_Fowler-s tandard type Java - and it was just plain ugly because the language is just plain ugly.
I've used, in production, Python, Perl, C, C++, Pascal, Java, x86 assembly, a little AutoLisp, and so on. Hundreds of thousands of lines. (The C code I have out there is pretty crappy, for which I apologise, but I was an amateur and thought of my work much as you seem to think now.)
Can't recall making any comments about your work or even you personally. *Checks* - nope. You
Re:Python loop array (Score:3, Informative)
puts array
That's it.