13 पॉइंट द्वारा GN⁺ 2024-09-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • क्या आप Android पर C कोड चलाना चाहते हैं?
  • यह framework लगभग 2 सेकंड में APK बना सकता है, install कर सकता है और अपने-आप चला सकता है, और APK का आकार लगभग 25kB है
    • API 30(Android R+) में ARM64 + ARM32 सपोर्ट के लिए यह 45kB है।
  • इस framework के demo में शामिल हैं:
    • OpenGL ES सपोर्ट वाली window बनाना
    • accelerometer/gyro input, multi-touch
    • key input के लिए Android keyboard
    • APK में asset files स्टोर करना और उन्हें AAssetManager से पढ़ना
    • sound उपयोग जैसी permissions का सपोर्ट
    • USB devices तक सीधी पहुँच
  • अस्वीकरण: इस कोड का उपयोग आपकी अपनी ज़िम्मेदारी पर किया जाना चाहिए। commercial app बनाने में समस्याएँ हो सकती हैं.

Why?

  • कभी-कभी आप ऐसे काम करना चाहते हैं जो सामान्य तरीके में फिट नहीं बैठते
    • ऑनलाइन लगभग सारी चर्चा सामान्य process का उपयोग करने पर केंद्रित रहती है
    • ये process बदलते रहते हैं, इसलिए किसी खास काम को करना और उन्हें up-to-date रखना मुश्किल हो जाता है
    • Makefile का उपयोग करने से आप ठीक-ठीक देख सकते हैं कि कौन-से command चल रहे हैं, custom rules जोड़ सकते हैं और build को tweak कर सकते हैं
  • C एक सार्वभौमिक भाषा है
    • Rawdraw, ESP8266 से लेकर RaspberryPi, Windows, Linux, यहाँ तक कि Android तक, हर जगह काम करता है
    • कोड एक बार लिखें और उसे कहीं भी इस्तेमाल करें
  • अगर build process में अनावश्यक परतें न भरी जाएँ, तो सिर्फ़ महत्वपूर्ण हिस्से बचते हैं
    • इससे development, deployment आदि आसान हो जाते हैं
    • हर चीज़ में बहुत कम समय लगता है
  • यह इंटरनेट पर मौजूद उन Luddite लोगों को जवाब देने से भी जुड़ा है
    • जो Stack Overflow के सवालों पर लिखते हैं, "यह असंभव है" या "आप गलत कर रहे हैं"
    • या JNI में permission माँगने जैसी चीज़ों पर कहते हैं कि "यह Java में करना चाहिए"
    • क्या संभव है और क्या असंभव, इस बारे में राय में मुझे बिल्कुल दिलचस्पी नहीं है
    • यह computer science है। कोई सीमा नहीं है। आप जो चाहें कर सकते हैं। यह सिर्फ़ bits हैं। आप मेरे मालिक नहीं हैं

1 टिप्पणियां

 
GN⁺ 2024-09-23
Hacker News राय
  • "मैं जो चाहूँ वह कर सकता हूँ। यह बस bits हैं। तुम मेरे मालिक नहीं हो।" इससे सहमत हूँ

  • Android development में Java और Kotlin ecosystem असुविधाजनक है। Java इस्तेमाल करने में कठिन भाषा है, और Kotlin उससे कम बुरी है, लेकिन build tools, package management, और IDE का इस्तेमाल झंझट भरा है। लेखक को धन्यवाद

  • लगता है कि Android Studio install करना ज़रूरी है। सोच रहा हूँ कि क्या सिर्फ Android SDK डाउनलोड करने का कोई तरीका है

    • Makefile को थोड़ी देर देखने पर लगा कि इसने Gradle से बचने की कोशिश की है, लेकिन Java में लिखे दूसरे tools को call करता है
    • Gradle के बिना Flutter app build करने का तरीका देखना चाहूँगा
  • C++/OpenGL ES engine को cross-platform के रूप में develop करने की याद काफ़ी संतोषजनक थी

  • यह तरीका उन applications के लिए उपयोगी है जो OpenGL के ज़रिए UI देते हैं और Android system के साथ बहुत अधिक interaction नहीं करते

    • NDK का इस्तेमाल पारंपरिक Java Android applications में speed बढ़ाने के लिए छोटा C code लिखने में किया जाता है
    • यह hack full-screen में चलने वाले OpenGL apps को pure C में लिखने की सुविधा देता है
    • यह keyboard, ADC input, USB जैसी चीज़ों तक सीमित access देता है
    • यह Android framework को C में reimplement नहीं करता, और NDK केवल इतना सीमित access देता है कि NDK code framework के साथ interact कर सके
    • मुख्य use case एक ऐसा program है जो chroma extraction पर आधारित real-time audio-reactive visualization को support करता है
  • जब भी XCode या Android Studio इस्तेमाल करता हूँ, याद आता है कि Vite की वजह से web developers कितने lucky हैं

    • सब कुछ ठीक से काम करता है। एक simple plugin system के साथ किसी भी चीज़ को integrate किया जा सकता है
    • जब ज़रूरी plugin नहीं होता, तब custom plugin आसानी से बनाया जा सकता था
    • अगर Vite टूट जाए तो पूरी तरह फँस जाते हैं। या तो कोई दूसरा तरीका ढूँढना पड़ता है, या patch आने तक इंतज़ार करना पड़ता है। Vite के अंदरूनी हिस्से को खुद ठीक करना लगभग असंभव है
  • Elon जैसे बहुत पैसे वाले किसी व्यक्ति को mobile पर Linux चलाने लायक बनाना चाहिए। इस पर काम चल रहा है, लेकिन प्रगति धीमी है। इससे इस duopoly को तोड़ा जा सकेगा और ऐसे काम बहुत आसान हो जाएँगे

  • अगर इस system में Lua embed करके high-level logic लिखा जाए, तो यह उन चीज़ों के लिए उपयोगी होगा जिन्हें बहुत ज़्यादा accessibility support नहीं चाहिए, जैसे games या media player

    • performance-critical हिस्सों के लिए C libraries को आसानी से जोड़ा जा सकता है या सीधे C code लिखा जा सकता है
    • (और फिर core को धीरे-धीरे Zig में फिर से लिखा जा सकता है)
  • Java/Kotlin tools mobile development के लिए सबसे खराब हैं। इतने सारे शानदार languages और tools होने के बावजूद इन्हें अब भी क्यों बनाए रखा गया है, समझ नहीं आता। समझ नहीं आता कि Google ने Android development के लिए Go को native alternative के रूप में क्यों नहीं दिया

  • अब भी Make इस्तेमाल करने वाले लोगों को देखकर हैरानी होती है। लगता है मानो उन्हें पता ही नहीं कि पिछले 20 सालों में दूसरी languages भी बनाई गई हैं