Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Cloud, buducnost, prevara ili zabluda?

[es] :: Advocacy :: Cloud, buducnost, prevara ili zabluda?
(TOP topic, by Milan Gligorijevic)
Strane: < .. 1 2 3 4 5 6 7 8 9 10 ... Dalje > >>

[ Pregleda: 148328 | Odgovora: 577 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 01:16 - pre 175 meseci
Citat:
aludanyi: C# i Java nisu bitni u ovom slucaju oni ne predstavljaju apstrakciju, bitan je Java VM i CLR i biblioteke klasa (recimo FCL/BCL u slucaju .NET-a) koji ti omogucavaju da kompajliras IL kod koji je totalno nezavisan i od programskog jezika i od operativnog sistema i od masinske arhitekture (ukoliko je CLR implementiran a jeste donekle preko Mono projekta a sto se tice Jave to imamo implementirano na svim platformama). E taj sloj apstrakcije ti omogucava vecu produktivnost, daleko veci stepen "code reuse"-a sigurnosne mehanizme koje native bez tih apstrakcija ne mozes da implementiras ili je implementacija toliko kompleksna da je prakticno nemoguca. "Versioning" recimo je isto nesto sto je daleko lakse postici sa CLR-om nego u native kodu, isto tako i potpisivanje izvrsnog koda. GC je isto sloj apstrakcije ali ona se da implementirati i u native okruzenju (cak i C++ ima opcionalno GC resenje).

Programski jezik danas nije toliko bitan faktor za povecanje produktivnosti koliko su bitni faktori postojece biblioteke/frejmvorkovi i kako graditi na njih.


Slažem se da su za produktivnost bitne biblioteke, ali sve ostalo je obrnuto.

Bitni su baš Java i C#, a ne Java VM i CLR. Svaki fajl se može potpisati i potpisivanje nema veze sa produktivnošću. Što se tiče ponovnog korišćenja koda, na koji način je on veći u .NET-u nego u native okruženju? U native okruženju mogu da sarađuju C/C++/Fortran/Pascal... i na hiljade drugih, dok Java VM sarađuje samo sa Javom, u .NET-u imaš nekoliko jezika itd.

Na polju bezbednosti VM može dati poboljšanja, ali na polju produktivnosti ne.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 01:39 - pre 175 meseci
Mogu da saradjuju ali ne tako lako (native), prvo i prvo nemaju isti objektni model sto svakako otezava smooth saradnju, drugo zamisli da imas neku biblioteku iz koje nasledjujes neke klase, sta se desava kada se ta biblioteka promeni? Native kod ne raspolaze se informacijama koje metadata obezbedjuje u managed kodu sve to zahteva dodatnu paznju kod dizajniranja klasa zahteva i vece znanje i dodatan posao da bi se obezbedili mehanizmi koje CLR osigurava "out of the box". Mada ja nisam rekao da je jedino Java VM i CLR prihvatljiva apstrakcija, govorio sam o apstrakciji generalno znaci i u native razvoji imas nivoe apstrakcije STL je apstrakcija za C++, Boost isto biblioteke koje sam spomenuo za paralelan razvoj poput Intel TBB i MS PPL i AAL isto predstavljaju vidove apstrakcije koje pozitivno uticu na povecanje produktivnosti. Znaci ideja je da apstrakcija povecava produktivnost uz neku prihvatljivu cenu gubitka na performansama i potrosnji memorije (sto danas lakse platimo nego izgubljeno vreme), mada postoji dosta slucajeva kada je managed kod po performansama jako blizu pa ponekad cak i brzi od native koda.

Ali ipak se na kraju postavlja pitanje: Da li mozes da napises kod iste funkcionalnosti (ukljucujuci i razne run-time i compile-time provere) istog kvaliteta sa mogucnoscu istog stepena ponovnog koriscenja da ima isti nivo ortogonalnosti u native (recimo C++), za isto vreme koristeci iste resurse kao sto mozes u .NET-u? Odgovor je bez razmisljanja NE. Jer da mozes onda ne bi ni bilo potrebe za .NET-om i Javom. To zapravo znaci povecanu produktivnost.
&&y
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 08:04 - pre 175 meseci
Da, Java bolje sarađuje sama sa sobom, nego što C++ sarađuje sa objektnim paskalom.

Kako si mislio da uvezeš C++ klasu u Javu? Kroz JNI? Ili u .NET? Kako misliš da uvezeš C# klasu u Javu ili obrnuto?

Svaka ta virtuelna mašina je svet za sebe. Native je pak nešto standardno pod određenim operativnim sistemom.

Sad i malloc i printf ispadoše nivoi apstrakcije.

Virtuelne mašine omogućavaju binarnu prenosivost koda na različite OS-eve i arhitekture, kao i povećanu bezbednost, jer ne puštaš procesor da divlja, već je pod kontrolom VM. Doduše, ni native kod ne može da radi baš šta hoće, jer mu za štošta trebaju dozvole, pa bi se taj problem mogao rešiti i na nivou OS-a za native aplikacije koje trče pod njim. Isto važi i za potpisivanje. To je samo pitanje EXE formata i načina na koji OS rukuje sa njim.

Što se produktivnosti tiče - ništa, a odgovor na tvoje poslednje pitanje je DA.

Što se tiče manifesta i asemblija, još je Turbo Pascal imao TPU fajlove (Turbo Pascal Unit), a svakako je native jezik. No, kao i Java manifesti i .NET asembliji, TPU je bio svet za sebe.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 12:38 - pre 175 meseci
S obzirom da se 90% business aplikacija razvija u Javi ili .NET tvoje pitanje postaje prakticno bez znacaja, saradnja i ponovno koriscenje koda nikada nije ni isla preterano izmedju Pascal i C++ koda ni u native, u Windows svetu (ako cemo da se drzimo .NET-a) u native razvoju si imao C++ COM/COM+ objekte koje si konzumirao iz C++ aplikacija ili (mada to nije bio 100% native) iz VB-a, sve ostalo je vise bila teorija nego praksa i veoma retko si imao slucaj da se pojavila kao potreba. Danas ako rade razvoj za .NET onda te manje vise ne zanima nista van toga sem ponekad konzumiranje COM+ objekata za sta je obezbedjen mehanizam za rad sa native kodom preko P/Invoke. U slucaju Jave situacija je slicna.

Inace nije to cak ni preterano bitno jer ponovno koriscenje C++ koda u samom C++ je komplikovanija nego .NET u .NET, ako sam radis sve onda mozda i uspes da resis stvar ali ako radis razvoj sa komponentama koje su razvili druge firme onda imas daleko vise razloga da se batalis toga i da sve sam razvijas u C++ nego u .NET, versioning, dll hell i sl. da li ti to govori nesto. Nemoj sad reci da se to moze resiti (jer znam da moze) ali zahteva extra napora sto kosta i para i ljudskih resursa i vremena. A sve sto te extra kosta suzava ti marginu odnosno daje ti "incentive" da ga nekako zaobidjes i zato ti je ponovno koriscenje koda statisticki manja u native nego u managed okruzenju. Sama cinjenica sto imas 10x vise biblioteka za managed razvoj (i Java i .NET) govori o tome da ljudi vide ponovno koriscenje koda daleko prirodnije u managed okruzenju nego u native.

Pascal-om se nisam bavio skoro 20 godina tako da se bas ne secam detalja ali cisto sumnjam da se mehanizmi koje je TPU obezbedio bili blizu ovome sto imamo danas u managed kodu.

A malloc i printf :) pa na neki nacin jesu apstrakcija ali ne treba ici toliko nisko to bi vec bilo preterivanje, ono sto cini STL i ove ostale biblioteke (pravom) apstrakcijom je to sto obezbedjuju stil programiranja koji je bez njih nemoguce ili jako tesko izvodljivo (uglavnom preko template sistema), verujem da ces priznati da malloc i printf nisu nesto sto se da porediti sa time.

