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 05. 03. 2009. 00:26

Citat:

Originalno napisao japan
ajde kad se povela brica o brojevima kao objektima, da se nadovezem na nju - broj i jeste objekat

Aman-zaman, neću uopšte da vam sporim da broj jeste objekat, jer praktično SVE jeste objekat.
Samo, da li ti kada radiš sa brojevima tako to "doživljavaš" - da radiš sa nekakvim immutable objektima? Ozbiljno?

japan 05. 03. 2009. 00:33

^ opet sad prica o jabukama :) brojeve dozivljavas tako kako ih ti opisujes samo zato sto su te tako naucili. nemas pojma sta su, ali znas kako se radi sa njima.

sve u svemu, ako imas broj kao objekat, imas "cistiji" OO jezik, i to je sve. tebi ta cistoca nije bitna, vise ti odgovara da to bude blize realnom svetu, i to je ok ;)

degojs 05. 03. 2009. 01:02

^Tako su nas sve naučili i dalje uče tako.

Ako je tebi toliko OOP način rada sa brojevima lakši i prirodniji, samo ti de, pa udri 2.add(7).minus(1), odnosno može i 2+7-1, ali to je onda uz operator overload upravo da bi se pobeglo "nazad", gde brojevi i ne liče na objekte. Mislim da je ivanhoe lepo već pojasnio, da ne ponavljam.

Dragi Tata 05. 03. 2009. 01:26

Citat:

Originalno napisao degojs (Napišite 66999)
Jednostavno, ne vidim da brojevima odgovara ta apstrakcija.

Ama pazi, slažem se. Kao što rekoh, OOP čistunstvu u praksi ne nalazim mesta. Ali ovde govorimo o učenju OO paradigme i u tom svetlu mislim da je korisno čak i brojeve predstavljati objektima.

japan 05. 03. 2009. 01:32

kakav covek jbt :)

degojs, lakse mi je da radim sa brojevima, ali kad pricamo o OO paradigmi, onda mi je _logicno_ sve bude objekat, pa i broj. to sto sam ja naucio da sabiram i oduzimam na taj nacin, ne znaci da broj ne zasluzuje da bude objekat. pogotovo ako tek ucim OO.

isto kao sto sam naucio da racunam u dekadnom sistemu, i ne tvrdim da treba da se radi u binarnom, iako se na kraju, pri dnu procesora radi.

degojs 05. 03. 2009. 01:39

^Kettle, meet pot ;)

Kad ti je logično da brojeve tretiraš kao objekte onda lepo "2.add(7).minus(1)", a nemoj a bežiš od istog u ono staro "2+7-1" jer znaš ono "if it walks like a duck and quacks like a duck..."

Eto.

japan 05. 03. 2009. 01:47

ne vredi...

ivanhoe 05. 03. 2009. 02:04

Aj malo da vratim ovu pricu iz orbite oko Jupitera malo nazad na Zemlju :)

Mislim da je za nekog ko krece da uci da programira OO vrlo bitno da u startu nauci jednu stvar: kad mu OO koristi, a kad je prakticnije sve zapakovati u jednu metodu koja ce biti efikasna. Takodje mislim da je zgodno da se ucenje krene u nekom jeziku koji je lak, i sa kojim ces moci da dobijas poslove, jer tesko ce neko nesto nauciti citajuci knjige, programiranje se uci tako sto se programira. Tako da je moja preporuka neki od major jezika tipa C# ili cak PHP.

Da me ne shvati niko pogresno, python i ruby su ok jezici, ali su toliko drugaciji od svega ostalog da ce coveku posle biti tesko da predje, a zbog izbora poslova u Srbiji ce zavrsiti radeci ili C# ili Javu ili PHP, pre ili kasnije.

nn.nn 05. 03. 2009. 07:49

Citat:

Originalno napisao ivanhoe (Napišite 67009)
Aj malo da vratim ovu pricu iz orbite oko Jupitera malo nazad na Zemlju :)

Mislim da je za nekog ko krece da uci da programira OO vrlo bitno da u startu nauci jednu stvar: kad mu OO koristi, a kad je prakticnije sve zapakovati u jednu metodu koja ce biti efikasna. Takodje mislim da je zgodno da se ucenje krene u nekom jeziku koji je lak, i sa kojim ces moci da dobijas poslove, jer tesko ce neko nesto nauciti citajuci knjige, programiranje se uci tako sto se programira. Tako da je moja preporuka neki od major jezika tipa C# ili cak PHP.

Da me ne shvati niko pogresno, python i ruby su ok jezici, ali su toliko drugaciji od svega ostalog da ce coveku posle biti tesko da predje, a zbog izbora poslova u Srbiji ce zavrsiti radeci ili C# ili Javu ili PHP, pre ili kasnije.

