Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C ispred Jave po popularnosti?

[es] :: Advocacy :: C ispred Jave po popularnosti?

Strane: << < .. 9 10 11 12 13 14 15 16 17 18 ... Dalje > >>

[ Pregleda: 84676 | Odgovora: 443 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
c-bg-d-p4-109.bvcom.net.



+1064 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 06:03 - pre 121 meseci
Bilo bi dobro kad bi to bilo tako. Te operatore mozes overloadovati i tad nije
problem, problem nastaje onda kad koristis intrinsic operatore ;)
A taj je problem u C++-u cak onda veci jer nikad nisi siguran...
Problem je u tome sto kad koristis intrinsic operator tad nema
tzv sequence pointa pa je moguc undefined behavior
ukoliko se ista varijabla menja dva puta u izrazu istovremeno.
Sto se C-a tice tamo nemas reference pa da mozes simulirati
ovaj operator preko f-je.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 06:29 - pre 121 meseci
U C-u imaš pokazivače, koji su dovoljno dobri da ilustruju suštinu.

Ja ne znam o čemu pišeš. Ovi operatori rade baš ovako. Druga je stvar što je redosled računanja operanada operatora i funkcija proizvoljan. Stoga kod
Code (cpp):

int one() { cout << 1 << endl; return 1; }
int two() { cout << 2 << endl; return 2; }
// ...
int diff = one() - two();
 

može da ispiše 1, pa 2, a može i 2, pa 1. Naravno, diff će imati vrednost -1. No, to nema veze sa tim kako radi binarni operator - u ovom primeru, već sa redosledom izračunavanja operanada, gde je u cilju optimizacije kompajleru dozvoljeno da izabere redosled koji hoće. Koristi funkcije prefix i sufix koje sam napisao i imaćeš isti problem.

Recimo, kod
Code (cpp):

int x = 5;

cout << prefix(x) - suffix(x) << endl;
 

ispisuje 0 u slučaju da se prvo računa prvi operand, a 2 u slučaju da se prvo računa drugi operand.

Bajdvej, formalna verifikacija programa (koja još nije zaživela značajno, mada jeste u nekoj meri) je daleko jednostavnija kada nema bočnih efekata, a iz istih razloga se smatra da je fnkcionaln kod ljudima čitljiviji i jasniji.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 07:53 - pre 121 meseci
Citat:
Dragan: Zanimljiv primer (pretpostavljam da si mislio na ArrayList vs LinkedList, dve implementacije List interface-a u Javi). Ja to cesto pitam juniore na intervju-u, i obicno ne znaju, i onda ima malo pomognem i sete se i struktura podataka i sta je u kom slucaju bolje. Ono sto mi je neverovatno da retko ko poveze tu naucenu teoriju sa ovako nekim konkretnim primerom, btw Java collections API je pun primera primene raznoraznih algoritama i design patterna.

Mislio sam na List<T> i LinkedList u .net-u, ali isto vazi za ArrayList umesto List<T> posto je implementacija sustinski ista, samo je jedna bazirana na generics a druga prihvata tip Object pa samim tim sve.
Naravno, bolje je ako znas kako se implementiraju te (i druge) strukture podataka, ali je u vecini poslova dovoljno da znas kako i kada koju da upotrebis, bez da znas kako radi. Ja znam implementacije sticajem okolnosti i zbog licnog interesovanja. Fakultet nisam zavrsio a za posao mi nije trebalo.

Citat:
Dragan: Gro ljudi koji radi kod nas (cca 250) su fakultetski obrazovani, mislim preko 90%, ogromna vecina ETF/PMF. Kao juniori najbolje prolaze ljudi sa relevantnih fakulteta (pre evga FTN/NS), najbze napreduju kasnije - naravno uvek ima izuzetaka, ovo je na bazi mog iskustva (ne znam ni sam sigurno, bar 200-300 intervjua u poslednjih 5-6 godina, preko 70 ljudi koji su kod mene prosli tehnicki intervju i sa dosta njih kasnije sam i radio, obucavao). Cinjenica jeste da je potraznja velika a samim tim i pritisak da se vise zaposljava, mogucnosti za instant skolovanje jos vece - videcemo kako ce to ici. Ja licno verujem u formalno obrazovanje u ovoj sferi, mada znam nekoliko sjajnih strucnjaka koji nikada nisu zavrsili fakultet (mahom poceli) ali isto znam da su isti sedeli dan i noc da bi usvojili vestine koje imaju. No, ovde pricamo o velikim brojevima a ne o izuzecima, mada je pitanje koliko je moje isustvo relevantno.

Pitanje je da li bolje napreduje onaj ko je upravo zavrsio fakultet ili neko ko nije a stekao je isto toliko godina iskustva. Jedino sto to pitanje zavisi od osobe do osobe a ne mozes na istoj osobi isprobati obe varijante :)
U svakm slucaju, ne treba generalizovati. I medju fakultetlijama i medju samoukima ima i dobrih i losih programera. A desavaju se i stvari kao sto je to da neko zavrsi fakultet, ima neko juniorsko znanje programiranja, sql-a i sl. ali ne zna kako se pise port na kraju http adrese u browser-u, ne zna sta je System Idle process (i nije mu ocigledno) i sl. Uostalom, sa toliko intervjuisanih ljudi si se verovatno i sam suretao sa takvima :)
Opet, sto se tice samoukih, najcesce lose situacije su "programiranje se isplati, sad cu ja to da naucim pa da radim". Nekad to da dobre rezultate, cesto ne. Kod samoukih dobre rezultate uglavnom daje ucenje zbog interesovanja a ne zbog zaposlenja.

Citat:
Dragan: Ja sam poceo karijeru sa C/C++, pre nekih 7-8 godina sam se prebacio na Javu. Ono sto se mora odati credit Sun-u ranije a Oraclu sada je da se dosta trude da zadrze backward compatibility, sto na nivou jezika, sto na nivou same platforme (JVMa). Nemojte smetnuti sa uma da Java sledece godine puni 20 godina, pre manje od mesec dana Java 8 je postao GA, a on nam donosi najvece promene u samom jeziku od 5-ice. U konktekstu vremena kada je nastao je uspeo da se nametne kao relativno cist, moderan OO jezik baziran na C-u, mislim da je napravljen solidan kompromis i da tome duguje popularnost. Cenim da ce biti pri vrhu i u narednim godinama, te ima moju preporuku za nekoga ko je na pocetku karijere. Jos nesto, cini mi se da Java ekosistem od pocetka forsira pricu o designu software-a (design patterns, best practices), tako da se obicno i programiranje moze dosta dobro usvojiti posto sam community dosta insistira na tome.

Bez namere da potezem c# vs. java diskusiju jer su u pitanju cisto licne preference, meni se C# vise svidja. Po sintaksi su gotovo isti, medjutim, kod svih jezika imas izvestan trade off izmedju slobode i toga da jezik zna sta je dobro za tebe bolje nego ti sam. C++ vise ide na slobodu a ti moras da pazis na sve zivo. Java opet ide na drugu stranu. Razliciti ljudi preferiraju razlicit odnos izmedju ova dva, nekima je C++ super, nekima Java, meni je C# tacno na pravom mestu :)
Ima tu i tehnickih razloga, kao sto je npr. nepotpuna podska za generics (ne znam koji se termin na srpskom koristi) u Javi (podrzava jezik ali ne i runtime) i sl. No, to ce valjda jednog dana biti implementirano :) MS je ipak imao priliku da sa novijim jezikom iskoristi iskustvo drugih i vidi sta bi trebalo implementirati.

OK, malo flame-a (ipak je advocacy): vidim da je doslo vreme da java kopira od ms-a, nakon sto je ms kopirao stvari iz jave ;] (neki od novih feature-a u verziji 8).
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 08:09 - pre 121 meseci
Citat:
Shadowed: Pitanje je da li bolje napreduje onaj ko je upravo zavrsio fakultet ili neko ko nije a stekao je isto toliko godina iskustva. Jedino sto to pitanje zavisi od osobe do osobe a ne mozes na istoj osobi isprobati obe varijante :)
U svakm slucaju, ne treba generalizovati. I medju fakultetlijama i medju samoukima ima i dobrih i losih programera. A desavaju se i stvari kao sto je to da neko zavrsi fakultet, ima neko juniorsko znanje programiranja, sql-a i sl. ali ne zna kako se pise port na kraju http adrese u browser-u, ne zna sta je System Idle process (i nije mu ocigledno) i sl. Uostalom, sa toliko intervjuisanih ljudi si se verovatno i sam suretao sa takvima :)
Opet, sto se tice samoukih, najcesce lose situacije su "programiranje se isplati, sad cu ja to da naucim pa da radim". Nekad to da dobre rezultate, cesto ne. Kod samoukih dobre rezultate uglavnom daje ucenje zbog interesovanja a ne zbog zaposlenja.