Mislim da nema smisla da lomimo ruke oko ovoga dalje, nisam niti ljubitelj managed koda niti protivnik native koda (zapravo radim i jedno i drugo u zavisnosti od toga koje je resenje u datom trenutku optimalnije) imam svoje razloge (i ne samo ja) zbog kojih znam da je produktivnost veca kada se radi razvoj sa managed okruzenju pogotovo ako uzmemo u obzir da je moguce koristiti siru marginu programera koji bez obzira na manje sposobnosti prave manji broj bagova (a bagovi su skupi sto se tice produktivnosti).

Ako uzimas u obzir sebe ili nekog pojedinca koji je A+ u native programiranju onda se slazem da je moguce dostici slicni nivo produktivnosti i u native razvoju ali ja ti ovde pricam o praksi ne o teoriji; Kada imas 300-400 ljudi (ili 30-40 nije bitno) na razvoju od kojih mozda 4-5% je ono sto nazivamo A+ ili A, ostali su B+ B a moras da se zadovoljis i sa dosta onih koji su samo C (bez obzira sto Joel kaze da ne treba primati one koji 100% ne zadovoljavaju visoke kriterijume, to je mozda moguce u Silicon Valley ili na Manhattan ne znam ali u vecini slucajeva je nemoguce ili cak nepotrebno skupo jer retko koji softver opravdava takav pristup) ali u realnoj situaciji trziste nema takvu ponudu niti ti imas sredstva da juris i da placas full A+ timove. E u toj prakticnoj realnoj situaciji produktivnost na managed platformi je san snova za native razvoj.