Čovek je fizičar i, izuzev ako misli da menja struku, verovatno mu OOP treba zbog nečeg konkretnog. S obzirom da ne znamo šta je to, tvoja argumentacija, iako ispravna u opštem slučaju, ne mora biti važna za konkretan slučaj. Moguće je da postoji "language of choice" za tu vrstu problema.

tesla 05. 03. 2009. 09:28

C#, B#, stay # :beer:

cvele 05. 03. 2009. 09:38

Pa ako je pitanje koji oo jezik uciti, a odgovor pitanje da li je prirodnije da broj bude objekat, namece se zakljucak da je ova tema otisla dodjavola jos na polovini prve strane :D

srdjan 05. 03. 2009. 10:10

Citat:

Originalno napisao japan (Napišite 67001)
brojeve dozivljavas tako kako ih ti opisujes samo zato sto su te tako naucili. nemas pojma sta su, ali znas kako se radi sa njima.

Mnoge stvari ljudi rade brzo i lako jer su na jedan nacin naucili osnovne koncepte zivota.

Svi govore maternjim jezikom i koriste sajtove, knjige, elektronske uredjaje, idu u skole jezika... umesto da cela porodica govori esperanto.

Slicno je i sa idejom: 2 = broj, faktura = objekat.

Nije bitno da se covek prilagodi OOP, vec obrnuto.

Zato ni jedan od idealnih OOP jezika nije odmakao previse od akademske rasprave, za razliku od Jave, C#, C++

milenko76 05. 03. 2009. 10:29

Hvala svima na odgovorima,bogme velika se prasina digla.Sve sam procitao mislim da cu da krenem od jave,generalno trebace mi oo programiranje.

kaizen 05. 03. 2009. 11:09

Citat:

Originalno napisao srdjan (Napišite 67021)
Nije bitno da se covek prilagodi OOP, vec obrnuto.
Zato ni jedan od idealnih OOP jezika nije odmakao previse od akademske rasprave, za razliku od Jave, C#, C++

Ja zapravo vidim da se OOP u mejnstrim jezicima prilagodio mašinama (zbog performansi) a ne čoveku kako ti tvrdiš, otud i ta nekonzistentnost u pogledu tipova podataka.

kaizen 05. 03. 2009. 11:38

Jel ovo to prilagođavanje čoveku:

Kôd:

Integer.valueOf(int)
Citat:

Returns a Integer instance representing the specified int value

merjadok 05. 03. 2009. 11:43

^ http://mindprod.com/jgloss/autoboxing.html

Inače, čudi me da čoveku niko nije predložio JRuby/IronPython/Jython ... spojimo lepo i korisno.

bluesman 05. 03. 2009. 12:08

^ A šta je tu korisno? :D

merjadok 05. 03. 2009. 12:16

Good question :)

Korisno u smislu da će eventualni prelazak na neki mainstream jezik možda biti laganiji, mada moguće je da se varam.

degojs 05. 03. 2009. 14:50

A što na ovom forumu ima ljudi iz Danske...

Danish Pro Talk ;)

Dragi Tata 05. 03. 2009. 16:06

Lepo je biti praktičan i učiti korisne stvari, ali treba malo misliti i "out of the box". Da sam ja početkom 90-ih gledao šta se traži u Srbiji, naučio bih Clipper :D.

Sad npr. lagano učim IronScheme - nije da mislim da ću ovaj jezik da koristim na poslu, ali nije loše malo proširiti vidike i naučiti neke tehnike programiranja kojima nisam izložen svakodnevno na poslu.

bluesman 05. 03. 2009. 16:08

Nisam razmeo na šta se odnosi tvoj danski komentar, ali moje pitanje je bilo zašto je korisno da početnik krene da UČI neki "egzotični" (u smisli nedovoljno poznat i korišćen) jezik, da bi kasnije prešao na nešto drugo? Zašto ne počneš odmah da učiš to drugo? :)

(Uvali mi se Dragi Tata): Pa baš to, pričamo o početniku... malo je rano da neko ko uči da programira krene odmah da "proširuje vidike". Za njega je i izraz i = i+1 "proširivanje vidika" :)

Dragi Tata 05. 03. 2009. 16:16

Citat:

Originalno napisao kaizen (Napišite 67023)
Ja zapravo vidim da se OOP u mejnstrim jezicima prilagodio mašinama (zbog performansi) a ne čoveku kako ti tvrdiš, otud i ta nekonzistentnost u pogledu tipova podataka.

