From what I'm reading, ROR is trying to do everything behind the scenes for you and therefore is slow and immodest (and ultra-high and not ready for prime time).
Well, first of all, you should not believe everything you read on the Internet:
- I would not say that RoR is not ready for prime time. RoR, like any tool, uses it. If you are building a site, such as Twitter, Rails is not the best tool (as Twitter found out). Although everyone thinks they are building a high-performance site, most developers do not, and Rails is likely to be suitable. In addition, Rails can scale, and much work has been done to improve this situation even further.
- The reason Rails sometimes has performance issues is not because it tries to do everything for you - it's more because of the nature of the Ruby interpreter itself, which (while Ruby 1.9) was pretty slow, and still not so same as other interpreted languages.
And the first thing that surprises me in Django is that there seems to be no innovation talking about the actual presentation. All the innovations were related to database problems, business logic, code reuse, etc., but in reality there is nothing new in regard to innovative visual controls or graphics for a website.
Yes, but this is an innovation. Prior to frameworks such as Django and Rails, many of these backends were manual. Django frees up developer time to work on additional application-level features.
And I would have thought earlier that html could be similar to assembler, so a regular application developer from past years could know and sometimes even use a small assembler, but usually it’s hardly ever used it, whereas from what I see, html (as well as CSS and javascript) still need to be constantly mastered and written by every web developer, whether they use Django or anything else. Is this a true statement?
Yes, to a large extent. Nothing better than HTML, CSS and JS. Although I agree that, in a way, HTML seems to be "low level" in the same sense that assembly language is low level, I think most would agree that it’s much more pleasant to work with the problem area of HTML.
Will Django be used in conjunction with something like Flash or even Java applets?
You can. Flash and Java are simply embedded in HTML pages, and Django spits out HTML, so that’s possible.
Are there really complete websites written exclusively in Java, possibly using the highest level Java APIs? Why did someone say (as I read somewhere) that they despise Java, so they ended up in Ruby on Rails and Django.
In addition to applets, you can write a backend in Java (for example, Java server pages). I think most web developers who have worked with both will agree that Ruby and Python are much nicer than Java. Java web frameworks are a pain, Java lacks REPL, Java has a separate compilation step ... Java is also statically typed; you can argue all day about the benefits of dynamic typing and static typing, but Rails and Django take advantage of the input and introspection of Ruby and Python to make a lot of code less verbose than Java. (Regardless of whether Ruby and Python do better than Java subjective.)
And as for Python (as well as PHP), what is the justification for their existence? First of all, Python is much, much slower than C ++ being interpreted. Why websites written in Python or PHP are platform independent, the only problem here. I am incredulous that application development is much faster in Python than C ++ (except for the problem with garbage collection - this is the main reason for Python - garbage collection).
Performance is not everything. Almost everyone wants to think that their code is performance critical, but often it is not. As noted in several other answers, most web applications are connected with I / O binding in any case - they either wait for access to the database or wait on the network, and both of these types of operations are several orders of magnitude slower than the task processor, even with slow (er) interpreted languages. In addition, there is a lot of processing in strings in web applications, and string processing is much better in Python or Ruby than, for example, in C or C ++. Python and Ruby are also more concise languages, and both offer REPLs that can shorten development time. It's also easy to write C extension modules in both Python and Ruby, so if you really find the code path that causes the optimization, you can always go down to C if you want.
Garbage collection is a plus.