Znaci ne verujem u dogme niti igram za neku stranu, ono sto mi je bitno da uvek mogu slobodno da izaberem resenje koje ce mi za najmanje dati najvise, nekad je to .NET/C# nekad .NET/F# a nekad C++. Mogu da zamislim i situaciju gde je jos uvek bolje da se koristi C ili cak assembler ali nisam imao takvu situaciju u zadnjih 10+ godina sto ne znaci da neki nemaju takve situacije a neki imaju i cesto.

Sto se Pascal-a tice... pa nisam ga nesto mnogo voleo nikad (radio sam ga svojevremeno jer je bio standardno u skoli) ali ne mogu da zamislim da postoji situacija kada je to najoptimalnije resenje (sem ako ne znas ni jedan drugi jezik). Pascal je uvek bio i ostao jezik za skole nikad nije bio jezik za industry (mada je Delphi to pokusao da promeni ali nije bas bio uspesan). Ne kazem da je Pascal los jezik samo nema infrastrukturu oko sebe, nema dobre biblioteke i sl. Moj omiljeni jezik je LISP(Scheme) ali isto tako super mi je za opustanje i razonodu ali nisam nikad ni pomislio da ga koristim za standardan razvoj. Ulogu velikog kamena u buretu zauzimaju C/C++, Java i .NET jezici, rupe u buretu popunjavaju (manji kamen) jezici poput Python, Ruby, Perl a ostali koji su u buretu su sitni kao pesak... i milion jezika koji su interesantni i koje se koriste u akademskim krugovima ali nemaju nikakvog prakticnog znacaja u industriji.

E sad... valja nesto i raditi jer polako ode produktivnost na forumu :)
&&y
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 13:30 - pre 175 meseci
Citat:
aludanyi: Ako uzimas u obzir sebe ili nekog pojedinca koji je A+ u native programiranju onda se slazem da je moguce dostici slicni nivo produktivnosti i u native razvoju ali ja ti ovde pricam o praksi ne o teoriji; Kada imas 300-400 ljudi (ili 30-40 nije bitno) na razvoju od kojih mozda 4-5% je ono sto nazivamo A+ ili A, ostali su B+ B a moras da se zadovoljis i sa dosta onih koji su samo C (bez obzira sto Joel kaze da ne treba primati one koji 100% ne zadovoljavaju visoke kriterijume, to je mozda moguce u Silicon Valley ili na Manhattan ne znam ali u vecini slucajeva je nemoguce ili cak nepotrebno skupo jer retko koji softver opravdava takav pristup) ali u realnoj situaciji trziste nema takvu ponudu niti ti imas sredstva da juris i da placas full A+ timove. E u toj prakticnoj realnoj situaciji produktivnost na managed platformi je san snova za native razvoj.


Ovo je samo nepotkrepljena tvrdnja, a ne dokaz, da slojevi povećavaju produktivnost. No, svako je rekao svoje mišljenje, oko nekih stvari se nismo složili i nema potrebe da lomimo dalje ruke oko toga, slažem se.

Ja samo mislim da je Java sa bajtkodom donela nešto esencijalno u odnosu na native pristup - binarnu prenosivost koda i bezbednost tako što VM može da kontroliše rad programa bez obzira na ćefove proizvođača operativnog sistema, a da .NET nije doneo ništa esencijalno što se nije moglo rešiti i za native programe (bezbednost iste vrste je bilo moguće postići na nivou operativnog sistema), obzirom da MS nema motiv da stimuliše prenosivost i da drži razvoj OS-a pod svojom kontrolom, kao i da su za povećanje produktivnosti zaslužni upravo jezici i biblioteke, a ne VM. No, ti se s tim ne slažeš, ali nema veze. Svako je rekao svoje i nema potrebe da više tupimo oko toga.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 14:28 - pre 175 meseci
Citat:
Nedeljko: Ovo je samo nepotkrepljena tvrdnja, a ne dokaz, da slojevi povećavaju produktivnost.