Zavisi kom "čoveku". Krajnji korisnik itekako ceni performanse.

Što nas vraća na 1950-te i Lisp vs Fortran. Prvi je napravljen tako da bude "blizak čoveku", tj programeru nauštrb performansi, a drugi "blizak mašini". Oba imaju svoje mesto, mada ja za obrazovne svrhe preporučujem prvi.

Dragi Tata 05. 03. 2009. 16:17

Citat:

Originalno napisao bluesman (Napišite 67041)
(Uvali mi se Dragi Tata): Pa baš to, pričamo o početniku... malo je rano da neko ko uči da programira krene odmah da "proširuje vidike". Za njega je i izraz i = i+1 "proširivanje vidika" :)

Ja sam razumeo da on zna programiranje i da želi da proširi vidike OO paradigmom. Ako sam pogrešio, izvinjavam se :)

degojs 05. 03. 2009. 16:30

Citat:

Originalno napisao bluesman (Napišite 67041)
Nisam razmeo na šta se odnosi tvoj danski komentar, ali moje pitanje je bilo zašto je korisno da početnik krene da UČI neki "egzotični" (u smisli nedovoljno poznat i korišćen) jezik, da bi kasnije prešao na nešto drugo? Zašto ne počneš odmah da učiš to drugo? :)

(Uvali se ovaj Tata opet;))

Danski komentar? Ma uopšte, na to da se poteže tolika priča oko toga da li nam je razumljivije na brojeve gledati kao najobičnije brojeve ili ćemo da ih teramo u kalup "sve je objekt" samo zato što možemo.. pa da ih opet na kraju koristimo kao i dok OO jezika nije ni bilo (tipa "2+7-1") - kao što je Ivanhoe već komentarisao.

Kontam, možda u Danskoj (a Dansku pominjem na konto pređašnje rasprave o Rubiju) decu u školi uče drugačije pa im je jednostavnije da kasnije brojeve vide prvo kao nekakve immutable objekte..

kaizen 05. 03. 2009. 16:43

Citat:

Originalno napisao degojs (Napišite 66957)
Pa sad.. da li je prirodnije i razumljivije da brojevi budu brojevi ili tamo neki.. objekti?

Vidim, ovaj rezultat je veoma prirodan i razumljiv za početnika:

Kôd:

System.out.println(100000 * 100000);

degojs 05. 03. 2009. 17:00

^Ma jes, razumljivije je napisati nešto tipa:

100000.multiplyby(100000)

Whatever, dude...

kaizen 05. 03. 2009. 17:02

Citat:

Originalno napisao degojs (Napišite 67047)
Ma jes, razumljivije je napisati nešto tipa:

100000.multiplyby(100000)

Whatever, dude...

?

Piše se najnormalnije:

Kôd:


puts 100000 * 100000


caboom 05. 03. 2009. 17:02

definitivno +1 za javu - sjajna je za vezbe brzog kucanja, nemam celulita na prstima... ;)

degojs 05. 03. 2009. 17:06

Citat:

Piše se najnormalnije:

Kôd:


puts 100000 * 100000

I tako si bukvalno svoje brojeve-kao-objekte uzeo da tretiraš kao primitivne tipove u pogledu sintakse.. Šta ti tu vidiš drugačije nego pre, kada OO jezici nisu ni postojali? Upravo si pobegao od klasične OO sintakse..

Još jednom, vrati se na onu poruku što je Ivanhoe napisao, mrzi me da tupimo jedno te isto.

kaizen 05. 03. 2009. 17:18

Citat:

Originalno napisao degojs (Napišite 67051)
I tako si bukvalno svoje brojeve-kao-objekte uzeo da tretiraš kao primitivne tipove u pogledu sintakse.. Šta ti tu vidiš drugačije nego pre, kada OO jezici nisu ni postojali? Upravo si pobegao od klasične OO sintakse..

"tretiranje brojeva kao primitivnih tipova" -- mislim stvarno :) to ti prvo padne na pamet? A ne aritmetika?

dinke 05. 03. 2009. 17:21

Citat:

Originalno napisao caboom (Napišite 67049)
definitivno +1 za javu - sjajna je za vezbe brzog kucanja, nemam celulita na prstima... ;)

Slazem se, Java je za seka perse. Predlazem da batalimo ove "visoke" programske jezike i krenemo sa OOP abstrakcijom na nivou asemblera.

Mada ... i to je za seka perse, mozda je najbolje da idemo sa nizovima nula i jedinica koje cemo upisivati direktno na hdd pomocu magneta privezanih za prste ... ma kome jos treba tastatura.

dinke 05. 03. 2009. 17:23



