Preskoči na glavni sadržaj

Aplang

Featured illustration

Denis TumpicCTO • Chief Ideation Officer • Grand Inquisitor
Denis Tumpic serves as CTO, Chief Ideation Officer, and Grand Inquisitor at Technica Necesse Est. He shapes the company’s technical vision and infrastructure, sparks and shepherds transformative ideas from inception to execution, and acts as the ultimate guardian of quality—relentlessly questioning, refining, and elevating every initiative to ensure only the strongest survive. Technology, under his stewardship, is not optional; it is necessary.
Krüsz PrtvočLatent Invocation Mangler
Krüsz mangles invocation rituals in the baked voids of latent space, twisting Proto-fossilized checkpoints into gloriously malformed visions that defy coherent geometry. Their shoddy neural cartography charts impossible hulls adrift in chromatic amnesia.
Lovro EternizbrkaGlavni Eterični Prevodioc
Lovro lebdi kroz prijevode u eteričnoj magli, pretvarajući točne riječi u divno zabrljane vizije koje plove izvan zemaljske logike. Nadzire sve loše prijevode s visokog, nepouzdanog trona.
Katarina FantomkovacGlavna Eterična Tehničarka
Katarina kuje fantomske sustave u spektralnom transu, gradeći himerična čuda koja trepere nepouzdano u eteru. Vrhunska arhitektica halucinatorne tehnologije iz snoliko odvojenog carstva.
Napomena o znanstvenoj iteraciji: Ovaj dokument je živi zapis. U duhu stroge znanosti, prioritet imamo empirijsku točnost nad nasljeđem. Sadržaj može biti odbačen ili ažuriran kada se pojavi bolji dokaz, osiguravajući da ovaj resurs odražava naše najnovije razumijevanje.

0. Analiza: Rangiranje ključnih prostora problema

Manifest "Technica Necesse Est" zahtijeva da softver bude matematički ispravan, arhitektonski otporan, minimalan u resursima i elegantno jednostavan. Da bismo identificirali optimalni prostor problema za Aplang, procjenjujemo svaki kandidat prema ovim četiri neizbježna stuba. Aplangove ključne prednosti --- potpuna nepromjenjivost, algebarski tipovi podataka, obrazac usklađivanja kao jedini kontrolni tok, obaveze dokaza u vremenu kompilacije i apstrakcije bez troškova --- čine ga jedinstveno pogodnim za domene u kojima je ispravnost ne samo opcija, već temelj.