Kao prvo, samo zlonamernim iščitavanjem onog što je aludanyi napisao možeš da kažeš da je rekao da "slojevi povećavaju produktivnost", čovek je govorio o konkretnim platformama. A kao drugo, većina ovde pri ovakvim diskusijama ne barata dokazima i teoremama, već teorijama i spekulacijama, koje ne moraju da budu ništa manje tačne nego sve i da su matematički dokazive i dokazane.

Kome nije dovoljan zdrav razum da poveruje u raspodelu kvaliteta programera o kojoj aludanyi priča, dovoljno je da prođe kroz bukvalno bilo koju softversku firmu.
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 14:50 - pre 175 meseci
Da dobro receno... a jos je dobro ako prodje kroz softversku firmu jer velika kolicina softvera se razvija u ne-softverskim firmama :) gde je situacija uglavnom jos losija. Razmisljao sam, izmedju ostalog, zasto je situacija mozda jos losija nego sto bi realno trebala da bude i jedna od mogicih odgovora je jer programere u obrazovnim institucijama spremaju za Mars a ne za realnu industriju... mozda gresim, nisam bas ekspert na tom polju ali eto to bi bilo molje misljenje.

Inace nekako mi se cini da su inzinjeri bolje spremljeni za izazove u realnom industrijskom okruzenju nego programeri (cast izuzecima), moguce da je to bas zbog toga sto im je prirodno da traze patterne/modele i formiraju apstrakcije prilikom resavanja problema umesto da se izgube u detaljima koje niko nije u stanju da sagleda u celosti.
&&y
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 15:38 - pre 175 meseci
Citat:
jablan: Kao prvo, samo zlonamernim iščitavanjem onog što je aludanyi napisao možeš da kažeš da je rekao da "slojevi povećavaju produktivnost", čovek je govorio o konkretnim platformama.


Pa, napisao je

Citat:
aludanyi: C# i Java nisu bitni u ovom slucaju oni ne predstavljaju apstrakciju, bitan je Java VM i CLR i biblioteke klasa (recimo FCL/BCL u slucaju .NET-a) koji ti omogucavaju da kompajliras IL kod koji je totalno nezavisan i od programskog jezika i od operativnog sistema i od masinske arhitekture (ukoliko je CLR implementiran a jeste donekle preko Mono projekta a sto se tice Jave to imamo implementirano na svim platformama). E taj sloj apstrakcije ti omogucava vecu produktivnost, daleko veci stepen "code reuse"-a sigurnosne mehanizme koje native bez tih apstrakcija ne mozes da implementiras ili je implementacija toliko kompleksna da je prakticno nemoguca.


Dakle, produktivmost podižu .NET i Java platforma, a ne C# i Java jezik. Ko ovde osporava da je govorio o konkretnim platformama? Ja smatram da produktivnost podižu upravo C# i Java jezik, a da je platforma u tim slučajevima irelevantna za produktivnost. I da se koriste native code kompajleri za C# i Java jezik, ne bi bilo razlike sa stanovišta produktivnosti. Izvorni kod je isti. Java platforma donosi druge prednosti, ne povećanje produktivnosti u odnosu na situaciju da se koristi native code Java kompajler.

Citat:
jablan: A kao drugo, većina ovde pri ovakvim diskusijama ne barata dokazima i teoremama, već teorijama i spekulacijama, koje ne moraju da budu ništa manje tačne nego sve i da su matematički dokazive i dokazane.


Pa, znaš kako, ja razumem da je tebi matematiku predavao neki kreten, ali to ovde nije tema. Niko nije ni pominjao matematiku.

U bilo kakvoj diskusiji se moraju analizirati argumenti, tj. njihova validnost, jer inače diskusija nema nikavog smisla. OK, ja shvatam da je svaka argumentacija za tebe viša matematika, ali to je onda tvoj problem. Ne moraš se uključivati u diskusiju.

Citat:
Nedeljko: Ovo je samo nepotkrepljena tvrdnja, a ne dokaz, da slojevi povećavaju produktivnost.


Dakle, ovo znači da ne možeš dokazati da je šerpa crvena prosto tvrdeći da je crvena. I ako je zelena, niko te ne sprečaav da kažeš da je crvena. No, dobro, ako je ovo nekome viša matematika, ne mora da čita.

Citat:
jablan: Kome nije dovoljan zdrav razum da poveruje u raspodelu kvaliteta programera o kojoj aludanyi priča, dovoljno je da prođe kroz bukvalno bilo koju softversku firmu.


