Sada je: 18 tra 2024, 03:35.
C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Bok ekipa!

Ima par stvari koje me malo muče, čisto filozofski. Kako nitko nema odgovor, ili bar ne zadovoljavajuće ili logički konzistentne/koherentne, mogli bi ovdje malo prodiskutirati to. Eto, osobne se nisam nikada zanima za web programiranje, i više sam bio tip koji se držao C i matlaba, sa nekim doticajima i radu u qbasic/VB6. Nisam se nikada baš zanimao previše za C++, java, python, php, ruby i slične stvari do nedavno, a onda sam primjetio neke jako, jako čudne stvari.

1) Jezici tipa PHP/ruby/python itd su navodno mnogo bolji od C/C++ za web.

SHRIKE kaže:
To je notorna glupost. Autori jezika tipa ruby/php su, ne ću reći debili jer ipak moraš biti u stanju to napraviti, ali da su profesionalno nesposobni jesu. U čemu je štos? Imaš aplikaciju u recimo rubyu/railsu (nadalje ror). Taj jezik i framework se mijenjaju toliko brzo i toliko drastično, da 3 godine staru aplikaciju doslovno ne možeš portati na novi komp bez da googlaš kao idiot gdje su stari gemovi. Isto je sa svim ostalim skriptnim jezicima te katoegorije pa i javom: ne drže nikakvu backward kompabitilnost. Njihova prednost nad C programiranjem u web-u (pa i općenito) je isključivo u tome što će ti aplikacija incijalno biti brže napravljena, ali njeno održavanje i kontinuirani update te troškovi opreme zbog većih hardverskih zahtjeva (pogotovo kada govorimo java/ruby) debelo nadmašaju cijenu C-a.

U C-u (fortranu, C++, ..) istina, moram više vremena provesti oko inicijalne izrade aplikacije, ali jednom kada radi - radit će desetljećima bez promjene koda. Dapače, s obzirom da se danas koriste MVC frameworci, kod se ne treba mijenjati da bi mijenjao dizajn. Ne brkati to dvoje, jezik može biti star kao recimo ANSI C, ali i imati vrhunski dizajn.

Zapravo, kada smo već kod toga, skužio sam da 99.99% programere a zapravo niej u stanju reći zašto su objektni jezici bolji (ako uopće jesu) od tih nekih drugih. Većina argumenata je "tako je jer je tako"; "svi znaju da je tako", "pa sve su ti objekti, kud češ bolje". Slično je i sa idejom o C/fortran za web: "loše je jer nitko to ne radi", "svi rade ovo ovdje", ...

Što mislite o tome svemu? Zašto recimo PHP/ruby/java ne drže back kompatibilnost, za razliku od fortran/C? Zašto bih namjerno pisao veliki i kompleksni projekt za koji u naprijed znam da ću morat konstatno upgredat da bi radio ( i koji će biti barem 10-200 puta sporiji)?
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 10322
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 181 puta
Primio/la zahvalu: 313 puta
Spol: Y
OS: utuntu 19.10
Ante kaze: odi programiraj site u C-u ili Fortranu (makar ne znam zasto njega spominjes u ovoj prici i on je napisan za numeriku a ne za neke ostale pizdarije).
Za Ruby ne znam kakva je situacija jer se ne bavim s njim ali sam radio ko web developer u PHPu i firma je imala svoj framework koji su koristili i nije bilo nikakvih problema. PHP se novijim verzijama poboljsavao i istina je da postoji razlika u funkcijama i nekim stvarima ali nista toliko bitno da bi se cijeli sustav srusio.
I pogle recimo Njuskalo. Site koji ima nekoliko milijuna posjetitelja dnevno, ogroman je i jako zahtjevan je pisan u PHPu i nema nikakvih problema sa brzinom i sl. Jedino sto moze biti sporo je MySQL a i tu se koriste tehnologije kao memcache, sphinx i sl koji optimiziraju to.

Glupo mi je uopce ista komentirati posto si i sam napisao da se s tim nisi bavio pa ne znam koliko uopce mozes biti mjerodavan pricati o tako necemu. Nitko ali nitko nece ici raditi site u C++u (osim ako nema pametnijeg posla u zivotu ili mu treba nesto jako posebno) nego ce koristiti neki jezik koji postoji za to.
Ima toliko rupa u tvojoj teoriji da mi se stvarno neda sve objasnjavati i moj ti je savjet da se uopce ne raspravljas oko stvari s kojima nisi radio niti se susreo jer stvarno ispadas osoba koja pati od Diablo sindroma (pogle svoj potpis).