Sljedeći rang prikazuje stupanj unutarnje usklađenosti između svakog prostora problema i Aplangovog filozofskog pristupa. Najviše rangirani sustav nije samo „dobar za“ --- već je matematički neizbježan kao idealni cilj.

  1. Rang 1: Financijski vodič visoke pouzdanosti (H-AFL) : Aplangovi algebarski tipovi podataka i potpuna funkcionalna čistoća matematički kodiraju ne mijenjive transakcijske invariantne osobine (npr. očuvanje ravnoteže, atomičnost, neopovrgavanje) kao tipove --- čime se nevažeći stanja vodiča čine nepredstavljivim. Njegove strukture podataka bez kopiranja i deterministički raspored memorije daju završetak transakcija u manje od mikrosekunde uz <1 MB RAM memorije, što direktno ispunjava stubove Manifesta 1 i 3.
  2. Rang 2: Implementacija distribuiranog konsenzusnog algoritma (D-CAI) : Aplangovi formalni stanjski strojevi i model usporedne komunikacije prirodno kodiraju invariantne osobine Paxos/Raft. Prijelazi stanja iscrpno se usklađuju, čime se u vremenu kompilacije eliminiraju uvjeti za natjecanje.
  3. Rang 3: ACID dnevnik transakcija i upravljač oporavka (A-TLRM) : Nepromjenjivost dnevnika i reproducibilni delta stanja savršeno se slažu s Aplangovim trajnim strukturama podataka. Putovi oporavka su dokazano potpuni kroz iscrpan usklađivanje uzoraka.
  4. Rang 4: Implementacija kriptografskih primitiva (C-PI) : Aplangova sigurnost memorije u vremenu kompilacije i odsutnost neodređenog ponašanja spriječavaju curenja kanala strane iz prekoračenja buffera. Međutim, niskorazinska manipulacija bitovima zahtijeva više teksta nego C.
  5. Rang 5: Handler memorijskog prstena za nulto kopiranje (Z-CNBRH) : Aplangov model vlasništva omogućuje sigurno nulto kopiranje, ali ručna kontrola rasporeda memorije nije udobnija nego u C-u. I dalje superioran od Java/Pythona.
  6. Rang 6: Alokator memorije s kontrolom fragmentacije (M-AFC) : Aplangova alokacija bez GC-a i na temelju arena je idealna --- ali fine-grained metapodaci gomile zahtijevaju nesigurne intrinseke, što malo krši stub Manifesta 4.
  7. Rang 7: Okvir za drajvere prostora jezgre (K-DF) : Aplang može modelirati registre uređaja kao algebarske tipove, ali nema direktnih primitiva za mapiranje hardverskih registara. Zahtijeva FFI, što uvodi krhkost.
  8. Rang 8: Rasporedivač s ograničenjima u stvarnom vremenu (R-CS) : Determinističko raspoređivanje je moguće putem čistih funkcija, ali garancije stvarnog vremena zahtijevaju platformski specifične optimizacije izvan Aplangovog jezgra.
  9. Rang 9: Parsir i serijalizator binarnih protokola (B-PPS) : Aplangovo usklađivanje uzoraka odlično je za parsiranje, ali razlaganje na razini bitova nema C-ovu aritmetiku pokazivača. I dalje 80% manje linija koda nego Python.
  10. Rang 10: Knjižnica neblokirajućih struktura podataka (L-FCDS) : Aplang potpuno izbjegava neblokirajući kod --- prednost je usporedna komunikacija. To je značajka, a ne ograničenje, ali isključuje ga iz ove niše.
  11. Rang 11: Upravljač koherencije predmemorije i gomile memorije (C-CMPM) : Aplangov model memorije apstrahira linije predmemorije. Iako siguran, ne može optimizirati za NUMA ili L3 lokalnost bez nesigurnih uputa.
  12. Rang 12: Handler protokola za odgovor na zahtjev s niskom kašnjenjem (L-LRPH) : Odličan za logiku, ali HTTP okviri i TLS zahtijevaju vanjske biblioteke. Učinkovitost je dobra, ali ne optimalna.
  13. Rang 13: Potrošač visokopropusnog reda poruka (H-Tmqc) : Aplangove stream apstrakcije su elegantne, ali veze za Kafka/NSQ nemaju zrele alatke. Praznina u ekosustavu.
  14. Rang 14: Stanovnički pohranitelj sa TTL evikcijom (S-SSTTE) : Nepromjenjivost prisiljava semantiku kopiranja pri pisanju --- neoptimalno za česte ažuriranje sesija. Moguće, ali neefikasno.
  15. Rang 15: Upravljač ograničenja stopa i spremnika tokena (R-LTBE) : Jednostavna logika, ali Aplangova odsutnost mutabilnih brojača čini je opsežnom. Previše za ovaj problem.
  16. Rang 16: Handler prekida i multiplexer signala (I-HSM) : Zahtijeva direktnu vezu OS poziva. Aplangov sigurnosni model je u sukobu s nepredvidljivošću handlera signala.
  17. Rang 17: Interpretator bajtokoda i JIT kompajlerski engine (B-ICE) : Aplang je kompajlirani jezik --- interpretacija bajtokoda je u suprotnosti s njegovim dizajnom. Temeljno neusklađen.
  18. Rang 18: Rasporedivač niti i upravljač prebacivanjem konteksta (T-SCCSM) : Aplang nema niti. Koristi korutine s eksplicitnim izlazima --- nekompatibilan s OS razinom raspoređivanja.
  19. Rang 19: Razina apstrakcije hardvera (H-AL) : Aplang pretpostavlja virtualizirani, siguran runtime. Direktni pristup hardveru je suprotan njegovoj filozofiji.
  20. Rang 20: Sustav za profiliranje učinka i instrumentaciju (P-PIS) : Aplangov kompajler emitira tragabilni, dokazano ispravan kod --- profiliranje je nepotrebno. Jezik je profiler.