Ko je osporavao tu raspodelu? Ja tvrdim da bi isti programer mogao da radi sa kompajlerom za isti jezik, bez obzira da li je izlaz native code ili bajtkod. OK, aladanyi ima drugačije mišljenje. To mogu da poštujem iako se ne slažem, ali daleko od toga da smatram da sam zlonameran.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Srđan Pavlović
Specijalna Edukacija i Rehabilitacija MNRO
Vojvodina, Bačka Palanka

Član broj: 139340
Poruke: 5571
*.static.isp.telekom.rs.

Sajt: www.oligofrenolog.com


+382 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 15:47 - pre 175 meseci
Baratate vrlo rastegljivim pojmom "produktivnosti", pa mozda
bolje da ga precizno definisete, bolje cete se razumeti medjusobno :)

Produktivnost moze imati dosta razlicita znacenja ako se u obzir uzmu neki konkretniji zadaci.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:04 - pre 175 meseci
Mnoge vrste programa će isti programer brže i lakše napisati u Javi, nego u C++u, a opet brže i lakše u C++u, nego u C-u.

Samo za Jablana:

http://i.imgur.com/PtybK.jpg
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:24 - pre 175 meseci
Ne smatram da si zlonameran, verujem samo da imamo razlicitu pozadinu i zbog toga i razlicito misljenje. :)

Nego OK ako kazes da su za povecanu produktivnost iskljucivo zasluzni jezici (C#, Java) kako onda objasnjavas da su svi jezici koji omogucavaju tu vecu produktivnost jezici koji imaju neki sloj apstrakcije ispod (ne samo Java VM i .NET nego i Python, Smalltalk, PHP ili koriste malo razlicite apstrakcije poput AST-a (Abstract Syntax Tree) recimo Ruby i Perl.

Kada radis native (da zaboravimo na trenutak na razne VM-e) u suvom C-u ili radis u C++ ali manje vise u C stilu (mnogi tako rade nazalost) odnosno pises C kod a koristis apstrakcije za strukture podataka koje ti C++ obezbedjuje (STL) ili zaista pises C++ kod (OOP + Generics) imas razlicite nivoe produktivnosti bukvalno u istom jeziku. Znaci u ovom slucaju sam jezik nosi deo povecanja produktivnosti (C++ vs C) ali ne sav deo, cak sta vise u slucaju da koristis stvari koji mozda jesu standardni delovi jezika ali ne uticu na vecu snagu izrazavanja odredjenog jezika daju krila produktivnosti vise nego sam jezik.

Naravno sad ces reci da ovo nista ne dokazuje da Java VM ili .NET CLR povecavaju produktivnost, ali ja i dalje tvrdim da svaki sloj u sistemu koja smanjuje mogucnost za stvaranje bagova veoma bitan faktor u povecanju produktivnosti. Nisam nikad tvrdio da jezici ne povecavaju produktivnost samo sam rekao da su manje bitan faktor jer je VM ono sto omogucava razvoj i nastajanje tih jezika. Recimo C# 2.0 je manje produktivan nego C# 3.0 a oba se izvrsavaju na CLR 2.0 prema tome tu imas pravo da je jezik uticalo na produkticnost, ali CLR 2.0 je omogucio da se u C# 2.0 ubace stvari koje u C# 1.0/1.1 nisu bile moguce, isto tako su sada morali da promene CLR na 4.0 jer je implementacija nekih stvari u C# 4.0 daleko komplikovanija i teza (pa cak i nemoguca bez trikova i "magije") na CLR 2.0

Radim prilicno nisko u CLR-u apsolutno znam kako koja jezicka konstrukcija u C# radi dole u CLR, kakov CIL kod se generise, koje prednosti ima, koje nedostatke... kada se gubi na performansama kada ne... znam i kako metadata utice na eleganciju implementacije mnogih stvari. Jednostavno nema teorije da me neko ubedi da bi ti jezici mogli da se tako lako i produktivno implementiraju native kao sto su implementirani za CLR. Za Javu ne mogu detaljno da govorim jer Javu daleko manje poznajem nego .NET/CLR. Mada isto tako znam i kakav kod generise i C i C++ u native okruzenju... kao neko ko je ucio da programira u "masincu" nikad ne gubim iz vida arhitekturu masine ni na nivou hardvera ni na nivou VM-a (koji predstavlja sofisticiraniju masinu od hardvera na kojem lezi - jednim razlogom da bi obezbidio nezavisnost od hardvera i OS-a a sa druge strane da bi ponudila mogucnosti/olaksice = facilities programskim jezicima bas da bi mogli u njima da implementiramo stvari prirodnije, jednostavnije i lakse nego da to radimo bez njih). A to svugde znaci povecanu produktivnost i/ili direktno i/ili indirektno.
&&y
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:35 - pre 175 meseci
Citat:
Nedeljko: I da se koriste native code kompajleri za C# i Java jezik, ne bi bilo razlike sa stanovišta produktivnosti.

Znaš kako kažu, kad bi baba imala propeler, bila bi helikopter... Nejtiv kod kompajleri za C# i Javu, koliko znam, ne postoje, a za to verovatno postoji vrlo opravdan razlog. Tako da je posmatranje produktivnosti tih jezika odvojeno od platforme samo razglabanje za dokone teoretičare.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:35 - pre 175 meseci
Citat:
aludanyi: Ne smatram da si zlonameran, verujem samo da imamo razlicitu pozadinu i zbog toga i razlicito misljenje. :)


