DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   objektno orjentisano programiranje (http://www.devprotalk.com/showthread.php?t=7205)

degojs 04. 03. 2009. 21:29

^A ne, nisu u pitanju samo performanse u pogledu brzine. Već i činjenica da a=5 može lepo da "legne" na određenu memorijsku lokaciju, bez ikakvog dodatnog overheada koji objekti nose sa sobom. Vidiš, to je meni prirodno i jednostavno.

kaizen 04. 03. 2009. 21:33

Citat:

Originalno napisao degojs (Napišite 66983)
Već i činjenica da a=5 može lepo da "legne" na određenu memorijsku lokaciju

http://www.youtube.com/watch?v=zQuRg...eature=related

dinke 04. 03. 2009. 21:36

Citat:

Originalno napisao Dragi Tata (Napišite 66978)
Za učenje OOP-a, ja ipak predlažem "čist OOP" jezik, dakle može da bira: Smalltalk ili Ruby.

Ajd da svejedno pitam uz opasnost da ispadnem glup u drustvu. Zasto Java nije "cist" OOP jezik? Samo zato sto ima "proste" tipove podataka (oh dodjavola brojevi nisu objekti) ili postoji neki drugi razlog za koji ne znam?

Ja bih inace za OOP preporucio Javu bez obzira da li je definisan kao cist ili prljav. :)

degojs 04. 03. 2009. 21:42

^^Nisam siguran da razumem šalu (verovatno ne razmišljam dovoljno OOP), pa ću da se vratim na temu.

Jednostavno, ne slažem se sa Nemanjinim da je učenje OOP-a lakše u jeziku u kom se sve, pa i brojevi, tretira kao objekti. Ne vidim da to smeta, ali ni da je bitno. Lično ne vidim problem da se OOP uči u jeziku koji ima i druge, proste, tipove podataka.

// bingo, preteče me Dinke :)

Dragi Tata 04. 03. 2009. 23:37

Pazite, ako želiš da naučiš neku paradigmu za programiranje najbolje je da se držiš jezika koji je ograničen na tu paradigmu ili "čist". Za strukturno proceduralno programiranje Pascal je zakon, za funkcionalno Haskell a za objektno Smalltalk (može i Ruby). Npr, ako želiš da naučiš funkcionalno programiranje u nekom "nečistom" funkcionalnom jeziku kakav je npr ML, lako će da ti se desi da nastaviš da programiraš u imperativnom stilu prosto zato što ti je to dozvoljeno. Haskell ti ne dozvoljava da programiraš imperativno i ako koristiš Haskell naučićeš funkcionalno programiranje. Prebaci analogiju na objektno progrmiranje - sa Javom možeš ladno da programiraš proceduralno i da misliš da programiraš objektno. Što se Pythona tiče, u njemu je proceduralno programiranje ne samo moguće nego i lepše od objektnog - ne znam zašto bi iko poželeo da objektno programira u Pythonu :D

Što se Jave tiče, da dodam da je i inače ne smatram dobrim jezikom za učenje programiranja - objektnog ili inače.

degojs 04. 03. 2009. 23:53

Citat:

Originalno napisao Dragi Tata
ne znam zašto bi iko poželeo da objektno programira u Pythonu

Kao što ni ja ne vidim zašto bi iko poželeo da u brojevima vidi immutable objekte (ne kažem da ti zastupaš takvo mišljenje, itd, samo se nadovezujem).

Može li? Može, ali meni to jednostavno nikako ne leži, više mi je to u fazonu imamo macolu pa je sad sve klin, udri brale :)

"Objekat" je tako apstraktan pojam da sve može da se proglasi za isti, pa naravno i brojevi. Samo meni to nikako nije prirodna (a još manje potrebna) asocijacija.

jablan 04. 03. 2009. 23:57

Citat:

Originalno napisao Dragi Tata (Napišite 66991)
Što se Jave tiče, da dodam da je i inače ne smatram dobrim jezikom za učenje programiranja - objektnog ili inače.