I cisto za kraj, probaj napraviti hello world web site u C++u i PHPu (za Python i Ruby se ne vezem jer nisam nikad radio s njima web site).
Avatar
Postovi: 664
Postovi: 664
Pridružen/a: 11 tra 2010, 16:35
Podijelio/la zahvalu: 5 puta
Primio/la zahvalu: 5 puta
Spol: M
OS: Arch
OK, prvo jesam se susretao u zadnjih godinu i kusur i jesam imao problema i jesam napisao hello world u c++ za web. Zapravo, neki su je sa foruma i vidjeli. Zapravo, ruby program je toliko masivno ne kompatibilan da se aplikaciju ili mora kompletno prevoditi ili pisati od nule. Ipak, baš zato što se nisam aktivno bavio web programiranjem mi nisu neke stvari jasne, pa stoga i ova tema. I za kraj, nisi rekao ništa osim da se to ne radi jer se ne radi:) Zato fino navedi konkretne razloge zašto NE pisati web u C-u, osim da nemam pojma i tome slični kvazi argumenti..

PS
kakve veze diablo sindrom ima sa time što mislim da trenutne tehnologije imaju solidne rupe? Kaj, ne smijem reći svoje mišljenje?
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 10322
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 181 puta
Primio/la zahvalu: 313 puta
Spol: Y
OS: utuntu 19.10
shrike je napisao/la:Što mislite o tome svemu? Zašto recimo PHP/ruby/java ne drže back kompatibilnost, za razliku od fortran/C? Zašto bih namjerno pisao veliki i kompleksni projekt za koji u naprijed znam da ću morat konstatno upgredat da bi radio ( i koji će biti barem 10-200 puta sporiji)?


Mislim da dovoljno dobro dizajnirani ili dodaju stalno neke nove feature pa razne promjene poremete mnoge stvari, poznato mi je da ruby posebno ruby on rails ima/o takvih problema, iskreno nezz kakva je trenutna situacija, ne znam za fortran al c mora biti jako jako stabilan jer je to 'building blocks of 21 century' :). Vecinu implementacija programskih jezika koje ja poznajem su napisani u c-u od pyhon-a, sbcl-a, clisp-a, guile-a, ruby-a,....

Ako zelis back compatibility i expressiveness definitivno za tebe je common lisp dusu dao, malo proguglaj i istrazi o lispu ako vec nisi.
Nije sloboda radit ono sto hoces, nego da ne radit ono sto neces.
Avatar
Postovi: 324
Postovi: 324
Pridružen/a: 30 kol 2011, 04:14
Podijelio/la zahvalu: 5 puta
Primio/la zahvalu: 6 puta
jasox je napisao/la:
Ako zelis back compatibility i expressiveness definitivno za tebe je common lisp dusu dao, malo proguglaj i istrazi o lispu ako vec nisi.


Nisam, pogledat ću. Već sam čuo dobre stvari od lispu! Meni je isto inače palo na pamet da probleme oko kompatibilnosti ne vide jer non stop nadograđuju stvar, pa malo po malo sve korigiraju. Problem je naravno, nakon 3-5 godina kada želiš aplikaciju vrtiti. Zapravo, upravo sada imam problem sa ruby 1.8.7 aplikacijom koja ima teške i sustavne probleme sa ruby 1.9.3
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 10322
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 181 puta
Primio/la zahvalu: 313 puta
Spol: Y
OS: utuntu 19.10
Ako imaš tako staru aplikaciju, instaliraj stariji ruby.

Koliko god ti se "hardcore" programski jezici kao C ili FORTRAN činili unazad kompatibilni i oni imaju problema, npr. vidi FORTRAN. Zato ćeš upotrijebiti stariji kompajler za FORTRAN ili C kad ćeš takvo što trebati. Jedino je njihov vijek kompatibilnosti puno dulji - 10-ak godina. Moderniji jezici brže se prilagođavaju trenutnim potrebama web programiranja (i svog drugog programiranja), nego "hardkoraši" i zato češće lome kompatibilnost sa starijim verzijama. Zato nema jednoznačnog odgovora - ako ti je prioritet da aplikacija radi idućih 10-15 godina, napisat ćeš je u C-u, ali ćeš vjerojatno pri tome dušu ispustit da imaš osnovne funkcionalnosti koje ti daju moderni jezici (ako si pisao web aplikaciju u C-u, kako si sredio podršku za UTF-8 npr.? UTF-8 je must-have na webu.). Korištenje vanjskih biblioteka pri tome nije baš neka opcija jer se i one mijenjaju i svatko tko je samo kompajlirao neki stariji program s puno ovisnosti zna kakva je to noćna mora tako da korištenjem 3rd party biblioteka gubiš tu glavnu prednost.

Većina aplikacija piše se za kraće vrijeme "života", stoga je potrošiti godine na razvoj suludo. I zato ljudi nisu "idioti" što koriste te jezike.