Ama, ne mislim ni ja ništa loše o tebi, niti smatram da ti misliš nešto loše o meni. Upravo tako kao što kažeš. Imamo različita mišljenja iz raloga koje navodiš i to je sve, i to je u redu.

Citat:
aludanyi: Nego OK ako kazes da su za povecanu produktivnost iskljucivo zasluzni jezici (C#, Java) kako onda objasnjavas da su svi jezici koji omogucavaju tu vecu produktivnost jezici koji imaju neki sloj apstrakcije ispod (ne samo Java VM i .NET nego i Python, Smalltalk, PHP ili koriste malo razlicite apstrakcije poput AST-a (Abstract Syntax Tree) recimo Ruby i Perl.


Svi ti jezici nude veću produktivnost kao razvijeniji jezici novijeg datuma od klasičnih native jezika na primer. Bajtkod je danas donekle moda, a tipično se koriste zbog binarne prenosivosti između različitih OS-eva.

Citat:
aludanyi: Kada radis native (da zaboravimo na trenutak na razne VM-e) u suvom C-u ili radis u C++ ali manje vise u C stilu (mnogi tako rade nazalost) odnosno pises C kod a koristis apstrakcije za strukture podataka koje ti C++ obezbedjuje (STL) ili zaista pises C++ kod (OOP + Generics) imas razlicite nivoe produktivnosti bukvalno u istom jeziku. Znaci u ovom slucaju sam jezik nosi deo povecanja produktivnosti (C++ vs C) ali ne sav deo, cak sta vise u slucaju da koristis stvari koji mozda jesu standardni delovi jezika ali ne uticu na vecu snagu izrazavanja odredjenog jezika daju krila produktivnosti vise nego sam jezik.


Ovo je sasvim tačno.

Citat:
aludanyi: Naravno sad ces reci da ovo nista ne dokazuje da Java VM ili .NET CLR povecavaju produktivnost, ali ja i dalje tvrdim da svaki sloj u sistemu koja smanjuje mogucnost za stvaranje bagova veoma bitan faktor u povecanju produktivnosti.


Ako je to zasluga tog sloja, a ne jezika, što ne smatram da je slučaj.

Citat:
aludanyi: Radim prilicno nisko u CLR-u apsolutno znam kako koja jezicka konstrukcija u C# radi dole u CLR, kakov CIL kod se generise, koje prednosti ima, koje nedostatke... kada se gubi na performansama kada ne... znam i kako metadata utice na eleganciju implementacije mnogih stvari. Jednostavno nema teorije da me neko ubedi da bi ti jezici mogli da se tako lako i produktivno implementiraju native kao sto su implementirani za CLR. Za Javu ne mogu detaljno da govorim jer Javu daleko manje poznajem nego .NET/CLR. Mada isto tako znam i kakav kod generise i C i C++ u native okruzenju... kao neko ko je ucio da programira u "masincu" nikad ne gubim iz vida arhitekturu masine ni na nivou hardvera ni na nivou VM-a (koji predstavlja sofisticiraniju masinu od hardvera na kojem lezi - jednim razlogom da bi obezbidio nezavisnost od hardvera i OS-a a sa druge strane da bi ponudila mogucnosti/olaksice = facilities programskim jezicima bas da bi mogli u njima da implementiramo stvari prirodnije, jednostavnije i lakse nego da to radimo bez njih). A to svugde znaci povecanu produktivnost i/ili direktno i/ili indirektno.


GNU Java ima native port i bajtkod port. Native port takođe ima GC.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:38 - pre 175 meseci
Citat:
jablan: Znaš kako kažu, kad bi baba imala propeler, bila bi helikopter... Nejtiv kod kompajleri za C# i Javu, koliko znam, ne postoje, a za to verovatno postoji vrlo opravdan razlog. Tako da je posmatranje produktivnosti tih jezika odvojeno od platforme samo razglabanje za dokone teoretičare.


Da, ove čipke iz MS-a neće narodu da daju native C#, a ni one čipke iz GNU-a, ni one iz Mono-a. Međutim, GNU Java ima native port (sa sve GC-om).
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:42 - pre 175 meseci
Pravi interpretativni jezici (gde se sors interpretira) mogu lako da imaju mogućnost izvršavanja koda koji je u fazi izvršavanja generisan kao string (micro prolog). To je u kompajlerskim jezicima (native ili bytecode, svejedno) teže.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:42 - pre 175 meseci
Citat:
Nedeljko
Samo za Jablana:

http://i.imgur.com/PtybK.jpg


Ahahahahahahahah ako nisam pao sa stolice :)