Slažem se. Po meni je učenje programiranja u Javi ravno učenju vožnje u kamionu. :)

Dragi Tata 05. 03. 2009. 00:08

Citat:

Originalno napisao degojs (Napišite 66992)
"Objekat" je tako apstraktan pojam da sve može da se proglasi za isti, pa naravno i brojevi. Samo meni to nikako nije prirodna (a još manje potrebna) asocijacija.

Pazi primer. Da izmislimo sad objektni jezik i da ga nazovemo "O" (kladim se da jezik tog imena već postoji ali me mrzi sad da gledam). Neka ima klasičan objektni sistem u kome su sve klase ivedene iz "Object". Recimo i da ima statički tip sistem. U neko doba želimo da dodamo kolekcije u standardnu biblioteku. Logično, te kolekcije će da čuvaju refernce tipa Object (nemamo šablone/generics). E, sad treba da dodaš celobrojne vrednosti u jednu takvu kolekciju. Ako su celobrojne vrednosti objekti, ništa lakše. Ako nisu? Može boxing ili paralelni objekti za svaki "neobjektni tip", i to sve manje više radi u C#/Javi (mada sam vide jako zanimljive bagove kao posledicu boxinga) ali ako govorimo o učenju OOP-a da li je to nešto što pomaže ili odmaže?

japan 05. 03. 2009. 00:23

Citat:

Originalno napisao degojs (Napišite 66992)
Kao što ni ja ne vidim zašto bi iko poželeo da u brojevima vidi immutable objekte (ne kažem da ti zastupaš takvo mišljenje, itd, samo se nadovezujem).

Može li? Može, ali meni to jednostavno nikako ne leži, više mi je to u fazonu imamo macolu pa je sad sve klin, udri brale :)

"Objekat" je tako apstraktan pojam da sve može da se proglasi za isti, pa naravno i brojevi. Samo meni to nikako nije prirodna (a još manje potrebna) asocijacija.

ajde kad se povela brica o brojevima kao objektima, da se nadovezem na nju - broj i jeste objekat, ako pogledas malo istoriju, videces da je broj nastao kao potreba coveka da kvantifikuje stvari, da prebroji svoje ovce, i sl. apstrakcija broja se pojavila mnoooogo kasnije, a formalizacija svega toga tek nedavno (par vekova). nije slucajno sto deca uce da sabiraju sabirajuci jabuke, a ne brojeve - uce tako jer je to prirodno, broj kao pojam nikako nije prirodan nego je apstrakcija jabuka, krusaka, cega god... i to dolazi tek kasnije, sa iskustvom.

prevedeno na OOP, meni jeste logicno da broj bude objekat, tacnije interfejs, pa da se dalje razvija hijerarhija na prirodne, racionalne, realne, kompleksne... kako i jeste. a da li ce operacije nad brojevima da budu u obliku metoda ili operatora, potpuno je nebitno.

sto se teme tice, slazem se sa tatom da je za ucenje neke paradigme najboje koristiti jezik koji se te paradigme navise i drzi. da li ces ti posle da se prebacis na skrnavu javu ili C++, nebitno je, to vec zavisi od okolnosti, ali ce ti paradigma ostati zauvek.

degojs 05. 03. 2009. 00:24

Eh, eh :D

Nemanja, ne sporim ja da pojednostavljivanje type sistema ("sve je objekt") ima prednosti, ali evo da ja isto pitam jednu stvar: da li tebe nešto poput "2+7-1" upućuje, asocira, kako god da nazoveš, da radiš sa nekakvim (immutable) objektima ili sa brojevima?

Ovaj, da li se ti odlučuješ da kucaš "2+7-1" ili rađe koristiš fluent interfejs tipa 2.add(7).minus(1)? Ili možda nalaziš prirodno da radiš operator overload (as opposed to: da ne moraš da ga radiš uopšte) za +, - i ostale uobičajene operacije nad brojevima?

Jednostavno, ne vidim da brojevima odgovara ta apstrakcija.


Vreme je GMT +2. Trenutno vreme je 08:52.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.