Što se tiče drugog pitanja, OOP paradigma nije "konačno rješenje" za sve probleme u programiranju, to nitko suvisao ne može ni tvrditi, ali da u mnogim slučajevima pomaže pri organizaciji koda i brzini programiranja - to je činjenica, zato ga uostalom ljudi koriste, a ne zato što je netko to propisao.
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
Avatar
Moderator
Postovi: 4060
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Lokacija: Hamburg, DE
Podijelio/la zahvalu: 111 puta
Primio/la zahvalu: 183 puta
Spol: M
OS: Fedora/KDE
Uzmes python, django i virtualenv i imas svoju okolinu za svaki projekt, bez velike zajebancije, jedna naredba u terminalu vise.
Avoid the Gates of Hell. Use Linux!
Avatar
Postovi: 400
Postovi: 400
Pridružen/a: 13 sij 2009, 12:57
Lokacija: Zagreb
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 15 puta
Spol: M
OS: openSuse 11.3
4ndY je napisao/la:Ako imaš tako staru aplikaciju, instaliraj stariji ruby.


Djeluje logično, zar ne? To sam i ja mislio dok nisam to i probao. Da je stvar samo do ruby-a kao takvog, ne bi čak ni bio problem. Problem nastaje u tome što ti programi za web ovise o točnoj verziji rubya, railsa i svih gem-ova (librarya). Ti sveto moraš klonirati, a ti gemovi se ne nalaze u istom folderu kao i dotični kod. znači da sve preko internog ruby packet managment sustaa moraš instalirati specifične verzije svih tih stvari, i to pod uvjetom da još uvijek postoje u repozitorijima.
Zapravo, ruby je priča za sebe jer ljudi koje okuplja su fanbojevi. Ekipa ne piše nikakve komentare u kodu ili uopće dokumentaciju jer navodno ne treba. To je tolika glupost da je to spektakularno. Uzmi u obzir da oni uopće ne vide nikakve problem sa čitavim ovim sustavom i da ruby uzdižu iznad svega...

Ah, UTF-8 na C-u se rješava tako da napišeš vlastiti kod za mapiranje ili nađeš već gotovi .h na netu kojih isto ima. Malo sam se i poigrao sa wt frameworkom za web pisan u C++. Dosta zanimljiva stvar. Napravljen je tako da zapravo emulira pisanje qt aplikacija za desktop, tj. primarno je namijenjen pisanju web aplikacija. E sad, jednom napisani kod se može zavritit na bilo kojem linuxu iste arhitekture ako ima identične biblioteke (što je malo nezgodno ali i tipično za desktop aplikacije), ali se zato kod može kompajlirati bez obzira na verziju trenutnih biblioteka što je jako zgodno.

wt također ima kompletnu UTF-8 podršku, po defaultu ima čitav niz sigurnosnih elemenata (recimo, DROP TABELS ne radi po defaultu, ne moraš ništa sam pisati), u stanju je sam generirati CSS3, js/ajax, XHTML ili HTML5 kod i još dosta toga zanimljivoga. Ovakav način pisanja web aplikacija mi zapravo ima smisla - pišeš ih kao i desktop aplikacije jer zapravo služe istoj svrsi, ali preko drugačijeg medija. Činjenica da je to u C/C++ (wt se može raditi i u pythonu, javi ili ruby isto tako) ti samo daje prednost da će ti isti server moći opslužiti veći broj korisnika ili isti broj sa manjim opterećenjem na sustav. Kako je to MVC, slobodno mijenjaš dizajn.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 10322
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 181 puta
Primio/la zahvalu: 313 puta
Spol: Y
OS: utuntu 19.10
Je li nekom od vas palo napamet da dosta stranica / projekata koristi shared hosting i da nisu u mogućnosti dobiti ni shell pristup, a kamo li pokretat bilo kakve druge aplikacije!?
Lutherus je napisao/la:Ne postoje linuksi, postoji samo Linux i on je jedan i on je kernel.

Is Linux About Choice? || Pulsir - awesome blogging site :D
iv@n je napisao/la:Divide et impera i kako se kaže na latinskom da je ljudska glupost neuništiva.
Avatar
Postovi: 6781
Postovi: 6781
Pridružen/a: 06 lis 2011, 01:29
Lokacija: ~$
Podijelio/la zahvalu: 145 puta
Primio/la zahvalu: 58 puta
Spol: M
OS: Ovisi za sta
Ma daj, ja sam imao VPS za 7$ i imao puni shell pristup sa izborom OS-a, tako da to nije izlika.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 10322
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 181 puta
Primio/la zahvalu: 313 puta
Spol: Y
OS: utuntu 19.10

Na mreži
Trenutno korisnika/ca: / i 13 gostiju.