"Sine, moja zbirka razvaljuje ali si ti pglu za matematiku... Pozdravlja te cika Vene."

LOOOL
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:44 - pre 175 meseci
Imas donekle pravo :)

Sto se tice produktivnoscu u slucaju razvoja softvera evo sta ja podrazumevam:

Vreme za koje tim uspesno odradi projekat odredjene funkcionalnosti i kvaliteta koristeci odredjene resurse (pre svega ljudske).

Govorim o timu jer ne smatram da je razvoj softvera danas "single person job" odnosno mozemo da pisemo i dalje softver sami ali ako govorimo o softveru takve slozenosti za sta vec nemamo neko gotovo resenje onda nam ostaje veoma malog prostora da sedimo i sami pisemo softver. Znaci razvoj softvera je timski rad.

Isto tako je bitno da se naglasi da razliciti timovi na nivou iste organizacije i na nivou razlicitih organizacija mogu postici sto optimalniju podelu posla, odnosno da lako koriste komponente koje su razvili drugi timovi i druge organizacije. Produktivnost na nivou jednog coveka je ogranicena alatima koje su mu dostupni, bitno je da obezbedimo sto vecu dinamiku razmene ideja i koda odnosno sto vecu podelu posla. U tom grmu lezi zec sto se tice produktivnosti. A tesko je to obezbediti sa alatima koje se teze koriste nego alatima koje se lakse i brze i bezbolnije koriste.
&&y
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:45 - pre 175 meseci


priceless

Samo da budemo nacisto, .NET code se ne izvrsava u VMu, iako vuce neke paralele sa Java VMom .NET aplikacija se izvrsava kao native code unutar managed konteksta i kod je portabilan u toj meri u kojoj postoji JIT komapjler za IL, bez istog nema dalje price. IL se pogresno smatra bytecode-om a on to nije, ako se ikakava paralela moze povuci onda je IL binarni programski jezik koji JIT prevodi on-demand. Upravo taj aspekt omogucava da se managed aplikacije intergrisu sa unmanaged kodom do te mere da jedan metod moze imate visestruke prelaze iz jednog u drugi kontekst. Tako da u principu vasa rasprava vise ide na vodenicu Nedeljku mada je totalno bezveze jer se manje vise zna odakle potice ta famozna "produktivnost" o kojoj pricate a to nije ni jezik ni platforma vec RAD. Klik ovde, klik onde, drag-n-drop tamo i evo utility aplikacije.


Citat:
aludanyi:Inace nekako mi se cini da su inzinjeri bolje spremljeni za izazove u realnom industrijskom okruzenju nego programeri (cast izuzecima), moguce da je to bas zbog toga sto im je prirodno da traze patterne/modele i formiraju apstrakcije prilikom resavanja problema umesto da se izgube u detaljima koje niko nije u stanju da sagleda u celosti.


E vala ovo si lupio pa ostao ziv, ako se iko bavi apstrakcijama to su matematicari I to je sasvim ok dok god mi pricamo o nekim low-level user-productivity aplikacijama tipa terminala za salterusu, treba stvarno biti biser pa napraviti program koji je sporiji od salteruse (mada ima toga, za pocetak famozni program za akviziciju pasosa). Sve o cemu ti pricas je manje vise prezvakana stvar, ono sto je problematicno je da ti to smatras prednoscu "platforme". Mogucnost da A+ tim zamenis gomilom polupismenih kliktaca misem samo zato sto ne mogu nikako da izazovu BSoD ne znaci nikakvu prednost niti povecanje produktivnosti, postoji velika razlika izmedju "working fast", "working hard" i "working smart". U vise instanci je nezadovoljstvo klijenata vendorima i trazenje spasa u cloud-u upravo poteklo od totalne funkcionalne neispravnosti softvera koji im se uvaljuje a koji je radila takva gomila nesrecnika. Opste stanje shelf softvera (bolje reci bloatware-a) je jos jedna indikacija te maligne bolesti u industriji.

