# Questions > "The more you know, the less you know" This list of questions will keep record about the evergrowing number of things that "could" benefit from being answered, or at the least being asked. ## Concept * Each question here can feature "thoughts" that describe, or elaborate on the questions background. * For each a list of potential imperfect or outright "wrong" answers are provided for the "be-spass-ment/be-lustig-ing of the estimed" reader. * Free speech (as in USA 1st Ammendment should be assumed). Imperfect and lacking copies of that "i.e. the pity of German GG Meinungsfreiheit" is not enough and a grain of salt is recommended * Links to Q&A sites (e.g. stackexchange) is provided * Unpolishedness is and error is the required ingredient to provoke appreciated of true beauty..., * Imperfection resuscitate! * I like smileys, but not as much as I would wanna use unicode, so ASCII all the way `;-p` ## List of Questions ### Is Ubuntu the Windows of the Linux world? * Maybe the Dbus and the whole XDG totally is totally frustatring, needlessly "provoking excess complication" of principly understandable principles? * Are there enough similarities? ``` - Ubutu (when choosing among linux Distros) is like choosing Windows, mostly a decision of afraid "cover-your-ass" management - is "snapd" a great way to infringe the value of "packages" (one could argue a core value proposition of distributions as in "set of packages"). - Install is GUI? - Configuration is GUI? - Targeted noob users? ``` ### What is the point of Android Studio ? * Maybe, to install bloated software from Google, why? * As with Ubuntu vs KISS-Linux, the GUI-klicki-bunti should "empower" the noobs which one could argue below some level of mastery are better adviced to leave it to the "adults". If you need an IDE to work... . ### What is the point of Gradle in Android build? Advertised as a "help/assistence" with dependencies, it strikes the at first sight by not even being able to setup the JAVA and furthermore the ANDROID SDK... `:*(` ? * now you might say, well it "uses java" so it is a "hen-egg-issue" ? * then however the whole "we go back to `gradlew` (yes we can spell it gradlew, why even say `gradle-Wrapper-script` or similar.... )" is basicly a shell script * worse it it a "dual-boot" inclode the WINDOWS-NOOBS (did we mention that using windows .... (fun!!!) * anyway, bottom line is that of all the dependecy management, gradle is "at best" only able to "help"(loosing the word rather loosely here) with the `*jar` help * Is gradle an elaborate joke? Is Java's ideas a joke? * why is it so "slow" * why does it need to setup a daemon (making eversomore unfit for being quickly spun-up in the CI/CD) * I know that Makefiles are hard and have shortcomings.. but the comparison of "overly complicated groovy, now kotlin-DSL" (and no it is not the internet conntion DSL, rahte the "we so cool, we so industry-standard-ish") * is Gradle possible because people rightly were dsappointed, annoyed, "blessed" by the `XML shitiness` (yes ANT looking at you) * Does the madness of `AndroidManifest.xml` which we then have to make into a "binary" version because of the verbosity of the XML sucks... * why is there just no case in which XML did not start stinking , when scaled??? ### What is it with the JAVA VERSIONS and ANDROID ? (aka. which SDK to install to build android packages, when also using gradle) Riddle me this: Java versions????? Somehow there is Java "8" (which we refere to also as 1.8, just to show our willingness to confuse needlessly, because we actually thrive to make it harder for others?) This java version however appears to not have "been enough", why? (probably had not enough "compiler" or there siging-tool was not great enough??) * when Java 1.8 can be Java 8 and clearly the "class-version" is somewhere in the 30-65 range and this is great? * then... we should definitively use API-Level versions of Android that are like 20-34 instead of sticking with the "commenplace, as told in the smartphone webshop" `Android 13 -> 14 -> 15`... * also we should require "gradle" to run on JAVA 17 , while there is 2024 also JAVA 21 (mind that is in relation to the `8` as in `.8`) while the Android API-leve 33 requires JAVA JDK version 11 * and of course let us have `JDK` and `JRE`, because again, confusion is king, we need to use abreviatios AND acronyms, best way to have stuff "working"? * and then which JDK "brand", as of course there is the "original" SUN (stolen by Oracle? well it was captialism.... right?) well anyways I am even unsure how "ethicly better SUN was" but well then there is OPENSDK * and so which version is needed? * and then with what is "compiled" we need to do `dalvik` , well or we "did" , or is there again something new? * is this all in KOTLIN or JAVA now? * what is it with the verbosity of `import ....` of everything and required pain of `try...catch` for exceptions one does plainly not care that much about (how often do people recover and __wanna__ recover the IOException, is this a "broken hard-disk/ssd?" * why require all the "helpful" verbosity in JAVA to then have to divert all that to "automagic" in IDES.. i * why does developing in this world (which at its core is supposed to be "linux/unix" beauty) is such a "pain", because it is populated by the noobished accepting people * will AI help it? * [INFO](https://developer.android.com/build/jdks#compileSdk) > Android API-Level 33 requires JAVA 11, gradle somehow could imply JAVA 17, attention there is JAVA 21... * With JAVA versions being 11,17,21 one is tempted to asume the versions are similar to Ubuntu versions ... but are they? ### What is it with the ANDROID NDK versions anyway? * using the "great peace of software" (clearly nothing that a direct FTP-style server could not have made better) `sdkmanager` on sees the best version confusion possible ``` #> SOME_MAGIC_COMMAND_LINE_involving_`sdkmanager --list` lines numbered via `nl` 56 build-tools;34.0.0-rc1 | 34.0.0 rc1 | Android SDK Build-Tools 34-rc1 57 build-tools;34.0.0-rc2 | 34.0.0 rc2 | Android SDK Build-Tools 34-rc2 58 build-tools;34.0.0-rc3 | 34.0.0 rc3 | Android SDK Build-Tools 34-rc3 59 build-tools;35.0.0 | 35.0.0 | Android SDK Build-Tools 35 60 build-tools;35.0.0-rc1 | 35.0.0 rc1 | Android SDK Build-Tools 35-rc1 61 build-tools;35.0.0-rc2 | 35.0.0 rc2 | Android SDK Build-Tools 35-rc2 62 build-tools;35.0.0-rc3 | 35.0.0 rc3 | Android SDK Build-Tools 35-rc3 63 build-tools;35.0.0-rc4 | 35.0.0 rc4 | Android SDK Build-Tools 35-rc4 64 build-tools;36.0.0-rc1 | 36.0.0 rc1 | Android SDK Build-Tools 36-rc1 65 build-tools;36.0.0-rc3 | 36.0.0 rc3 | Android SDK Build-Tools 36-rc3 66 cmake;3.10.2.4988404 | 3.10.2 | CMake 3.10.2.4988404 67 cmake;3.18.1 | 3.18.1 | CMake 3.18.1 68 cmake;3.22.1 | 3.22.1 | CMake 3.22.1 69 cmake;3.30.3 | 3.30.3 | CMake 3.30.3 70 cmake;3.30.4 | 3.30.4 | CMake 3.30.4 71 cmake;3.30.5 | 3.30.5 | CMake 3.30.5 72 cmake;3.31.0 | 3.31.0 | CMake 3.31.0 73 cmake;3.31.1 | 3.31.1 | CMake 3.31.1 74 cmake;3.6.4111459 | 3.6.4111459 | CMake 3.6.4111459 75 cmdline-tools;1.0 | 1.0 | Android SDK Command-line Tools 76 cmdline-tools;10.0 | 10.0 | Android SDK Command-line Tools 77 cmdline-tools;11.0 | 11.0 | Android SDK Command-line Tools 78 cmdline-tools;12.0 | 12.0 | Android SDK Command-line Tools 79 cmdline-tools;13.0 | 13.0 | Android SDK Command-line Tools 80 cmdline-tools;16.0 | 16.0 | Android SDK Command-line Tools 81 cmdline-tools;16.0-alpha01 | 16.0.0 rc1 | Android SDK Command-line Tools 82 cmdline-tools;17.0 | 17.0 | Android SDK Command-line Tools 83 cmdline-tools;2.1 | 2.1 | Android SDK Command-line Tools 84 cmdline-tools;3.0 | 3.0 | Android SDK Command-line Tools 85 cmdline-tools;4.0 | 4.0 | Android SDK Command-line Tools 86 cmdline-tools;5.0 | 5.0 | Android SDK Command-line Tools 87 cmdline-tools;6.0 | 6.0 | Android SDK Command-line Tools 88 cmdline-tools;7.0 | 7.0 | Android SDK Command-line Tools 89 cmdline-tools;8.0 | 8.0 | Android SDK Command-line Tools 90 cmdline-tools;9.0 | 9.0 | Android SDK Command-line Tools [...] 128 ndk;27.0.11902837 | 27.0.11902837 rc2 | NDK (Side by side) 27.0.11902837 129 ndk;27.0.12077973 | 27.0.12077973 | NDK (Side by side) 27.0.12077973 130 ndk;27.1.12297006 | 27.1.12297006 | NDK (Side by side) 27.1.12297006 131 ndk;27.2.12479018 | 27.2.12479018 | NDK (Side by side) 27.2.12479018 132 ndk;28.0.12433566 | 28.0.12433566 rc1 | NDK (Side by side) 28.0.12433566 133 ndk;28.0.12674087 | 28.0.12674087 rc2 | NDK (Side by side) 28.0.12674087 134 platform-tools | 35.0.2 | Android SDK Platform-Tools 135 platforms;android-10 | 2 | Android SDK Platform 10 136 platforms;android-11 | 2 | Android SDK Platform 11 137 platforms;android-12 | 3 | Android SDK Platform 12 138 platforms;android-13 | 1 | Android SDK Platform 13 139 platforms;android-14 | 4 | Android SDK Platform 14 140 platforms;android-15 | 5 | Android SDK Platform 15 141 platforms;android-16 | 5 | Android SDK Platform 16 142 platforms;android-17 | 3 | Android SDK Platform 17 143 platforms;android-18 | 3 | Android SDK Platform 18 144 platforms;android-19 | 4 | Android SDK Platform 19 145 platforms;android-20 | 2 | Android SDK Platform 20 146 platforms;android-21 | 2 | Android SDK Platform 21 147 platforms;android-22 | 2 | Android SDK Platform 22 148 platforms;android-23 | 3 | Android SDK Platform 23 149 platforms;android-24 | 2 | Android SDK Platform 24 150 platforms;android-25 | 3 | Android SDK Platform 25 151 platforms;android-26 | 2 | Android SDK Platform 26 152 platforms;android-27 | 3 | Android SDK Platform 27 153 platforms;android-28 | 6 | Android SDK Platform 28 154 platforms;android-29 | 5 | Android SDK Platform 29 155 platforms;android-30 | 3 | Android SDK Platform 30 156 platforms;android-31 | 1 | Android SDK Platform 31 157 platforms;android-32 | 1 | Android SDK Platform 32 158 platforms;android-33 | 3 | Android SDK Platform 33 159 platforms;android-33-ext4 | 1 | Android SDK Platform 33-ext4 160 platforms;android-33-ext5 | 1 | Android SDK Platform 33-ext5 161 platforms;android-34 | 3 | Android SDK Platform 34 162 platforms;android-34-ext10 | 1 | Android SDK Platform 34-ext10 163 platforms;android-34-ext11 | 1 | Android SDK Platform 34-ext11 164 platforms;android-34-ext12 | 1 | Android SDK Platform 34-ext12 165 platforms;android-34-ext8 | 1 | Android SDK Platform 34-ext8 166 platforms;android-35 | 2 | Android SDK Platform 35 167 platforms;android-35-ext14 | 1 | Android SDK Platform 35-ext14 168 platforms;android-7 | 3 | Android SDK Platform 7 ``` * while CLEARLY the consumer shown Android Version does not help (mind you they even went so far as to use "sweets/desert" as names to make it hard to count, like in , 1.2,pan-cake,..."i guess icecream" , 12????") * it s apparent that the tools (to start why is there `tool`, `buildtools`(noconfirming versions to platform.. even `rc` versoins why is that????) * well bottom line NO NDK (N as in "native" as in not JAVA-fun as in more sanity, well "native" but let us say NDK, becuase we would rather have you guess..), no NDK version corresponds anything to anythinhg * "en plus" , `c'e di piu' ancora` we will require the dreaded cmake, also in some crazy version * bottom bottom line, complete guesswork and `f*ck*ery` * after you decipher (trial and error out the NDK to android SDK riddle , with all the gradle and JAVA version fun ...), you are begging for the sweet mercy of "yaml" sanity where breakage is "only caused" by whitespace `f*ck*ps` `X-)` * notice how the (why do you even exists you are not good) `sdkamager` (aka google execs wanna make you sign a license during install compliation) is a pain, while bein a tool for the command line it does all to make it hard to get the info required. Because like `ncurses` or `stty` or anything was not invented and it is "ok" to shuffle excess whitespace ... (why do I even bother)