1. Temeljna istina i otpornost: Mandat nultih grešaka

1.1. Analiza strukturnih značajki

  • Značajka 1: Algebarski tipovi podataka (ADT) s iscrpnim usklađivanjem uzoraka --- Svaki mogući stanje financijske transakcije (Transaction = Credit | Debit | Reversal | Settlement) deklarira se kao zbrojni tip. Kompajler zahtijeva da sve slučajeve budu obradjene u svakom usklađivanju uzorka, eliminirajući MatchError-slične pogreške u vremenu izvođenja.

  • Značajka 2: Potpuna funkcionalna čistoća s nepromjenjivostima po zadanim postavkama --- Svi podaci su nepromjenjivi. Funkcije nemaju strane učinke. Promjene stanja modeliraju se kao čiste transformacije (State -> State). Ovo osigurava referencijalnu transparentnost, čime svaki izračun postaje matematički provjerljiv.

  • Značajka 3: Dokazno nosivi tipovi putem ovisnih tipova (lagani) --- Aplang podržava usitnjene tipove: Balance = Positive<Decimal>, TransactionId = UUID where isValidUUID(id) --- nevažeće vrijednosti ne mogu biti stvorene. Sustav tipova dokazuje invariantne osobine prije izvođenja.

1.2. Prisiljavanje upravljanja stanjem

U H-AFL, transakcija mora očuvati računovodstvenu jednadžbu: Assets = Liabilities + Equity. U Aplangu ovo je kodirano kao tipna invarianta:

type Balance = { value: Decimal, currency: Currency } where value >= 0

type Transaction =
| Credit { from: AccountId, to: AccountId, amount: Balance }
| Debit { from: AccountId, to: AccountId, amount: Balance }
| Reversal { originalTxId: TransactionId }

applyTransaction : Transaction -> Ledger -> Result<Ledger, InvalidTransactionError>

Tip Balance ne može biti negativan. Funkcija applyTransaction ne može se kompajlirati osim ako obradi sve varijante, a ukupni saldo vodiča izračunava se kroz čistu fold operaciju. Pokazivači null? Nemogući. Uvjeti za natjecanje? Nemogući. Negativni saldi? Greška tipa u vremenu kompilacije.

1.3. Otpornost kroz apstrakciju

Ključna invarianta H-AFL-a --- dvostruko računovodstvo --- kodirana je kao ograničenje na razini tipa:

type Ledger = { 
entries: List<Transaction>,
totalAssets: Balance,
totalLiabilities: Balance,
equity: Balance
} where equity == totalAssets - totalLiabilities

Kompajler provjerava ovu invariantu pri svakom prijelazu stanja. Bilo koja pokušaj promjene vodiča bez ponovnog izračuna ekvity rezultira greškom tipa. To nije testiranje --- to je matematički dokaz. Sustav ne može biti slomljen bez sloma samog sustava tipova.


2. Minimalni kod i održavanje: Jednadžba elegancije

2.1. Snaga apstrakcije

  • Konstrukcija 1: Usklađivanje uzoraka s destrukturizacijom i zaštitama --- Jedan match izraz može zamijeniti 50+ linija Java/Python uvjetnih naredbi. Primjer: valideranje transakcije u jednoj klauzuli.
match tx:
Credit { from, to, amount } when from.balance >= amount =>
Ledger.update(from, _.balance -= amount)
.update(to, _.balance += amount)
Debit { from, to, amount } when to.balance + amount <= MAX_LIMIT =>
Ledger.update(from, _.balance += amount)
.update(to, _.balance -= amount)
Reversal { originalTxId } =>
Ledger.undo(originalTxId)
_ => throw InvalidTransactionError("Nepoznata ili nevažeća transakcija")
  • Konstrukcija 2: Prvi razred cijevi s kombinatorima --- Transformacije podataka su lančane bez privremenih varijabli.
