Rant: Starea actuală a industriei IT

C#, Java au fost facute ca sa scrii aplicatii web, aplicatii cu baze de date, servicii online, pentru acest tip de aplicatii sunt foarte bune, sunt limbaje compilate desi nu se compileaza nativ ci ruleaza pe o masina virtuala pentru portabilitate, sistemele de operare si alte chestii high performance se scriu in limbaje care se compileaza in cod nativ, C, C++, Rust, Go.

Credeam că…

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented,[14] and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA),[15] meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.

Nu cred ca Vulkan e un examplu corect. In primul rand interfata expusa e C, nu C++. In al doilea rand, daca e s-o descoasem e mai mult un API de management al GPU-ului - incarci shadere, texturi; definesti parameteri etc. Dar heavy-lifting-ul si calculele grele le face shaderul pe GPU, nu Vulkan.

Revenind la intrebare, codul este produs de oameni, nu de masini. Pana sa te ajute compilatorul trebuie omul sa scrie codul corect, rapid etc.

Dar ca sa hranesc focul discutiei, depinde ce vrei sa faci. Pentru cod numeric gen inversari de matrici, transformate Fourier etc Fortran e mai rapid, iar binarele de blas, lapack sunt greu de batut. Imposibil chiar fara ajutor din partea operatorului in cazul lui C/C++. Java nu e strain de performante extreme, see LMAX architecture care procesea 6 milioane de tranzactii financiare pe secunda pe thread acum 6 ani. Again, ai sisteme mari distribuite gen $totEcosistemulHadoop care e construit pe Java. Despre cele din urma ai putea sa presupui ca ar putea fi implementate mai rapid in C++, dar cu cand deja ai performanta pe care o vrei, nu mai are rost sa implementezi in ceva mult mai low-level - altfel am scrie scrie sistemele astea in asm, sau ne-am face asic-urile proprii, cum fac minerii de bitcoin sau oamenii din finante.

Pe partea de micro-benchmark-uri C++ pare sa fie rege, sau cel putin baroni locali. Dar chiar si acolo nu e totul clar. Din zece exemple pe benchmarksgame, in 5 nu e C++ pe primul loc, iar in unele cazuri e departe rau. [ 1 ], [ 2 ] , [ 3 ] . [ 4 ], [ 5 ]. C pare sa fie consistent fruntas insa, dar again, problema nu e C, ci C++.

1 Like

Now Chapel (http://chapel.cray.com/) is something interesting. More interesting than my day-to-day PHP.