Why does Android use the Java concept instead of D or C or C ++? But the Chromium web browser is in C ++, its a very complex match

Android is a 32-bit ARM. wiki

Description:

1) So, a 32/64 or 8/12/16 bit compiler is available with the D language if it cannot be created by the compiler, if I am not mistaken?

2) The standard Linux kernel: libraries written in C and other languages ​​can be compiled for ARM with the D language that I believe in, and the C language is also possible with C / C ++.

According to the Android wiki, my confusion begins:

  • wiki: A modified version of the Linux kernel (it is not linux, but its modified linux, due to hardware compatibility? So I can not use RPM packaging? Because its not standard Linux anymore?)

  • wiki: Although most Android applications are written in Java, there is no Java virtual machine in the platform, and Java bytecode is not executed. Java classes are compiled into Dalvik executables and run on a Dalvik virtual machine. Dalvik is a dedicated virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and a processor. J2ME support may be provided through third-party applications.

Question: Why only Android is not written in either D or C / C ++? Instead of dealing with all these riots, is it the only company that has proven that Bigtable needs them (the world problem cannot solve the problem), and on the Mobile platform, changes like Android are also needed? What happened to the iPhone / Nokia implementation?

Question: Why Android does not launch the JVM, but they create the concept of Java, does alternative JVM processing, instead of doing the same thing as MeeGo or others. Is it marketing terms or is it a technical term? Could it be written in C / C ++ or D only for all Android? Instead of incorporating Java concepts or Mess concepts?

if so, then the Chrome browser, why did they use C ++ again? Why not just follow Java also for Chromium-web?

All about how to use it in practical life, for me again, just know why they made such a mess for Android? Are we then ready to learn programming languages ​​at the university incorrectly (knowing later about Big Google just used Java for Android)?

Thank you in advance for valuable advice on this.

+7
source share
3 answers

Why is only Android written in either D or C / C ++?

Because none of them is a fully controlled language. D is garbage collection, but you can also manage manual memory management ... with all the risks that this entails.

In addition, since starting from a Java base (in the form of Apache Harmony, etc.) means that:

  • Java developers will be able to switch to Android and
  • for Android developers there will be less.

However, as @Marchy notes, the original solution was not made by Google:

"... Google did not create Android. [Android Inc] was the launch that they bought, and as a launch you use anything to eat and optimize to gain FAST momentum and with VERY limited resources ...."

Although it’s obvious that Google did have a hand, because (according to Wikipedia ) Google helped fund Android Inc before the buyback.

Why Android does not launch the JVM, but they create the concept of Java, does alternative JVM processing.

Ultimately, since the limitations that Sun / Oracle places on the Java language and platform would make it impossible to innovate in the way Google did with Android. In particular, Sun / Oracle will not license vendors to implement Java SE on mobile platforms.

We study programming languages ​​at the university incorrectly.

Maybe you did!

But when I studied programming at the university, I knew that I would never use some of the languages ​​I was taught about. For example, I never used Algol-60, Simula-67, SNOBOL or CDC assembly language. But this did not lead to the invalidity of the reasons for which they were taught, or the valuable lessons that I received in their study.

+16
source

I would suggest, because many programmers are familiar with Java and Java, since all its errors as a language, excellent support for libraries and tools. In addition, the VM pointer layer prevents applications from connecting too closely to the hardware.

+4
source

There are many Java programmers, an entire ecosystem to rely on. Much more than D: p An operating system that works with most of the programs for it in a virtual machine has good security benefits (http://en.wikipedia.org/wiki/Language-based_system). But executing some exception for a very important application, from the point of view of the user, can help in performance. The choice of a specific JVM seems clear to have something tailored to typical embedded resources. I think Google’s choice is pretty pragmatic in that regard.

For (in Russian) teaching languages ​​at a university, I don’t think about learning the latest fashionable language. He learns to study computer technologies such as programming languages. The concepts have not changed much since, say, 1960, 1970, although this is normal, their implementation is different.

+2
source

All Articles