Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Clasicul si modernul C++ - cine e interesat?
Last Updated: Apr 25 2019 16:45, Started by
TS030
, Apr 12 2019 20:11
·
0
#1
Posted 12 April 2019 - 20:11
Inspirat de topicurile despre Rust si Golang; haideti sa vedem ce parere au forumistii despre un limbaj in aceeasi masura clasic si modern: C++.
Cati sunt interesati de acest limbaj? Cat dintre ce cunoastem despre C++ este mit, cat este adevar? Mai este C++ un limbaj care sa merite folosit? Are alternative reale? Sper sa reusim sa discutam si pe exemple concrete. Disclaimer: nu sunt expert in C++. |
#2
Posted 12 April 2019 - 20:19
Suita C/C++ nu va muri niciodata, cat timp este limbajul de programare cel mai apropiat de hardware...
Este mult prea vast ca sa putem afirma faptul ca stim "tot". Totusi, trebuie sa stim ca exista niste avantaje pe care alte limbaje nu le ofera.... Edited by Rhesus, 12 April 2019 - 20:26. |
#3
Posted 12 April 2019 - 20:32
L-am studiat in liceu, dar nu mi-a placut, am preferat Pascalul, era mai usor, mai logic, mai simplu de citit si inteles.
Sa dau un exemplu: In Pascal era conditia "if-then-else": If conditie then instructiune1 else instructiune2 In C++ aveai insa: If conditie instructiune1 else instructiune2 Nu era deci nici un "else" ca sa iti dai seama unde se termina o propozitie si unde incepe alta, nu mai scriai patru caractere, insa codul era mai greu de inteles si descifrat, mai erau o droaie de chestii asemanatoare, care mi se pareau ca nu fac decat sa reduca codul scris cu cateva caractere, in schimb devenea mult mai greu de inteles logic, mai ales daca aveai multe pagini cu cod ce trebuiau descifrate, nu am inteles rostul acestor instructiuni simplificate si prescurtate. |
#4
Posted 12 April 2019 - 20:35
#6
Posted 12 April 2019 - 20:52
Daca se revine in productie la C/C++ eu sunt primul care sare barca inapoi la C sau C++.
Familia de C, C++, Java este tripleta de aur care diferentiaza programatorii adeverati maturi de gusterii si utilizatorii de frameworkuri. Stiu ca azi exista foarte mult software scris prost si cu buguri care in loc sa genereze profit incepe sa genereze pierderi si atunci piata se va reorienta spre solutii software bazate pe limbaje mature si stabile insa create de programatori adevarati, barbati in lumea programarii si nu gusteri care lucreaza in frameworkuri si nu inteleg de ce i se trunchiaza valoarea atunci cand foloseste un container Int16 pt a stoca o valoare de Int32 Edited by BubuTastatura, 12 April 2019 - 20:57. |
#7
Posted 12 April 2019 - 20:53
Asta e topic de gradinita de genul Mercedes vs Bmw, Batman vs Superman.
|
#9
Posted 12 April 2019 - 21:02
Lasa-l pe Linus, ca el se referea strict la zona lui de Kernel si apoi alea sunt opiniile sale personale. Nu sunt dogme.
|
#10
Posted 12 April 2019 - 21:27
Chestie de obişnuinţă. Inginerii de embedded şi microcontrollere folosesc C++ la greu.
Pe lângă asta platformele pt. amatori gen Arduino sau STM32 au dat un imbold nou acestui limbaj. |
|
#11
Posted 12 April 2019 - 21:32
Intrebarile nu sunt puse la intamplare, dupa cum unii dintre voi probabil banuiesc
Voi incerca sa raspund la, si sa demontez o serie de mituri despre C++; si ii invit pe colegii mai cunoscatori in ale C++-ului sa ma ajute. Cum spuneam, nu sunt expert. Rand pe rand, cate-un subiect. |
#13
Posted 12 April 2019 - 21:49
#14
Posted 12 April 2019 - 22:25
E interesanta in special combinatia C++ & Qt ... in rest a pierdut mult teren in fata C#/.Net si Java ... cu toate ca va ramane destul de popular in viitorul previzibil, stack-urile tehnologice in care e folosit + cunostintele de specialitate, sunt destul de distincte si oarecum de nisa ... aplicatii desktop cu necesitati de performanta ridicata si consum de memorie scazut, drivere, diverse utilitare sistem, diverse softuri specializate performante(rapide/consum mic de memorie), diverse softuri server de performanta(cu low latency & stuff) ..
|
#15
Posted 12 April 2019 - 23:10
BubuTastatura, on 12 aprilie 2019 - 21:43, said:
Te rog frumos, ai cuvantul, ne-ai facut curiosi. Pe de alta parte, ori s-a votat in gluma, ori am confirmarea ca bine-am facut deschizand topicul asta Incep cu "not your father's C++". C++ nu este C. C++ nu este C + ceva OOP. Cine crede asta nu stie limbajul - si n-o zic ca pe o insulta, ci ca pe un indemn pentru a elimina aceasta lacuna. Facilitatile oferite de C++ - mecanismele de abstractizare, suportul pentru programarea orientata obiect, suportul pentru programarea generica, etc. - impun un mod de utilizare complet diferit. De exemplu, in C++ exista RAII ca mod generic de management al resurselor - cu o consecinta directa, "no naked news and deletes" (resursa nu inseamna doar memorie). Zero overhead, efect maxim. In C, malloc si free peste tot... si da-i si tine evidenta zonelor de memorie alocate. C++ nu este vechiul C++. Punctul de cotitura il reprezinta C++11 (adica standardul ISO C++ aparut in 2011 - caci C++ este un limbaj standardizat) C++11 a adus modificari care - iarasi - schimba modul in care folosim limbajul. Move semantics fiind un exemplu notabil. Sa luam un exemplu: vector<int> my_func() { vector<int> large_vector; // fill large_vector with data return large_vector; }Vi se pare ceva in neregula cu codul de mai sus? Si totusi, functia nu returneaza o copie a large_vector. Ritmul actual este de a lansa un nou standard la 3 ani (fiecare modificare trecand printr-un mecanism complicat pana sa fie aprobata in limbaj). Asta inseamna ca C++ devine din ce in ce mai puternic, flexibil, expresiv - intr-un ritm alert. Lucruri care inainte se realizau cu greutate devin din ce in ce mai usoare, si mai clare. Comparam - un exemplu clasic, didactic - factorialul calculat la compilare. Exemple de pe Wikipedia, pentru ca e tarziu si mi-e lene sa le tastez: 1. factorialul clasic, calculat la runtime: unsigned int factorial(unsigned int n) { return n == 0 ? 1 : n * factorial(n - 1); }2. Factorialul calculat la compilare, prin template metaprogramming: template <unsigned int n> struct factorial { enum { value = n * factorial<n - 1>::value }; }; template <> struct factorial<0> { enum { value = 1 }; };Incercati sa-l intelegeti, nu e tocmai greu... dar acesta e probabil cel mai usor exemplu! Nu degeaba multi programatori evita template metaprogramming. Asa-i ca C++ este complicat? Asa-i ca nu merita? Dar, hai sa vedem daca nu cumva exista o modalitate mai usoara. Da, exista! 3. constexpr unsigned int factorial(unsigned int n) { return n == 0 ? 1 : n * factorial(n - 1); }Un apel de genul factorial(10) va fi compilat in ceva de genul: mov eax, 3628800Pentru ca 10 e o constanta cunoscuta la compilare, iar functia insasi - declarata constexpr si fiind suficient de simpla - poate de asemenea fi evaluata la compilare. (Aceeasi functie se poate apela si cu parametru o variabila oarecare, caz in care vorbim de un apel de functie si executie la runtime). Personal constexpr mi se pare o chestie foarte tare... a carei aplicabilitate nu se limiteaza la chestii atat de simple precum un factorial. Concluzia? Cei ce-au invatat C++-ul in liceu - din fericire, limbajul nu este asa cum vi s-a prezentat atunci - ci mult diferit, mult imbunatatit. |
|
#16
Posted 12 April 2019 - 23:48
#17
Posted 13 April 2019 - 00:03
The Learning-Curve pt C++ ia prea mult si firmele nu pot face profituri mai repede decat altele care lucreaza pe alte tehnologii care fac acelasi lucru insa mai repede.
Noul standard C++ vin si aduce imbunatatirii catre trebuiau facute in anii 1990, inainte ca lumea sa migreze catre alte limbaje, iar acum s-au trezit prea tarziu, mult mai tarziu. |
#18
Posted 13 April 2019 - 01:35
OriginalCopy, on 12 aprilie 2019 - 23:48, said:
Ai descris corect C++, dar in liceu nu se face deloc C++, ci C cu cin si cout. O povestioara mai veche, dar adevarata: acum X ani discutam cu un co-worker; el, programator C#, ii placea sa ma "impunga". La un moment dat o tranteste: "C++ n-are generics". Nu ca C++ n-ar fi avut suport pentru programare generica, si inca unul incredibil de puternic, cu ani buni inainte de C#. Dar... omul "invatase C++" in liceu/facultate, si nu i-a spus nimeni nimic despre template-uri. NaeCicolae, on 13 aprilie 2019 - 00:03, said:
The Learning-Curve pt C++ ia prea mult si firmele nu pot face profituri mai repede decat altele care lucreaza pe alte tehnologii care fac acelasi lucru insa mai repede. Noul standard C++ vin si aduce imbunatatirii catre trebuiau facute in anii 1990, inainte ca lumea sa migreze catre alte limbaje, iar acum s-au trezit prea tarziu, mult mai tarziu. "Tehnologii care fac acelasi lucru insa mai repede" - te referi, desigur, la timpul de dezvoltare. A existat o perioada in care s-a considerat ca ora-om este mai pretioasa decat ora-masina; iar un limbaj in care dezvolti mai rapid (si folosind programatori mai ieftini) este un avantaj, fata de un altul in care obtii un software mai eficient. De-atunci s-au schimbat unele lucruri: - a aparut cloud-ul, iar performanta (ora-masina) a reinceput sa devina foarte importanta pentru anumite aplicatii. - C++ a evoluat, a aparut C++11 si inca doua standarde dupa; acum dezvoltarea in C++ este mai usoara. Sunt curios si la ce modificari te referi. In unele privinte, limbajele mai noi sunt cele ce incearca sa tina pasul cu C++... C#, de exemplu, nu a suportat generics pana in 2006; Java, in 2004. Java a capatat lambda expressions abia in versiunea 8. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users