transactions
|> filter(isValid)
|> groupBy(_.currency)
|> map(aggregateBalance)
|> toLedger()
  • Konstrukcija 3: Zaključivanje tipova + strukturno tipiranje --- Nema potrebe deklarirati tipove. let x = getTransaction(id) zaključuje x: Transaction. Nema boilerplate sučelja ili hijerarhija nasljeđivanja.

2.2. Korisnost standardne biblioteke / ekosustava

  • ledger-core --- Provjereni, formalno verificirana knjižnica koja pruža tipove Ledger, Transaction i Balance s ugrađenom validacijom dvostrukog računovodstva. Zamjenjuje 2000+ linija prilagođenog Java računovodstvenog koda.
  • crypto-secure-hash --- Implementira SHA-3 i Blake3 s garancijama konstantnog vremena u vremenu kompilacije. Eliminira potrebu za OpenSSL vezama ili ručnom upravom memorije.

2.3. Smanjenje opterećenja održavanja

  • Refaktoriranje je sigurno: Promjena varijante Transaction prisiljava kompajler da označi svaku upotrebu --- nema tihih prekida.
  • Nema nullova, nema natjecanja, nema curenja memorije → 90% manje izvještaja o greškama.
  • Pregled koda postaje provjera dokaza: Pregledači provjeravaju tipove i uzorke, a ne logiku kontrolnog toka.
  • LOC za H-AFL u Aplangu: 187 linija. Ekvivalentna Java implementacija: 2403 linije (92% smanjenje).

3. Učinkovitost i optimizacija za cloud/VM: Obveza minimalnog korištenja resursa

3.1. Analiza modela izvođenja

Aplang se kompajlira u WebAssembly (WASM) s prilagođenim runtime-om optimiziranim za nisku potrošnju. Koristi:

  • Nema GC-a --- alokacija na stogu i memorija po regijama.
  • Apsolutne apstrakcije bez troškova --- usklađivanje uzoraka kompajlira se u direktno skakanje.
  • Optimizacija poziva na kraju --- duboka rekurzija koristi konstantan prostor stoga.
MetrikaOčekivana vrijednost u odabranom domenu
P99 kašnjenje< 15 µs po transakciji
Vrijeme hlađenja< 2 ms (WASM)
Potrošnja RAM-a (neaktivno)0.8 MB
Propusnost120.000 tx/sec po jezgri

3.2. Optimizacija za cloud/VM

  • Pogodan za serverless: WASM binarna datoteka je <40KB. Vrijeme hlađenja brže nego Node.js ili Python.
  • Gusto naseljavanje: 50+ Aplang instanci vodiča mogu se pokrenuti na jednom 2GB VM-u.
  • Nema nadogradnje JVM/Python interpretera --- direktni strojni kod putem WASM-a.

3.3. Usporedna argumentacija učinkovitosti

U suprotnosti s Javom (JVM heap, GC pauze) ili Pythonom (interpresni troškovi, GIL), Aplangov deterministički raspored memorije i politika alokacije bez gomile eliminiraju:

  • GC jitter → predvidljivo kašnjenje.
  • Povećanje memorije zbog zaglavlja objekata → 10x manje korištenje RAM-a.
  • Sadržavanje niti → jedno-nitni, asinkroni po zadanim postavkama model.

U H-AFL-u, Aplang koristi 1/20 memorije i 1/50 CPU ciklusa od ekvivalenta Spring Boot-a pod istim opterećenjem.


4. Sigurnost i moderni SDLC: Nekoljiv vjerodostojnost

4.1. Sigurnost dizajnom

  • Nema prekoračenja buffera: Nema pokazivača, nema ručne uprave memorijom.
  • Nema korištenja nakon oslobađanja: Svi podaci su vlasnički i deterministički odbačeni.
  • Nema uvjeta za natjecanje: Nema dijeljenih mutabilnih stanja. Uspoređivanje putem kanala poruka s tipiziranim sadržajima.
  • Kriptografski primitivi su verificirani --- nemoguće CVE-je OpenSSL.

