Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
NOI TESTE RO-ALERT! Daca prim...

Unde invaț sa sudez?

Imi donez ziua de nastere

Casa verde Tunari sau apartament ...
 Ajutor in excel

Solutie wireless sau poate wire

Cum aflu in ce tara se afla o anu...

Cum scap de plata TVA-ului?
 alcool etilic vs droguri ilegale

WST - numar de inmatriculare

Schimbare Yala aplicata ciudata

Placa de baza pentru combo 3700x ...
 Pachet la penitenciar

Splitter tv - diferenta dintre fr...

Receptoare second-hand?

Conectare masina de spalat vase l...
 

Clasicul si modernul C++ - cine e interesat?

* * * * * 2 votes
  • This topic is locked This topic is locked
252 replies to this topic

Poll: Who's afraid of the big bad C++? (19 member(s) have cast votes)

Cunosti limbajul C++?

  1. Da, am invatat C++ acum x ani (e.g. in liceu/facultate) (12 votes [63.16%] - View)

    Percentage of vote: 63.16%

  2. Nu, si nici nu ma intereseaza (1 votes [5.26%] - View)

    Percentage of vote: 5.26%

  3. Nu (sau foarte putin), dar as fi dispus sa invat (2 votes [10.53%] - View)

    Percentage of vote: 10.53%

  4. Da, sunt familiarizat cu C++-ul modern (4 votes [21.05%] - View)

    Percentage of vote: 21.05%

Esti curios sa inveti C++? (mai mult decat stii in acest moment)

  1. Nu, nu ma intereseaza un limbaj invechit, in care trebuie sa aloc/dealoc singur memoria (3 votes [15.79%] - View)

    Percentage of vote: 15.79%

  2. Nu, prefer sa invat un alt limbaj, si anume... (2 votes [10.53%] - View)

    Percentage of vote: 10.53%

  3. C++-ul modern? Suna interesant, cum as putea sa aflu mai multe? (7 votes [36.84%] - View)

    Percentage of vote: 36.84%

  4. Incerc sa tin pasul cu evolutia rapida a C++-ului. (7 votes [36.84%] - View)

    Percentage of vote: 36.84%

Ce parere ai despre evolutia C++?

  1. C++ evolueaza? (7 votes [36.84%] - View)

    Percentage of vote: 36.84%

  2. C++ evolueaza intr-o directie gresita, in special... (1 votes [5.26%] - View)

    Percentage of vote: 5.26%

  3. Prefer un limbaj dezvoltat de la zero, cu tot impactul asupra codului existent (3 votes [15.79%] - View)

    Percentage of vote: 15.79%

  4. Cu fiecare standard, C++ devine un limbaj mai bun. Imi place in special... (8 votes [42.11%] - View)

    Percentage of vote: 42.11%

Vote

#1
TS030

TS030

    Senior Member

  • Grup: Senior Members
  • Posts: 6,703
  • Înscris: 25.06.2012
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
Rhesus

Rhesus

    Active Member

  • Grup: Senior Members
  • Posts: 2,022
  • Înscris: 22.04.2014
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
Aldulescu

Aldulescu

    Active Member

  • Grup: Senior Members
  • Posts: 3,132
  • Înscris: 04.01.2018
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
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 36,173
  • Înscris: 30.07.2003

View PostTS030, on 12 aprilie 2019 - 20:11, said:

Mai este C++ un limbaj care sa merite folosit? Are alternative reale?
Cate mai genereaza nativ (pe ASM nu-l punem in ecuatie, nu scrii tone de cod in asa ceva, azi)? Asa ca pana apare altu' la fel de puternic, va mai fi pus la munca de multi.

#5
ovipic

ovipic

    Junior

  • Grup: Junior Members
  • Posts: 45
  • Înscris: 09.04.2019
Golang Posted Image

vezi si https://forum.softpe...golang-pe-aici/

#6
BubuTastatura

BubuTastatura

    Junior

  • Grup: Members
  • Posts: 232
  • Înscris: 29.03.2019
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 :lol:

Edited by BubuTastatura, 12 April 2019 - 20:57.


#7
Friskey

Friskey

    Senior Member

  • Grup: Senior Members
  • Posts: 7,756
  • Înscris: 11.01.2013
Asta e topic de gradinita de genul Mercedes vs BMW, Batman vs Superman.

#8
unbrutus

unbrutus

    Guru Member

  • Grup: Senior Members
  • Posts: 12,945
  • Înscris: 23.02.2017
stii ce zice Linus despre programatorii in C++, da?

#9
BubuTastatura

BubuTastatura

    Junior

  • Grup: Members
  • Posts: 232
  • Înscris: 29.03.2019
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
mihaicozac

mihaicozac

    Guru Member

  • Grup: Senior Members
  • Posts: 12,469
  • Înscris: 05.12.2005
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
TS030

TS030

    Senior Member

  • Grup: Senior Members
  • Posts: 6,703
  • Înscris: 25.06.2012
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.

#12
BubuTastatura

BubuTastatura

    Junior

  • Grup: Members
  • Posts: 232
  • Înscris: 29.03.2019
Te rog frumos, ai cuvantul, ne-ai facut curiosi.

#13
dani.user

dani.user

    Guru Member

  • Grup: Moderators
  • Posts: 24,880
  • Înscris: 24.02.2007

View Postmihaicozac, on 12 aprilie 2019 - 21:27, said:

Inginerii de embedded şi microcontrollere folosesc C++ la greu.

Si-au facut curaj sa lase C-ul 89 in urma?

#14
DemocracySucks

DemocracySucks

    Junior

  • Grup: Members
  • Posts: 227
  • Înscris: 06.04.2019
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
TS030

TS030

    Senior Member

  • Grup: Senior Members
  • Posts: 6,703
  • Înscris: 25.06.2012

View PostBubuTastatura, on 12 aprilie 2019 - 21:43, said:

Te rog frumos, ai cuvantul, ne-ai facut curiosi.
Right. Nu vreau sa-mi impun opinia / modul in care privesc acest limbaj, sper ca vom reusi un dialog. Deocamdata observ cateva posibile subiecte...
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, 3628800

Pentru 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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 26,909
  • Înscris: 10.08.2006

View PostTS030, on 12 aprilie 2019 - 23:10, said:

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.
Ai descris corect C++, dar in liceu nu se face deloc C++, ci C cu cin si cout.

#17
NaeCicolae

NaeCicolae

    Junior

  • Grup: Junior Members
  • Posts: 30
  • Înscris: 19.03.2019
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
TS030

TS030

    Senior Member

  • Grup: Senior Members
  • Posts: 6,703
  • Înscris: 25.06.2012

View PostOriginalCopy, 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.
Unul din scopurile acestui topic este ca acestia sa realizeze ca ceea ce au invatat nu este C++.

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.

View PostNaeCicolae, 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.
Sa le luam pe rand:
"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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate