Stranica: 7/15.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 15:31
Postao/la stefan
Ma samo trebaš biti vidovit :)

Šalim se, ali kakvi su sada trendovi... odabir jezika (možda i frameworka) ne bi trebao biti problem. Sve više idemo ka heterogenim rješenjima i kombinacijama više jezika- Ako imaš 10 modula u 10 jezika, kad neki od odabranih jezika/frameworka zastari, onda portaš samo 10% koda na novu tehnologiju ;)

Za C/C++ su mnogo puta prognozirali da je na samrti... ali još se drži. I to kako! i meni je zakon pisati u njemu.
Ali... većinu (manjih) taskova brže i lakše napravim u Pythonu.

Pročitaj sljedeći tekst. Posebno mi je zanimljiva teza o "drugom najboljem u brdo kategorija/primjena". To je moć Pythona!
C++ je apsolutno najbolji u nekim kategorijama, ali je pušiona u ostalim. Python je univerzalan jezik koji nije ni u jednoj kategoriji apsolutni vladar.
http://metarabbit.wordpress.com/2013/10 ... -software/

EDIT: tek sad vidim da je u naslovu "web programiranje". Hm... Svejedno se da povući paralela.
EDIT: malo materijala za flame: Zar C++11 ne pokušava biti kao Python? ;)

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 17:20
Postao/la shrike
Čuj, portanje 30k linija koda nije baš trivijalno ili realno pogotovo u okolišu sa malo razvijatelja, a podrška okoline u smislu da uvijek imaš zajednicu za pitati oko problema se jezikom je ekstremno bitna za velike projekte. Možda razlog zašto većina ljudi ismijava idjeu C-a je jer sve što su radili zapravo svodi na 100-tinjak linija koda u nekoj web stranici koja je živjela par godina i možda se morala minimalno mijenjati. Da sada trebaju modficirati kod od php-a 2 ili ruby 1, baš bi volio vidjeti kako su onda ta rješenja super i dobra.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 18:16
Postao/la jurastublic
Da ali, C_od_30000_linija_koda == Python_od_5000_ l_k;
Odmah je to druga priča kod portanja iako i python ima svojih unutrašnjih problema s kompatibilnošću raznih verzija.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 18:25
Postao/la shrike
Ako bi ti kod bio u C-u, ne bi nikada ništa trebao portat jer se ne bi desilo da se za 10-20 godina C kod više ne bi mogao kompilirat jer verzija C-a 2023. nije ista kao i današnja, a čak i tada bi bila zajednica oko C-a koja bi ti mogla pomoći sa nekim problemom. Sjetimo se da je C na sourceforge i dalje jedan od nekliko najpopularnijih jezika.

broj od 300k linija je za java+framework kod, ne C. sa obzirom kao to sve izgleda, sumnjam da bi C kod bio dulji (dapače, mislim da bi bio kraći). Opet sada naglašavam da su ljudi izuzetno limitirani, tako da je i ovaj prijelaz na neku tehnologiju ekstremno upitan. Drugim riječima, rkešenje ovdje mora biti takvo da se prevođenje na novu verziju jezika jednostavno ne događa ili da postoji automatski prevoditelj.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 18:52
Postao/la nicky
Evo real life primjer od prije par sati:
Kod koji iz slike dekodira barcode u javi ima preko 30000 linija dok u c-u ima manje od 1000. O brzini izvođenja ne moramo niti pričati.

Moja firma se bavi razvojem softvera već 22 godine. Radimo u c/c++. Prvo kad su došli windowsi, kod je razdvojen na gui i ostalo. Kad je došao android, uzeli smo taj isti c kod (ostalo), i na njega dodali android gui i stvar radi identično ko na PC-u. Naravno da ista stvar radi i na linuxu (jedino tu još nismo napravili GUI). Pričam o prebacivanju programa starog 22 godine ;)

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 19:14
Postao/la stefan
Ja se slažem s tezom da će C/C++ još dugo biti aktualan.
Ali.. samo kažem da npr pročitati podatke iz fajla i na temelju njih nacrtati graf je 5 linija koda u Pythonu.
U C++ je to sat-dva posla. A u C-u? N eznam, vjerojatno cijeli dan...

Što je bolje?
C/C++ će graf napraviti za 0.00001 sekundu, dok će Python biti čak 50 puta sporiji!
C++ (QCustomPlot) graf će izgledati super, Python (matplotlib) isto super. C? :hmm
Ako poželimo malo urediti graf prema osobnim potrebama (osi, labelovi, vrste linija) to se napravi 50 puta brže u Pythonu.
Ako želimo animaciju grafa, ok 2 minute posla u Pythonu... A C++? Dosta, puno, previše... C? :lulz

Ovo je izoliran primjer, koji ja radim u Pythonu 50 puta u tjednu. Mogu i u C++... ali 5 puta tjedno :)
Vjerujem da primjera ima još.

S druge strane, kada radim intenzivne proračune (mjerljivo u satima) onda mi ne pada na pamet koristiti Python. Jer bi trajalo danima!

Imam osjećaj da pokušavate postaviti tezu da je C/C++ najbolji jezik za sve namjene! Nije!

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 19:26
Postao/la shrike
stefan je napisao/la:Ja se slažem s tezom da će C/C++ još dugo biti aktualan.
Ali.. samo kažem da npr pročitati podatke iz fajla i na temelju njih nacrtati graf je 5 linija koda u Pythonu.
U C++ je to sat-dva posla. A u C-u? N eznam, vjerojatno cijeli dan...

Što je bolje?
C/C++ će graf napraviti za 0.00001 sekundu, dok će Python biti čak 50 puta sporiji!
C++ (QCustomPlot) graf će izgledati super, Python (matplotlib) isto super. C? :hmm
Ako poželimo malo urediti graf prema osobnim potrebama (osi, labelovi, vrste linija) to se napravi 50 puta brže u Pythonu.
Ako želimo animaciju grafa, ok 2 minute posla u Pythonu... A C++? Dosta, puno, previše... C? :lulz

Ovo je izoliran primjer, koji ja radim u Pythonu 50 puta u tjednu. Mogu i u C++... ali 5 puta tjedno :)
Vjerujem da primjera ima još.
Apsolutno, nisam ni rekao da nije tako. Ali ako ti je crtanje grafova bitna stavka, ili bilo što drugo, onda očito ne pišeš taj kod svaki put, nego ga staviš u kontroler i samo pozivaš gotovu funkciju koja crta graf prema zadanim parametrima. Jednom si potrošio par sati, a svaki drugi put 5 sekundi. Isto to sa svime ostalime. To je onaj inicijalni problem gdje moraš napisati biblioteku koja rješava tvoje učestale probleme i pitanja. Nakon toga više nemaš beda i ideš brzo. Opet ponavljam, kratkoročno će ti python uistinu biti brži, ali za 10 godina održavanje tog python koda će biti noćna mora. Trebat će se držati arhaične verzije jezika/frameworka i čitavog njegovog stoga + nula podrške zajednice ako imam problem. Nitko neće podržavati python 3 ako je trenutna verzija python 5.

stefan je napisao/la: Imam osjećaj da pokušavate postaviti tezu da je C/C++ najbolji jezik za sve namjene! Nije!
Ne, uopće. Ovo je stvar da je inicijalno teže, ali dugoročno lakše. Ja apsolutno shvaćam da je inicijalni razvoj u C-u sporiji i teži od recimo pythona i php-a. Problem je onaj koji sam inicijalno stavio na prošloj stranici, a to je da python/java i ostali jezici jednostavno ne drže kompatibilnost sa starijim verzijama i na aplikacijama za koja unaprijed garantirano znaš da će se vrtiti i za 15 godina, ti imaš garantirantirano goleme probleme. Jednostavno nije samo stvar brzine (iako su performanse u zadnje vrijeme isto postale problematične), već i stvar dugoročne održivosti. Da je ta aplikacija pisana u C-u, novi ljudi bi sada lakše našli rješenje za svoje probleme i pomoć, te ne bi trebali gubiti vrijeme učeći framework koji se ne razvija već 6 godina i koristiti čitavi arhaičnog bloata.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 19:48
Postao/la stefan
shrike je napisao/la:Apsolutno, nisam ni rekao da nije tako. Ali ako ti je crtanje grafova bitna stavka, ili bilo što drugo, onda očito ne pišeš taj kod svaki put, nego ga staviš u kontroler i samo pozivaš gotovu funkciju koja crta graf prema zadanim parametrima. Jednom si potrošio par sati, a svaki drugi put 5 sekundi. Isto to sa svime ostalime. To je onaj inicijalni problem gdje moraš napisati biblioteku koja rješava tvoje učestale probleme i pitanja. Nakon toga više nemaš beda i ideš brzo. Opet ponavljam, kratkoročno će ti python uistinu biti brži, ali za 10 godina održavanje tog python koda će biti noćna mora. Trebat će se držati arhaične verzije jezika/frameworka i čitavog njegovog stoga + nula podrške zajednice ako imam problem. Nitko neće podržavati python 3 ako je trenutna verzija python 5.
Ništa osobno, ali imaš malo tvrdoglavi stav.
Znači napišeš Python u 5 sekundi prvi put i svaki sljedeći u 5 sekundi. Napišeš C++ u 5 sati i svaki sljedeći u 5 sekundi.
I uštedio si milijuntinku sekunde pri izvođenju tog koda? :thmbs-up
Što ako ti treba graf koji ćeš napraviti samo jednom i nikad više? Npr za članak, seminar, prezentaciju ili sl.?

Pa zar misliš da u pythonu ne iskoristiš prethodno napisani modul (biblioteka)? Misliš da oni od prije 10 godina ne rade???

Ne znam da li si upoznat, ali numpy, scipy, matplotlib i pandas tek od ove godine podržavaju Python 3. Ali i dalje se preporuča Python 2. OK, ta tranzicija će vjerojatno potrajati još par godina iako je Python 3 izašao prije punih 5 godina!

Pa nisu ti developeri tako bedasti, misliš da njima nije u interesu da im strai kod uvijek radi?? Jednom se je slomio backward compatibility i vidi se da to tako ne ide! Previše koda ovisi o tome. Tako da čisto sumnjam da će se opet brejkati backward kompatibilnost.

Ne znam kako je sa ostalim jezicima... znam da PHP nije tako frendly sa verzijama kao Python....

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 20:04
Postao/la shrike
stefan je napisao/la: Ništa osobno, ali imaš malo tvrdoglavi stav.
slažem se, ali imaju i svi ostali kada mi uporno tvrde da su adekvatni jezici i framworci za koje ZNAM da nisu dobri i da imaju dugoročne probleme.
stefan je napisao/la: Znači napišeš Python u 5 sekundi prvi put i svaki sljedeći u 5 sekundi. Napišeš C++ u 5 sati i svaki sljedeći u 5 sekundi.
I uštedio si milijuntinku sekunde pri izvođenju tog koda? :thmbs-up
Što ako ti treba graf koji ćeš napraviti samo jednom i nikad više? Npr za članak, seminar, prezentaciju ili sl.?
Ignoriraš kontekst o kojem govorim. Nije poanta u tome što koristiti ako ti treba jednom za seminar. Apsolutno je jasno da češ tada koristiti što je najlakše i najbrže moguće. Znači ponavljam, poanta je u tome da imaš program pisan u jeziku koji će i dalje biti aktualan za više od 10 godina, možda čak i 20-30 godina. Zašto? jer se ralno nalazim u stvarnoj tkavoj diskusiji. To prvo, onda portabilnost i onda performanse. Znači, eksplicitno ne govorim o jednokratnim upotrebama i jednostavnim stvarima. I da budem krsitalno jasan, sa pythonovim backward kompatibilnostima nisam upoznat ali sa primejrice php, ruby i java sam vidio da su neposotjeće/upitne. Također specijalno naglašavam da je ovdje i pitanje frameworka, a ne samo jezika kao takvog.
stefan je napisao/la: Pa zar misliš da u pythonu ne iskoristiš prethodno napisani modul (biblioteka)? Misliš da oni od prije 10 godina ne rade???
Pa nisu ti developeri tako bedasti, misliš da njima nije u interesu da im strai kod uvijek radi?? Jednom se je slomio backward compatibility i vidi se da to tako ne ide! Previše koda ovisi o tome. Tako da čisto sumnjam da će se opet brejkati backward kompatibilnost.
Da, zapravo jesu bedasti. Glupi su ko panjevi. Znaš kako to znam? Jer stari kod jednostavno ne radi. Što ti misliš zašto se vuku stare biblioteke i programi od prije 10 i više godina? Jer nove ne rade. Ruby je toliko neopisivo smeće da kod pisan u 1.9.1 ne radi na 1.9.2 ili 1.9.3. Onda mi priča kako je to super jezik. Čisto govno.

Opet ovdje moram ponoviti jer vidim da ignoriraš kontekst. Riječ je o web aplikaciji koja će se garnatirno koristiti za 15 godina. Bitno je što se tada događa kao i danas, a to nije samo pitanje brzine koju ti stalno forsiraš već i pitanje toga da li će novi ljudi biti u stanju dobiti pomoć zajednice, jer nitko ne podržava ili pomaže sa stvariam koje su se prestale koristiti prije tipa 5-7 godina.

Re: Novi jezici, njihove paradigme i web programiranje :)

Postano: 22 lis 2013, 20:06
Postao/la jurastublic
nicky je napisao/la:Evo real life primjer od prije par sati:
Prvo kad su došli windowsi, kod je razdvojen na gui i ostalo. Kad je došao android, uzeli smo taj isti c kod (ostalo), i na njega dodali android gui i stvar radi identično ko na PC-u.
Pametno ste razdvojili i zato dio koda niste morali dirati. To bi vrijedilo za svaki programski jezik.
Ali što se prave portabilnosti C-a tiče, jeste li onaj Windows GUI dio koda samo jednostavno wrapali u javu kod prebacivanja na android ili ste ga morali ponovo pisati u javi (znam da je nemoguće jer "portabilnost je bitch..."). Mislim da niste. Znači, najvažnije je pametno vođenje projekta i u sklopu toga i biranje najboljih jezika za određenu zadaću u sklopu projekta.