A+ tim mozda jest skup i tezak za formiranje, ali taj problem nije razlog da se mediokritetstvo prihvati kao nuzno zlo. Zato i postoji taj problem o kojem Ivan prica i o nemogucnosti da se iskoriste potencijali HPCa tamo gde je to primenljivo, jednostavno imas vrlo malo ljudi koji mogu da se izvuku iz apstrakcije i dodirnu bare-metal, bez obzira na jezik. Zato ja ne delim tvoj entuzijazam sa automatskom paralelizacijom, sta vise cim bude izasao VS2010 ocekujem gomilu problema sa pogresno paralelizovanim kodom koji ce biti veoma tesko i komplikovano debagovati narocito u multistep algoritmima i u situacijama kad se uradi lose particionisanje podataka. Zivi bili pa videli, ali posto je MS dodao AsParallel() onda cemo sad to da trpamo u sve, a.k.a. "da iskoristimo vise jezgara", ako MS kaze da je to super ko smo mi da protivurecimo.


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

aludanyi
Andras Ludanyi
Principal Software Engineer and
Engineering Manager
London, United Kingdom

Član broj: 56366
Poruke: 54
93.87.185.*

Sajt: www.ludanyi.com


+23 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 16:53 - pre 175 meseci
Nisam rekao da ne moze, na kraju krajeva sve se svodi na isti masinski kod koji pojma nema o programerskim paradigmama :) nego pricam o praksi, niko ne pravi native port za C#, GNU je napravio za Javu (verovatno zbog Stallmanovog pristupa da ostavi mogucnost da se Java izvrsava u free okruzenju (bez Java VM) ali ja zaista ne znam nikoga ko to koristi, i verujem da je to resenje prilicno ograniceno (ne znam samo verujem) jer sam siguran da je u tom slucaju nemoguce koristiti vecinu elemenata Java platforme, znaci kao jezik je tu generise native kod ali ne mora da znaci da je u stanju da generise kod za svaku situaciju jer cak i kada se generise kod za CLR u nekim situacijama ne mozemo da dobijemo CIL kod bez obzira sto jezik ima mogucnost da izrazi ono sto imamo na umu... kompajler nam jednostavno javi gresku cak i ako je jezicki sve ok i sintaksa je OK ali jednostavno u datom trenutku sa datim strukturama je nemoguce da uradimo to onako kako smi mislili.
&&y
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
79.101.132.*



+2789 Profil

icon Re: Cloud, buducnost, prevara ili zabluda?19.10.2009. u 17:01 - pre 175 meseci
Citat:
aludanyi: Nisam rekao da ne moze, na kraju krajeva sve se svodi na isti masinski kod koji pojma nema o programerskim paradigmama :) nego pricam o praksi, niko ne pravi native port za C#, GNU je napravio za Javu (verovatno zbog Stallmanovog pristupa da ostavi mogucnost da se Java izvrsava u free okruzenju (bez Java VM) ali ja zaista ne znam nikoga ko to koristi, i verujem da je to resenje prilicno ograniceno (ne znam samo verujem) jer sam siguran da je u tom slucaju nemoguce koristiti vecinu elemenata Java platforme, znaci kao jezik je tu generise native kod ali ne mora da znaci da je u stanju da generise kod za svaku situaciju jer cak i kada se generise kod za CLR u nekim situacijama ne mozemo da dobijemo CIL kod bez obzira sto jezik ima mogucnost da izrazi ono sto imamo na umu... kompajler nam jednostavno javi gresku cak i ako je jezicki sve ok i sintaksa je OK ali jednostavno u datom trenutku sa datim strukturama je nemoguce da uradimo to onako kako smi mislili.


Pa, GNU ima i svoju VM, tako da ro nije razlog. Nažalost, ne razvija se već dve godine. Mislim da je Java kao jezik kompletno podržana, a biblioteke skoro kompletno (bez GUI-ja).
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: Advocacy :: Cloud, buducnost, prevara ili zabluda?
(TOP topic, by Milan Gligorijevic)
Strane: < .. 1 2 3 4 5 6 7 8 9 10 ... Dalje > >>

[ Pregleda: 148328 | Odgovora: 577 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.