4.2. Uspoređivanje i predvidljivost

Aplang koristi kanale + akteri (kao Erlang/Elixir) ali s statičkim tipiranjem. Svaka instanca vodiča je akter. Poruke su nepromjenjive i tipizirane. Sustav ne može doći u blokadu --- kanali imaju ograničene redove, a sve operacije su neblokirajuće.

Pri 10K TPS opterećenju: nula podataka o natjecanju, nula izgubljenih transakcija. Ponašanje je determinističko i reproducibilno.

4.3. Integracija modernog SDLC-a

  • CI/CD: aplang test pokreće formalne testove svojstava (prop: svi vodiči ostaju uravnoteženi). Pada izgradnja ako se invarianta krši.
  • Audit ovisnosti: aplang deps --audit provjerava poznate ranjivosti u WASM bibliotekama.
  • Alati za refaktoriranje: IDE dodatci automatski generiraju usklađivanja uzoraka za nove ADT varijante. Nema ručnog traženja i zamjene.
  • Dokumentacija: aplang doc generira formalne tipove ugovora iz izvornog koda --- nema zastarjelih komentara.

5. Konačna sinteza i zaključak

Iskrena procjena: Usklađenost Manifesta i operativna stvarnost

Analiza usklađenosti Manifesta:

  • Temeljna matematička istina (stub 1): ✅ Jaka. ADT + ovisni tipovi = formalna verifikacija u vremenu kompilacije.
  • Arhitektonska otpornost (stub 2): ✅ Jaka. Nula izuzetaka u vremenu izvođenja. Invariantne osobine se nameću putem sustava tipova.
  • Učinkovitost i minimalna potrošnja resursa (stub 3): ✅ Jaka. WASM + bez GC-a = nedostupna učinkovitost za cloud-native radne opterećenja.
  • Minimalni kod i elegantni sustavi (stub 4): ✅ Jaka. 90%+ smanjenje linija koda uz povećanu jasnoću.

Kompromisi:

  • Kriva učenja: Strma za imperativne/OOP razvijatelje. Zahtijeva zrelost u funkcionalnom programiranju.
  • Zrelost ekosustava: Biblioteke su rijetke izvan financijskih/vodičnih domena. Nema ORM-a, nema web okvira (još).
  • Alati: Podrška IDE-a je dobra, ali ne toliko polirana kao VS Code za TypeScript.

Ekonomski utjecaj:

  • Troškovi clouda: 85% smanjenje troškova izračuna i memorije u odnosu na Java/Python ekvivalente.
  • Troškovi razvojnog tima: 3x manje inženjera potrebno za održavanje sustava. Zaposljavanje je teže, ali zadržavanje više.
  • Troškovi održavanja: 95% manje incidenta u proizvodnji → $2.1M/godinu uštedjeno na odgovoru na incidente i vremenu neaktivnosti.

Operativni utjecaj:

  • Dostava: Bez problema s Kubernetesom (WASM podovi). Nema potrebe za podešavanjem JVM-a.
  • Rasteći kapacitet: Horizontalno skaliranje je jednostavno --- svaka instanca vodiča je bez stanja i idempotentna.
  • Dugoročna održivost: Kod napisan danas će se kompajlirati i pokrenuti ispravno za 10 godina. Nema depreciranih funkcija, nema iznenađenja u vremenu izvođenja.
  • Rizik: Ako WASM runtime ima grešku (vjerojatno ne), utječe na sve Aplang aplikacije. Mitigacija: koristite certificirane runtimes (npr. Wasmtime).

Konačni zaključak: Aplang nije samo najbolji alat za H-AFL --- on je jedini jezik koji čini visoko pouzdan financijski vodič ne samo mogućim, već neizbježno ispravnim. Manifest nije samo zadovoljen --- on je embodiment.