Nažalost, stanje sa studijama je takvo, da mada vrednima i zainteresovanima omogućava da nauče, diploma je prestala da bude garancija ikakvog znanja.

Da zavisi od osobe šta joj više odgovara, to je tačno. Da može da se živi i bez akademskog znanja (bilo kako stečenog) je takođe tačno. Ono što bih podvukao je da akademsko znanje i radno iskustvo ne mogu da zamene jedno drugo ni u jednom smeru i da oboje ima svoj značaj.

Što se poslednjeg tiče, smatram da učenje (svejedno kakvo) bez ličnog interesovanja za oblas daje nikakve rezultate. Oni, koji su tu samo zbog kazana uspeju samo slučajno, ako se u toku učenja zainteresuju.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 10:20 - pre 121 meseci
Citat:
Nedeljko:
U C-u imaš pokazivače, koji su dovoljno dobri da ilustruju suštinu.

Ja ne znam o čemu pišeš. Ovi operatori rade baš ovako. Druga je stvar što je redosled računanja operanada operatora i funkcija proizvoljan. Stoga kod
Code (cpp):

int one() { cout << 1 << endl; return 1; }
int two() { cout << 2 << endl; return 2; }
// ...
int diff = one() - two();
 

može da ispiše 1, pa 2, a može i 2, pa 1. Naravno, diff će imati vrednost -1. No, to nema veze sa tim kako radi binarni operator - u ovom primeru, već sa redosledom izračunavanja operanada, gde je u cilju optimizacije kompajleru dozvoljeno da izabere redosled koji hoće. Koristi funkcije prefix i sufix koje sam napisao i imaćeš isti problem.

Recimo, kod
Code (cpp):

int x = 5;

cout << prefix(x) - suffix(x) << endl;
 

ispisuje 0 u slučaju da se prvo računa prvi operand, a 2 u slučaju da se prvo računa drugi operand.

Bajdvej, formalna verifikacija programa (koja još nije zaživela značajno, mada jeste u nekoj meri) je daleko jednostavnija kada nema bočnih efekata, a iz istih razloga se smatra da je fnkcionaln kod ljudima čitljiviji i jasniji.



Nedeljko, ovo ima undefined behavior u C++-u:

Code:
a = i++ + ++i


Još bolji (naivniji) primer:

i = i++;

Iz standarda:

Citat:
Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression


operator+, kao ni operator= ne stvara sequence point, pa se stvara problem.

Sada, nisu svi operatori slično definisani:

Npr. operator&& generiše sequence point, pa je ovo ok:

a = i++ && ++i;

Tvoje prefix i sufix funkcije rade, zato što se baš pre ulaska u pozvanu funkciju generiše sequence point. Problematično je to što su te funkcije intuitivna reprezentacija ++ operatora, a opet - ne ponašaju se isto. Takođe je problematično da se, baš zato što se kompajleru ostavilo na slobodu da bira, usled različitih redosleda generiše različit rezultat (i = i++ može da bude i 1 i 2).

Kako kaže Branimir, ovo je u Javi (poučeni iskustvom) sve rešeno.

 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.3gnet.mts.telekom.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 12:12 - pre 121 meseci
Burgos, kod

a=i++ + ++i;

ima nedefinisano ponašanje i ako operatore uvećanja zameniš funkcijama prefix u suffix, koje sam napisao. To nedefinisano ponašanje je isključiva posledica proizvoljnosti redosleda računanja operanada operatora +.

Sa druge strane, zbog česte potrebe za iskazima oblika

if (p!=0 && *p==5) ...

logički operatori su definisani drugačije, tj. operandi se računaju sleva udesno, pri čemu se ako je levi operand operatora && netačno, onda se desni ne izračunava, već je rezultat netačno. Zato on ima drugačije ponašanje. Definisano mu je ponašanje u potpunosti, uključujući i redosled računanja operanada.

Sa druge strane, u slučaju standardnog operatora uvećanja, iskaz

i=i++;

ima jednoznačno definisano ponašanje, a to je da nema efekta. Zameni operator uvećanja suffux funkcijom i dobićeš isto.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 12:22 - pre 121 meseci
Moguće da sam pogrešio za funkcije. Međutim, svakako izraz ne bi smeo da ti zavisi od redosleda izračunavanja funkcija.

