12.07.2005. (09:56)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Berislav www.lopsica.com
ActiveState (strucnjaci za jezike kao sto su PHP, Python, Perl, Tcl i XSLT) takodjer imaju zanimljiv tekst na tu temu: http://www.activestate.com/Company/NewsRoom/whitepapers.plex
12.07.2005. (10:59)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Meni je ova usporedba jedna totalna besmislica... Nisam ga bas jako detaljno citao jer ionako vidim da je to jedan od onih clanaka tipa "python je bolji od jave zato sto se u prosjeku pise dva puta manje koda i zato sto ne moram tip varijable eksplicitno deklarriati". Mislim sorry, ali to je jednostavno glupo kao argument i potpuno irelevantno ako biras jezik za svoj projekt. Ja isto volim Python, ali argumenti u tom clanku su potpuno irelevantni...
12.07.2005. (12:09)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Pa ne znam je li baš potpuno irelevantno... Naravno da neće biti presudno, ali ako ću u jednom jeziku napisati app brže i efikasnije, s manje koda i manje muke, mislim da je to itekako relevantno u odabiru jezika za projekt. Uostalom, u članku ima i malo više argumenata osim dvostruko manje koda i (ne)deklaracije varijabli prije korištenja...
12.07.2005. (13:10)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Ma gledaj, kad u testu broji koliko je redaka (a kod pise tako da je otvorena viticasta zagrada u novom redu) mora biti religijski. To je jedna stvar, druga stvar vise koda ne znaci da ga moras vise i tipkati (barem to s IDE-ovima kao eclipse nije nikako slucaj) - ja sam prilicno siguran da u javi tipkam isto ili manje za isti kod u Pythonu. A, ako negdje ima vise koda to je zato sto je API zaguljen, a ne zbog jezika. Mislis li da manje koda znaci i manje muke - probaj Perl; u Perlu ces u jednoj liniji napisati ono za sto ce ti trebati 10 linija pythona i 15 jave, ali sacuvaj boze odrzavanja :)
12.07.2005. (13:27)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Mislim da imas krivu predodžbu o Perlu, nije on baš toliko moćan. Odi na http://shootout.alioth.debian.org/great/index.php?sort=fullcpu, pa si pogledaj koliko linija koda treba u nekom programskom jeziku za pojedine zadatke. Npr. sum-file. ;-) Zanimljivi su i podaci o potrošenom procesorskom vremenu i memoriji.
12.07.2005. (14:00)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Ma ne brini... Ja sam od Perla odustao 15 minuta nakon sto sam poceo uciti Python :)
12.07.2005. (14:22)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
zweistein nema ti smisla 'svadjat' se s puzzom oko jave i pythona, vjeruj mi... neznam koliko iskustva imas s jednim i drugim, ali sam uvjeren da puzz zna puno vise... i ja volim python, i mogu reci da imam puno iskustva s njim, a sta da onda kazem o puzzu koji me ucio osnove pythona jos prije 4-5 godina... osobno ne zelim komentirat ovu temu jer je moje iskustvo s javom skoro pa nikakvo...
12.07.2005. (15:49)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Ova usporedba Pythona i Jave je glupost: ona favorizira Python jer Pythonu, kao, treba manje programskih linija da se izrazi jedan te isti programski idiom! To je jako glup kriterij, jer, premda ce neki omanji program ili skriptica zaista biti kraca u Pythonu, nego u Javi, to nije jedini kriterij zbog kojega bi jedan jezik trebao biti proglasen boljim od drugog. Kao sto su rekli u toj usporedbi, jedan programski jezik je Strongly typed (Java), a drugi nije (Python). Sada se postavlja pitanje: zasto je Java strongly typed? Mislim, kreatori Jave su mogli napraviti Javu tako da i ona NE bude strongly typed, a ipak nisu! Zasto? Sigurno ne zato jer oni ne bi bili u stanju to napraviti. Ne, nije poanta u tome. Nego, oni to nisu napravili zato sto strongly typed jezici imaju svojih prednosti nad onima koji to nisu. Osnovna ideja strongly typed jezika je ta da se U COMPILE TIME-u PPOHVATA STO JE VISE MOGUCE PROGRAMSKIH GRESAKA, koje bi, bez uvodjenja strong-type principa bilo nemoguce pohvatati. Jer, gledajte: ako mi u neku varijablu mozemo pohraniti samo objekte unaprijed odredjenog tipa (a ne kao u weakly typed jezicima, objekte bilo kojeg tipa), tada nam KOMPAJLER na neki nacin GARANTIRA DA JE SADRZAJ TE VARIJABLE validan, tj. da doticnoj varijabli tipa "kruske" nismo pridruzili objekt tipa "jabuke". Kod jezika koji nisu takvi, mi takvu garanciju nemamo, i ne preostaje nam nista drugo nego u run time-u lovimo bugove koje je ponekad jako tesko uhvatiti, a koje nam kompajleri strongly-typed jezika love po defaultu! Pa sad, ko voli nek izvoli... ja sam se uvijek do sada smatrala da je bolje sto vise gresaka uhvatiti u compile-time nego u run-timeu, jer je to naprosto brze. No, ja sam samo jedna losa programerka (dovoljan dokaz je to sto obozavam Microsoft i njegove tehnologije, a zna se: svi oni koji vole Microsoft nemaju pojma o programiranju, nestrucni su itd. :-) ). Moj zakljucak: pocetna prednost koju weakly typed jezici pruzaju (poput vece kompaktnosti zapisa programskog koda), vrlo brzo se, kod nesto vecih programskih zadataka, topi zbog olaksanog debugiranja koje vec u compile time-u nude strongly typed jezici!
12.07.2005. (18:05)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Grujo, malo svadje jos nikog nije ubilo (a i Štef nam je zadovoljan kad vidi da ga redovito posjecujemo :-)... A takav strucnjak da se sa mnom ne bi trebalo/moglo diskutirat definitivno nisam :)
12.07.2005. (18:25)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Pa ja mislim da se i nismo baš svađali... To je više bila neka više-manje stručna rasprava (znamo s čije strane više, a s čije manje jel :)). Inače, još je dobro ako grješku nađeš 2 mjeseca prije završetka programa, loše je ako je nađeš 2 sata ili 2 minute prije završetka programa. Inače, daleko od toga da strongly typed jezici nemaju svojih prednosti, da nemaju ne bi postojali, jel...
12.07.2005. (19:50)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
mislis na ono kad te vec pere euforija i odjednom ti se niotkud pojavi neki KeyError i euforija nestane a zivci cure kroz usi?! poznato :)) inace, krivo ste shvatili ono 'svadjanje'... nisam bezveze stavio navodnike...
12.07.2005. (21:17)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Već sam mislio napisati jedan kraći osvrt na programere kojima prevoditelj (compiler) pomaže kod otkrivanja grešaka. Nije problem u tome što se prevoditelj koristi u te svrhe, problem je kad to programeru pređe u naviku. Ne razmišlja previše o kodu jer će prevoditelj javiti grešku. Znam ja za neke individue koji smatraju da je, ukoliko je prevođenje završilo bez grešaka, njihov posao gotov. Simptomatično je da upravo njihove aplikacije imaju najviše bugova. Prevoditelji nisu namijenjeni da tjeraju bugove iz aplikacije, oni prevode vaš pisani kod u binary oblik. Za tjeranje bugova postoje druge metode. Npr. Unit testovi. PyUnit je dio Pythona još od 2.1 inačice. Microsoft nije predvidio ništa slično tome u C#-u pa je posao umjesto njih obavio open source programer kojeg je Microsoft kasnije zaposlio zbog toga. Taj NUnit je inače prepjevan s Jave (JUnit) dok majkom svih unita neki smatraju SUnit (Smalltalk). Zanimljivo je da D programski jezik već ima ugrađenu podršku za unit testove.
13.07.2005. (09:14)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
neznam bas kako netko moze programirati bez da razmislja o kodu... ako se nemogu u potpunosti udubiti u kod, ni ne sjedam za pc...
13.07.2005. (11:32)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Berislav www.lopsica.com
Rekao sam sam sebi da necu sudjelovati i u ovome, ali ne mogu si pomoci. :) Dakle: Poanta #1: Svaki tip jezika i svaki pojedini jezik ima i prednosti i mana; da nije tako, ne bi stalno izlazili novi jezici. Takodjer, za sve stvari postoje tehnike: negdje je to compile-time, negdje su to unit testovi itd. Poanta #2: Po milijarditi put: ne postoje dobri i losi jezici, postoje samo dobri i losi programeri.
13.07.2005. (11:38)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Vuk, ne znam sto je toliko lose u cinjenici da koristim kompajler za otkrivanje gresaka? Dapace, uvijek se trudim podesiti postavke kompajlera (razne switchewe) tako da mi kompajler automatski otkrije STO JE MOGUCE VISE gresaka u kodu! To cinim zato sto znam da nisam savrsena i sto smatram da je pri pisanju programa dobro imati SVU MOGUCU pomoc pri otklanjanju bugova, pa tako i pomoc kompajlera - jer svaka moguca pomoc pri debugiranju nam je itekako dobrodosla! Uostalom, jos je legendarni Steve Maguire u svojoj knjizi "Writing solid code" rekao da su dva najvaznija pitanja koje programeri sami sebi trebaju postaviti kada nadju neki bug u svom kodu ova dva: 1) Kako sam mogao AUTOMATSKI otkriti ovaj bug? 2) Kako sam mogao sprijeciti pojavljivanje ovog buga? U toj svojoj knjizi, Maguire je dao puno zanimljivih tehnika i trikova koji omogucuju upravo da kompajler otkrije sto je moguce vise gresaka. E sad, to je tek prva stepenica. Ako se kompajler ne zali, naravno da ja ne mislim odmah da je moj kod savrsen! Daleko od toga! Ne, on je tada prosao tek prvu stepenicu. I ja takodjer koristim Unit testove. Medjutim, i Unit testove programer mora napisati. A buduci da se Unit testovi pisu istodobno sa kodom kojega oni testiraju, vrlo se lako dogadja da (zbog premalog "mentalnog odmaka") programer napravi identicnu logicku gresku kako u kodu koji se testira, tako u u Unit-kodu koji bi ga trebao testirati, pa greska prodje nezapazeno. U svakom slucaju: kombinacija kompajlerovih gresaka i warninga u type-safe jezicima, kao i dodatno koristenje Unit testova, znacajno doprinose pravodobnom i efikasnom uklanjanju programskih gresaka!
13.07.2005. (19:14)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
sluèajni prolaznik
Dečki, čini mi se da je cura bolji programer od vas.
:)
14.07.2005. (10:37)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Ova math_baby mi djeluje kao isfrustrirana ferovka, strah ju je probati nesto novo, i onda drvi drvi drvi :) Podsjecas me na linux-fanatike kojima je samo linux dobar, i nista drugo ne postoji. :) Ako si mlada, imas jos vremena da naucis nesh, ako si stara, pre kasno je za tebe :) Divna glupaca, nema ih puno! :) Moram priznati da sam zadnjih 40ak minuta citao tvoje komentare na ovom blogu, i moram jos jednom sa zadovoljstvom konstatirati da si - well - divna glupaca :) Ako si jos i zgodna, nema ti premca! :)
14.07.2005. (20:45)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
neferovac
Antracit žica slike! M_B, hoćemo slike! Hoćemo slike! (ali ne ako si ferovka ;-)
14.07.2005. (22:48)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
math_baby, kakve ti alate koristiš? Danas ima razvojnih okruženja koja otkrivaju greške dok ukucavaš kod pa prevoditelju ne ostaje skoro ništa. Npr. Eclipse je jako dobar u tom pogledu, kad sam razvijao Java aplikacije u njemu u 95% slučajeva kad sam stisnuo compile prevođenje je završilo bez ikakvih grešaka ili upozorenja. Zanima me kakvu vrstu grešaka ti otkrivaš uz pomoć prevoditelja? Jedan drugi Microsoft autor (Steve McConnell) ima nekoliko pravila koja se tiču prevoditelja: ne vjeruj brojevima redova u porukama, ne vjerujte prevoditeljima, ne vjerujte drugoj prevoditeljovoj poruci. Nekako mi se čini da nemaš pravog iskustva s različitim prevoditeljima ili je taj tvoj savršen pa ne radi greške koje drugi rade. Tebi se nikada nije dogodilo da P javi grešku daleko od reda u kojem je prava greška? Nikada ti se nije dogodilo da javi pogrešnu poruku o grešci? Nikada nisi dobila gomilu poruka o greškama koje je sve uzrokovala prva greška? Osim toga, ti sitni bugovi koji se tiču 'pravopisa' su tek manji dio problema. Veći su problemi kad imaš logičke greške u programu, prevođenje prođe, program radi, a daje pogrešne rezultate.
15.07.2005. (09:38)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Gle, vuk, ja sam knjigu ovog "tvog" Stevea McConnella (Code complete 2) itekako proucila. I u njoj nisam nasla nista sto bi proturjecilo onome sto sam ti vec rekla o podesavanju compilera tako da javi sto je moguce vise gresaka i warninga. U tome nisam uopce tako usamljena, koliko ti mislis, jer, da si pazljivo citao tu tvoju "bibliju" (Code complete 2), onda bi znao da u njoj pise i sljedece: CITAT#1: "Set the compiler’s warning level to the pickiest level possible. You can catch an amazing number of subtle errors simply by allowing the compiler to detect them. Eliminate the causes of all compiler errors and warnings. Pay attention to what the compiler tells you about your code. Large numbers of warnings often indicates low-quality code, and you should try to understand each warning you get. In practice, warnings you’ve seen again and again have one of two possible effects: You ignore them and they camouflage other, more important warnings, or they become annoying, like Chinese water torture. It’s usually safer and less painful to rewrite the code to solve the underlying problem and eliminate the warnings." CITAT#2: "Compile code at pickiest warning level and fix all the picky compiler warnings" CITAT#3: "One of the simplest and most effective debugging tools is your own compiler. Set your compiler’s warning level to the highest, pickiest level possible and fix the code so that it doesn’t produce any compiler warnings. It’s sloppy to ignore compiler errors. It’s even sloppier to turn off the warnings so that you can’t even see them. Children sometimes think that if they close their eyes and can’t see you, they’ve made you go away. Setting a switch on the compiler to turn off warnings just means you can’t see the errors. It doesn’t make them go away any more than closing your eyes makes an adult go away. Assume that the people who wrote the compiler know a great deal more about your language than you do. If they’re warning you about something, it usually means you have an opportunity to learn something new about your language. Make the effort to understand what the warning really means."
Prema tome, iz ovoga sto sam citirala, vidljivo je da i "tvoj" Steve McConnell dijeli isto misljenje kao i ja o ulozi kompajlera u pronalazenju gresaka i da preporucuje isto ono sto i ja! Prema tome.... molit cu lijepo... :-)
15.07.2005. (17:45)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Ne dvojim ja o tome da li je ili nije prevoditelj važan kod otkrivanja grešaka. Samo smatram da se ne možeš toliko oslanjati na njega. To Steve također spominje u svojoj knjizi, ali taj citat ti očito nije interesantan. Ali pusti ti citate kojima se obilato služiš, radije ti navedi svoja iskustva. Koliko si redaka koda napisala? Da li si radila na aplikacijama od nekoliko stotina tisuća linija koda? Koliko ljudi koristi te aplikacije? Da li neke od njih mission critical pa se trebaju vrtjeti 24h/dan (pri tome ne mislim na web aplikacije)?
19.07.2005. (08:30)
-
-
-
- - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
zweistein
Jako zanimljiva usporedba :).
12.07.2005. (09:56) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Berislav www.lopsica.com
ActiveState (strucnjaci za jezike kao sto su PHP, Python, Perl, Tcl i XSLT) takodjer imaju zanimljiv tekst na tu temu: http://www.activestate.com/Company/NewsRoom/whitepapers.plex
12.07.2005. (10:59) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Meni je ova usporedba jedna totalna besmislica... Nisam ga bas jako detaljno citao jer ionako vidim da je to jedan od onih clanaka tipa "python je bolji od jave zato sto se u prosjeku pise dva puta manje koda i zato sto ne moram tip varijable eksplicitno deklarriati". Mislim sorry, ali to je jednostavno glupo kao argument i potpuno irelevantno ako biras jezik za svoj projekt. Ja isto volim Python, ali argumenti u tom clanku su potpuno irelevantni...
12.07.2005. (12:09) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
zweistein
Pa ne znam je li baš potpuno irelevantno... Naravno da neće biti presudno, ali ako ću u jednom jeziku napisati app brže i efikasnije, s manje koda i manje muke, mislim da je to itekako relevantno u odabiru jezika za projekt. Uostalom, u članku ima i malo više argumenata osim dvostruko manje koda i (ne)deklaracije varijabli prije korištenja...
12.07.2005. (13:10) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Ma gledaj, kad u testu broji koliko je redaka (a kod pise tako da je otvorena viticasta zagrada u novom redu) mora biti religijski. To je jedna stvar, druga stvar vise koda ne znaci da ga moras vise i tipkati (barem to s IDE-ovima kao eclipse nije nikako slucaj) - ja sam prilicno siguran da u javi tipkam isto ili manje za isti kod u Pythonu. A, ako negdje ima vise koda to je zato sto je API zaguljen, a ne zbog jezika. Mislis li da manje koda znaci i manje muke - probaj Perl; u Perlu ces u jednoj liniji napisati ono za sto ce ti trebati 10 linija pythona i 15 jave, ali sacuvaj boze odrzavanja :)
12.07.2005. (13:27) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Wolfwood's Crowd
Mislim da imas krivu predodžbu o Perlu, nije on baš toliko moćan. Odi na http://shootout.alioth.debian.org/great/index.php?sort=fullcpu, pa si pogledaj koliko linija koda treba u nekom programskom jeziku za pojedine zadatke. Npr. sum-file. ;-) Zanimljivi su i podaci o potrošenom procesorskom vremenu i memoriji.
12.07.2005. (14:00) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Ma ne brini... Ja sam od Perla odustao 15 minuta nakon sto sam poceo uciti Python :)
12.07.2005. (14:22) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
rasta lunatic
zweistein nema ti smisla 'svadjat' se s puzzom oko jave i pythona, vjeruj mi... neznam koliko iskustva imas s jednim i drugim, ali sam uvjeren da puzz zna puno vise... i ja volim python, i mogu reci da imam puno iskustva s njim, a sta da onda kazem o puzzu koji me ucio osnove pythona jos prije 4-5 godina... osobno ne zelim komentirat ovu temu jer je moje iskustvo s javom skoro pa nikakvo...
12.07.2005. (15:49) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
math_baby's blog
Ova usporedba Pythona i Jave je glupost: ona favorizira Python jer Pythonu, kao, treba manje programskih linija da se izrazi jedan te isti programski idiom! To je jako glup kriterij, jer, premda ce neki omanji program ili skriptica zaista biti kraca u Pythonu, nego u Javi, to nije jedini kriterij zbog kojega bi jedan jezik trebao biti proglasen boljim od drugog. Kao sto su rekli u toj usporedbi, jedan programski jezik je Strongly typed (Java), a drugi nije (Python). Sada se postavlja pitanje: zasto je Java strongly typed? Mislim, kreatori Jave su mogli napraviti Javu tako da i ona NE bude strongly typed, a ipak nisu! Zasto? Sigurno ne zato jer oni ne bi bili u stanju to napraviti. Ne, nije poanta u tome. Nego, oni to nisu napravili zato sto strongly typed jezici imaju svojih prednosti nad onima koji to nisu. Osnovna ideja strongly typed jezika je ta da se U COMPILE TIME-u PPOHVATA STO JE VISE MOGUCE PROGRAMSKIH GRESAKA, koje bi, bez uvodjenja strong-type principa bilo nemoguce pohvatati. Jer, gledajte: ako mi u neku varijablu mozemo pohraniti samo objekte unaprijed odredjenog tipa (a ne kao u weakly typed jezicima, objekte bilo kojeg tipa), tada nam KOMPAJLER na neki nacin GARANTIRA DA JE SADRZAJ TE VARIJABLE validan, tj. da doticnoj varijabli tipa "kruske" nismo pridruzili objekt tipa "jabuke". Kod jezika koji nisu takvi, mi takvu garanciju nemamo, i ne preostaje nam nista drugo nego u run time-u lovimo bugove koje je ponekad jako tesko uhvatiti, a koje nam kompajleri strongly-typed jezika love po defaultu! Pa sad, ko voli nek izvoli... ja sam se uvijek do sada smatrala da je bolje sto vise gresaka uhvatiti u compile-time nego u run-timeu, jer je to naprosto brze. No, ja sam samo jedna losa programerka (dovoljan dokaz je to sto obozavam Microsoft i njegove tehnologije, a zna se: svi oni koji vole Microsoft nemaju pojma o programiranju, nestrucni su itd. :-) ). Moj zakljucak: pocetna prednost koju weakly typed jezici pruzaju (poput vece kompaktnosti zapisa programskog koda), vrlo brzo se, kod nesto vecih programskih zadataka, topi zbog olaksanog debugiranja koje vec u compile time-u nude strongly typed jezici!
12.07.2005. (18:05) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
puzz
Grujo, malo svadje jos nikog nije ubilo (a i Štef nam je zadovoljan kad vidi da ga redovito posjecujemo :-)... A takav strucnjak da se sa mnom ne bi trebalo/moglo diskutirat definitivno nisam :)
12.07.2005. (18:25) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
rasta lunatic
ne kazem ja da se nebi trebalo s vama svadjat nego samo upozoravam zweisteina s kim ima posla :)
12.07.2005. (18:36) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
rasta lunatic
math_baby ovo je prvi put da se u necemu slazem s tobom :) nije bas lijep osjecaj kad 2 mjeseca nakon 'zavrsetka' programa naletis na gresku...
12.07.2005. (18:45) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
zweistein
Pa ja mislim da se i nismo baš svađali... To je više bila neka više-manje stručna rasprava (znamo s čije strane više, a s čije manje jel :)). Inače, još je dobro ako grješku nađeš 2 mjeseca prije završetka programa, loše je ako je nađeš 2 sata ili 2 minute prije završetka programa. Inače, daleko od toga da strongly typed jezici nemaju svojih prednosti, da nemaju ne bi postojali, jel...
12.07.2005. (19:50) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
rasta lunatic
mislis na ono kad te vec pere euforija i odjednom ti se niotkud pojavi neki KeyError i euforija nestane a zivci cure kroz usi?! poznato :)) inace, krivo ste shvatili ono 'svadjanje'... nisam bezveze stavio navodnike...
12.07.2005. (21:17) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Wolfwood's Crowd
Već sam mislio napisati jedan kraći osvrt na programere kojima prevoditelj (compiler) pomaže kod otkrivanja grešaka. Nije problem u tome što se prevoditelj koristi u te svrhe, problem je kad to programeru pređe u naviku. Ne razmišlja previše o kodu jer će prevoditelj javiti grešku. Znam ja za neke individue koji smatraju da je, ukoliko je prevođenje završilo bez grešaka, njihov posao gotov. Simptomatično je da upravo njihove aplikacije imaju najviše bugova. Prevoditelji nisu namijenjeni da tjeraju bugove iz aplikacije, oni prevode vaš pisani kod u binary oblik. Za tjeranje bugova postoje druge metode. Npr. Unit testovi. PyUnit je dio Pythona još od 2.1 inačice. Microsoft nije predvidio ništa slično tome u C#-u pa je posao umjesto njih obavio open source programer kojeg je Microsoft kasnije zaposlio zbog toga. Taj NUnit je inače prepjevan s Jave (JUnit) dok majkom svih unita neki smatraju SUnit (Smalltalk). Zanimljivo je da D programski jezik već ima ugrađenu podršku za unit testove.
13.07.2005. (09:14) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
rasta lunatic
neznam bas kako netko moze programirati bez da razmislja o kodu... ako se nemogu u potpunosti udubiti u kod, ni ne sjedam za pc...
13.07.2005. (11:32) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Berislav www.lopsica.com
Rekao sam sam sebi da necu sudjelovati i u ovome, ali ne mogu si pomoci. :) Dakle: Poanta #1: Svaki tip jezika i svaki pojedini jezik ima i prednosti i mana; da nije tako, ne bi stalno izlazili novi jezici. Takodjer, za sve stvari postoje tehnike: negdje je to compile-time, negdje su to unit testovi itd. Poanta #2: Po milijarditi put: ne postoje dobri i losi jezici, postoje samo dobri i losi programeri.
13.07.2005. (11:38) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Wolfwood's Crowd
to BL: je, imaju to poboldano malo dolje niže... ;-)
13.07.2005. (11:59) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
math_baby's blog
Vuk, ne znam sto je toliko lose u cinjenici da koristim kompajler za otkrivanje gresaka? Dapace, uvijek se trudim podesiti postavke kompajlera (razne switchewe) tako da mi kompajler automatski otkrije STO JE MOGUCE VISE gresaka u kodu! To cinim zato sto znam da nisam savrsena i sto smatram da je pri pisanju programa dobro imati SVU MOGUCU pomoc pri otklanjanju bugova, pa tako i pomoc kompajlera - jer svaka moguca pomoc pri debugiranju nam je itekako dobrodosla! Uostalom, jos je legendarni Steve Maguire u svojoj knjizi "Writing solid code" rekao da su dva najvaznija pitanja koje programeri sami sebi trebaju postaviti kada nadju neki bug u svom kodu ova dva: 1) Kako sam mogao AUTOMATSKI otkriti ovaj bug? 2) Kako sam mogao sprijeciti pojavljivanje ovog buga? U toj svojoj knjizi, Maguire je dao puno zanimljivih tehnika i trikova koji omogucuju upravo da kompajler otkrije sto je moguce vise gresaka. E sad, to je tek prva stepenica. Ako se kompajler ne zali, naravno da ja ne mislim odmah da je moj kod savrsen! Daleko od toga! Ne, on je tada prosao tek prvu stepenicu. I ja takodjer koristim Unit testove. Medjutim, i Unit testove programer mora napisati. A buduci da se Unit testovi pisu istodobno sa kodom kojega oni testiraju, vrlo se lako dogadja da (zbog premalog "mentalnog odmaka") programer napravi identicnu logicku gresku kako u kodu koji se testira, tako u u Unit-kodu koji bi ga trebao testirati, pa greska prodje nezapazeno. U svakom slucaju: kombinacija kompajlerovih gresaka i warninga u type-safe jezicima, kao i dodatno koristenje Unit testova, znacajno doprinose pravodobnom i efikasnom uklanjanju programskih gresaka!
13.07.2005. (19:14) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
sluèajni prolaznik
Dečki, čini mi se da je cura bolji programer od vas. :)
14.07.2005. (10:37) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
brijanje
Ova math_baby mi djeluje kao isfrustrirana ferovka, strah ju je probati nesto novo, i onda drvi drvi drvi :) Podsjecas me na linux-fanatike kojima je samo linux dobar, i nista drugo ne postoji. :) Ako si mlada, imas jos vremena da naucis nesh, ako si stara, pre kasno je za tebe :) Divna glupaca, nema ih puno! :) Moram priznati da sam zadnjih 40ak minuta citao tvoje komentare na ovom blogu, i moram jos jednom sa zadovoljstvom konstatirati da si - well - divna glupaca :) Ako si jos i zgodna, nema ti premca! :)
14.07.2005. (20:45) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
neferovac
Antracit žica slike! M_B, hoćemo slike! Hoćemo slike! (ali ne ako si ferovka ;-)
14.07.2005. (22:48) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Wolfwood's Crowd
math_baby, kakve ti alate koristiš? Danas ima razvojnih okruženja koja otkrivaju greške dok ukucavaš kod pa prevoditelju ne ostaje skoro ništa. Npr. Eclipse je jako dobar u tom pogledu, kad sam razvijao Java aplikacije u njemu u 95% slučajeva kad sam stisnuo compile prevođenje je završilo bez ikakvih grešaka ili upozorenja. Zanima me kakvu vrstu grešaka ti otkrivaš uz pomoć prevoditelja? Jedan drugi Microsoft autor (Steve McConnell) ima nekoliko pravila koja se tiču prevoditelja: ne vjeruj brojevima redova u porukama, ne vjerujte prevoditeljima, ne vjerujte drugoj prevoditeljovoj poruci. Nekako mi se čini da nemaš pravog iskustva s različitim prevoditeljima ili je taj tvoj savršen pa ne radi greške koje drugi rade. Tebi se nikada nije dogodilo da P javi grešku daleko od reda u kojem je prava greška? Nikada ti se nije dogodilo da javi pogrešnu poruku o grešci? Nikada nisi dobila gomilu poruka o greškama koje je sve uzrokovala prva greška? Osim toga, ti sitni bugovi koji se tiču 'pravopisa' su tek manji dio problema. Veći su problemi kad imaš logičke greške u programu, prevođenje prođe, program radi, a daje pogrešne rezultate.
15.07.2005. (09:38) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
math_baby's blog
Gle, vuk, ja sam knjigu ovog "tvog" Stevea McConnella (Code complete 2) itekako proucila. I u njoj nisam nasla nista sto bi proturjecilo onome sto sam ti vec rekla o podesavanju compilera tako da javi sto je moguce vise gresaka i warninga. U tome nisam uopce tako usamljena, koliko ti mislis, jer, da si pazljivo citao tu tvoju "bibliju" (Code complete 2), onda bi znao da u njoj pise i sljedece: CITAT#1: "Set the compiler’s warning level to the pickiest level possible. You can catch an amazing number of subtle errors simply by allowing the compiler to detect them. Eliminate the causes of all compiler errors and warnings. Pay attention to what the compiler tells you about your code. Large numbers of warnings often indicates low-quality code, and you should try to understand each warning you get. In practice, warnings you’ve seen again and again have one of two possible effects: You ignore them and they camouflage other, more important warnings, or they become annoying, like Chinese water torture. It’s usually safer and less painful to rewrite the code to solve the underlying problem and eliminate the warnings." CITAT#2: "Compile code at pickiest warning level and fix all the picky compiler warnings" CITAT#3: "One of the simplest and most effective debugging tools is your own compiler. Set your compiler’s warning level to the highest, pickiest level possible and fix the code so that it doesn’t produce any compiler warnings. It’s sloppy to ignore compiler errors. It’s even sloppier to turn off the warnings so that you can’t even see them. Children sometimes think that if they close their eyes and can’t see you, they’ve made you go away. Setting a switch on the compiler to turn off warnings just means you can’t see the errors. It doesn’t make them go away any more than closing your eyes makes an adult go away. Assume that the people who wrote the compiler know a great deal more about your language than you do. If they’re warning you about something, it usually means you have an opportunity to learn something new about your language. Make the effort to understand what the warning really means." Prema tome, iz ovoga sto sam citirala, vidljivo je da i "tvoj" Steve McConnell dijeli isto misljenje kao i ja o ulozi kompajlera u pronalazenju gresaka i da preporucuje isto ono sto i ja! Prema tome.... molit cu lijepo... :-)
15.07.2005. (17:45) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...
Wolfwood's Crowd
Ne dvojim ja o tome da li je ili nije prevoditelj važan kod otkrivanja grešaka. Samo smatram da se ne možeš toliko oslanjati na njega. To Steve također spominje u svojoj knjizi, ali taj citat ti očito nije interesantan. Ali pusti ti citate kojima se obilato služiš, radije ti navedi svoja iskustva. Koliko si redaka koda napisala? Da li si radila na aplikacijama od nekoliko stotina tisuća linija koda? Koliko ljudi koristi te aplikacije? Da li neke od njih mission critical pa se trebaju vrtjeti 24h/dan (pri tome ne mislim na web aplikacije)?
19.07.2005. (08:30) - - - - - promjene spremljene- uredi komentar - obriši komentar - prijavi ovaj komentar kao spam - zabrani komentiranje autoru ovog komentara- učitavam...