Jes da je o editorima ali ... :))

degojs 05. 03. 2009. 17:33

Citat:

Originalno napisao caboom
definitivno +1 za javu - sjajna je za vezbe brzog kucanja, nemam celulita na prstima...

Uzmi neki editor/IDE koji je izašao u poslednjih 10-tak godina. Iznenadićeš se..

Npr. Visual Studio, otkucam "cw TAB TAB" a on to lepo odmah okrene u Console.WriteLine(*) pa još kursor postavi gde sam stavio *, pametan mali :)

Tresnem "for TAB TAB" a on pametan razvio to u čitav "for(int *=0; *<*; *++){}" blok, pa opet stavio kursor gde treba, pa kad to popunim, opet udarim TAB a on poskoči na sledeću poziciju, veseljak pravi :)

I tako redom.. ista stvar i sa Java okruženjima, koliko me sećanje služi.

P.S.
E da, ne znam da li si primetio: besplatno je brale.

japan 05. 03. 2009. 17:34

mislio sam da necu vise, ali me nekako uvek vuce da odgovorim kad se degojs ovako uhvati necega. :)

ako ti nije logicno i jasno "2.add(1).substract(7)", a jeste "2+1-7", onda ti je verovatno logicnije i "2++" nego "2.increment()"?

dva plus sta? dva plus plus? dva plus koliko?


ne znam sta si se toliko uhvatio sa sintaksu, i sam si rekao da uvek mozes da preopteretis operator. nebitno koja je cena toga.

i nije bitno da li se brojevi sabiraju operatorima, pozivom metoda ili u poljskoj notaciji, to je samo sintaksa. bitno je sta su oni u sustini.

arapske novine se citaju zdesna na levo, pa su opet novine, imaju istu sustinu.

kaizen 05. 03. 2009. 17:34

Citat:

Originalno napisao milenko76 (Napišite 66820)
Treba mi savet kako da krenem.Po struci sam fizicar i ovo ce mi trebati.Imam ideje da pocnem da uzimam casove ali ne znam od koga?Kako ce krece cena casa?Ako neko ima ideje daj nek pomaze.

(sa "malim" zakašnjenjem) Premalo informacija si dao, da bi dobio kvalitetan odgovor. Zašto će ti trebati? Planiraš da praviš softver vezano za to čime se baviš? Imaš li iskustva u programiranju? Ako da, kakav softver (namena, distribucija/korišćenje)? Zašto mora da je OOP jezik? Takvi su zahtevi ili bi ti želeo?

i možda besmisleno, ali može ti uštedeti vreme i živce:

Da li postoji opcija da "naručiš i kupiš" softver, a ne da ga sam praviš?

caboom 05. 03. 2009. 17:36

@degojs/dinke - mislim da ste promasili poentu :) anyway, back to fast typing lessons ... whoooashhh...

nixa 05. 03. 2009. 17:46

^ što , baš je zanimljivo da rantujemo :D

degojs 05. 03. 2009. 17:52

Citat:

arapske novine se citaju zdesna na levo, pa su opet novine, imaju istu sustinu.
Arapi sa tim nemaju problema, ja imam. Drugačije smo naučeni, ali i ne vidim da stoji paralela sa onim o čemu pričamo. Otkucaj ti srpske novine sa desna na levo pa daj nekom da čita, da vidiš kako nema veze..

Brale, počeli smo žešće da tupimo, mrzi me da se natežemo više, ozbiljno :) Ako baš zahtevaš, javi, pa ću detaljnije na tu tvoju poruku, ali ne vidim više smisao, ako ti ne vidiš do sada..

Dragi Tata 05. 03. 2009. 17:57

Citat:

Originalno napisao dinke (Napišite 67053)
Slazem se, Java je za seka perse. Predlazem da batalimo ove "visoke" programske jezike i krenemo sa OOP abstrakcijom na nivou asemblera.

Dinke, ovde ne poredimo Javu sa C-om nego sa Rubijem :) Moja primedba je da je Java jezik previše *niskog* nivoa apstrakcije za učenje OOP-a.

bluesman 05. 03. 2009. 17:59

Na kraju se postavlja pitanje čemu sve to? :)

Kada bi vi recimo znali kako izgleda recimo kod softwera koji se prodaje kao ebay storefront software (da ne reklamiram link) mislim da bi se ispovraćali. Ja sam imao zadatak da ga implementiram na jedan sajt i odustao sam pa sam napisao svoj kod... A opet kada bi znali koliko se taj software prodaje, mislim da bi vam opet pripala muka :) Yebesh oop :)


Vreme je GMT +2. Trenutno vreme je 03:28.

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.