Što se ovog tiče, grešiš.

i=i++;

nema tačno definisano ponašanje baš zbog ovoga:

Citat:
Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression


Prosto, postoje dva upisa u istu promenljivu u istoj sekvenci, što je nedefinisano.

Pošto ogromna većina kompajlera undefined (ili unspecified) behavior rešava na svoju stranu (ja znam samo za jedan koji to ne radi - CompCert), razrešava ga kao NOP. Međutim,
to je i dalje po standardu undefined behavior i kompajler ne sprečava ništa da u narednoj iteraciji odluči da radi drugačije, npr. postoje ova dva izbora:


Code:

i = 3;
i = i + 1;
int tmp = i;
i = tmp;

Code:

i = 3;
int tmp = i;
i = i + 1;
i = tmp;




(izvor: http://stackoverflow.com/quest...i-i-truly-a-undefined-behavior)



Npr. clang i g++ će sa -Wall (a i dalje mi nije jasno zašto ovo nije default opcija) prijaviti warning:

warning: operation on ‘i’ may be undefined [-Wsequence-point] (g++)

warning: multiple unsequenced modifications to 'i' [-Wunsequenced] (clang)


Npr. VC++ izbacuje 4, a g++ 3.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 14:04 - pre 121 meseci
Prvi kod odgovara iskazu

i=++i;

a drugi iskazu

i=i++;

To nije isto. VC++ krši sva moguća pravila i standarde, pa ga ne treba uzimati za primer. Što se gcc-a i clang-a tiče, oni prijavljuju problem onda kada nemaju dokaza da problem ne postoji, a ne kada problem postoji. U Java i C# jezicima postoji pravilo jasne dodele. Međutim, ono nije zadovoljeno u slučaju

int f(int x)
{
int y = x%2;

y=y*y;
if (y == 0) {return 1;}
if (y == 1) {return 3;}
}

Jednostavno, kompajler nije dovoljno pametan da skapira da su obuhvaćene sve moguće vrednosti za y, pa prijavljuje problem.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 15:56 - pre 121 meseci
Prosto, kompajler je obavezan samo da implementira standard. To što ti pričaš važi za iskaze

a = ++i;

odnosno

a = i++;

U slučaju i = i++; sve se posmatra kao jedan korak, pa se svi međukoraci mogu preurediti po volji.

U slučaju da u jednoj sekvenci imaš dva upisa u promenljivu (operator= i operator++), imaš undefined behavior i tu je standard prilično jasan - ne propisuje ništa - odnosno jasno kaže da ne propisuje ništa, pa ni VC++ ne krši standard. Inače, ovo je kompajlirano VC++2013, kada je Herb Sutter već 10 godina u VC++ timu i std komitetu (nije VC98 u pitanju), i VC2013 jako dobrim korakom prati standard.

Evo ti ponovo citat iz standarda:

Citat:
Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 17:31 - pre 121 meseci
OK, ali zar ta rečenica ne znači da se to ne može kompajlirati? Hajde, kako to da kompajliraš, a da ni na jednu adresu ne upišeš vrednost više od jedanput?
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 17:42 - pre 121 meseci
Ne kaže tokom celog programa, nego između dva sequence pointa:

Citat:
Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression.
;

Citat:

1.
a = 5;
2.
b = a + b;
3.


Ovde imaš tri sequence pointa (ne znam na srpskom). Između 1 i 2, vrednost promenljive a se menja tačno jednom. Između 2 i 3, sačuvana vrednost promenljive b se menja samo jednom (jednom se čita, ali se samo jednom menja).

Dok ovde

Code:
b = a + b++;


vrednost promenljive b se menja dva puta u toku jedne sekvence.

 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 18:23 - pre 121 meseci
Niko ne pominje ceo program. Rekao si da je cela naredba

i=i++;

između dva uzastopna sequence pointa, tj. da nema nijednog između, pa me zanima kako će cela naredba da se kompajlira a da nema dve dodele promenljivoj i. U onom tvom kodu na oba mesta ima po dve dodele promenljivoj i.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 18:56 - pre 121 meseci
U svakom slučaju, član hotchimney i ja smo se oko nečega složili. Studenti imaju obilatu pomoć nastavnog osoblja, iako nisu masne studentkinje, već npr. muškarci.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 19:59 - pre 121 meseci
^ U svakom slucaju, ako se radi o muskom homoseksualnom nastavnom osoblju :)
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 20:33 - pre 121 meseci
Citat:
Nedeljko:
Niko ne pominje ceo program. Rekao si da je cela naredba

