Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Balancing Performance and Convention

Soulskill posted more than 5 years ago | from the delaying-the-problem dept.

Programming 171

markmcb writes "My development team was recently brainstorming over finding a practical solution to the problem that's haunted anyone who's ever used a framework: convention vs. customization. We specifically use Rails, and like most frameworks, it's great for 95% of our situations, but it's creating big bottlenecks for the other 5%. Our biggest worry isn't necessarily that we don't know how to customize, but rather that we won't have the resources to maintain customized code going forward; it's quite simple to update Rails as it matures versus the alternative. What have your experiences been with this problem? Have you found any best practices to avoid digging custom holes you can't climb out of?"

cancel ×

171 comments

Sorry! There are no comments related to the filter you selected.

Switch to django and python for starters (2, Informative)

1155 (538047) | more than 5 years ago | (#26311867)

I worked in a small shop that used rails, we found that rails is... constricting, just for the reasons you posted to slashdot for. We looked at our options and switched to django+python. Maintenance wasn't a problem after that. I'd suggest investigating a switch now while you have an opportunity.

How to Falsify Evolution (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26311965)

Any theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and falsify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner.

Re:How to Falsify Evolution (-1, Offtopic)

khedron the jester (888418) | more than 5 years ago | (#26312119)

TL; DR

Re:How to Falsify Evolution (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26313183)

Next time try <p>

Re:Switch to django and python for starters (5, Insightful)

latentevent (1444209) | more than 5 years ago | (#26312079)

Comments like this really don't address the core issues. Frameworks, and especially heavily-developed ones like Django/Rails, are rarely cause for insurmountable performance problems. Of course, caching and setting up distributed workload processing queues will be necessary in any framework, but that's up to the development team working on a specific app rather than the framework itself.

I've been working on a large Rails application for over a year, and we haven't found any scaling issues related to Rails. Instead, there are a number of things that we've done in our application in order to help it scale for our given workload.

That said, there are a number of things that Rails will do to help you scale your application. You may want to look at how Rails 3.0 (the next release of the Rails framework) is incorporating several ideas from Merb to make the framework lighter-weight and more extensible through Rack and the concept of Rails "metals." For offline processing in a Rails app, look at plugins like workling/starling and other message queues. I think you'll find that 1) Rails doesn't have scaling issues, programmers on Rails have several challenges that they have to face to make their applications scalable (just as in any other framework) and 2) As far as providing tools to facilitate developers in scaling their apps, Rails is quite a powerful framework and one that should be given a lot of consideration by development teams.

In conclusion, though, vague comments like "avoid Rails, use Django" are just unproductive spreading of FUD and don't really contribute to any significant discussion or understanding of how to get any of the viable web application development frameworks to scale in any specific case.

Re:Switch to django and python for starters (3, Insightful)

arth1 (260657) | more than 5 years ago | (#26312503)

Comments like this really don't address the core issues. Frameworks, and especially heavily-developed ones like Django/Rails, are rarely cause for insurmountable performance problems.

>
No problem is insurmountable. But they are commonly cause for surmountable performance problems. And surmounting costs time and money, while not impressing those who noticed the problems or pay for fixing them.

If in doubt, KISS. Adding extra abstraction layers is generally not simplification. It's like adding another layer of management in a company, in that it is sometimes necessary, but it will rarely increase productivity or responsiveness, at least not in the long term. Especially not when a middle level manager gets replaced with someone who doesn't do things the same way.

Re:Switch to django and python for starters (1)

SanityInAnarchy (655584) | more than 5 years ago | (#26313407)

Couple of points:

Of course, caching and setting up distributed workload processing queues will be necessary in any framework, but that's up to the development team working on a specific app rather than the framework itself.

True -- but Rails does make caching easy.

You may want to look at how Rails 3.0 (the next release of the Rails framework) is incorporating several ideas from Merb to make the framework lighter-weight and more extensible

It's more than that -- Rails 3.0 is also Merb 2.0. So, Rails 3.0 should gain all of the advantages of Merb -- one of which is raw performance [slideshare.net] .

For offline processing in a Rails app, look at plugins like workling/starling and other message queues.

For what it's worth, Merb has a simple threaded backgrounder built in.

Re:Switch to django and python for starters (5, Insightful)

Forge (2456) | more than 5 years ago | (#26312115)

After reading the linked commentary, I can say there really is a better 4th option. It was even hinted at by the author.

Write your extension/hack as a modification of Rails and/or Ruby. Send them back to the maintainers of said products and see if you can get them inserted as a standard part.

If they do not exact a significant penalty elsewhere for the improved performance in your pretty mundane scenario. It is highly probeble, your changes will be accepted.

This isn't just true for Rails. It's true for any software (except stuff maintained by immature, anal retentive morons.

If it's L/GPL, BSD or other common free license, then this adoption of customer written code is a routine matter. If it's closed source and proprietary they may feel the need to get a lawyer involved and have you sign over all ownership rights to the code you wrote to improve their product (ask for money or stock when that happens).

Either way, in most scenarios good clean extensions tend to get adopted as part of the main program.

PS: Yes. Even "The Evil Empire" (Microsoft, Sun, Apple, IBM etc...) have been known to do this.

Re:Switch to django and python for starters (2, Interesting)

truthsearch (249536) | more than 5 years ago | (#26312715)

The best option is to not use one single framework for all situations unless it's appropriate. Too many developers put blinders on, picking one framework and using it for every project.

My company has a flexible custom framework that we use for the majority of projects. But before we start on any project we discuss the options to see if another framework or open source app would be a better fit. Along with picking the best language for a task, the same should be applied to frameworks.

No need to use Rails or any other particular framework if it doesn't fit the project.

Re:Switch to django and python for starters (0, Flamebait)

Anonymous Coward | more than 5 years ago | (#26312355)

The problem with django is that you have to use Python.

Re:Switch to django and python for starters (0)

Anonymous Coward | more than 5 years ago | (#26312571)

Grails [google.com.br]
  1. Groovy has a c-like syntax while having some support for FOP
  2. Grails is java under the hood and it scales like java
  3. Grails is composed of technology we've all come to get used to and hate, therefore the greatness of the abstraction so you'll get your hand dirty as little as possible

Re:Switch to django and python for starters (1)

harry666t (1062422) | more than 5 years ago | (#26313121)

> The problem with django is that you have to use Python.

Can you explain the problems associated with using Python as a language for web development?

Re:Switch to django and python for starters (0, Troll)

ultrabot (200914) | more than 5 years ago | (#26313247)

> The problem with django is that you have to use Python.

Can you explain the problems associated with using Python as a language for web development?

Don't you know that Python is just a hack that doesn't support "real" object oriented programming?

You can't just take a language like Python and make it object oriented by adding objects. You need a language like "Ruby" that is object oriented from ground up!

I read it on Ruby advocacy pages, and hence it must be true. Also, C00lDudeFromDaGhetto on IRC confirmed the same.

Nothing to see here, move along... and don't forget that RoR is much faster to development for than Java! And C!

Re:Switch to django and python for starters (4, Insightful)

arth1 (260657) | more than 5 years ago | (#26312423)

And when the guy knowing Django moves on, what's the chance of finding a replacements who knows it? How much will that reduce the number of eligible applicants for a position -- will you disqualify fifty really smart guys for five mediocre ones who happen to know Django?

In my experience, being a system administrator for over a generation, what is the most maintainable is to go for standards and well-defined APIs, and document it, document it, document it. Especially document what's obvious and "standard practice", because it may be "standard practice" to do a certain thing in a certain language or certain package, those who come around ten years down the road may not know that this was standard, or why. So document, not so much what you're doing as why. Any coder worth his pizza will figure out what but be clueless as to why.

Re:Switch to django and python for starters (2, Informative)

quanticle (843097) | more than 5 years ago | (#26312747)

And when the guy knowing Django moves on, what's the chance of finding a replacements who knows it? How much will that reduce the number of eligible applicants for a position -- will you disqualify fifty really smart guys for five mediocre ones who happen to know Django?

Probably not. In my (admittedly limited) experience, I find that Ruby on Rails and Python/Django are similarly supported, and have similar user/developer base sizes. Frankly, if I was choosing between Rails or Django, finding developers for either would be pretty far from the top of the list of my worries.

Re:Switch to django and python for starters (0)

Anonymous Coward | more than 5 years ago | (#26313897)

Rails and Django are not your only choices. Will you disqualify fifty really smart guys for five mediocre ones who happen to know Django or Rails?

Re:Switch to django and python for starters (1)

harry666t (1062422) | more than 5 years ago | (#26313163)

> will you disqualify fifty really smart guys
> for five mediocre ones who happen to know Django?

If your smart guys are really that smart, they shouldn't have trouble with picking up any language/framework. Speaking as someone who picked up PHP/Joomla last month and now is working with it in his daily job.

Re:Switch to django and python for starters (1)

Fweeky (41046) | more than 5 years ago | (#26312573)

If he and his team are experienced with Ruby, why would they switch not just frameworks, but language? Python's not especially faster, it doesn't have a particularly better threading model (in fact, once you factor in JRuby, it's much worse), and the language itself isn't going to do anything to reduce "constriction", especially if they're unfamiliar with it.

If it's Rails you find "... constricting" (whatever that means), there are at least a dozen other Ruby frameworks out there, which would be rather easier to transplant existing code to.

But no, sure, your little 2 line "Rails suxxx! use a completely different language and my favourite framework for no reason I'll actually explain" sure does deserve to be +5 Informative.

Re:Switch to django and python for starters (3, Insightful)

Serious Callers Only (1022605) | more than 5 years ago | (#26312675)

I worked in a small shop that used rails, we found that rails is... constricting, just for the reasons you posted to slashdot for. We looked at our options and switched to django+python. Maintenance wasn't a problem after that. I'd suggest investigating a switch now while you have an opportunity.

Out of interest, what did you find constricting about Rails? Your comment here (and the article, such as it was) are not very illuminating on this score.

I've found it fairly easy to modify, very easy to add plug-ins to, and very easy to add custom SQL queries to if necessary for performance reasons (though most of the time that's not necessary). The only area I can see it being constricting would be when trying to interface with a legacy db structure which can't be changed, in which case Django would have similar problems.

Because the article is not specific enough on the problems they'd like to work around, it asks an unanswerable question - there is no magic formula for trading off convention and performance, no magic bullet; at a certain point you have to stop relying on a framework and add something yourself if it doesn't do what you want or perform to your satisfaction. The same holds true for any framework, and though the received wisdom on Slashdot is that Rails is difficult to work with, or doesn't scale, many companies don't find that to be the case (yellow pages, etc etc).

going forward? (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26311877)

Maintenance implies a future scenario so you don't need to say "going forward".

In fact, the default condition of entropy is that time moves "forward", as we define it, so you really never need to say "going forward".

Why do people say that? Stop saying it. It sounds stupid.

Re:going forward? (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26312003)

How to Falsify Evolution Any theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and falsify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner.

Re:going forward? (-1, Troll)

Bearhouse (1034238) | more than 5 years ago | (#26312053)

OK, OK, I dislike that too.

Along with people who try and make themselves look intelligent by calling other people 'stupid'.

Not clever, AC. Please stop.

Re:going forward? (0)

Anonymous Coward | more than 5 years ago | (#26312493)

He never called anyone "stupid". He merely stated that the saying "sounds stupid". There's a difference between being stupid and doing something stupid.

Concentrate on the 5% (2, Insightful)

Samschnooks (1415697) | more than 5 years ago | (#26311893)

You see, the other 95% (Convention as you put it.) you're talking about can be done by anyone: that's one of the reasons frameworks exist. In other words, it can be shipped to the lowest cost country in the World.

The customization is what is going to keep you employed. That's the specialization that keeps the customers from going overseas - even if you're Indian yourself. There's always someone willing to do it for less. No exceptions. So, develop those resources if you want to keep doing what you're doing.

Re:Concentrate on the 5% (-1, Troll)

Anonymous Coward | more than 5 years ago | (#26312011)

Any theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and falsify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner.

Re:Concentrate on the 5% (0)

Anonymous Coward | more than 5 years ago | (#26312221)

No exceptions

Well, except for those exceptions where you're the lowest bidder.

( i hear you though, the exceptions would tend towards a small percentage given the population size ).

Expand the toolkit (4, Insightful)

thethibs (882667) | more than 5 years ago | (#26311917)

Would it be out of the question to assess the needs of the troublesome 5% (and perhaps the other 10% that were shoehorned into Rails) and add a framework that's more in line with those needs?

Data exchange is sufficiently mature that interaction between applications in different environments is not an issue, so all you are left with is the added overhead of supporting two frameworks; not a bad thing if you consider the added flexibility of using the framework best suited to each application. Having options is usually a good thing.

Re:Expand the toolkit (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26312015)

Any theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and flasify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner.

Re:Expand the toolkit (4, Insightful)

Bearhouse (1034238) | more than 5 years ago | (#26312031)

Mod up! If the only tool you have is a hammer, you end up treating everything like a nail.

As the OP pointed point, all development environments sooner or later hit this wall. I've never found one, (and am pretty sure that one will never exist), that ticks all the boxes for a typical mixed environment (the GUIs, OLTP, distributed database management, web access, making the coffee...).

In the 80s, I worked for a company that - as was fashionable at the time - developed its own '4GL' and decreed that everyone use it. In a satellite office, we tried, but found that in certain circumstances it just plain would not do what we needed. Guess what? We went back to 'hard coding' those key functions...

Don't worry about it, (after all, same bits of windows, to name just one OS, are written in assembler to speed performance).

So as the man says, expand your toolbox and your competencies - it'll make you a better project manager (to handle the interfaces) and programmer.

Re:Expand the toolkit (3, Insightful)

truthsearch (249536) | more than 5 years ago | (#26312851)

so all you are left with is the added overhead of supporting two frameworks

And that's often much better than supporting one framework plus your own customizations. Once you customize it's often extremely difficult to upgrade the framework and have your patches still work. So there can be a lot of extra development time involved. Plus just the learning curve to get intimately familiar with the internals of the framework when that's often not necessary.

Re:Expand the toolkit (0)

Anonymous Coward | more than 5 years ago | (#26313373)

This is a typical example of why developers use profilers, to find that several lines of code that is the workhorse of the application. It is not uncommon to have a few critical functions. High level frameworks are perfectly good for everything else.

Here is what I have done. First, and this is obvious to most developers, and most do it automatically, but it is good to check, make sure that the code itself follows a convention. Make sure there are no duplicates in functionality. Make sure that data is handled in a consistent manner with a consistent set of functions. Developers love to write their own functions for common task thinking that they do it better than anyone else. Unless each class of task uses the same function, and data is stored in only one place, there is no real way to know which tasks are consuming all the resources, and if those resources are being consumed legitimately, or just wasted.

Second, use a profiler to determine what functions are using all the resources. This looks like where you are right now. I found it was not always necessary to leave the framework. Maybe there is another way to approach the problem that would not cause a bottleneck. Maybe it is a bug in the framework, or someone is using depreciated functions. I have seen where people have put in i/o commands in lopps that are critical to the performance of the functions, i/o commands that not only did not need to be in the loop, but not even in the function itself.

If it looks like the framework is not going to work, refactor the functions to discover what is causing the issue. Sometimes you will find that many of the function all execute a common task. Sometimes not. At this point it may be necessary to leave the framework. Yu may be able to get away with just passing data to another process, like a data filter. In many cases, the issue a loop that is calling another function with a lot overhead. In this case the solution might be to pull the loop into another function that can execute with less overhead.

The point is that in many cases some creative design can make things that run fast enough. In other cases, for instance data analysis, it is useful to drop the entire data set into a process that can efficiently handle such a task. In most cases, however, if the task is typical, and the boards are not all complaining about inefficiency, then there may be some fundamental error in the coding.

It depends on the complexity (1)

CoopersPale (444672) | more than 5 years ago | (#26311919)

It really depends on the complexity of the problems you're trying to solve.
If you have complex business processes they won't be easily modelled by rails, or any other framework.
So horses for courses, really. It's a judgement call, and depends on the specifics of your application.

Re:It depends on the complexity (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26312037)

Any theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and flasify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his thoery in this manner.

With Jews You Lose (-1, Flamebait)

Anonymous Coward | more than 5 years ago | (#26311925)

I'm glad I don't have a whole country full of deceitful, greedy kikes stealing all my water and land anywhere near me.

Fucking Jews can't just live in peace. They have to steal other people's land.

With Jews you lose.

Let's lose the Jews.

Hard to say, but... (4, Informative)

SlashDotDotDot (1356809) | more than 5 years ago | (#26311957)

Making this sort of decision really requires more technical details than you provided in the summary or the linked article.

If you do choose to make custom modifications to Rails (or any other third party dependency in your system), make them very carefully. Keep notes about what you changed, and why. Comment the modified source code with a consistent, searchable tag, like

// MYCOMPANY Begin custom changes
// Optimized this block for queries where the
// search string is only one word long, and
// measured a 20% performance increase on the
// production server under moderate load.
// 3-Jan-2009
...
// MYCOMPANY End custom changes

Also, check the third party source into your own version control system so that you can track the changes explicitly.

Since you are talking about making changes for performance reasons, be sure to follow good optimization practices. Measure first, optimize only the true bottlenecks. Measure under realistic scenarios. If optimizations are even slightly confusing or subtle, comment them thoroughly. Keep the original, unoptimized code, maybe just in comments next to the new code, or maybe in a separate "reference implementation" function so that you can fall back to a known reliable version.

Re:Hard to say, but... (1)

Lserevi (1270986) | more than 5 years ago | (#26312135)

I would add that you should try to hide the implementation of your customizations behind modules that can be easily adapted to use a standard extension if and when one becomes available.

Version Control (3, Insightful)

omb (759389) | more than 5 years ago | (#26313003)

I hate code full of company comment cruft.

Use a good VersionControl system, git, murcurial or Subversion if you must, __but__ keep the meta-data out of the code. If you use sensible tools you get all that, and its much easier to work with the upstream,

Re:Version Control (1)

Bazzargh (39195) | more than 5 years ago | (#26313425)

Agree 100% with the parent. You should be using version control. In fact, its such a common issue that there's even a term for what the original poster is asking about:

VENDOR BRANCHES

Go google that now. You can find more information for your system here...

* In (a) CVS book [red-bean.com]
* In the SVN book [red-bean.com]
* One method of doing this in bzr [ubuntu.com]

With git or mercurial, patch queue solutions are probably what you want - stgit or the newer TopGit for git, Mercurial Queues for mercurial. You want to use patch queues so that you have a clean idea of how to get from their code to your code - managing vendor code via merging branches means your code history is littered with merge info making your patches less clear to your maintainers.

No maintenance resources? (1)

helixcode123 (514493) | more than 5 years ago | (#26311979)

The poster states they have resources for making the customizations but not for maintaining them. Why not just use the same resources that made the customizations for the maintenance?

Re:No maintenance resources? (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26312069)

And theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and falsify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner!

Re:No maintenance resources? (0)

Anonymous Coward | more than 5 years ago | (#26312175)

Outside of software companies, most management considers spending time maintaining a codebase only slightly less of a waste than spending the time required to write good code - which is seen either as an excuse for laziness or as perfectionism. Employers usually expect maintenance-free software working soon and all time spent on software to go towards new features; even the best software team managers can only wrangle so many concessions before they're silenced by the imaginary profits shouting in upper management's ears.

Re:No maintenance resources? (1)

quanticle (843097) | more than 5 years ago | (#26312805)

Well, perhaps a developer has time now to make the changes, but won't have time later to maintain them?

Extend sanely (2, Informative)

Bantik (89939) | more than 5 years ago | (#26312027)

First off, I totally agree with Samschnooks that as a development team, that 5% is your responsibility, and what you're really getting paid for. But given your concerns about maintainability, and what I'm reading as your concern that custom code that you create may end up being addressed by the framework, I do have some advice.

See what of your own code can be crafted into a plugin to extend the framework. Rails plugins are quite easy to create and insanely easy to use.

Be diligent about abstracting the functionality that you need, keeping domain-specific business logic out of the plugin and in the application instead. You'll find that plugins are easy to write test cases for and will keep your custom logic very modular.

If someone else ends up releasing a plugin that addresses your needs, you can simply swap it out; the same applies if the framework gets extended to include what you need.

If maintenance is a real issue for you, release the plugin yourself as open source and recruit some assistance from the community. Chances are, you're not the only one in the world who needs the functionality.

Re:Extend sanely (-1, Offtopic)

Anonymous Coward | more than 5 years ago | (#26312051)

And theory that does not provide a method to falsify and validate its claims is a useless theory. Example; if someone said a watermelon is blue on the inside, but turns red when you cut it open, how could you prove them wrong? How could they prove they're right? You couldn't and they can't. There is no method available to confirm or disprove what was said about the watermelon. Therefore we can dismiss the theory of the blue interior of watermelons as being pure speculation and guess work, not science. You can not say something is true without demonstrating how it is not false, and you can not say something is not true without demonstrating how it is false. Any theory that can not explain how to both validate and falsify its claims in this manner can not be taken seriously. If one could demonstrate clearly that the watermelon appears to indeed be blue inside, without being able to demonstrate what colors it is not, we still have no absolute confirmation of its color. That is to say asserting something is the way it is, without being able to assert what it is not, is a useless claim. Therefore, in order for any theory to be confirmed to be true, it must be shown how to both validate and falsify its claims. It is circular reasoning to be able to validate something, without saying how to falsify it, or vice versa. This is the nature of verification and falsification. Both must be clearly demonstrated in order for a theory to be confirmed to be true or false. Something can not be proven to be true without showing that it is not false, and something can not be proven to be not true, unless it can be proven to be false. Unfortunately, Darwin never properly demonstrated how to falsify his theory, which means evolution has not properly been proven, since it has never been demonstrated what the evidence does not suggest. In the event that evolution is not true, there should be a clear and defined method of reasoning to prove such by demonstrating through evidence that one could not possibly make any alternative conclussions based on said evidence. It is for this reason we must be extremely skeptical of how the evidence has been used to support evolution for lack of proper method of falsification, especially when the actual evidence directly contradicts the theory. If it can be demonstrated how to properly falsify evolution, regardless if evolution is true or not, only then can evolution ever be proven or disproved. It will now be demonstrated that Darwin never told us how to properly falsify evolution, which will also show why no one can claim to have disproved or proven the theory, until now. It must be able to be demonstrated that if evolution were false, how to go about proving that, and while Darwin indeed made a few statements on this issue, his statements were not adequate or honest. In order to show Darwin's own falsification ideas are inadequate, rather than discussing them and disproving them individually, all that needs to be done is demonstrate a proper falsification argument for evolution theory. That is to say if the following falsification is valid, and can not show evolution to be false, then evolution theory would be proven true by way of deductive reasoning. That is the essence of falsification; if it can be shown that something is not false, it must therefore be true. So the following falsification method must be the perfect counter to Darwin's validation method, and would therefore prove evolution to be true in the event this falsification method can not show evolution to be false. As said before; if something is not false, it must therefore be true. This would confirm the accuracy of this falsification method, which all theories must have, and show that Darwin did not properly show how evolution could be falsified, in the event that evolution was not true. In order to show evolution is not false (thereby proving it to be true), we must be able to show how it would be false, if it were. Without being able to falsify evolution in this manner, you can not validate it either. If something can not be shown to be false, yet it is said to be true, this is circular reasoning, since you have no way of confirming this conclusion. Example; If we told a blind person our car is red, and they agreed we were telling the truth, the blind person could not tell another blind person accurate information regarding the true color of the car. While he has evidence that the car is red by way of personal testimony, he has no way of confirming if this is true or false, since he might have been lied to, regardless if he was or not. So one must demonstrate a method to prove beyond any doubt that in the event that evolution is not true, it can be shown to be such. To say evolution is true, without a way to show it is false, means evolution has never been proven to be true. If evolution be true, and this method of falsification be valid, then by demonstrating the falsification method to be unable to disprove evolution, we would confirm evolution to be right. Alternatively, if the falsification method is valid and demonstrates that Darwin's validation method does not prove evolution, then evolution is false indeed. Firstly, the hypothesis. If evolution is incorrect, then it can be demonstrated to be so by using both living and dead plants and animals. The following is the way to do so and the logical alternative to the theory. The fossil record can be used as well, but not as evolution theory would have us believe. In order to properly falsify something, all biases must be removed, since assuming something is correct without knowing how to prove its false is akin to the blind person who can not confirm the color of someones car. Since evolution has not correctly been shown how to be falsified, as will be demonstrated, we must be open to other possibilities by way of logic, and ultimately reject evolution by way of evidence, should the evidence lead us in such a direction. If evolution be not true, the only explanation for the appearance of varied life on the planet is intelligent design. This would predict that all life since the initial creation has been in a state of entropy since their initial creation, which is the opposite of evolution. If this be true, then animals and plants are not increasing in genetic complexity or new traits as evolution theory would have us believe, but are in fact losing information. This would explain why humans no longer have room for their wisdom teeth and why the human appendix is decreasing in functionality. The only objection to this claim that evolution theory would propose is that evolution does not always increase the genetic complexity and traits of an organism, but rather, sometimes decreases them as well. This objection is only made because we have only ever actually observed entropy in living creatures, which suits the creation model far better than evolution, which shall be demonstrated. If the creation model is true, we can make verifiable predictions that disprove evolution. For example; the creation model states that life was created diversified to begin with, with distinct "kinds" of animals, by a supernatural Creator that did not evolve Himself, but rather always existed. Without going into the debate on how such a being is possible to exist, it must be said that either everything came from nothing, or something always existed. To those who say the universe always existed; the claim of this hypothesis is that the Creator always existed, which is equally as viable for the previous logic. In order to demonstrate that the Creator is responsible for life and created life diversified to begin with, the word "kind" must be defined. A kind is the original prototype of any ancestral line; that is to say if God created two lions, and two cheetahs, these are distinct kinds. In this scenario, these two cats do not share a common ancestor, as they were created separately, and therefore are not the same kind despite similar appearance and design. If this is the case, evolution theory is guilty of using homogeneous structures as evidence of common ancestry, and then using homogeneous structures to prove common ancestry; this is circular reasoning! The idea of kinds is in direct contrast to evolution theory which says all cats share a common ancestor, which the creation model does not hold to be true. If evolution theory is true, the word kind is a superficial label that does not exist, because beyond our classifications, there would be no clear identifiable division among animals or plants, since all plants and animals would therefore share a common ancestor. The word kind can only be applied in the context of the creation model, but can not be dismissed as impossible due to the evolutionary bias, simply because evolution has not been properly validated nor can it be held to be true until it can correctly be shown to be impossible to falsify. One must look at the evidence without bias and conclude based on contemporary evidence (not speculation) if indeed evolution is the cause of the diversity of species, or not. It must also been demonstrated if the clear and distinct species do or do not share a common ancestor with each other, regardless that they may appear to be of the same family or design. In order to verify this, all that needs to be done is to demonstrate that a lion and cheetah do or do not have a common ancestor; if it can be demonstrated that any animal or plant within a family (cats in this case) do not share a common ancestor with each other, this would disprove evolution immediately and prove supernatural creation of kinds. However, since lions and cheetahs are both clearly of the same family or design, and can potentially interbreed, we must be careful not to overlook the possibility of a very recent common ancestor If such is the case, this does not exclude the possibility that the two are originally from two separate kinds that do not share a common ancestor previous to them having one. It is therefore necessary to build an ancestral history based on verifiable evidence (not homogeneous structures in the fossil record) that can clearly demonstrate where exactly the cheetah and the lion had a common ancestor. If no such common ancestor can be found and confirmed without bias, and this test is performed between two or more of any plant or animal life without ever finding anything to the contrary, we can confirm with certainty evolution did not happen, and that kinds do exist. In the event that fossils are too elusive (compounded with the fact that they can not be used as evidence of common descent due to circular reasoning e.g. homogeneous structures), then there is a superior and far more effective way to falsify evolution. Evolution states by addition of new traits (new organs, new anatomy) that the first lifeforms increased in complexity and size by introduction of new traits, slowly increasing step by step to more complex life forms. Notice that the addition of such traits can not be attributed to the alteration of old ones, for obvious reasons, since detrimental or beneficial mutations are only alterations of already existing traits, and can not account for an increase in the number of traits any given life form possesses. That means a bacteria becoming able to digest nylon is a mere mutation of already existing digestive capabilities, and can not be classified as an increase in traits. Evolution theory would predict that the process of gradual change and increase in traits is an ongoing process, and therefore should be observable in todays living animals and plants through new emerging traits that any given plant or animal did not possess in its ancestry. Those who say such changes take millions of years and can not be observed today only say so because no such trait has ever been observed to emerge or be in the process of emerging in contemporary history, which is what the creation model predicts. If evolution theory be true, we would expect that at least one animal or plant would contain a new trait or be in the process of growing such a triat over its known common ancestors (that is not simply a multiplication or alteration of a trait it already had). At this point, the fossil record can not be used as evidence to prove that evolution can produce new traits due to the fact that two animals that appear to be of the same family (T-rex and Brontosaurus, dinosaurs), while they do indeed exhibit distinct trait differences, may not have a common ancestor, but rather were created differently with all their different traits. It is therefore of paramount importance to show a single instance of such an increase of traits exists within a provable ancestry (stress provable) in contemporary times, and not assume anything concerning where the traits in the fossil record owe their origin. If it can not be shown that any animal or plant living today (or very recently deceased) exhibits any trait variance that can clearly and thoroughly be proven to be a new addition over its (stress) provable ancestors, compounded with the reasoning that two similar animals (such as a penguin and a woodpecker) do not necessarily or provably share a common ancestor, then evolution is clearly absent entirely, and supernatural intelligent design and creation is thereby proven beyond all reasonable doubt. In conclusion, should any two animals or plants within a family (a palm tree and a coconut tree) be proven to not share a common ancestor, or if no provable increase of traits can be demonstrated to be in its beginnings or actively present in the animals and plants living today over their provable ancestry, then The Bible is correct when it says God created all the animals and plants as distinct kinds with their traits to begin with. This is the only way to falsify evolution, and it is amazing (and convenient) that Darwin never encouraged people to attempt to falsify his theory in this manner.

hmm (1)

roland_mai (852416) | more than 5 years ago | (#26312059)

I don't quite see how using django solves your problems. If you want to use a particular vesion of rails and not upgrade, there's of course: rake rails:freeze:gems No updates means that your software will be out of date eventually. That's like saying, I have an ActiveX plugin that works only in IE7. What can I do to make it work with IE8 without doing anything?

welcome to the real world (2, Insightful)

speedtux (1307149) | more than 5 years ago | (#26312087)

Lots of tools have the property that they make the first 95% or so of the solution really easy and the remaining 5% nearly impossible. On balance, you're worse off than if you had done the whole project in another tool.

Build vs. Buy (4, Interesting)

michaelmalak (91262) | more than 5 years ago | (#26312123)

What you call "convention vs. customization" is really just a special case of "build vs. buy". You can research the standard factors that go into such a decision, but the most important one is whether the part you intend to build is both a) essential to the business and b) something that would give you a competitive advantage over buying.

modparentup (0)

Anonymous Coward | more than 5 years ago | (#26312627)

ergo

Depends on your perspective (1)

cerberusss (660701) | more than 5 years ago | (#26312153)

What have your experiences been with this problem? Have you found any best practices to avoid digging custom holes you can't climb out of?

What's your perspective here?

  • Financial
  • Manpower
  • Engineering

If you're looking at this from the financial point of view, I'd say that you now have enough experience to plan carefully. Also, the customer should know about and pay for maintenance.

From the manpower point of view, you might need more junior developers who can start with maintenance issues.

If you're just looking for engineering elegance, I'd say that's solved in the maintenance (tail) of the project as well. Be sure to have a senior developer keep track of the big picture in the maintenance phase.

I agree with the above poster. (4, Interesting)

Jane Q. Public (1010737) | more than 5 years ago | (#26312159)

I work on a major website, all done in Ruby/Rails. We, in contrast, have found that the tremendous ability to customize the framework is liberating, rather than constrictive.

Without knowing much more detail about your problem, it is difficult to give advice. Having created large, complex websites, and maintained them for long periods of time, we have yet to run into intractible problems as a result of the language or framework themselves. The fact that there are many large, complex Ruby on Rails websites being created and maintained by Fortune 500 companies also contradicts the idea that Ruby and Rails have serious, show-stopping shortcomings.

I strongly suspect that part of the problem is that you do not know your platform (in particular, Ruby) as well as you perhaps could. Ruby is very extensible via Gems that are freely available or that you can write yourself, or even just code modules. Rails is similarly, wonderfully extensible via plugins. Plugins are also freely available for just about every situation you can imagine, or again you can write your own.

Ruby is one of the most flexible languages in existence. Rails is hardly perfect, but any shortcomings are easy to code around by adding your own extensions. But expecting any framework to be complete for your purposes, before you begin, is pretty much wishful thinking.

Once again, I do not know enough about your situation. But if you expect any framework to be "plug and play" for very complex tasks, like an erector set, you will be disappointed. There is no substitute for knowledge of your platform, and programming ability.

Re:I agree with the above poster. (1, Insightful)

Anonymous Coward | more than 5 years ago | (#26312271)

Having created large, complex websites, and maintained them for long periods of time, we have yet to run into intractible problems as a result of the language or framework themselves.

I guess that means that you by "large and complex" mean that the codebase is large and the functionality is complex. Sites that are large in terms of actual traffic often run in to limitations caused by the framework(s).

Don't trust a framework until you've tested it under real load. The fact that some company uses a framework is not a guarantee that that it will work for you, or even that it works all that well for them.

NO, (1)

Jane Q. Public (1010737) | more than 5 years ago | (#26312455)

the site is large, in size AND traffic, and it has many complex functions.

We DO use it under real load, and we have no problems that have been directly traceable to either our chosen language or web framework!

On the contrary: most of our serious problems have been traceable to problems with our commercial host, EngineYard.

I feel compelled to add (3, Insightful)

Jane Q. Public (1010737) | more than 5 years ago | (#26312491)

that the other serious problems we have had have been programming bugs; but those bugs were due to our own coding or design lapses, not framework limitations.

Most people who speak of "limitations" to their framework are people who expect the framework to do all their work for them: this is simply unrealistic. If that were how it worked, it would not be called a "framework", but rather a "product".

Re:I feel compelled to add (1, Insightful)

smoker2 (750216) | more than 5 years ago | (#26313105)

Most people who speak of "limitations" to their framework are people who expect the framework to do all their work for them: this is simply unrealistic. If that were how it worked, it would not be called a "framework", but rather a "product".

I like that.
Equally, most people who dismiss Linux because of its perceived lack of something or other, are people who expect the computer to do their thinking for them (or at least restrict them to safe choices). If that's what operating systems were about, then we would all be using appliances.

Re:NO, (0)

Anonymous Coward | more than 5 years ago | (#26312745)

Approximate requests per seconds and response time during peak load?

Manage change, three ways (1)

davecb (6526) | more than 5 years ago | (#26312179)

The general answer is to manage the change you suffer, so as to keep it from getting ahead of you.

You can do this several ways, but the best requires you be the creator of the interfaces that are to change. If you are, you can make it easy for your customers (and your own team) to change asynchronously, basically by version-numbering your interfaces. Paul Stachour has a good talk on this at multicians.org [multicians.org] .

A primitive form of this is freezing your interfaces: once they're in the Application Binary Interface (ABI), don't change then until the hardware changes so much that everyone has to recompile (e.g., when switching to 64-bit). This is heavily used in operating systems, but not in the world of programming languages.

Finally, if you're the consumer of someone else's changes, steal a technique from the porting/migration community and automate your changes when your supplier forces you into them. One tools, aimed at Vim/Emacs users is "port", described at Strength-Reducing the Task of Porting [datacenterworks.com] . It only takes about 10 minutes to create a change-database entry and optionally a sed script, so you can make a controlled change of all your sources to match a vendor's newest brainstorm.

--dave

Just start replacing stuff (2, Informative)

level4 (1002199) | more than 5 years ago | (#26312197)

My company started writing a big app in Rails. We hit limitations (for us) fairly quickly so just started replacing the bits we wanted to work differently. The great thing about Ruby is you can just switch stuff in and out. The great thing about Rails is that it's well-designed enough that you can do that fairly easily.

Sessions, for example. We wanted to share sessions between sites, so just stopped using the Rails one and started using ours. We just put a new session class system in a gem, require it, and talk to that instead of the built-in. Works brilliantly and with a little finesse you can make it totally transparent.

I think the key is to think of Rails as a framework - as in, a literal scaffolding that you place things in. The basic structure is sound enough and very useful. It's filled with some useful default code, but if that doesn't meet your needs, feel free to start replacing it wih things that do.

Agreed (1)

Jane Q. Public (1010737) | more than 5 years ago | (#26312773)

One has to take the name "framework" literally... it provides a foundation, YOU provide the structure. Expecting your framework to be a complete solution in itself is like expecting a building foundation to be a complete home: you will be disappointed. And you will have nobody to blame.

Write Tests, Open Source, & use Rack (2, Interesting)

remitaylor (884490) | more than 5 years ago | (#26312217)

[test!]

A good test suite == "best practice to avoid digging custom holes you can't climb out of"

I work at a Rails shop too and, when I/we need to do something highly custom, we create it as a gem (or a Rails plugin) and post it somewhere incase someone else finds it useful. None of the plugins/gems I've released have required any maintenance to speak of, unless I've wanted to add additional features.

Be sure to write tests for your customizations (gem/plugin)! This will make it really easy to discover if your plugin no longer works for the next version of Rails/ActiveRecord/whatever it is you're extending.

[open source!]

If your changes might help other developers (they're not very, very specific to your product), open source them as a gem and let people know how to use it.

Not only can others benefit from your changes, but they can commit back too! Put the gem up on github[1], as it's the current de facto standard home for such things.

[rack it up!]

If you really need crazy performance out of Rails, look into using Rack[2]. Rails 2.3 (currently Rails Edge, will be released this month) *finally* uses Rack. Something like Rails Metal[3] makes it easy to return directly from Rack, letting you *highly* optimize certain requests. This is like rewriting some of your Ruby as C extensions to speed it up - Rack is really easy to use.

Good luck!

[1]: http://github.com/ [github.com]
[2]: http://rack.rubyforge.org/ [rubyforge.org]
[3]: http://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal [rubyonrails.org]

JRuby (3, Informative)

BrainInAJar (584756) | more than 5 years ago | (#26312237)

Why not deploy your app on JRuby, and if there are still performance bottlenecks, write those parts in real Java ?

That's rich! (0)

Jane Q. Public (1010737) | more than 5 years ago | (#26312809)

Haha. This is the first time in a long time I have seen anyone seriously suggest using Java for better performance...

Re:That's rich! (1)

BrainInAJar (584756) | more than 5 years ago | (#26312837)

For web stuff it's not bad.
Memory hungry, but faster than any of the other web frameworks/languages by a long shot

Re:That's rich! (3, Informative)

Per Bothner (19354) | more than 5 years ago | (#26313203)

Java is quite fast [debian.org] , thank you.

Re:That's rich! (1)

Tchaik (21417) | more than 5 years ago | (#26313243)

He's suggesting using the Java virtual machine, not programming in Java. Ruby's current implementation is notoriously slow, although this is resolved with the latest version of ruby (with the production version just around the corner)

Re:That's rich! (0)

Anonymous Coward | more than 5 years ago | (#26313261)

I think the suggestion was to use the java virtual machine to run the ruby app (with jruby), and then re-write the slow parts in java instead of ruby, calling the procedure from ruby (the rest of the app).

Re:That's rich! (1)

zuperduperman (1206922) | more than 5 years ago | (#26313769)

This is the first time in a long time I have seen anyone dumb enough and ignorant enough to trot out that old line.

Java blows ruby out of the water on the server side any way you like to measure it. In fact, for a lot of uses it competes pretty well with C / C++.

Re:That's rich! (1)

Jane Q. Public (1010737) | more than 5 years ago | (#26314125)

I am aware that Java is generally faster than Ruby. But it ISN'T fast. It is anything but.

The only reason it is even acceptable in a lot of situations today is because the hardware has gotten so much faster.

Re:That's rich! (0)

Anonymous Coward | more than 5 years ago | (#26313973)

Haha. This is the first time in a long time I have seen anyone seriously suggest using Java for better performance...

Well, haha back at you. The late 90s are over, and any Java VM worth its salt uses JIT compilation that puts its performance within striking distance of pretty much any other language or platform; pure Java tends to be a lot faster than pure Ruby, so I don't know why you would be surprised at the suggestion that bottlenecks could be reasonably rewritten in Java. The performance benefit from that type of thing is probably more than you would get by rewriting Java bottlenecks in C, so it seems perfectly reasonable to me.

Why do you think most new languages are being designed to run on the JVM? Here's a hint: it's not because Java is so great, it's because the JIT compilers that it uses these days are better than the JITs for any other environment around. Sun may suck a big one, but at least they got one thing right, and that's server-side execution speed.

Re:JRuby (0)

Anonymous Coward | more than 5 years ago | (#26313151)

LOL at "optimizing" by writing stuff at the "bare metal" Java layer. You kids make me laugh.

Re:JRuby (0)

Anonymous Coward | more than 5 years ago | (#26313403)

I don't think anyone suggested that it's as fast as bare metal, just better suited to the task than bare metal, and relatively quick none the less.

Contribute (2, Interesting)

RAMMS+EIN (578166) | more than 5 years ago | (#26312239)

``Our biggest worry isn't necessarily that we don't know how to customize, but rather that we won't have the resources to maintain customized code going forward; it's quite simple to update Rails as it matures versus the alternative.''

As Alan Kay said, the best way to predict the future is to invent it. If you are worried about your useful code being broken by a future version of Rails, contribute it to Rails so that that future version will include it. Or, if you can't get it into the framework, make it available as a separate plugin.

Assuming that it's ok to share the code and that the code is useful outside your project, this will allow open source to work for you and ease your maintenance burden. If it's not ok to share the code or it isn't useful outside your project, then it's part of the project and the project will have to carry the cost.

I wouldn't (1)

r (13067) | more than 5 years ago | (#26312353)

Maintaining custom patches for a foreign codebase is going to be painful, proportionally to the number of patches, and how badly spread out they are through the codebase.

Consider this: every time the Rails team changes things, you'll have to go through your patches and make sure they still apply correctly. And if, heavens forbid, they do some major refactoring, you'll have to spend the time figuring out what functionality got moved where, and re-apply the patches as necessary.

My project was maintaining a custom set of patches for a major open source library for a while, and it was fairly labor-intensive: every time the library provider released a new version, a senior engineer spent a good part of a day going through the codebase and repatching it, testing the new version, etc. The problem was, however, that they released new versions frequently, and we needed them as soon as they were released.

If your patches aren't going to migrate upstream, I'd be very wary of spending a lot of time maintaining them as the core library keeps evolving. Try to measure how much time it would take to update your local patched Rails when they release a new version (especially a major one, if you can), and project future work estimates from that.

For us, we ended up sacrificing functionality for development speed, and we switched to a less capable library that worked right out of the box without endless patching.

??? Why ??? (1)

Jane Q. Public (1010737) | more than 5 years ago | (#26312829)

You could have just forked the library, and kept your own code (and version) rather than updating to the latest of their version. Your "solution" puzzles me, as it seems to be shooting yourself in the foot.

Re:I wouldn't (1)

quanticle (843097) | more than 5 years ago | (#26312877)

Consider this: every time the Rails team changes things, you'll have to go through your patches and make sure they still apply correctly.

If that's a major chore for you, may I suggest investing in a test suite, so that you don't have to go through manually and test all your patches?

The problem was, however, that they released new versions frequently, and we needed them as soon as they were released.

What sort of features were they adding that made it necessary for you to upgrade so frequently? Might it have been possible for your team to not upgrade to the latest version every time?

Re:I wouldn't (1)

r (13067) | more than 5 years ago | (#26313265)

If that's a major chore for you, may I suggest investing in a test suite, so that you don't have to go through manually and test all your patches?

Yes, that would help with testing, but also multiplies the work: now you have patches and the new test suite to maintain and shepherd through upgrades. :)

Testing patches actually wasn't the main obstacle. The far bigger time sink was when some patched piece of functionality moved over to a different location in the codebase. Then the engineer had to go and become familiar with their changes, find how things got rearranged, and adopt the patch to the new code. That's a lot of unnecessary work just to maintain the status quo.

As for whether we needed to upgrade so frequently - yeah, we actually did. Hopefully the OP doesn't, though. :)

Re:I wouldn't (1)

SanityInAnarchy (655584) | more than 5 years ago | (#26313505)

Consider this: every time the Rails team changes things, you'll have to go through your patches and make sure they still apply correctly. And if, heavens forbid, they do some major refactoring, you'll have to spend the time figuring out what functionality got moved where, and re-apply the patches as necessary.

So write plugins, instead of monkeypatching.

Better yet, use a framework like Merb, which has a well-specified Plugin API. Stick with that, and your plugin will work for at least the rest of Merb 1.x. If there's something you can't do with only the plugin API, that is considered a bug.

Merb 2.0 will also be Rails 3.0, so alternatively, wait until then -- Rails will then have a plugin API also.

Open Source (1)

burnin1965 (535071) | more than 5 years ago | (#26312411)

Our biggest worry isn't necessarily that we don't know how to customize, but rather that we won't have the resources to maintain customized code going forward; it's quite simple to update Rails as it matures versus the alternative.

Since you are benefiting from the open source nature of ruby on rails shouldn't you simply provide your customizations back to the ruby on rails project so they can be maintained as part of the the framework or start an open source project separate from ruby on rails where the community can assist in maintaining it?

Re:Open Source (1)

quanticle (843097) | more than 5 years ago | (#26312897)

It depends on the nature of the customization. If the customization is fairly domain specific, then neither of the above two scenarios work, since there may not be enough interested people within the community to take on the burden of supporting the project.

Re:Open Source (1)

Bill, Shooter of Bul (629286) | more than 5 years ago | (#26313813)

I've tried doing similar things. Possible outcomes:
  1. Project accepts your code. (all is right with the world)
  2. Project rejects your code, because they have a different plan for solving the problem ( 2 major releases away!)
  3. Project denies that the problem exists

I've experienced all three. The second two, are far more likely than the first.

there is no such thing as non conventional web app (1)

gert cuykens (1444235) | more than 5 years ago | (#26312451)

As the evolution of browsers is going right now you should not need a framework anymore. Just a good js/as3 custom team and a rails/python server team. My example http://code.google.com/p/appwsgi/source/browse/trunk [google.com]

Turn customization into profit..... (1)

goffster (1104287) | more than 5 years ago | (#26312471)

When you know the true cost of customization, then charge what it is worth + x%. Allow the true cost to fund the resources necessary to keep it in order.

Reality check (1)

The Clockwork Troll (655321) | more than 5 years ago | (#26312507)

If the framework is good,
And your team is good,
And they have thought hard about how to express their design problem in terms of the framework, and found it wanting,

Then perhaps it is not The Best Framework for your team.

If that seems like an oversimplification, consider it another way:

What is your product, and how many resources do you have?

How much time you do you want to be spending tweaking frameworks?

Language is not the answer (1)

woboyle (1044168) | more than 5 years ago | (#26312515)

After 25 years in the architecture and development of application frameworks and transaction processing systems (used by major manufacturers world-wide) I have come to the conclusion that selection of a language is not the answer to software (and framework) entropy. Over the past several (10) years, I have been exploring MDA (Model Driven Development) as a possible solution to this problem, with some positive results. Long term, I see that robust modeling tools with advanced code generation capabilities as a much more robust means of dealing with environmental and process changes. Unfortunately, current tools are just becoming useful in this regard. My current preferred tool set is Sparx Enterprise Architect, but it is still too difficult to generate a domain-specific framework model that can reflect an adaptive approach to the problem.

Re:Language is not the answer (1)

msuarezalvarez (667058) | more than 5 years ago | (#26312899)

You surely managed to make it sound important... ;-)

Re:Language is not the answer (3, Informative)

quanticle (843097) | more than 5 years ago | (#26312937)

I still remain skeptical about the benefits of model-driven-development. I recall that, at the latter end of the 1980s, developers were promised much the same thing with the push toward CASE tools. Of course, developers and managers quickly learned that such tools were only of use in a certain limited number of scenarios, and that attempting to use those tools outside of the scenarios for which they had been designed quickly led to the same problems.

Frankly, I'm not sure that "software entropy" is solvable by any sort of tool or language. Rather, it is solved by training developers to write tests, and enforcing certain minimum style standards on the code, so that any developer can look at any portion of the codebase without feeling too unfamiliar with it.

best Practice #1 (0, Troll)

QuietLagoon (813062) | more than 5 years ago | (#26312619)

Have you found any best practices to avoid digging custom holes you can't climb out of?"

.
Best Practice #1 - don't use Ruby on Rails. It is a dead end.

Rails is alive, get used to it (-1)

Anonymous Coward | more than 5 years ago | (#26312717)

Don't use Rails if you're not planning to maintain your app. Both Ruby and Rails are very dynamic and value doing it better over backward compatibility, and if you don't want to keep up with that you'd better choose something Perl or Java based that isn't likely to change anymore because it's yesterday's technology anyway. Have you looked into the latest changes in Rails, namely the whole Rack/Merb merge thing? You might find answers to your performance issues there.

As to convention vs customization, my answer is modularize--outfactor the nonconventional parts and write simple interfaces and tests for them. Pluginize them. And if they're not very specialized, git them out there so other people can adopt them and help maintain that code.

Re:Rails is alive, get used to it (1)

msuarezalvarez (667058) | more than 5 years ago | (#26312911)

Pluginize, git them out, outfactor. You are kidding, right?

JEE tech is too complex and fragile (3, Interesting)

presidenteloco (659168) | more than 5 years ago | (#26312761)

We are well into a project that has JBoss SEAM as its basis, but required significant mods to give us multi-database capability and a FLEX front end. So instead of a community maintained opinionated meta-framework, we now have our own super complex, fragile framework cluster(****).

It is also effectively a dense, opaque yarnball. The stack traces of exceptions are so long, due to the interceptor architecture, that the Java stack trace displaying algorithm gives up and prints ...

So my advice would be, at the risk of trolling, but I intend it as a serious debate position, don't start with something as excessively complex as JEE technology.

Because JEE technology is barely manageable, maybe, if you stick EXACTLY to the most popular opinionated meta-framework for it, but if you deviate off the straight and narrow path, you are on your own in a dense jungle with a dull machete.

Going... (1)

eigenstates (1364441) | more than 5 years ago | (#26312813)

First, PLEASE no more going forward. It's silly and makes any words after sound like... I don't know. I just tune out after I hear that. It's filler. Where else would one be going in that sentence? Are we in fact going anywhere?

Second, trying to answer your question-

1. Don't write custom code. Find some other more generic way to do it or someone that already has. Blame them when it breaks with any framework upgrade- see the horrors of Drupal upgrades.

2. Write it and write it well with documentation. I just re-read some notes on programming philosophy that I always repeat in mantra- program to the interface (or abstraction). Write it portable so the maintenance is actually in the implementation as opposed to the library. As one poster suggested- submit your lib to the repository for other to perfect and use- especially with Rails which is built on submissions like this.

3. Write it in Logo. This ensures job security if it is used. More likely they will shout and throw little turtle icons at you.

Personally, I am still in the camp of writing more internally than using libraries outside the framework core. It keeps the app unique and just buggy enough to have a job to come back to :) There are other more serious reasons such as the family aspect that self authorship bring to a team- "We did that" really makes the team feel very good at the end of the day.

Ask Slashdot (4, Insightful)

starrsoft (745524) | more than 5 years ago | (#26312819)

FTFA:

So we have two basic options: pay for bigger hardware, or spend more time writing/maintaining custom code that allows us to live on our existing hardware.

Hardware is Cheap, Programmers are Expensive [slashdot.org] :

Given the rapid advance of Moore's Law, when does it make sense to throw hardware at a programming problem? As a general rule, I'd say almost always. Consider the average programmer salary here in the US. You probably have several of these programmer guys or gals on staff. I can't speak to how much your servers may cost, or how many of them you may need. Or, maybe you don't need any--perhaps all your code executes on your users' hardware, which is an entirely different scenario. Obviously, situations vary. But even the most rudimentary math will tell you that it'd take a massive hardware outlay to equal the yearly costs of even a modest five person programming team.

Ask Around (1)

Radhruin (875377) | more than 5 years ago | (#26312853)

Chances are, someone in the community has experienced your very problem, and it's likely someone has a solution already. At the very least, you'll get some ideas from people who actually use the product.

Simple (1)

bytesex (112972) | more than 5 years ago | (#26312919)

Just deal with the other 5% in the 'old fashioned' way; using CGI or C - doing everything from the ground up. And if somehow you can't - because you can't just get the session state from the ruby framework, or you can't get the style sheets from it, then you have to wonder why not. And blame ruby for it, not yourself or CGI.

Use Rack to factor out the 5% (1)

jfmiller (119037) | more than 5 years ago | (#26313047)

Keep your code and use Rack to factor out the last 5%. You can keep you code base, and still get your performance. Merb is a an excellent tool for this. It is similar enough to rails to be easy to pick up, but it is light weight and has the ability to run a small application in a single file.

Without knowing how tightly coupled that 5% is it is hard to be more specific, but definatly look into Rack.

Extend (1)

chrysalis (50680) | more than 5 years ago | (#26313059)

Ruby is a very dynamic language, that makes it easy to extends and to customize classes. Rails itself is designed to be extended using plugins. You can write a plugin that won't define any new class, but that will just add or replace methods from Ruby, Rails or other plugins. This is really a great feature of Ruby, that avoids a lot of hassle.

Re:Extend (1)

zuperduperman (1206922) | more than 5 years ago | (#26313725)

He's not worried about how to extend it. He's worried about how to maintain those extensions when rails itself changes - which is a particularly acute problem with dynamic languages like Ruby and the very extension methods you are advocating.

Since there are no statically defined interfaces or type checks you are going to have hundreds of silent / subtle bugs appear as you upgrade rails if you are not careful. (Careful probably means documenting the changes to the extreme and implementing a huge wad of unit tests to exercise every possible code path).

Go with proven technologies... (1)

tomtermite (246492) | more than 5 years ago | (#26313257)

With over ten years under its belt, WebObjects has proven very beneficial to our company. Of course, Java developers are sometimes hard to find, and the learning curve for WebObjects can be steep, but the community is tight-knit, and the Wonder (open source) frameworks have addressed that persnickety 5% you describe...

After all, iTunes, UPS and other enterprise solutions show that a core set of frameworks, scalable architecture, and talented developers can yield a business model that works.

integrate into your process (1)

bugi (8479) | more than 5 years ago | (#26313305)

Integrate the rails hacking into your release process.

* import rails into your scm -- one that has good branching and merging

* regularly update your scm rails trunk to recent upstream release

* branch rails locally as part of your release process. that includes using the branched release in QA.

* get as much of your local changes as possible merged upstream! it's a pita to start, but your effort will be rewarded.

Use the right tool for the job.

* use standard APIs so you can switch back and forth between your implementation and others' easily. when possible, of course; not all commonly used APIs are well thought out.

* if rails doesn't do something well, use another tool that does. examples:

** regenerating content all the time? look at memcached.

** need local disk-backed storage? sqlite, not mysql/pg/etc.

* are you sure rails is your bottleneck? not disk-wait for your database?

Good frameworks provide flexibility (2, Interesting)

Anonymous Coward | more than 5 years ago | (#26313819)

The true differences between frameworks are inevitably revealed as soon as you try to build a product of significant complexity. A truly flexible framework makes it easy to override, overload, or otherwise replace functionality WITHOUT having to modify the framework itself. This has long been my issue with a number of web frameworks implemented in a variety of frameworks. There are many frameworks that will make a fairly simple form based web application come together very quickly. If you've got 5-10 forms, a simple data model, and low enough load to run on a single host, there are lots of frameworks that will let you churn out an app in the blink of an eye. But as soon as you have a sophisticated and complex data model, loads that require scaling not just the web layer, but also the persistence layer, across multiple hosts and even multiple data centers, and you have to support a variety of views (html, web services, json for ajax, iphone, pdf, etc), a lot of frameworks fall completely flat and are unable to help and, in many cases, become an active obstruction.

It has been a number of years since I seriously investigate RoR for a web project because the vast majority of my work involves very high performance and high volume sites and when I looked into RoR, it offered no easy mechanism to work cooperatively in a cluster with any more sophistication than sticky load balancing and a single shared db. I'm sure it is much improved since then, but every time I take a quick look-see, it still seems to be very lacking - not just in scalability, but in extensibility in general, and I just can't tolerate that.

There aren't many frameworks that I've encountered that offer the kind of flexibility to really allow you to take our app any direction you want to go. The one that does requires a fair bit more work up front, but boy does it pay off as soon as you have to get sophisticated. Of course, it is native to the language everyone round here loves to hate, Java, but I highly recommend you look into Spring and SpringMVC. Plug in any persistence mechanism you like, including a mixed persistence layer. Plug in any view technology you like. Use AOP to handle cross cutting concerns. You have the flexibility to replace any built-in component with an implementation of your own, so you are never required to modify the source code of the framework itself.

At every turn, SPring has provided the flexibility I've need to build very sophisticated applications for a number of years now. It will take quite a bit to move me to another platform for anything but the simplest of apps. I recommend you check it out. The fact that it runs in a language that is 25x faster than Ruby doesn't hurt any, either. And the ecosystem of useful code is larger for Java than for any other language I'm familiar with. JEE is needlessly complex, but you can do just about everything JEE does via Spring with a tiny fraction of the complexity, and for the very few things spring won't do, Spring will happily expose JEE directly to you. Oh, and I gather it runs in .NET, too, though I have no idea if it is quite as functional, since it is developed from a java-centric paradigm.

Do mixins help? (0)

Anonymous Coward | more than 5 years ago | (#26314149)

How are you customizing?

Early on with Rails we had all sorts of issues - usually with the database drivers - that we "fixed" by using mixins. It meant that we didn't touch core code, but we could slot in alternative functionality wherever it was required. Our code tended to break with each new release of Rails, but our tests showed up the weak spots straightaway.

I could be wrong, but I believe that with mixins Ruby itself gives you a mechanism, while not perfect, gives you something of what you need - the ability to break convention where you have to.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>