i=i++;

između dva uzastopna sequence pointa, tj. da nema nijednog između, pa me zanima kako će cela naredba da se kompajlira a da nema dve dodele promenljivoj i. U onom tvom kodu na oba mesta ima po dve dodele promenljivoj i.


Aha, izvinjavam se, nisam razumeo.

Nisam rekao da je zabranjeno, zato se i kompajlira, pritom je to unutra stvar implementacije kompajlera (može nijednom da ne upiše ništa u memoriju, ako želi) ali kaže - ako ste tako napisali, mi ništa ne garantujemo - može da se desi bilo šta, bilo kako ili da se ne desi ništa - sve je do implementacije kompajlera (a u ovom slučaju, dve implementacije zrelih kompajlera izbacuju dva rezultata, baš iz tog razloga)

Citat:
1.3.24 [defns.undefined]

Undefined behavior

behavior for which this International Standard imposes no requirements
[ Note: Undefined behavior may be expected when this International Standard omits any explicit definition of
c ISO/IEC N3242=11-0012 behavior or when a program uses an erroneous construct or erroneous data.
Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to behaving during translation or
program execution in a documented manner characteristic of the environment (with or without the issuance of
a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message).

Many erroneous program constructs do not engender undefined behavior; they are required to be diagnosed.
—end note


O tome je cela priča - ako nisu uključena upozorenja, a neko neiskusan piše ovakav kod (a ovakav kod obično piše neko neiskusan) svašta može da se desi. U Javi su se, hvala Bogu, bar od toga ogradili.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 20:37 - pre 121 meseci
Moram da se ispravim, upravo gledam, situacija je malo bolja sa C++11, jer je izgleda

i = ++i;

određeno, mada i dalje

i = i++;

nije.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: C ispred Jave po popularnosti?15.04.2014. u 23:29 - pre 121 meseci
Citat:
Burgos:
O tome je cela priča - ako nisu uključena upozorenja, a neko neiskusan piše ovakav kod (a ovakav kod obično piše neko neiskusan) svašta može da se desi. U Javi su se, hvala Bogu, bar od toga ogradili.


Sto znaci samo da je java otpornija na ne-programere. Ne znaci da je "bolja"/"popularnija"... ni Scratch to ne podrzava pa ne znaci da je bolji od bilo cega

To sto se nova programska okruzenja (da ne kazem novi programski jezici) prave tako da, na racun utroska ogromnih kolicina resursa, omogucava(ju) retardima da pisu kod koji kvazi radi, nikako ne moze da znaci da su ta okruzenja / ti jezici "bolji". Java nije VM zato da bi imala GC i da bi nesto moglo ili ne, Java je VM da bi radila na bilo kojoj hw/os kombinaciji a onda vecina restrikcija i mogucnosti proizilazi odatle. Neki drugi su VM samo zato sto je VM jedini nacin da se retardima omoguci da pisu kod koji je sandbox-ed (zato sto doticni developeri OS-a nisu umeli to drugacije da izvedu)... pa im je VM resenje problema koje nisu umeli da rese a ne polazna tacka koja definise ogranicenja..

Rasprava o tome sta ce koji kompajler da uradi za i=i++; ?!?!? svodi se na to da onaj ko to napise u kodu ne treba da se bavi programiranjem nego treba da ide da kosi travu ili secira zabe...


 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
212.178.232.*

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: C ispred Jave po popularnosti?16.04.2014. u 00:45 - pre 121 meseci
Nisam rekao da je Java bolja. Ja i ne pišem u Javi, već uglavnom u C-u (i još 10% C++). Samo kažem da bi i C i C++ bili bolji kada bi se ovakve stvari ispravile (a, kao što sam primetio sa onom primedbom za C++11 - već se ispravljaju).

Ono što je neupitno je da razvoj raznih programskih jezika i okruženja i čega već, odgovora svim jezicima/okruženjima, jer se u svakoj iteraciji u svakom jeziku usvajaju najbolje metodologije iz konkurentskih, i mislim da su tu svi na dobitku.


Citat:
Rasprava o tome sta ce koji kompajler da uradi za i=i++; ?!?!? svodi se na to da onaj ko to napise u kodu ne treba da se bavi programiranjem nego treba da ide da kosi travu ili secira zabe...


Nažalost, iako si u pravu, to često nije slučaj. Pogledaj samo prošlu nedelju - ko piše onakav kod ne treba da piše programe, a kamoli da se bakće oko SSL-a, već da kosi travu - a, ipak - piše programe, i to u OpenSSL projektu. Čak ni ja nisam siguran da sam potpuno imun na gluposti - naročito posle 10 sati rada. Ono što bih preporučio svim mladim ljudima (http://www.youtube.com/watch?v=yI-xPpRDrbw#t=241) je da uvek koriste -Wall -Wextra i slično, a poželeo bih da u narednoj iteraciji to bude automatski uključeno.

 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.dynamic.isp.telekom.rs.



+171 Profil

icon Re: C ispred Jave po popularnosti?16.04.2014. u 07:52 - pre 121 meseci
Citat:
bogdan.kecman: Sto znaci samo da je java otpornija na ne-programere. Ne znaci da je "bolja"/"popularnija"... ni [url=http://en.wikipedia.org/wiki/Scratch_(programming_language)]Scratch[/url] to ne podrzava pa ne znaci da je bolji od bilo cega

To sto se nova programska okruzenja (da ne kazem novi programski jezici) prave tako da, na racun utroska ogromnih kolicina resursa, omogucava(ju) retardima da pisu kod koji kvazi radi, nikako ne moze da znaci da su ta okruzenja / ti jezici "bolji". Java nije VM zato da bi imala GC i da bi nesto moglo ili ne, Java je VM da bi radila na bilo kojoj hw/os kombinaciji a onda vecina restrikcija i mogucnosti proizilazi odatle. Neki drugi su VM samo zato sto je VM jedini nacin da se retardima omoguci da pisu kod koji je sandbox-ed (zato sto doticni developeri OS-a nisu umeli to drugacije da izvedu)... pa im je VM resenje problema koje nisu umeli da rese a ne polazna tacka koja definise ogranicenja..

Rasprava o tome sta ce koji kompajler da uradi za i=i++; ?!?!? svodi se na to da onaj ko to napise u kodu ne treba da se bavi programiranjem nego treba da ide da kosi travu ili secira zabe...



Uf, uf, mnogo toga napisano a nije bas tacno :)


Jednom prilikom sam radio na nekom ogromnom projektu, vlasnici su se hvalili da imaju preko 2 miliona linija koda, projekat je bio C++/C#, radio je ocajno iz moje perspektive a verujem da su i korisnici mislili isto. No, ono sto je bilo interesantno je to, sto usporenje nije dolazilo od jezika i ostalih slojeva (JIT, GC) nego od loseg programiranja. Tipa, stavis breakpoint i vidis da metod koji treba da se pozove jednom, se pozove 5 puta prilikom ucitavanja, sto je totalno suludo. Elem, poenta je da lose programerske prakse i los code ce uvek biti problem, ne alat, u svemu se moze napisati kvalitetan code ako znas. No to znanje i jeste problem, koja je svrha da znas citavu hierarhiju kako se stvari odvijaju od toga kako se pointeri menjaju u registru, pa do alociranje memorije ako sve sto imas da uradis je da resis neki biznis process?

Kompajleri, kao i razni drugi alati su samo to - alati. Sluze da automatizuju posao. Ako je i = i++ losa praksa, zasto koji persun postoji uopste kao mogucnost da se napise? Automatizuj! Isto tako i lociranje memorije je automatizovano. Sve sto moze da se automatizuje treba da se automatizuje. Krajnji nivo automatizacije je type system, koji mnogi ne razumeju i umesto da puste kompajler (tj. staticku analizu, kompajliranje je tu najmanje bitno) da uradi posao, vecina njih radi rucno. Code se 95% vremena cita, 5% vremena pise - sto bolje definises code da ga masina razume to si bolje posao uradio.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: C ispred Jave po popularnosti?16.04.2014. u 08:48 - pre 121 meseci
I šta fali Skreču? :D Kad budem učio klinca programiranju sigurno ću pre izabrati skreč nego bilo šta drugo.
 
Odgovor na temu

[es] :: Advocacy :: C ispred Jave po popularnosti?

Strane: << < .. 9 10 11 12 13 14 15 16 17 18 ... Dalje > >>

[ Pregleda: 84676 | Odgovora: 443 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.