[ RF MasterX @ 26.01.2011. 20:34 ] @
Kao sto naslov teme kaze.
[ kandorus @ 26.01.2011. 22:04 ] @
Njet.
[ mmix @ 26.01.2011. 22:36 ] @
Malo detaljnije?
[ kandorus @ 26.01.2011. 23:12 ] @
Ako posmatram iz ugla korisnika onda mi je smaranje da svako malo apdejtujem verzije .NET da bi mi neka aplikacija radila. Šta me se tiče što je programerima olakšan rad, standardizovane procedure itd. Zanima me samo finalni proizvod i koje obaveze meni nameće. Ne zanima me šta je ispod haube već koliko brzo ide i da što manje troši (računarskih resusa naravno). Ako mi je .NET uslov da izračuna par integrala sa prve godine studija onda mi je Mathematica 2 pod DOS-om sasvim dovoljna a kanta od računara koja radi pod DOS-om može da se nadje po djubrištu samo malo dezinfikovati. Što bih bacao novac na skupe dual-pentium računare? Kao korisnik nemam interesa.

Ako posmatram iz ugla programera onda se neke stvari pojednostavljuju ali sve se na tome i završava. Digne mi se kosa na glavi kad vidim da aplikacija koja obradjuje par statističkih podataka i crta nekoliko linija zauzima 20MB ???. E sad, neko će reći šta za tako male aplikacije koristiš .NET uzmi DOS i reši problem. Naravno pod DOS-om to je aplikacija od oko 60KB. Ali caka je u tome što klijent baš hoće .NET jer je čuo da je to "strava". Jeste strava da se prestraviš. Tu su i neka praktiča pitanja transfera preko interneta.

Kad bi .NET bio sastavni deo OS onda bi se lakše disalo. Ovako ...
[ dejanet @ 26.01.2011. 23:41 ] @
.net se ne koristiti cesto za male utility programe, vec za robusne win/web aplikacije, gde standardizacija i definisan okvir(framework), igraju veliku pozitivnu ulogu u skracivanju vremena, cene, standardizaciju i citljivost code-a a najvaznije dovode do mogucnosti lakseg outsource-inga, promene programerske firme po potrebi, znaci generalno olaksava upravljanje projektom izrade npr. nekog is-a..

Ovo vazi i za javu , kao i u kombinaciji sa nekim framework-om u zavisnosti od potrebe..

Tako da cemo tesko naci neki erp ili bankarski is koji je pisan npr. u c++, ali takodje obrnuto za codec,driver ili core deo server-a itd..

U stvari, .net i java su cesto pobednici u cost-benefit analizi za brdo it projekata koji se pojave na trzistu..
[ Nedeljko @ 27.01.2011. 00:22 ] @
Citat:
kandorus: Ako posmatram iz ugla korisnika onda mi je smaranje da svako malo apdejtujem verzije .NET da bi mi neka aplikacija radila.


Ako posmatraš iz ugla korisnika, onda koristiš ono čega ima na tržištu.

Citat:
kandorus: Šta me se tiče što je programerima olakšan rad, standardizovane procedure itd. Zanima me samo finalni proizvod i koje obaveze meni nameće. Ne zanima me šta je ispod haube već koliko brzo ide i da što manje troši (računarskih resusa naravno). Ako mi je .NET uslov da izračuna par integrala sa prve godine studija onda mi je Mathematica 2 pod DOS-om sasvim dovoljna a kanta od računara koja radi pod DOS-om može da se nadje po djubrištu samo malo dezinfikovati. Što bih bacao novac na skupe dual-pentium računare? Kao korisnik nemam interesa.


Onda lepo plati da se svaka aplikacija napiše specijalno za tebe onako kako ti hoćeš. Odmah će ti se razjasniti interesi.

Citat:
kandorus: Ali caka je u tome što klijent baš hoće .NET jer je čuo da je to "strava".


Klijent to hoće samo u slučaju da mu je bitan API radi dodavanja nekih stvari, ako je softver takve vrste, jer je lakše naći Java/.NET programera nego C/C++ programera. Nikakva paljevina na stravu nije u pitanju.
[ Shadowed @ 27.01.2011. 07:39 ] @
Citat:
kandorus: Kad bi .NET bio sastavni deo OS onda bi se lakše disalo. Ovako ...

I jeste, a mislim da se moze i update-ovati kroz windows update.
Naravno, Razlicita verzija Windows-a ima razlicitu verziju framwork-a iz jednostavnog razloga sto tada nije bilo novijeg.
Windows 7 npr. ima 3.5 i postoji samo jedan update (uslovno receno, jer nije update stare vec dodavanje nove verzije) - 4.0.
[ kandorus @ 27.01.2011. 08:09 ] @
Prvo, ne koriste svi Windows 7 a drugo svaki "update" korisnik može da doživi kao maltretiranje jer tada korisnik opslužuje računar umesto da bude obratno.
[ mmix @ 27.01.2011. 08:23 ] @
.NET se sada itekako koristi za male utility aplikacije, zapravo je sada i bice ubuduce jedini efikasan nacin da prosiris funkcionalnost PowerShell (zapravo CLR je)

Prvo sto morate da odluzite je sta napadate, CLR ili .NET framework? AKo ih i napadate oba trebalo bi da ih napadate odvojeno.


Sto se tice memorije ne znam sta bih ti rekao, .NET je napravljen da mu se aplikacioni domen siri po potrebi i skuplja ako je neophodno. Klasicnom "task manager" dijagnostikom ti ne mozes da vidis koliko je veliko zauzece heapa, niti je to merilo bilo cega. I mene nervira c++ aplikacija koja zauzima 300+MB u memoriji (chrome.exe) ali da li neko dize frku oko toga? Ne? Zasto ne? Zato sto danasnje masine imaju1, 2, 4+ Gb memorije. Koga je briga za to sem tebe? Imas malo luditsko posmatranje sveta, kompjuteri su malo uznapredovali i pojeftinili od doba DOSa, zasto bi CLR stalno koristio skupe global alloc operacije kad ima svoj managed heap?

A sto se tice updatea, ja mislim da ti jedini to dozivljavas kao maltretiranje :) ne donosi update samo nove frameworke, donosi i fixeve za ceo OS. Java ima svoj updater koji malo malo donese novu verziju, vc++ aplikacije sada skoro svaka u deployentu dolazi sa svojim side-by-side c++ runtime-om, itd, itd. Doba DOSa je gotovo odavno.
[ 3way @ 27.01.2011. 08:31 ] @
Citat:
kandorus: Prvo, ne koriste svi Windows 7 a drugo svaki "update" korisnik može da doživi kao maltretiranje jer tada korisnik opslužuje računar umesto da bude obratno.


Ne znam stvarno sta je problem sa updateom. Ja se ne secam kada sam poslednji put morao da radim update .neta, a i kada sam ga radio sve radi sam.
Kao i bilo koji drugi apdejt, ne secam se da sam bilo sta morao da opsluzujem, bilo da se radi o win ili linuksu. Celo "opsluzivanje" se svodi na jedan klik.
[ jablan @ 27.01.2011. 09:09 ] @
Objektivno, najveća mana mu je što moraš da instaliraš Windows da bi ga koristio. Prilično veliki i skup runtime, ako mene pitate.
[ dusans @ 27.01.2011. 09:17 ] @
Za kandorusa:
http://www.joelonsoftware.com/items/2007/09/18.html
[ Shadowed @ 27.01.2011. 09:32 ] @
Citat:
kandorus: Prvo, ne koriste svi Windows 7 a drugo svaki "update" korisnik može da doživi kao maltretiranje jer tada korisnik opslužuje računar umesto da bude obratno.

Naveo sam 7 kao primer zato sto za njega znam tacno koju verziju ima. Nisam ni rekao da ga svi imaju (niti da trebaju).
Korisnik moze i disanje da dozivi kao maltretiranje.

@Jablan, good one
[ kandorus @ 27.01.2011. 09:48 ] @
Citat:
mmix
Sto se tice memorije ne znam sta bih ti rekao

Drugi znaju šta bi radili s novcem koji se baca na besmisleno proširenje memorije. E sad, tu treba uzeti u obzir i cenu aplikacije pa izabrati ono što je jeftinije. Mora se priznati da u tom smislu vrlo često jeftinije dodje proširenje memorije nego optimizacija aplikacije na manju memoriju.

Citat:
mmix
A sto se tice updatea, ja mislim da ti jedini to dozivljavas kao maltretiranje :)

Oh, jeli? Neki opet smatraju da je malo morbidno zadovoljavati se reinstaliranjem programa osim možda ako je besposlen.

Nisu svi ljubitelji, obožavaoci, fanovi računara, informatike i programiranja. Ima naviklih da žive u prirodi i u skladu sa prirodom. Takvima su računari interesantni isto koliko lanjski sneg.


Citat:
3way
Celo "opsluzivanje" se svodi na jedan klik.

I tim klikom se dobije sajt na kome
sledećim klikom korisnik izabere šta traži
pa sledećim klikom potvrdi da daunloaduje
pa sledećim klikom izabere server za daunlodovanje
pa sledećim klikom pokrene instalaciju
pa sledećim klikom pokrene daunlodovanje paketa (jer ono prethodno je daunloader)
pa sledećim klikom potvrdi da pristaje na uslove korišćenja
pa sledećim klikom izbere folder
pa ...
[ 574nk3 @ 27.01.2011. 10:31 ] @
Citat:
kandorusDrugi znaju šta bi radili s novcem koji se baca na besmisleno proširenje memorije. E sad, tu treba uzeti u obzir i cenu aplikacije pa izabrati ono što je jeftinije. Mora se priznati da u tom smislu vrlo često jeftinije dodje proširenje memorije nego optimizacija aplikacije na manju memoriju.

:) Kojim novcem? Danas kada računar sa 3GB DDR3 memorije i dual core procesorom možeš kupiti po ceni osrednjeg mobilnog telefona od 200e, svaka dalja priča na tu temu gubi smisao.

Citat:

Nisu svi ljubitelji, obožavaoci, fanovi računara, informatike i programiranja. Ima naviklih da žive u prirodi i u skladu sa prirodom. Takvima su računari interesantni isto koliko lanjski sneg.

:) Hebiga i da bi vozio kola moraš da znaš da voziš. Nije baš računar za svakoga.
[ Ivan Dimkovic @ 27.01.2011. 10:32 ] @
.NET i Java su samo moderne reinkarnacije zla koje je zapoceo Visual Basic.

Te stvari sluze kako bi menadzeraj umisljao da ce da smanji troskove razvoja.
[ 3way @ 27.01.2011. 10:41 ] @
Citat:
kandorus: I tim klikom se dobije sajt na kome
sledećim klikom korisnik izabere šta traži
pa sledećim klikom potvrdi da daunloaduje
pa sledećim klikom izabere server za daunlodovanje
pa sledećim klikom pokrene instalaciju
pa sledećim klikom pokrene daunlodovanje paketa (jer ono prethodno je daunloader)
pa sledećim klikom potvrdi da pristaje na uslove korišćenja
pa sledećim klikom izbere folder
pa ...


???

Windows moze i sam da se apdejtuje bez ikakve intervencije korisnika osim da resetuje racunar, a moze i da podseti korisnika da ima novih apdejtova, posle cega on klikne "Vazi", a sledeca poruka koju dobije je da je sve gotovo. Ubuntu takodje sam sve radi.
Vecina aplikacija takodje same skidaju svoje apdejtove pa se krpe.
[ dusans @ 27.01.2011. 10:54 ] @
Jeste da je VB "shugav" ali se to ne bih rekao za Javu i C#.

Za vecinu LOB aplikacija C# je mnogo bolji izbor od npr. C-a ili C++:
- U vecini slucajeva ne moras da brines o oslobadjanju resursa.
- Kod je po defaultu uvek type safe osim ako namernim konstrukcijama bas hoces da cackas mecku.
- Vrlo mocan i cist API za široke potrebe out of the box (Npr. u odnosu na Win32 i MFC, nebo i zemlja).
- Mocni RAD alati.
- itd...

Ovo sve ubrzava i pojednostavljuje razvoj odredjenih aplikacija a samim tim smanjuje troskove.


[ dejanet @ 27.01.2011. 11:01 ] @
Citat:
dimkovic:.NET i Java su samo moderne reinkarnacije zla koje je zapoceo Visual Basic.

Nemam nista protiv, jedino ima onaj izvestaj u Financial Times-u (ne mogu da nadjem link) iz 2005(06)-lagacu, gde je 60% svih IT projekata neuspesno ili delimicno uspesno, a steta oko 800 milijardi dolara..

Kao sto neko rece apstrakcija i apstrakovanje, zajedno sa cetvorkama i peticama iz matisa, nisu svima data na rodjenju a jos manje kroz obrazovni sistem(narocito nas)..

Nesto ovoga je ublazeno kroz .net i javi..
[ kandorus @ 27.01.2011. 11:06 ] @
Citat:
574nk3
200e

Poslednje na šta bih ja lično bacio 200e je računar.

Citat:
574nk3
Nije baš računar za svakoga.

Šta znam. Ima izveštaja po kojima majmuni znaju da izaberu hranu iz menija na touč skrin ekranima. Pa kad su za majmune možda i nisu za ljude.

Citat:
3way
Windows moze i sam da se apdejtuje

Neko nešto radi iza ledja? Kako korisnik zna da je apdejt o kojem ne zna ništa u njegovom interesu? Kako korisnik zna da ga taj apdejt možda ne špijunira, traži lične podatke, itd? To znači da je korisnik blanko prihvatio sve uslove korišćenja pa čak i one koje nije. Jer kako neko zna da proizvodjač softvera nije zajedno sa apdejtom ubacio nove uslove korišćenja.

Hvala, ali ne hvala.


PS @dejanet
Kaže se apstrakcija.
[ Ivan Dimkovic @ 27.01.2011. 11:15 ] @
Citat:
dejanet
Nemam nista protiv, jedino ima onaj izvestaj u Financial Times-u (ne mogu da nadjem link) iz 2005(06)-lagacu, gde je 60% svih IT projekata neuspesno ili delimicno uspesno, a steta oko 800 milijardi dolara..


Pa nesto ne verujem da ce .NET i Java apstrakcije da pomognu tu... zamenice se jedan tip gresaka sa drugim :)
[ 3way @ 27.01.2011. 11:20 ] @
Citat:
kandorus: Neko nešto radi iza ledja? Kako korisnik zna da je apdejt o kojem ne zna ništa u njegovom interesu?


Ne radi ti nista iza ledja. On se lepo najavi da ce to da radi. Obicnog korisnika jednostavno ne zanima sta to radi i kako radi dok god radi dobro.
Sto se tice uslova koriscenja, tesko da ce se neko usuditi da postavi nove uslove, bez direktne saglasnosti korisnika. Ako je to vec slucaj onda korisnik mora ponovo da "potpise" ugovor.
Uostalom, kao da neko cita sta potpisuje kada klikce na Accept...
[ Shadowed @ 27.01.2011. 11:40 ] @
Kandorus, a da ti batalis kompjutere? :)
Ocigledno ti smeta maltene sve u vezi njih. Pa sta ce ti onda. Zivi prirodno i pusti nas da se zaludjujemo kompovima :)
[ dusans @ 27.01.2011. 11:46 ] @
Treba da se batali i teme pošto očigledno nije programer već "običan" korisnik,
i ne zanima ga ništa osim njegovih ideala, jedino je tu da pljune ono što ne razume.
[ Dejan Carić @ 27.01.2011. 11:49 ] @
.NET 4.0 skoro da nema šanse da se instalira na piratskom windows-u. Zahteva neki Windows Update, šta li... probano na 3 računara :)
Skoro sam razvijao neku desktop aplikaciju u ovom framework-u pa sam morao da je downgrade-ujem na 3.5.
Prethodne verzije se instaliraju bez problema.
[ Nedeljko @ 27.01.2011. 12:10 ] @
Citat:
3way: Sto se tice uslova koriscenja, tesko da ce se neko usuditi da postavi nove uslove, bez direktne saglasnosti korisnika. Ako je to vec slucaj onda korisnik mora ponovo da "potpise" ugovor.
Uostalom, kao da neko cita sta potpisuje kada klikce na Accept...


Kliktanje na Accept u instalacionoj proceduri za Windows nije sudski validno, jer je nametnuto nakon kupovine.
[ pl4stik @ 27.01.2011. 12:11 ] @
.NET pruza mogucnosti da znajuci samo jedan jezik (VB.NET i/ili C#) programer moze da pravi shiroku lepezu programa npr. web, client, dodatke za SharePoint, Dynamics, etc... i po meni jedina losa stvar je sto je za razvoj prakticno neophodan Windows.

Citat:
kandorus: Neko nešto radi iza ledja? Kako korisnik zna da je apdejt o kojem ne zna ništa u njegovom interesu? Kako korisnik zna da ga taj apdejt možda ne špijunira, traži lične podatke, itd? To znači da je korisnik blanko prihvatio sve uslove korišćenja pa čak i one koje nije. Jer kako neko zna da proizvodjač softvera nije zajedno sa apdejtom ubacio nove uslove korišćenja.




Kolko ti ne znash prijatelju pa to je neverovatno ali josh je neverovatnije kolko pricas covece

Ti tolko pises gluposti da te u sred Advocacy-a josh niko nije resio ali ako nastavish mozda se i nadje neko tolko besposlen da se zabavlja tvojim lupetanjem...

Unf...en Believable
[ pl4stik @ 27.01.2011. 12:13 ] @
@Dejan Carić

Lose si probao
[ AMD guy @ 27.01.2011. 12:15 ] @
Citat:
po meni jedina losa stvar je sto je za razvoj prakticno neophodan Windows.


A sta je sa MONO projektom, znam da jos nije dorastao Windows-u ali je daleko od nicega.
[ kandorus @ 27.01.2011. 12:17 ] @
Citat:
@3way
Uostalom, kao da neko cita sta potpisuje kada klikce na Accept...


Pa ne čita jer je sve badava. Ali pre ili kasnije neki bistriji programer će ubaciti klauzulu da se kamate menjju "u skladu sa poslovnim interesima kompanije". Ha Ha, kao banke u zemlji čuda. Posle toga će se čitati.
[ Nedeljko @ 27.01.2011. 12:20 ] @
Citat:
pl4stik: Kolko ti ne znash prijatelju pa to je neverovatno ali josh je neverovatnije kolko pricas covece

Ti tolko pises gluposti da te u sred Advocacy-a josh niko nije resio ali ako nastavish mozda se i nadje neko tolko besposlen da se zabavlja tvojim lupetanjem...

Unf...en Believable :)


Ma, kandorus lupeta k'o Maksim po diviziji, ali šta ćeš, sloboda pisane reči je i takvima zagarantovana.
[ kandorus @ 27.01.2011. 12:22 ] @
^pl4stik

A šta ti nalaziš povod u jednj diskusiji o mehaničkoj napravi nao što je .NET da bi napadao ličnost. Čemu padaš u vatru? Da li svi moraju širiti hvalospeve tvojim ljubimcima?
[ pl4stik @ 27.01.2011. 12:25 ] @
@AMD guy

Nemam iskustva sa MONO, a ni na net-u nisam primetio neki znacajniji pomak ali se slazem da bi to bilo super u svakom slucaju.
[ 3way @ 27.01.2011. 12:26 ] @
Citat:
Nedeljko: Kliktanje na Accept u instalacionoj proceduri za Windows nije sudski validno, jer je nametnuto nakon kupovine.


Ti ne moras da kliknes.
Vratis Win u radnju i trazis pare nazad jer ti se ne svidjau uslovi.
Pored toga, uvek mozes da potrazis ovako nesto: http://www.microsoft.com/About...Property/UseTerms/Default.aspx
[ kandorus @ 27.01.2011. 12:30 ] @
Ne mogu da pročitam "License Terms" valjda zato jer mi nije uključen JavaScriot.
[ pl4stik @ 27.01.2011. 12:31 ] @
Citat:
kandorus:A šta ti nalaziš povod u jednj diskusiji o mehaničkoj napravi nao što je .NET da bi napadao ličnost. Čemu padaš u vatru? Da li svi moraju širiti hvalospeve tvojim ljubimcima?


Ma kakva mehanicka naprava, sta je stobom covece
[ 3way @ 27.01.2011. 12:32 ] @
Citat:
kandorus: Ne mogu da pročitam "License Terms" valjda zato jer mi nije uključen JavaScriot.


Nadam se da to nije zbog nepotrebnosti istog :)
[ kandorus @ 27.01.2011. 12:39 ] @
Kupovinom Windows-a nigde se nisam obavezao da ću koristiti JavaScript. Šta sad?
[ Horvat @ 27.01.2011. 12:43 ] @
@dejan, a koji win? mozda 7, xp hoce

.net smara zbog velicine
ali ima i jako dobrih programa (koji nisu bloat, sto bi rekli, ne vuku resusre bzvz), jedan od tih koji rado koristim je .net paint

ali izivljavanja sa time da najobicniji sw za racunanje koristi stotine mb memorije su previse (kao da svi imaju 10gb ubaceno), a i sa zauzecem prostora isto
[ 3way @ 27.01.2011. 12:48 ] @
Citat:
kandorus:Šta sad?


Nista, koriscenje JS je na dobrovoljnoj bazi :)
[ Dejan Carić @ 27.01.2011. 12:48 ] @
Citat:
Horvat: @dejan, a koji win? mozda 7, xp hoce

XP. Na tim računarima nije prethodno bio instaliran Visual Studio 2010. Znači klot XP pirate edition :)
[ pl4stik @ 27.01.2011. 13:09 ] @
Citat:
Horvat:ali izivljavanja sa time da najobicniji sw za racunanje koristi stotine mb memorije su previse (kao da svi imaju 10gb ubaceno), a i sa zauzecem prostora isto


Zasto? Koji je to software?


Citat:
Dejan Carić: XP. Na tim računarima nije prethodno bio instaliran Visual Studio 2010. Znači klot XP pirate edition


Ne znam bas za pirate edition ali na obicnom XP SP2 prvo treba instalirati SP3 pa onda VS2010 i sve radi...
[ Nedeljko @ 27.01.2011. 13:11 ] @
Citat:
3way: Ti ne moras da kliknes.
Vratis Win u radnju i trazis pare nazad jer ti se ne svidjau uslovi.
Pored toga, uvek mozes da potrazis ovako nesto: http://www.microsoft.com/About...Property/UseTerms/Default.aspx


Ali mogu da kliknem i da ne poštujem licencu (poštovaću kopirajt). MS mi za to ne može ništa, jer nisam prekršio zakon. Kliktanje me ne obavezuje ninašta.

Možda sam ja kupio Windows 200 Km od kuće i onda ga kući instalirao za mesec dana. Nikakvi uslovi koji nisu ugovoreni prilikom kupovine jednostavno nisu zakonski važeći.
[ dusans @ 27.01.2011. 13:23 ] @
Za .NET Framework 4 moraš da imaš bar XP SP3.
[ Texas Instruments @ 27.01.2011. 13:23 ] @
@kandorus

Ti brate lepo uzmi pa piši sve aplikacije from the scratch, najbolje u asembleru, optimizuj maksimalno to, uporedi performanse koje si dobio i vreme koje si prethodno uložio za razvoj te aplikacije pa vidi da li se isplati nastaviti sa takvim radom.
[ Nedeljko @ 27.01.2011. 13:31 ] @
Pa, ako bude konkurentan na tržištu, blago njemu.
[ kandorus @ 27.01.2011. 13:38 ] @
Za .NET Framework 4 dovoljan je XP SP2.
[ Mrmlj @ 27.01.2011. 13:55 ] @
Citat:
kandorus: Za .NET Framework 4 dovoljan je XP SP2.


Khm.

Supported Operating Systems:
Windows 7;Windows Server 2003 Service Pack 2;Windows Server 2008;Windows Server 2008 R2;Windows Vista Service Pack 1;Windows XP Service Pack 3

http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7

[ kandorus @ 27.01.2011. 14:14 ] @
[ mmix @ 27.01.2011. 14:22 ] @
Dakle da rezimiramo temu do sada (izuzev adhominem gluposti)

.NET je los zato:

1. Sto na nekim windowsima mora da se instalira.
Mora i Java na SVIM pa sta? Mora i C++ runtime za odredjenu verziju runtime-a. Pa sta. U cemu je problem zapravo? Sto program vise ne staje na 1.44Mb floppy?

2. Ljudi se paranoicno boje windows update-a i service packova?
To potpuno razumem, nikad se ne zna kad moze da naidje neki ala KB976902 da pokrlja loadere. Ali reci da je to problem .NETa je malo zesci off.

3. Programeri su debili!
Ima ih, ali ima ih i koji znaju svoj posao. Alat je onliko dobar kao i ruke koje ga drze, sampiona je bilo uvek ukljucujuci i c++. Sad naravno, apstrakcija povecava procentualno ucesce sampiona u danasnjem sastavu industrije ali to ne znaci da nije moguce formirati ekipu znalaca i napraviti odlican proizvod u .NETu. Jbg kolko para tolko muzike. Naiva je sto mislite da je u drugim softverskim timovima drugacije.



Ni u jednom od ovih N postova se niko nije osvrnuo ni na jedan tehnicki detalj .NETa po kojem je on los/losiji. Samo trolujete i hejtujete bez ikakve osnove.

[ Nedeljko @ 27.01.2011. 15:13 ] @
A šta si očekivao, nego da troluju? Neka prvo malo programiraju, pa široko im polje u izboru alata.
[ jablan @ 27.01.2011. 15:27 ] @
Citat:
mmix: Ni u jednom od ovih N postova se niko nije osvrnuo ni na jedan tehnicki detalj .NETa po kojem je on los/losiji.

Khm khm. Ja sam istakao jedan sitan, gotovo nevidljiv detalj.
[ lermi @ 27.01.2011. 15:44 ] @
Kao poborniku otvorenih sistema i programa, .net mi je suviše zatvoren. Razumijem prednosti u održavanju i razvoju, ali na kraju - koliko para toliko i muzike.

U mom hobi programiranju nisam se mogao natjerati da savladam .Net - u onim kratkim pokušajima činilo mi se da radim sa računarom onako kako je to MS namjerio, da tu fali jedan dio slagalice. Sve je divno i šareno, od editora do helpa - ali opet nešto fali.

Mislim da je odustajanje od MS-ovih platformi i net zezalica nakon VB6 bilo od ogromnog značaja za mene, jer sam saznao mnogo stvari za koje bi mi inače trebalo više vremena (OO vs functional, reflection, abstraction, data types, interface design), i došao do toga da mi se sada uči C.

Što se tiče Jave tu sam skroz subjektivan. Ne podnosim je od Windowsa 98. Čak i danas programi koje koristim, a pisani su u Javi, na računaru sa dva jezga i 4 GB RAM-a koče, zezaju, ne rade. Uopšte mi nije jasna poenta tog Jezika.
[ Aleksandar Ružičić @ 27.01.2011. 16:00 ] @
Citat:
lermi: Kao poborniku otvorenih sistema i programa, .net mi je suviše zatvoren.

kao sto je mmix pitao: da li se ovde prica o .NET framework-u ili o CLI-u? posto pretpostavljam da si mislio na CLI voleo bih da ti skrenem paznju na ECMA-335 Standard, cisto da se osvrnem na tu "zatvorenost" CLI-ja...
[ Horvat @ 27.01.2011. 16:05 ] @
evo, da ne bude da pricam napamet, uzeo sam opet skinuo onaj programcic oko kojeg je ovo uopste i zapocelo
instalacija - (32bit) 17,5 mb (ako ne racunamo .net fw 3,5 sp1 koji je 231,4mb), i kad se instalira isto toliko zauzima (plus, instalira directx)
kad sam ga pokrenuo (znaci klot pokrenut,bez intenzivnijeg racunanja i koriscenja) - ram ~95mb, virtual ~75mb (nisu stotine, moja greska, ali to je samo ovaj program, siguran sam da postoje i oni koji za "jednostavne" stvari vuku previse resursa, samo takve bas i ne koristim, jer ni ne mogu da ih "priustim")
da napomenem to je SAMO mathapp.exe, s tim da je pokretanje ovog pokrenulo jos par programa (ili se to desilo nakon instalacije fw, to nisam siguran,tako da necu tvrditi, a sad mi se ne eksperimentise toliko)
koliko se zauzece poveca nakon intenzivnijeg rada ne bih znao, a to je "obican" digitron (pricam na osnovu komentara funkcionalnosti iz one teme), daleko je od matlab ili mathematica programa pa da se i moze opravdati ovakvo zauzece


sto se tice samo .net fw - pored toga sto je velika instalacija, nakon instalacije sam u firefox-u dobio iznenadjenje - novi dodatak pod imenom
"Microsoft .NET Framework Assistent 1.0"
koji uz to NE RADI, niti ga je moguce iz ff obrisati
naravno,da ce se ovo instalirati NISAM bio obavesten prilikom pokretanja instalacije .net fw 3.5

Citat:

1. Sto na nekim windowsima mora da se instalira.
Mora i Java na SVIM pa sta? Mora i C++ runtime za odredjenu verziju runtime-a. Pa sta. U cemu je problem zapravo? Sto program vise ne staje na 1.44Mb floppy?


naravno
ko je rekao da je to sto jre moras instalirati bolje od ovoga?
s tim sto je java kompatibilna sa "svim" os-ima, dok je .net samo sa win-ima
+jre ne moras imati 4 razlicitih verzija instalisanih da bi ti programi radili

tako da, kad pogledamo sa korisnicke strane, nije bas prednost sto se koristi .net (da se ponovim, postoje jako dobri programi napisani u ovom, nazovimo to, jezickom paketu, kao sto i postoje jako losi i bloat programi radjeni u drugim jezickim paketima, pa i u assembler-u)

ako se vec programer odluci na .net, onda neka pridruzi instalaciji dll datoteke koje poziva, pa kad instaliras sam program, instalirao si sve sto njemu treba za normalan rad


---
zaboravih
@caric, a sto koristis taj "pirated edition"? instaliraj normalan win pa ce raditi bez probleme, i ne vidim sta ce ti visual studio 2010
[ lermi @ 27.01.2011. 16:16 ] @
Citat:
Aleksandar Ružičić: kao sto je mmix pitao: da li se ovde prica o .NET framework-u ili o CLI-u? posto pretpostavljam da si mislio na CLI voleo bih da ti skrenem paznju na ECMA-335 Standard, cisto da se osvrnem na tu "zatvorenost" CLI-ja...


Ja sam pričao o .NET, jer sam o CLI, Mono itd. saznao evo sada.

@Horvat
Mislim da takvi odokativni brojevi o mogućem zauzeću memorije nisu previše značajni.
[ Horvat @ 27.01.2011. 16:27 ] @
nije odokativan broj, toliko je taskmanager pokazao, samo sam stavio ~ jer nisam tacno preracunavao iz bajtova u megabajte, ako treba postavicu screenshot taskmanager-a

edit:sad sam ga opet pokrenuo, no ovaj put je manje uzeo memorije, ne znam od cega to zavisi,nista u medjuvremenu nije menjano
takodje provereno on pokrece jos neke programe (koji se ni ne ugase prilikom gasenja programa, jedan od tih je "PresentationFontCache.exe")
[ Dejan Carić @ 27.01.2011. 16:28 ] @
Citat:
mmix:
2. Ljudi se paranoicno boje windows update-a i service packova?
To potpuno razumem, nikad se ne zna kad moze da naidje neki ala KB976902 da pokrlja loadere. Ali reci da je to problem .NETa je malo zesci off.

Pa nečiji problem jeste.
Kod kreiranja instalacionog projekta, visual studio sam napravi listu svih komponenti koje su potrebne za normalno funkcionisanje programa.
Krajnji korisnik, koji pokreće instalacioni fajl, sve što treba da zna/uradi je next, next, next... Šta njega treba da bude briga da li je aplikacija pisana u .NET 4.0, .NET 3.0 ili nečem desetom. Koliko njih se uopšte služi kompjuterskom terminologijom ili zna šta je .NET framework?

I onda korisnik pokrene instalaciju .NET frameworka na svom računaru, a instalacija pukne bez ikakve poruke o grešci tipa "potrebno je instalirati ovaj update..." i linka na stranicu za rešenje problema...

Jedino mi je sigurno kada sam uradim deploy web aplikacije na nekom od shared hostinga pa onda neka joj pristupa ko kako hoće.
Instalacija desktop .NET aplikacija je uvek bila lutrija. Kod mene radi, kod nekog drugog može, a i ne mora :)

Ako takvih problema nisam imao sa javinom virtuelnom mašinom, onda da... krivim MS i .NET :)
[ Dejan Carić @ 27.01.2011. 16:33 ] @
Citat:
Horvat:
@caric, a sto koristis taj "pirated edition"? instaliraj normalan win pa ce raditi bez probleme, i ne vidim sta ce ti visual studio 2010

Nigde nisam ni rekao da koristim piratski windows. Trebao si malo pažljivije da čitaš :)
Kod mene isključivo legalna verzija, ali krajnji korisnici sporne aplikacije nisu imali legalni windows, a kazati korisniku instaliraj legalni pa će ti raditi, da... :) Lakše mi je bilo da prepravim aplikaciju tako da koristi .NET 3.5
[ Horvat @ 27.01.2011. 16:35 ] @
nisam rekao da instaliras legalan,nego da ne instaliras "pirate edition",nego normalan win xp (sa ukucanim serijskim brojem)
e sad ako si pod p.e. mislio samo na nelegalni win, ja se izvinjavam, mislio sam da mislis na "posebno izdanje",vidjao sam takve na raznim mestima
[ vladdy @ 27.01.2011. 17:22 ] @
Ja mislim da je lik trol, ko moze da kaze nesto ovako :

Citat:
Prvo, ne koriste svi Windows 7 a drugo svaki "update" korisnik može da doživi kao maltretiranje jer tada korisnik opslužuje računar umesto da bude obratno.


Pa ja treba da otvorim vrata od auta da udjem, jel to znaci da opsluzujem auto


Jedina realna mana .NET-a je sto nije istinski cross-platform.
[ kandorus @ 27.01.2011. 18:12 ] @
Xa Xa Xa
Šta troluješ? Nije ovde tema auto.
Hoćeš da kažeš da svi imaju instaliran Windows 7?
[ MarkoBalkan @ 27.01.2011. 19:09 ] @
da li .net valja ili ne, ne znam.
radim u njemu kad moram.
zašto se koristi toliko, pa zato što se sve forsira kroz akademsku zajednicu, na fakultetu uče, ms je vrh svega, može eventualno java i oracle.
uči se svugdje, od informatike, računarstva do ekonomije.
i kad pitaš što ćemo koristiti za razvoj, a što drugo nego .net.
uzet ćemo susjedovog malog, koji će štrikati .net aplikacije, brzo, efikasno, kvaliteta nije bitna, a mi zarađivat pare.
ono što ne valja kod .net-a i jave je to što aplikacije nisu native.
[ Nedeljko @ 27.01.2011. 19:10 ] @
vladdy, ne uzbuđuj se. Svima je jasno kolika je kandorus trolčina, ne samo ovde nego na skoro svim temama na kojima učestvuje.
[ losm1 @ 27.01.2011. 19:14 ] @
Citat:
lermi:
Što se tiče Jave tu sam skroz subjektivan. Ne podnosim je od Windowsa 98. Čak i danas programi koje koristim, a pisani su u Javi, na računaru sa dva jezga i 4 GB RAM-a koče, zezaju, ne rade. Uopšte mi nije jasna poenta tog Jezika.


Što se tiče desktopa slažem se, i ja sam imao bolja iskustva sa .NET.
Pitanje je da li je ista priča i u enterprise segmentu. (kako se .net nosi sa JEE)
[ Dejan Lozanovic @ 27.01.2011. 20:17 ] @
Citat:
MarkoBalkan: ono što ne valja kod .net-a i jave je to što aplikacije nisu native.


Nije to nista lose, razlika u perfomansama je postala marginalna, a dobijas mnogo vise, nema posebnog builda za recimo 32 bitni ili 64 bitni sistem, ili nema kompajliranja za druge operativne sisteme.

[ Nedeljko @ 27.01.2011. 20:37 ] @
Citat:
Dejan Lozanovic: razlika u perfomansama je postala marginalna


Daj, ne zanosi se. Evo, napravi neki test, pa vidi kolika je razlika. Druga je stvar ako ta stavka nije značajna.
[ kandorus @ 27.01.2011. 20:41 ] @
Citat:
MarkoBalkan
zašto se koristi toliko, pa zato što se sve forsira kroz akademsku zajednicu, na fakultetu uče, ms je vrh svega, može eventualno java i oracle.

Ništa nije slučajno. MS je uložio nešto novaca u opremanje računarskih učionica a komisije za suzbijanje koripcije treba da utvrde koliko je kapnulo u privatne džepove.
[ the_tosic @ 27.01.2011. 20:45 ] @
Pa sad i ETF-u su donirali neku opremu itd, al ovi se kunu u javu :)
[ kandorus @ 27.01.2011. 20:59 ] @
Nije sporno da su donirali, logično je da to gledaju da naplate.

Za one koji nisu učestvovali na temi Mathematics 4 evo link na kome se porede brzine različitih implementacija programskih jezika. Na jednom od tih testova može se videti odnos C++/Java/C# Mono ~ 1.09/1.59/2.50 (srednje vrednosti).
[ lermi @ 27.01.2011. 21:28 ] @
Citat:
MarkoBalkan
zašto se koristi toliko, pa zato što se sve forsira kroz akademsku zajednicu,


Kako to misliš? To kod nas? Nekidan sam gledao neke kurseve na Stansfordu, i uglavnom se sve vrti za početne i srednje kurseve C++, Java, u nekom srednjem nivou uvode Scheme i Python i napredni C++, a viši su C i Asembler.

Kako to uzgleda kod nas? Gdje je tu .NET?
[ Dejan Lozanovic @ 27.01.2011. 21:42 ] @
Citat:
kandorus: Nije sporno da su donirali, logično je da to gledaju da naplate.

Za one koji nisu učestvovali na temi Mathematics 4 evo link na kome se porede brzine različitih implementacija programskih jezika. Na jednom od tih testova može se videti odnos C++/Java/C# Mono ~ 1.09/1.59/2.50 (srednje vrednosti).


Prva stvar na koju cu da kazem da su C/C++ favorizovani u ovakvim testovima, jer sami testovi su jako jako kratki, a u same performanse meri se i startovanje java virtualne masine i isto tako .NET runtime-a , dok c/c++ prorgami nemaju takvu vrstu overheada, dok sami testovi se vrte u proseku od nekoliko sekundi, to pocetno vreme koje treba java /scala/clojure/mono i ostalim ne native jezima treba takodje uzeti u obzir, ili su testovi trebali da se vrte oko 10 minuta pa bi se razlika dosta smanjila. Jer ako gledas realan scenario ti neces u vecini slucajeva pokrenuti program koji ce da ti se izvrsava nekoliko sekundi.


Citat:
Nedeljko: Daj, ne zanosi se. Evo, napravi neki test, pa vidi kolika je razlika. Druga je stvar ako ta stavka nije značajna.


o tome pricam ne moj nad malim testom, fora je da se pusti nad malo vecim testom, npr http://sortbenchmark.org/, pogledaj sta najbrze sortira 100 Terabajta podataka, ili ko najvise podataka sortira za 1 minut. (Hint to je java framework)
[ mmix @ 27.01.2011. 21:43 ] @
Citat:
@jablan: Khm khm. Ja sam istakao jedan sitan, gotovo nevidljiv detalj.


Khm, khm, ne moras Mono je tu, middleware radi sasvim ok, GUI ima vise toolkita ukljucjuci i winforms (a i gtk# koji radi vise nego ok)

Citat:
Horvat: naravno
ko je rekao da je to sto jre moras instalirati bolje od ovoga?
s tim sto je java kompatibilna sa "svim" os-ima, dok je .net samo sa win-ima
+jre ne moras imati 4 razlicitih verzija instalisanih da bi ti programi radili


Pa uskoro ces morati ako se ne varam. Java 7 ce biti kompatibilna sa Java 6 (a mozda i nece, ne pratim) ali vec odavno se zna da nece biti komaptibilina sa Java 5. I sta sad, hoce svet stati? Nece, mozes da imas razlicite Java runtime u paraleli, big deal. Sam CLR (runtime) je veoma sitan, ono sto je "veliko" je sam framework. A tu nema neke mudrosti, imas tri opcije:

1. Shared class library (jednom instaliras i svi ga koriste)
2. Dynamic link and deploy, gde ce svaki program da vuce svoje kopije dllova iz liba. Vidim da ti to predlazes. Cisto radi vezbe skini Reflector, uzmi bilo koju iole osrednju aplikaciju i saberi velicine svih referenci (i njihov podreferenci, etc). Ne bi ti se svido rezultat. Imaj u vidu da FCL (framework class lib) nije od starta predvidjen za ovakvu upotrebu i da su mnogi DLLovi isprepleteni jer je fokus stavljen na funkcionalnost pre nego na optimizaciju velicine samog shared liba
3. Staticko linkovanje sto bi rezultovalo megalomansko velikim EXE fajlovima jer bi sve pod 2 moralo da se strpa u EXE.

Ja glasam za 1. radi vise nego dobro. Postoje aplikacije koje rade #2, cak i stripuju neiskoriscene delove DLLova, ali takve brljotine su zaista bespotrebne i rezultat zaludnosti zilota.

Sto se tice tvojih primedbi na memoriju, vec sam rekao, ne mozes suditi o memorijskoj potrosnji .NET procesa na osnovu task menadzera jer managed heap nije pasivan, GC prati sistemsko stanje memorije i UVEK radi space-time tradeoff. .NET proces ce UVEK otkinuti skupom sistemskom alloc operacijom posteno parce memorije da bi je stavio na raspolaganju svom managed heapu cije operacije su jeftine. Kad i ako dodje do toga da sistemu ponestane memorije za druge procese GC ce VRATITI neiskorisceni deo heapa i pagovati unpined segmente kao sto jedna pristojna aplikacija i treba da uradi. Kamo srece kad bi i ostali procesi to radili, memoriju si kupio da bi je koristio, ne da bi gledao koliko je prazna.

Citat:
Dejan Caric: Krajnji korisnik, koji pokreće instalacioni fajl, sve što treba da zna/uradi je next, next, next... Šta njega treba da bude briga da li je aplikacija pisana u .NET 4.0, .NET 3.0 ili nečem desetom. Koliko njih se uopšte služi kompjuterskom terminologijom ili zna šta je .NET framework?

Pa i ne treba da ga briga, ukljuci .NET runtime uz setup. Namesti setup da automatski isntalira ako nema. Sta je problem? Ne znas kako to da uradis? Google je tvoj prijatelj, evo prvi sa spiska:
How to include the .NET Framework 3.0 installer in your application setup

Sto se tice opaske o webu, no comment. Mozda i treba da se drzih HTMLa i JSa, ako pak zelis da naucis nesto pre nego sto presudis, postoji .NET forum ovde.

Citat:
Nedeljko: Daj, ne zanosi se. Evo, napravi neki test, pa vidi kolika je razlika. Druga je stvar ako ta stavka nije značajna.

Nemoj tako brzo suditi. Mnogo stosta oko .NETa zavisi od platforme i JITa. Postoje cak i velike razlike izmedju antive coda koji generise MSov JIT i koji generise Mono JIT. Iako jeste tacno da uber C++ programer u svako doba moze da napravi optimizovan C++ program koji ce da sije JITovan kod, realnost je da je takvih ljudi malo i da je takvo lickanje performansi retko gde neophodno. MS JIT je veoma dobro uradjen, 64bit verzija je narocito veoma optimizovana. Dobro napisan C# kod moze lepo da stane rame uz rame sa prosecno napisanim C++ kodom, a dobices ga za manje para.

Citat:
kandorus: Za one koji nisu učestvovali na temi Mathematics 4 evo link na kome se porede brzine različitih implementacija programskih jezika. Na jednom od tih testova može se videti odnos C++/Java/C# Mono ~ 1.09/1.59/2.50 (srednje vrednosti).


Ti rezultati su bezvredni iz vise razloga pocev od toga da Mono JIT nije isto sto i MS CLR JIT. Ako pogledas specificne testove inace videces i da u dobrom delu matematickih problema fortran sije C++, treba li onda reci da je ++ glup? Samo treba da pogledas poredjenje C# Monoa sa Javom pa da ti bude jasno koliko je smesan ovaj benchmark, ispade bytecode brzi od JITovanog koda .

I ja kad radim matematicki intenzine operacije u .NETu ne koristim FCL System.Math namespace, koristim nMath. Za sve postoji alat.
[ mmix @ 27.01.2011. 21:47 ] @
Citat:
lermi: Kako to misliš? To kod nas? Nekidan sam gledao neke kurseve na Stansfordu, i uglavnom se sve vrti za početne i srednje kurseve C++, Java, u nekom srednjem nivou uvode Scheme i Python i napredni C++, a viši su C i Asembler.
Kako to uzgleda kod nas? Gdje je tu .NET?


Pa to i ja mislim, ja nesto se ne nagledas .NETa na akademskom nivou. Akademci se obicno prze na te libero anarchy fazone. Onda zavrse pa uce .NET da bi se zaposlili
[ kandorus @ 27.01.2011. 22:41 ] @
^Dejan Lozanovic

A gde je na linku "Sort Benchmark Home Page" koji si postavio poredjenje brzine programskih jezika? Ono više liči na poredjenje računara i tehnika sortiranja. Java se tu ni ne pominje.
[ JPF @ 27.01.2011. 23:08 ] @
Citat:
mmix: Ti rezultati su bezvredni iz vise razloga pocev od toga da Mono JIT nije isto sto i MS CLR JIT. Ako pogledas specificne testove inace videces i da u dobrom delu matematickih problema fortran sije C++, treba li onda reci da je ++ glup? Samo treba da pogledas poredjenje C# Monoa sa Javom pa da ti bude jasno koliko je smesan ovaj benchmark, ispade bytecode brzi od JITovanog koda :).

HotSpot, a i većina drugih JVM JIT-uje sve u 16 - dio koda možda ostane kao bytecode ali samo ako JVM procjeni da nema potrebe da ga kompajlira.
[ jablan @ 27.01.2011. 23:10 ] @
Citat:
mmix: Khm, khm, ne moras Mono je tu, middleware radi sasvim ok, GUI ima vise toolkita ukljucjuci i winforms (a i gtk# koji radi vise nego ok)

Ma daj, MONO je za .NET-ovce koje mrzi da uče Javu. :)

MONO će prestati da bude zanemarljiv onog trenutka kad neko ponudi mainstream .NET softver u ravnopravnom MONO izdanju. Znači, slično kao što imaš npr. Eclipse ili NetBeans: program koja zapravo radi na sve tri platforme.
[ Dejan Carić @ 27.01.2011. 23:17 ] @
Citat:
mmix: Pa i ne treba da ga briga, ukljuci .NET runtime uz setup. Namesti setup da automatski isntalira ako nema. Sta je problem? Ne znas kako to da uradis?

O Mitroviću flejmeru stari :) Aj za tebe po četvrti put: .NET 4.0 ne može da se instalira na svim piratskim verzijama Windowsa XP. Zahteva neki update, a koji tačno, niko tačno ne zna. Kažu da je za XP potreban SP3, ali kao što smo videli, radi i na SP2. Jel ok sad? :)

Citat:
mmix:
Sto se tice opaske o webu, no comment. Mozda i treba da se drzih HTMLa i JSa, ako pak zelis da naucis nesto pre nego sto presudis, postoji .NET forum ovde.

E jesi faca. Čim ne znaš šta bi rekao ili se naljutiš i bojkotuješ temu ili izjaviš ovako nešto :)

Ma u pravu si 100% :) Mitke za administratora! :)



[Ovu poruku je menjao Dejan Carić dana 28.01.2011. u 00:40 GMT+1]
[ Ivan Dimkovic @ 27.01.2011. 23:18 ] @
Citat:
Dejan Lozanovic
Dejan Lozanovic: razlika u perfomansama je postala marginalna


Jos kada se budu pojavili vodeci programi za grafiku, obradu zvuka, modeling... radjeni u tim Javama i .NET-ovima...

A sto ne? Mislim, ako je "razlika u performansama postala marginalna" sto kaze Dejan, i ako je tacno to sto mmix kaze da se dobija program za mnogo manje pare?

Mislim koji djavo te firme onda bacaju pare na te C/C++ programere kada mogu da dobiju istu stvar u .NET-u ili Javi za mnogo manje pare??? Paradoks?

Ne znam, nekako mi se cini da tim .NJAVAMA najbolje leze trzista:

a) Gde performanse jesu bitne ali i gde se ima vise love nego pameti pa je jeftinije kupiti jaci hardver nego propisno napisan softver (banke & co...)

ili

b) Gde performanse nisu bitne (mobilni "apps", web gluposti i sl...) pa nije nikakav problem sto glorifikovana skripta trci sporije nego sto bi mogla da trci

A u trzistima gde su performanse bitne ali takodje i za razumni budzet, kao sto su zahtevne desktop aplikacije, operativni sistemi... goto prvo pitanje...
[ Marko_L @ 28.01.2011. 00:36 ] @
Prvo, tema je malo nespretno postavljena, jer se traži iznošenje prednosti i mana, ali se ne precizira u odnosu na šta, niti se precizira da li se traži odgovor iz ugla korisnika ili iz ugla programera. Dalje, u odgovorima ima previše teoretisanja, a malo praktičnih iskustava. I konačno, prave se bezvezne generalizacije i koriste "nategnuti" argumenti, koji apsolutno ne dovode ni do kakvih zaključaka.

Evo da krenemo redom. Jedan od argumenata protiv .NET-a je da zahteva instaliran .NET framework. Pa šta ? Ogroman broj aplikacija za Windows danas zahteva .NET framework, kao i dosta servisa u samom Windows-u, a mnogo toga ne može ni da se instalira bez istog. Tako da, ako svakodnevno koristite Windows, odnosno ako vam je Windows primarni operativni sistem, šanse da već nemate instaliran .NET framework su ravne nuli.

Dalje, argument da .NET aplikacije imaju slabije performanse. Pa .NET i nije namenjen pisanju aplikacija koje zahtevaju ne znam ni ja kakve performanse, već rapidnom razvoju, mahom poslovnih aplikacija (RAD), a ne softveru koji treba da analizira DNK-a ili pravljenju aplikacija tipa 3Ds Max, Adobe Photoshop, video igrama i slično, gde postoji potreba za što bržim procesiranjem.

Dalje, što se tiče memorije, nije tačno da .NET aplikacije gutaju memoriju, već to zavisi od strukture same aplikacije, što opet zavisi od toga koliko je programer stručan u pisanju aplikacija. Sve se da optimizovati, ako se pazi kako se koji objekti otvaraju i kada, kao i da se zatvaraju kada se više ne koriste, neće biti tih problema. To što su neki .NET programeri razmaženi, pa sve prepuštaju garbage collectoru je već neka druga priča, ali to ne znači da se ne može uraditi nešto povodom toga. Uostalom, danas je neki standard 2-4GB, tako da ne verujem da je to nekakav problem, čak i kada se memory management ne odradi kako treba i retko ko će to primetiti osim nekoga ko baš prati takve stvari, a to je manje od 5% klijenata.

Takođe, bespotrebno se meša Linux u ovu priču, jer on nema nikakve veze sa .NET-om, niti je .NET namenjen pisanju Linux aplikacija. Ko hoće da piše aplikacije za Linux, postoje druga rešenja. Mada, ni to nije bitno, jer ipak najveći deo tržišta zauzima Windows i .NET je namenjen onima koji žele da rade isključivo za to tržište.

A sad da se osvrnem na generalizacije koje sam pomenuo. Dakle, ne može se o tome koji je jezik najbolji pričati uopšteno, već to zavisi od namene, za koga se radi, kako se radi, zašto se radi, šta se radi. U stvari, teoretski je bolje koristiti ono što daje bolje performanse, troši manje resursa, pravi najmanje problema sa instalacijom... ali u praksi je malko drugačije.

Recimo, kada se razvija softver namenski za specifičnog klijenta koji ima specifične potrebe, njega apsolutno ne zanima u čemu je pisana aplikacija, niti ga interesuje da meri nekakve performanse, već ga mnogo pre toga interesuje da njegove potrebe budu ispunjene, da se projekat odradi što pre i da to košta što manje. NET obično to i omogućava, osim ako te potrebe ne podrazumevaju analizu DNK-a strukture bubašvabe ili tako štogod. Sledeće što ga interesuje je šta on mora da nabavi da bi to radilo onako kako je on zamislio. Ovo sve pričam iz prakse, jer još mi se nije desilo da me klijent pita "Izvini, a u kom programskom jeziku će to da se radi i koliko milisekundi će da traje koja operacija i gde mogu da uporedim performanse tog softvera sa istim takvim pisanim u nekom drugom jeziku".

Dalje, kada se radi o razvoju softvera šire namene, većinu korisnika takođe ne interesuje čime je to pisano, niti će i on da merka tu neke performanse, već je zahtev broj jedan da softver radi ono što treba da radi i da to radi dobro, da je što jednostavniji za korišćenje, cena i slične kategorije. Korisnici koji traže performanse su uglavnom profesionalci u određenoj oblasti, i uglavnom takvi već koriste neki alat koji je standard u industriji, recimo grafički dizajneri i Adobe Photoshop i naravno da nećeš pokušati da ugroziš PS pisanjem alternative u NET-u. Ali .NET i nije namenjen takvoj vrsti softvera, već je više, kao što rekoh, mahom za poslovne aplikacije, i eventuačno neke manje aplikacije šire namene koje bi bile interesantne širem krugu korisnika, recimo kakav telefonski imenik, voip telefon, program za autoškolu, evidencija kućnih računa, čuvanje recepata i šta ti ja znam, a za te stvari je više nego dobar i tu neku moguću razliku u performansama niko neće ni primetiti.

Ameri imaju jednu izreku koja kaže "Right tool for the right job" i ja se sa time u potpunosti slažem. Ako klijent ima potrebu za nekom mrežnom aplikacijom sa bazom na SQL serveru koja će da služi za evidenciju zaposlenih, izdavanje faktura, praćenje lagera... NET ili java su jednostavno nezamenjivi za takvu vrstu aplikacija, jer omogućavaju da se takve aplikacije odrade poprilično brzo, pa samim tim i uz mnogo manje troškova. Ako se radi softver za neke laboratorijske analize, gomilu proračuna i sličnih stvari, naravno da će se tražiti neki niži jezik poput C-a ili čak asemblera.

Suma sumarum, samo neko ko je dokon i ima viška slobodnog vremena deli programere na ozbiljne i neozbiljne po tome da li programiraju u VB-u ili C++ i da li program ovog prvog izračunava nešto za 12 milisekundi, a ovog drugog za 8, da li program ovog prvog zauzima 10MB, a ovog drugog 500KB, da li program ovog prvog zahteva 256MB RAM-a, a od ovog drugog može da se pokrene i sa 32MB. I to sve u vreme kada su 2-4GB memorije i hard diskovi od 500-1000GB praktično standard. Ono što je na kraju bitno je, ko ima zadovoljnije klijente, čiji softver zauzima veći deo tržišta, ko je zaradio više para od tog softvera... Postoje c++ programeri koji se razbijaju od para, ali postoje i ljudi koji rade isključivo .NET platformu, pa se još više razbijaju od para. Mislim, možemo reći da nije sve u parama, ali u čemu je onda poenta diskutovati o nečemu što je i namenjeno razvoju nečega za pare, a .NET to definitivno jeste. Kome je stalo do nekakve programerske slave, uzme lepo asembler i takmiči se sa kolegama čiji će softver brže da izračuna prvih milion decimala broja PI.
[ Nedeljko @ 28.01.2011. 09:09 ] @
Citat:
Dejan Lozanovic: Prva stvar na koju cu da kazem da su C/C++ favorizovani u ovakvim testovima, jer sami testovi su jako jako kratki, a u same performanse meri se i startovanje java virtualne masine i isto tako .NET runtime-a , dok c/c++ prorgami nemaju takvu vrstu overheada, dok sami testovi se vrte u proseku od nekoliko sekundi, to pocetno vreme koje treba java /scala/clojure/mono i ostalim ne native jezima treba takodje uzeti u obzir, ili su testovi trebali da se vrte oko 10 minuta pa bi se razlika dosta smanjila. Jer ako gledas realan scenario ti neces u vecini slucajeva pokrenuti program koji ce da ti se izvrsava nekoliko sekundi.


A odakle ti da su merenja vršena na taj način? Koliko se ja razumem, u svakom programskom jeziku postoji način da se pročita vreme na početku i na kraju testa, tako da se ne mere ti dodaci. Ako su profesionalci radili testove, onda je tako i rađeno.

Citat:
Ivan Dimkovic: Jos kada se budu pojavili vodeci programi za grafiku, obradu zvuka, modeling... radjeni u tim Javama i .NET-ovima...

A sto ne? Mislim, ako je "razlika u performansama postala marginalna" sto kaze Dejan, i ako je tacno to sto mmix kaze da se dobija program za mnogo manje pare?

Mislim koji djavo te firme onda bacaju pare na te C/C++ programere kada mogu da dobiju istu stvar u .NET-u ili Javi za mnogo manje pare??? Paradoks?

Ne znam, nekako mi se cini da tim .NJAVAMA najbolje leze trzista:

a) Gde performanse jesu bitne ali i gde se ima vise love nego pameti pa je jeftinije kupiti jaci hardver nego propisno napisan softver (banke & co...)

ili

b) Gde performanse nisu bitne (mobilni "apps", web gluposti i sl...) pa nije nikakav problem sto glorifikovana skripta trci sporije nego sto bi mogla da trci

A u trzistima gde su performanse bitne ali takodje i za razumni budzet, kao sto su zahtevne desktop aplikacije, operativni sistemi... goto prvo pitanje...


A na koje se činjenice pozivaš? Koje vodeće grafičke/zvučne aplikacije su rađene u čemu? Imaš li neke testove?
[ tdusko @ 28.01.2011. 09:29 ] @
Vidim puno njih se podsmeva .NET-u i web aplikacijama, a upravo je taj teren dokaz da se u .NET-u mogu pisati aplikacije gde su performanse vrlo bitne. IIS ima ogranicenje od oko 1-1.2 GB po pool-u tako da mozes da dokupljujes memoriju do sutra neces dobiti nista. Mozes da dodajes poolove i balansiranje ali sta raditi kad je server 32-bitni. Znaci, vrlo ograniceni resursi, a .NET web aplikacije vrlo rade posao. Oni sto misle da GC resava sve probleme neka probaju da naprave web apliaciju koju ce da korsti 500 ljudi istovremeno i neka ne obracaju paznju gde i kako instanciraju objekte pa neka pogledaju koliko procesorskog vremena zauzima GC.




[ mmix @ 28.01.2011. 09:30 ] @
@marko_l, ili na DEMO64 sceni

Mada u svojoj iskljucivosti konstantno zaboravljate jednu stvar, narocito Ivan , .NET NIJE Java i savim sigurno nije ni naslednik ni napredni klon VB6. .NET kod na kraju radi na metalu i kao takav ima pun pristup svim mehanizmima koje poseduje i bilo koji native jezik ukljucjuci i transparentan i veoma jeftin frame-switch iz managed u unmanaged context. Nista tebe ne sprecava da performance intensive operacije prebacis u C++ i da .NET koristis za sve ostalo (GUI, IO, etc).
Ja sam vec dao jedan primer, nMath, takvih primera ima jos zakljucno sa Tao-om. I sama MS matematika 4 koja je bila potpaljivac ove teme ne koristi CLR za matematicke proracune, ima native math lib.

Ili sad postoji neki razlog zasto native computational lib mora da ima i native frontend?

.NET ima svoje performance fazone, i moras da znas kako da pises c# kod da bi on generisao optimalan IL koji bi JIT prebacio u optimalan native, pocev od toga da koristis for umesto foreach. Ono sto meni smeta u ovom razgovoru je sto vi polazite od pretpostavke da je platforma losa zato sto masa ljudi koji je koristi NE ZNA kako da je koristi optimalno za zadati problem niti je zainteresovana da to nauci jer se 99% primena svodi na Ivanovo a) i b) . To nije krivica .NETa, .NET je jedna od retkih preostalih tehnologija za koje i dalje vazi "easy to enter, hard to master". Al niste ni jedini, i sam MS je poklekao svojim fanbojima, kad je izlazila 4.0 verzija ja sam iskreno mislio da ce unaprediti CLR i prosiriti IL set a prica se bukvalno svela na malo poboljsani GC/JIT i dosta marketinga, jos jedna odlicna prilika je propustena.

@JPF, drago mi je da to cujem, nikad mi nije ni bilo najjasnije zasto je Sun stalno insistirao na intepretaciji a Javu nisam dirao godinama. Medjutim, i po dokumentaciji hotspota koju sam sad pogledao stvar nije istao kao kod CLRa, hotspot jituje one delove koji su pod pritiskom, CLR sve radi na native nivou od pocetka. Samim tim je onaj bendhmark i dalje smesan, u najgorem slucaju po c# rezultati za ta dva moraju da se podudaraju.


Citat:
Dejan Carić:Aj za tebe po četvrti put: .NET 4.0 ne može da se instalira na svim piratskim verzijama Windowsa XP.
 E jesi faca. Čim ne znaš šta bi rekao ili se naljutiš i bojkotuješ temu ili izjaviš ovako nešto

Ajmo onda i peti put, kako je nemogucnost instaliranja runtime-a na piratski XP problem .NETa? Ma da, zamrzivaci su njesra, kad nekom obijas gajbu tesko ih je izneti. Jel ta filozofija?
A ljut nisam, samo ne volim kad neko gubi moje vreme nesuvislim izjavama kao sto je bila tvoja, pricamo o ozbiljnim stvarima a ti dodjes i trolnes sa izjavom kako eto html radi na svim masinama. wtf? kakve to veze zajedno sa tvojom nemogucnoscu da uradis kvalitetan deployment ima sa time koliko je dobar ili los .NET?
[ Nedeljko @ 28.01.2011. 10:27 ] @
Malo sam se pozabavio pidigits testom brzine na sajtu koji je okačio kandorus.

Prvo, za C/C++ koristili su trt parti biblioteku gmp. Tako su dobili rezultat od 2.74 sekunde, a ja sam po istoj matematičkoj formuli dobio skoro dva i po puta brži program (na mom računaru 2.432 prema 1.028) bez ikakvih trt parti biblioteka.

Drugo, za GNU C/C++ su naveli rezultat 2.74 sekunde, a za javu 7.44 sekundi, pri čemu nigde ne piše da C/C++ programi rade u jednoj niti, a Java u više niti.
[ Ivan Dimkovic @ 28.01.2011. 10:53 ] @
Citat:
Nedeljko
A na koje se činjenice pozivaš? Koje vodeće grafičke/zvučne aplikacije su rađene u čemu? Imaš li neke testove?


Sve koje sam ja imao prilike da koristim - a vrlo je trivijalno proveriti da li je nesto .NET aplikacija ili ne. Jedina graficka aplikacija koju sam ja video u .NET-u je Paint.NET - a to je bukvalno utility, a ne ozbiljan graficki program.

A vi, .NET-ovci mi slobodno navedite neku vodecu CPU/GPU intenzivnu aplikaciju na desktopu koja je napisana u .NET-u ili Javi pre nego sto native programiranje nazovete demo danima.... Lakonski pricate kako se dobijaju iste performanse, po manjoj ceni ovo ono - a ja samo vidim da kada god nesto zaista treba da se odradi po pitanju performansi, ljudi silaze u native... cudo jedno ako je sve to "uporedivo", nikako mi to nije jasno.

Eno vam i samog Microsofta, puna im usta .NET-a i WPF-a a sami sebi omogucili direktne pozive u milcore.dll za svoje potrebe i gle cuda OS servisi im koriste bas to... Pa majq mu, ako je sve to isto sto ne raspisase sve to lepo na svom "framework" nivou onda... nije mi jasno sto onda bacaju pare na skupe C/C++ programere kada se dobijaju iste performanse...

Posto se frljamo raznim izrekama, imam i ja jednu - eat your own dog food... :)
[ Dejan Carić @ 28.01.2011. 10:55 ] @
Citat:
mmix:
Ajmo onda i peti put, kako je nemogucnost instaliranja runtime-a na piratski XP problem .NETa?

Za mene je softverski proizvod zaokružena celina od instalacije do propratne dokumentacije. Neko se ne slaže sa tim? OK. Svako ima pravo na svoje mišljenje.

Citat:
mmix:
A ljut nisam, samo ne volim kad neko gubi moje vreme nesuvislim izjavama kao sto je bila tvoja

Niko tebe ne primorava da budeš 24h na forumu i čitaš sve poruke.. Previše lično se unosiš u sve ovo.

Citat:
mmix:
pricamo o ozbiljnim stvarima a ti dodjes i trolnes sa izjavom kako eto html radi na svim masinama. wtf? kakve to veze zajedno sa tvojom nemogucnoscu da uradis kvalitetan deployment ima sa time koliko je dobar ili los .NET?

Da se ne trudiš toliko da nipodaštavaš druge ljude, nego da staloženo pročitaš ono što su napisali, tada bi i shvatio suštinu njihovih reči.
[ Nedeljko @ 28.01.2011. 11:43 ] @
Testovi na koje se kandorus pozvao su neprofesionalno urađeni, kao što sam to obrazložio u svojoj prethodnoj poruci.

Dakle, ne samo da je C kod 2,7 puta brži, nego je i kraći i jednostavniji od Java koda. Dakle, Java sa paralelizacijom (koje nema u C kodu), tj. kudikamo složenijom implementacijom nije uspela da postigne uporedive performanse. Takođe, java program se poziva na native GMP biblioteku. Baš se pitam šta bi se tek dobilo prenošenjem koda jedan na jedan.

Izgleda da je Ivan u pravu, kao što sam i ranije mislio - da postoji debeo razlog što se native rade stvari kao što su kodeci, video igre, Wolfram Mathematica, ORACLE, kao i sve ostalo što je ozbiljno i zahtevno.
[ Nedeljko @ 28.01.2011. 11:48 ] @
Citat:
mmix: @marko_l, ili na DEMO64 sceni ;)

Mada u svojoj iskljucivosti konstantno zaboravljate jednu stvar, narocito Ivan :), .NET NIJE Java i savim sigurno nije ni naslednik ni napredni klon VB6. .NET kod na kraju radi na metalu i kao takav ima pun pristup svim mehanizmima koje poseduje i bilo koji native jezik ukljucjuci i transparentan i veoma jeftin frame-switch iz managed u unmanaged context. Nista tebe ne sprecava da performance intensive operacije prebacis u C++ i da .NET koristis za sve ostalo (GUI, IO, etc).
Ja sam vec dao jedan primer, nMath, takvih primera ima jos zakljucno sa Tao-om. I sama MS matematika 4 koja je bila potpaljivac ove teme ne koristi CLR za matematicke proracune, ima native math lib.

Ili sad postoji neki razlog zasto native computational lib mora da ima i native frontend?


Aha, to su te teške, ozbiljne i zahtevne stvari za koje se koristi .NEt - GUI.

Citat:
mmix: .NET ima svoje performance fazone, i moras da znas kako da pises c# kod da bi on generisao optimalan IL koji bi JIT prebacio u optimalan native, pocev od toga da koristis for umesto foreach. Ono sto meni smeta u ovom razgovoru je sto vi polazite od pretpostavke da je platforma losa zato sto masa ljudi koji je koristi NE ZNA kako da je koristi optimalno za zadati problem niti je zainteresovana da to nauci jer se 99% primena svodi na Ivanovo a) i b) . To nije krivica .NETa, .NET je jedna od retkih preostalih tehnologija za koje i dalje vazi "easy to enter, hard to master".


Aaaa, to je dakle ono "jeftino" programiranje za koje ti treba guru da bi dobio normalan kod.
[ deerbeer @ 28.01.2011. 11:55 ] @
Ne trebaju vam nikakvi testovi da vam dokazu tvrdnje sta je brze .
Ako pises kod koji preko nekih n-layera apstrakcije komunicira sa hardverom naravno da ce biti sporiji
nego onaj koji to cini direktno . A te price "skoro da smo se izjednacili sa c++ po pitanju performansi" je cist marketing .
[ Nedeljko @ 28.01.2011. 12:08 ] @
Kako kome. Vidim da se ljudi kunu u .NET i Javu, pa da proverimo.
[ Nedeljko @ 28.01.2011. 12:11 ] @
Citat:
Dejan Carić: Za mene je softverski proizvod zaokružena celina od instalacije do propratne dokumentacije. Neko se ne slaže sa tim? OK. Svako ima pravo na svoje mišljenje.


Ako nešto ne radi na piratskom windows-u ili bar nekim piratskim windows-ima, aradi na legalnom, to onda nije mana softverskog proizvoda, već naprotiv, nešto što se često želi postići.
[ Dejan Lozanovic @ 28.01.2011. 12:19 ] @
Citat:
NedeljkoTestovi na koje se kandorus pozvao su neprofesionalno urađeni, kao što sam to obrazložio u svojoj prethodnoj poruci.

Dakle, ne samo da je C kod 2,7 puta brži, nego je i kraći i jednostavniji od Java koda. Dakle, Java sa paralelizacijom (koje nema u C kodu), tj. kudikamo složenijom implementacijom nije uspela da postigne uporedive performanse. Takođe, java program se poziva na native GMP biblioteku. Baš se pitam šta bi se tek dobilo prenošenjem koda jedan na jedan.

Izgleda da je Ivan u pravu, kao što sam i ranije mislio - da postoji debeo razlog što se native rade stvari kao što su kodeci, video igre, Wolfram Mathematica, ORACLE, kao i sve ostalo što je ozbiljno i zahtevno.


http://shootout.alioth.debian.org/help.php#time

i ja kazem da nisu dobro uradjeni jer evo kako je merio vreme. Adruga strvar javu mnogo kolje JNI kad su performanse u pitanju, znaci pozivanje native koda je dosta skupo. Primera radi java je u svojim ranijim verzijama za matematicke funkcije pozivala preko JNI-a, a od verzije 1.3 poceli su da koriste native jer je bilo brze npr.


@Ivan Dimkovic
Evo ti jedna igra za koju znam da je pisana u .NET 2.0 Supreme Commander

A evo ti i java primer http://bytonic.de/html/benchmarks.html, ovo mislim da je dovoljno dobar primer da moze i u javi da se napravi igra.
[ lermi @ 28.01.2011. 12:23 ] @
marko_l
Citat:
Recimo, kada se razvija softver namenski za specifičnog klijenta koji ima specifične potrebe, njega apsolutno ne zanima u čemu je pisana aplikacija, niti ga interesuje da meri nekakve performanse, već ga mnogo pre toga interesuje da njegove potrebe budu ispunjene, da se projekat odradi što pre i da to košta što manje.


To samo znači da se specifični klijent nije raspitao o tome šta kupuje. Tačno je da ga ne zanima, ali da ga potpuno ne zanima, e to bi već bio pogrešan poslovni potez.

Citat:
Ako klijent ima potrebu za nekom mrežnom aplikacijom sa bazom na SQL serveru koja će da služi za evidenciju zaposlenih, izdavanje faktura, praćenje lagera... NET ili java su jednostavno nezamenjivi za takvu vrstu aplikacija, jer omogućavaju da se takve aplikacije odrade poprilično brzo, pa samim tim i uz mnogo manje troškova.


Da li su biblioteke u C++ (npr.) toliko nemoćne pred "ubaci sql upit u combo i pošalji u report" stvarima? Koliko je skuplje razviti jednostavan lager program u C++ nego u .NET? Mora li programer plaćati kakve licence MS-u? Kako to sve ide?
[ Nedeljko @ 28.01.2011. 12:28 ] @
Citat:
Dejan Lozanovic: A druga strvar javu mnogo kolje JNI kad su performanse u pitanju, znaci pozivanje native koda je dosta skupo. Primera radi java je u svojim ranijim verzijama za matematicke funkcije pozivala preko JNI-a, a od verzije 1.3 poceli su da koriste native jer je bilo brze npr.


Aaa, znači ni sa JNI ni bez njega ne vredi. Pa, šta ćemo onda?
[ Dejan Lozanovic @ 28.01.2011. 12:32 ] @
Citat:
Nedeljko: Aaa, znači ni sa JNI ni bez njega ne vredi. Pa, šta ćemo onda?


Kratki JNI pozivi su skupi.
[ Ivan Dimkovic @ 28.01.2011. 12:46 ] @
Citat:
Dejan Lozanovic
@Ivan Dimkovic
Evo ti jedna igra za koju znam da je pisana u .NET 2.0 Supreme Commander

A evo ti i java primer http://bytonic.de/html/benchmarks.html, ovo mislim da je dovoljno dobar primer da moze i u javi da se napravi igra.


Ne sumnjam da se za bilo sta moze napraviti benchmark koji moze da dokaze sta god autor zeli.

Ako su ove tvrdnje tacne:

a) Da su Java/.NET aplikacije brze kao i native verzije
b) Da je razvoj jeftiniji

Onda bi najbolji dokaz za to bio skok u .NET/Java performance-intensive aplikacijama na desktopu jer tu imas zid kada su moguce raw performanse u pitanju - nisu to HPC/Serveri gde mozes da nabodes jos nodova/CPU-ova i da kompenzujes lose performanse. Zasto bi ljudi i dan danas pravili native multimedijalne stvari, recimo, ako su Java i .NET dobri u generisanju optimizovanog koda?

Ako je tacno to sto pisete, onda ispada da su sve te firme u stvari u krivu i da bacaju pare.

I lepo je to sto si naveo jednu igricu... ali ja to ne bih mogao da nazovem trendom.

.NET / Java ekipa se ubi vec godinama dokazivajuci kako je njihov kod podjednako brz kao i native kod, a ja nikako da vidim promenu prakse da se za performance-intensive stvari i dalje koristi native kod.
[ Nedeljko @ 28.01.2011. 12:49 ] @
Citat:
Dejan Lozanovic: Kratki JNI pozivi su skupi.


I šta ćemo da radimo?

Vidiš, ovi pozivi uopšte nisu kratki. Sabiranje dva broja od 10,000 cifara nije kratko (), a o delenju sa ostatkom da ne govorimo.
[ dejanet @ 28.01.2011. 12:51 ] @
Dobro, u oblasti razvoja business aplikacija, rad u c++ je corav posao sa stanovista troskova i verovatnoce uspesnosti resenja..

Lavovski deo enterprise trzista su i web aplikacije, a tu treba biti samoubica pa krenuti razvoj u c++ npr.
[ Nedeljko @ 28.01.2011. 12:53 ] @
Ko govori o tome? To su aplikacije u kojima su performanse nebitne. Ovde se .Net/Java ekipa ubi da dokaže kako su razlike u performansama marginalne.
[ Horvat @ 28.01.2011. 12:55 ] @
@mmix, ako gledamo sa strane korisnika, mene uopste ne zanima da li trebam imati ucitan .net, pa win. instaler xy verzije i ostalo
ja kad skinem izvrsnu instalaciju - ja zelim da to radi, samo, ne da me uslovljava sa nekim pokvarenim .net koji ucitava ono sto NISAM trazio (vrati se na dodatak u ff)
iz istog razloga sam liferovao i nero lite, ucitavao je neka s--nja koja nisam trazio, iako sam izricito iskljucio to

sto se tice zauzeca memorije, pa bitno je koliko je slobodne memorije, da znas koliko jos mozes da koristis
meni ne treba komp koji ce da se usije, najbolje bi bilo da nam procesori rade na 100% zauzeca, ne?
jedina dobra stvar,ako je tacno,nisam isprobavao, je ako .net aplikacije oslobadjaju memoriju ako se javi novi program koji zeli memoriju (samo kako prosude da li novoj treba,ili .net programu?)

sa strane programera, .net verovatno ubrzava kuckanje programa, al opet, koliko ti dozvoljava da radis optimizaciju? ili .net sluzi samo za igranje kada imas dovoljno resursa (prostora, memorije i procesorske snage)?

najozbiljniji .net program sto sam video je paint .net (sto ne znaci da sam ja sve moguce .net programe isprobao)
ali opet se taj paint .net ni iz aviona ne moze porediti sa ps, pa ni sa gimp

--
zaboravih, sa korisnicke strane je bitna i brzina pokretanja
meni se ovaj math pokrenuo kao sto mi se matlab pokrece, pa di to ima (ne,to nije brzo)?
[ Ivan Dimkovic @ 28.01.2011. 12:57 ] @
@dejanet,

Tacno - ali fakat da se web aplikacije pisu i u kojekakvim PHP-ovima i sl... dakle glorifikovanim skriptovima pokazuje da su to aplikacije gde nije ni bitno izvuci 100% performansi iz sistema, vec su prioriteti sasvim druge prirode.

Naravno da je u takvom slucaju daleko bolje koristiti nesto jednostavnije od C++-a, i to definitivno niko ne spori.

Sama cinjenica da jedan PHP radi posao je valjda dovoljna ;-)

Medjutim ja mnogo puta cujem tvrdnje kako su Java/.NET po performansama ekvivalentni C/C++ kodu pa evo i na ovoj temi i to mi je nesto sto nikako ne mogu da skapiram - ako je tako, zasto onda ljudi i dalje koriste native kod kada su performanse bitne ;-)

Da prostite, to mi sve zvuci kao veciti vlazni san o masini koja menja coveka... samo se menjaju akteri.

Eto sada je to "svepametni JIT" koji menja kvalitetnog programera... stvarno odlicno zvuci :)

Super, onda me uputite, molim vas, na neki 3D engine, codec, algoritam za prepoznavanje ili sintezu govora, OCR-ovanje i sl... koji je napisan u .NET-u i Javi i koji slovi za "state-of-the-art" po performansama na desktop masinama.
[ dejanet @ 28.01.2011. 12:58 ] @
Pisanje aplikacije u c-u ne garantuje apsolutno nista po pitanju perfomansi..

Evo jedan primer je igrica Civilization V, pisana u c++, a total sh*t&djubre po pitanju performansi, a visoko kotirana, spucano brdo para, dev. tim su mogli da biraju..
na kraju ova shahovska aplikacija radi sporije od crysis..
[ Ivan Dimkovic @ 28.01.2011. 13:03 ] @
Ko je rekao da C garantuje performanse? Pa ni masinski kod ne garantuje performanse... ono od svega se moze napraviti bloat i beda.

Medjutim, C/C++ ti >OMOGUCAVA< da pises kvalitetan i brz kod, i ne OGRANICAVA te idiotskim ogranicenjima jezika i vestackim limitacijama koje su samo tu zato sto je neko m00do u MSFT-u ili Oracle-u smatralo da to tako treba.

Dakle, kakve god ti optimizacije padnu na pamet, to mozes da uradis - a C/C++ su na dovoljno visokom nivou da omogucavaju i jako dobru apstrakciju stvari - dakle nisu asembler i ne usporavaju ljude sa redudantnim stvarima. Gle cuda, i na C/C++ imas milion "frameworka", model-view kontrolera pa i RAD alata za "crtanje" GUI-ja.

Za razliku od C/C++ u tim managed zatarabljenim jezicima ti je pola stvari zabranjeno - i jos ako neko pita, odmah se nadje armija advokata i fanboy-a da ti kaze kako si TI zapravo u krivu, i kako "tako treba"...

Mislim, odmah ti je jasno kada neko krene da mase rukama i da tvrdi da "nesto tako treba" da tu stvari nisu ciste. OK, masina te smatra majmunom zato sto je neko rekao da i majmun treba da bude u stanju da programira, pa ga treba spreciti da majmunise u kodu... razumem, sve jasno... ali nemojte to nazivati podjednako dobrim resenjem.

Nazovite ga pravim imenom - jezik za buducnost, buducnost gde zaista moze da se postane developer za 21 dan. Sve OK - i to ima svoje prednosti, ali performanse nisu jedna od njih.
[ Nedeljko @ 28.01.2011. 13:11 ] @
Citat:
Ivan Dimkovic: Medjutim, C/C++ ti >OMOGUCAVA< da pises kvalitetan i brz kod, i ne OGRANICAVA te idiotskim ogranicenjima jezika i vestackim limitacijama koje su samo tu zato sto je neko m00do u MSFT-u ili Oracle-u smatralo da to tako treba.

Dakle, kakve god ti optimizacije padnu na pamet, to mozes da uradis.


Pa, čak i da imaš svoj alokator memorije i to prilagođen za svaku klasu.
[ Dejan Lozanovic @ 28.01.2011. 13:15 ] @
Citat:
Ivan Dimkovic
Medjutim ja mnogo puta cujem tvrdnje kako su Java/.NET po performansama ekvivalentni C/C++ kodu pa evo i na ovoj temi i to mi je nesto sto nikako ne mogu da skapiram - ako je tako, zasto onda ljudi i dalje koriste native kod kada su performanse bitne ;-)


Pa razlike su recimo 10-40% sporiji kod za razliku od native , ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne. Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici. A da ne pricamo kako su neke stvari mnogo lakse uraditi u javi/.NET-u nego u C++, samo cu da kazem rec plugin pa se mnogim C/C++ dize kosa na glavi kad to moraju da imaju u programu. Dok na ovim "monkey do" jezicima imas interface i preko refleksije instanciras klasu. Znaci sta si u sustini menjao konfor lakocu programiranja sa performansama.
[ Ivan Dimkovic @ 28.01.2011. 13:18 ] @
Upravo... ako mi treba, 'cu da ga napravim - ne zelim da mi neko objasnjava kako ja ne smem da diram memoriju direktno jer... (mahanje rukama) to nije dobro.

Citat:
Dejan
Pa razlike su recimo 10-40% sporiji kod za razliku od native , ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne. Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici. A da ne pricamo kako su neke stvari mnogo lakse uraditi u javi/.NET-u nego u C++, samo cu da kazem rec plugin pa se mnogim C/C++ dize kosa na glavi kad to moraju da imaju u programu. Dok na ovim "monkey do" jezicima imas interface i preko refleksije instanciras klasu. Znaci sta si u sustini menjao konfor lakocu programiranja sa performansama.


Neke stvari nisu lakse u .NET-u vec su zbog vestackih ogranicenja mnogo teze.

Obicno to udara kada bas treba i da mislis o performansama... ali zbog cinjenice da dobar deo sveta kaze ovo:

Citat:

Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici


Taj problem se precutkuje u horu hvalospeva za "lakse programiranje".


[ Nedeljko @ 28.01.2011. 13:28 ] @
Citat:
Dejan Lozanovic: Pa razlike su recimo 10-40% sporiji kod za razliku od native, ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne.


I tata bi sine, ali ne može tako jeftino sa 10-40%. Na šta se pozivaš sa takvim ciframa?
[ lermi @ 28.01.2011. 13:38 ] @
Citat:
Ivan Dimkovic
Taj problem se precutkuje u horu hvalospeva za "lakse programiranje".


Which brings me to another question. Ovaj će post možda moderatori obrisati, ali zanima me, s obzirom na sve što ste rekli, treba li novajlije gurati u .net framework?
[ dejanet @ 28.01.2011. 13:57 ] @
Precenjujete 'mlade' programere, narocito u danasnjem svetu gde neretko diplomac nekog it smera ne zna da nabroji 5 osnovnih data tipova ..

A u paklu it implementacije b.logike za srednju firmu,sa osrednjim dev. timom, pomoc oko npr. garbage collectora(jvm||.net) je dobrodosla..
[ mmix @ 28.01.2011. 14:11 ] @
Ivane, u cemu si ti zapravo ogranicen u .NETu? Brkas .NET sa teletabis silverlightom/WP7 i javom.


Ko je to rekao i sta ti je zapravo zabranjeno? Uopste mi nije jasno zasto i na osnovu cega sumnjas u podudarnost krajnjeg native proizvoda? Pogledaj malo native kod iz JITa i iz C++ kompajlera, tu nema neke velike filozofije, for petlja je for petlja. Postoje samo dve stvari koje usporavaju .NET aplikaciju. Prva je GC latency (ukljucjuci i checkup pozive), druga je sam FCL koji nije pisan za performanse vec za funkcionalnost (array nije samo niz vrednosti). Oba dolaze do izrazaja kad koristis FCL Math u milionski iterativnim izracunavanjima (>O(n)) kakva su UVEK po pravilu ova benchmarking merenja. Prvo (GC latency) je drasticno poboljsano u .NET4 (pod uslovom da vec nisi koristio concurency multi-core GC) ali eto, ako ce ti srce biti na mestu i ja mislim da IL-u nedostaje "CPU critical" sekcija u kojoj bi mogao da suspendujes native check pozive u GC i za koji bi ti JIT napravio potpuno lean code. Isto su mogli da ostave vise prostora da tweakujes JIT optimizacije ali eto sa njihovog stanovista oni smatraju da bi time samo usporio program jer oni JITuju shodno optimalnim vrednostima za masinu na kojoj je runtime instaliran (nasuprot compile time optimizaciji C++ koja ne uzima u obzir varijetete u runtime okruzenjima).
Iz nekog razloga MS je vise zauzet pravljenjem dodatnih nivoa apstrakcije i ja im tu ne mogu nista, i njihov zvanicni stav je da ako ti GC smeta kriticne sekcije koda odradis u unmanaged delu. Ocigledno je da njihovo vidjenje buducnosti ne podudara sa tvojim i da oni smatraju da FCL ne mora da bude optimizovan i da buducnost desktop aplikacija nije u 100% lean&mean aplikacijama i da ne vredi gubiti vreme perfeksionisanjem koje kaci 1% upotreba.

Realno, za Windows ili ces preci na .NET ili ces ostati na GDI+ emulaciji. AKo hoces direktan input u desktop composition i bells and whistles na Win7+ bices na .NETu ili ces biti na .NET i deloma na C++/CLI-u. Ne razumem bas ni tvoj komentar za milcore.dll, on nikad ni nije predvidjen za direktno linkovanje user aplikacija niti je imao public API, sta vise u Windows 7/2008r2 ga vise nema uopste i njegova funkcionalnost je pretopljena u druge dllove. Tvoja WPF aplikacija je nesvesna svega toga jer je na visti presentationcore.dll wrapovan oko milcore, na Windows 7 oko PresentationNative_v0400, a tvoja aplikacija radi bez izmena. Vremena se menjaju i menja se i GUI engine, WPF je po meni mnogo vise prilagodjeniji desktopu od GDIa, ono sto je sprecilo tranziciju pre 4 godine je bila idiotarija od viste i odbijanje ljudi da predju sa XPa (na kojem je situacija potpuno obrnuta i na kojem je WPF spor kao puz jer radi preko softverske emulacije unutar GDI+). Windows 7 ne pati od tih problema i sve vise ljudi prelazi na 7-u i samim tim ce i broj aplikacija koje se rewrituju na WPF polako povecavati. Do windows 7 ni paint nije bio .NET, sad jeste. Zao mi je ako vam se to ne svidja ali doba bitmapiranih user kontrola je gotovo, a bice veoma tesko napraviti pure native aplikaciju koja ce raditi direktno sa WDMom => GDI emulacija. Posto se WPF primitive na kraju svode na native DX primitive wpf aplikacija na win7 ce uvek imati brzi UI i lepse ce izgledati i imace vise opcija za prezentaciju i polako ce istisnuti winforms, a i ostale ne-NET GDI based frameworke kao sto su MFC, Qt, itd. Hoce li ljudi deinstalirati windows zbog ovoga? Nema sanse.

I ko kaze da ne smes da diras memoriju? Tu su unsafe i fixed, mozes da radis sa njima sta hoces (sa tim sto si ponovo preuze na sebe rizik pointer aritmetike), cak mozes i da menjas immutable stringove.
[ Nedeljko @ 28.01.2011. 14:20 ] @
Pa, evo šta je zabranjeno - da isključiš GC i napraviš svoj alokator za tačno određenu klasu.
[ Nedeljko @ 28.01.2011. 14:24 ] @
@mmix

Dobro, zašto se CPU/GPU zahtevne stvari rade native?
[ jablan @ 28.01.2011. 14:59 ] @
^ Zato što u takvim primenama i 2% razlike znači.
[ Nedeljko @ 28.01.2011. 15:02 ] @
Ma, nije valjda! Akaće se neko oko 2%. Kako da ne. Pa, hajde da se onda to sve piči u asembleru! Ma, da nije možda 2222% u pitanju?
[ mmix @ 28.01.2011. 15:06 ] @
Citat:
Nedeljko: Pa, evo šta je zabranjeno - da isključiš GC i napraviš svoj alokator za tačno određenu klasu.

Nije zabranjeno per se vec je nemoguce. U cemu bi bila svrha postojanja managed objekta van managed heap-a? Gde bi konstruktor te klase alocirao svoje managed reference? Kako bi GC znao da ih kolektuje? Cela poenta alokatora koliko se ja secam (a ispravite me) je bila da se omoguci alternativa heap alokaciji i brze, manje fragmentisano i zbijenije alociranje grupa malih, kratko zivecih objekata. CLR vec obavlja sve te funkcije kroz generacijski GC, separaciju small i large object heapova i JIT locality trikovima sa kontejnerima.
Citat:
Nedeljko: @mmix Dobro, zašto se CPU/GPU zahtevne stvari rade native?

Latency, .NET nije real time platforma, nema garancija da GC nece blokirati thread bas kad ti je najkriticnije tako da nemas garantovano vreme odziva bez obzira na jacinu platforme, sto generalno pravi problem ako su zahtevana vremena odziva bas mala. Ja se iskreno nadam da ce na tome poraditi pre ili kasnije (Singulairty mi je bio nada uzdanica, ali se to nekako oladilo). Sve ostalo je pojeo moore, nekad nisi mogao da dekodiras SDTV divx bez lean/mean kodeka, danas moja masina dekodira i renderuje fullhd sa 4% jednog jezgra a ja imam midrange masinu sada. Da li mislis da bi predstavljalo problem da je 50% sporiji (6%) sa managed kodom? A kad bi se uradio kako treba ne bi bio 50% sporiji.
Drugi problem su specificna procesorska zezancija, npr banalan primer SSE.
JIT ce koristi SSE kad otkrije da SSE moze da ubrza operaciju, ali ne moze da otkrije "big picture" grupe blok operacija. C++ koder to moze koristeci intrinsic SSE operacije. Medjutim ovaj problem je vise vezan za optimizaciju samog JITa isvaka sledeca genracija JITa je sve optimizovanija i generise brzi kod. Sa druge strane JIT ce na SSE2 procesoru iskoristiti SSE2, a C++ program pisan sa SSE nece iskoristiti to dok se program ne preradi i ne rebilduje. Nekom nesto, nekom nesto
[ Nedeljko @ 28.01.2011. 15:45 ] @
Citat:
mmix: Nije zabranjeno per se vec je nemoguce. U cemu bi bila svrha postojanja managed objekta van managed heap-a? Gde bi konstruktor te klase alocirao svoje managed reference? Kako bi GC znao da ih kolektuje? Cela poenta alokatora koliko se ja secam (a ispravite me) je bila da se omoguci alternativa heap alokaciji i brze, manje fragmentisano i zbijenije alociranje grupa malih, kratko zivecih objekata. CLR vec obavlja sve te funkcije kroz generacijski GC, separaciju small i large object heapova i JIT locality trikovima sa kontejnerima.


OK, promeni GC algoritam za neke klase. Ma, da CLR već ima algoritam koji je univerzalno najbolji u svim situacijama. Džaba što se ljudi ubiše da nađu podesne algoritme za specifične situacije, kad CLR ima najbolji nenadjebivi algoritam.

Citat:
mmix: Latency, .NET nije real time platforma, nema garancija da GC nece blokirati thread bas kad ti je najkriticnije tako da nemas garantovano vreme odziva bez obzira na jacinu platforme, sto generalno pravi problem ako su zahtevana vremena odziva bas mala.


Ko govori o real time aplikacijama? Je li PhotoShop real time aplikacija? Da, ima zahtevne operacije, ali nije real time.
[ Nedeljko @ 28.01.2011. 15:47 ] @
Dosta ljudi trolovanja. Neka neko napiše kod koji je jedan na jedan prevod sa jednog jezika na drugi, pa da vidimo. Ako niko drugi neće, evo ja ću. Batalte flejm, dajte testove.
[ Ivan Dimkovic @ 28.01.2011. 15:48 ] @
Citat:
mmix
. Da li mislis da bi predstavljalo problem da je 50% sporiji (6%) sa managed kodom? A kad bi se uradio kako treba ne bi bio 50% sporiji.


Odlicno... gde su ti silni codeci pisani u .NET-u onda?

Mislim ako nije problem...

Meni je bas drago sa jedne strane sto se industrija sada fokusira na low-footprint / low power sisteme za kucu... cisto da se vidi koliko je car go. Posto baterije ne napreduju po murovom "zakonu".

[ Nedeljko @ 28.01.2011. 15:57 ] @
Ivane, kodeci su real time, a mmix se od toga ogradio.

Nego gde su npr. kripto cypher-i ili ozbiljne grafičke aplikacija u gnjavama i dot njetovima? To nije real time.
[ Dejan Lozanovic @ 28.01.2011. 15:59 ] @
Citat:
Nedeljko: Dosta ljudi trolovanja. Neka neko napiše kod koji je jedan na jedan prevod sa jednog jezika na drugi, pa da vidimo. Ako niko drugi neće, evo ja ću. Batalte flejm, dajte testove.


eno ti http://sortbenchmark.org/ , hadoop (java map/reduce framework) najbze sortira 100 TB podataka, i najvise podataka sortira za 1 minut. Ej java :) ta troma spora kanta.
[ Ivan Dimkovic @ 28.01.2011. 16:01 ] @
Nisu svi codeci real-time, za neke ti treba i vise od real-time, recimo za offline rekompresiju (transkodiranje DVD-a recimo ;-).

A i da su real-time... hej, modernoj Core i7 masini treba mozda 10-15% za CPU dekodiranje u Full HD-u, ako su te price za .Njava jezike tacne, dodaj tome taj "mali overhead" i opet si daleko ispod real-time barijere... zar ne? Pa gde su onda?

Eno onaj Sipdroid Android projekat (koji je sad obsolete posto je Google odlucio da ubaci SIP stack u sam Android OS) - likovi su prvo hteli da naprave i codece u Javi, pa su jako brzo presli na JNI-ovanje codec implementacija u C-u, cim su pokusali nesto vise od PCM-a - pitam se zasto hmmm ;-)
[ kandorus @ 28.01.2011. 16:26 ] @
Citat:
Dejan Lozanovic
hadoop (java map/reduce framework) najbze sortira 100 TB podataka

Na linku koji se postavi se ne porede brzine izvršavanja istog algoritma različitim programskim jezicima. Tu se iznete tehnike sortiranja. Na primer, u dokumentu
FAWNSort Java se uopšte ne pominje.
U dokumentu na koji se pozivaš Hadoop Java je korišćena za implementaciju jedne tehnike sortiranja ali nema podataka da je taj algoritam primenjen u različitim programskim jezicima na toj istoj mašini da bi moglo da se vrši poredjenje.
[ mmix @ 28.01.2011. 17:28 ] @
Opet ti sa javom, mani javu. A sto sad nema codeca nije bas pitanje za mene. Realno nema rezona u ovom trenutku izmisljati toplu vodu i praviti nesto sto vec postoji, zar ne. Potrebne su i neke izmene u nacinu na koji se kodeci koriste jer isti aplikativni domen do sada nije mogao imati dva razlicita runtime-a (npr situacija da imas .NET 3.5 app koji podigne directhow koji podigne filter u .net 1.1, to ne mere). Sad je sa 4.0 situacija popravljena (moguce je imati vise runtime-a u istom procesu). Itd, jbg nisu razmisljali pre 10 godina kako ce to sve izgledati danas, niti ovi danas mogu da znaju sve sto ce biti kroz 5 ili 10 godina (ako svi ne predjemo na google os :)) To i dalje ne znaci da ne mozes. Ne znam kakav dokaz od mene ocekujes, da napravim h264 dekoder u c#-u?

Evo, imo ko je uradio FLAC dekoder u c# i bez prevelike brige o kodu dobijo samo 15% sporije encoder.
http://www.hydrogenaudio.org/forums/index.php?showtopic=74242
[ kandorus @ 28.01.2011. 17:33 ] @
Ne radi se o Javi već poredjenju sa recimo C# koji i ti pominješ.
[ Dejan Lozanovic @ 28.01.2011. 17:45 ] @
Citat:
kandorus:U dokumentu na koji se pozivaš Hadoop Java je korišćena za implementaciju jedne tehnike sortiranja ali nema podataka da je taj algoritam primenjen u različitim programskim jezicima na toj istoj mašini da bi moglo da se vrši poredjenje.


Pa sad ono sto sve vreme ne kapiras a to je da nije u pitanju jedna masina vec cluster od 2000 masina. Jer u ovom trenutku mislim da ne postoji hard disk kapaciteta od 100 Terabajta. A opet hadoop je framework za procesiranje (velike kolicine) podataka, nema nizak latency ali ima veliki throughput. http://hadoop.apache.org/
[ Dejan Lozanovic @ 28.01.2011. 17:47 ] @
Citat:
mmix:
Evo, imo ko je uradio FLAC dekoder u c# i bez prevelike brige o kodu dobijo samo 15% sporije encoder.
http://www.hydrogenaudio.org/forums/index.php?showtopic=74242


E o tome se radi, pravi muskarci koriste C/C++ a oni macho neobrijani asm.
[ Ivan Dimkovic @ 28.01.2011. 18:00 ] @
Citat:
mmix
Evo, imo ko je uradio FLAC dekoder u c# i bez prevelike brige o kodu dobijo samo 15% sporije encoder.
http://www.hydrogenaudio.org/forums/index.php?showtopic=74242


Pa da, 15% ovamo, 15% onamo... sta je to, totalno zanemarljivo. Jos je i sam codec algoritamski prost.

Mislim sama cinjenica da 15% nazivas zanemarljivim dosta pokazuje - i bas zbog te cinjenice mi je VRLO drago sto je Intel u 2004-toj prsao sa budzenjem megaherca... Zbog takvog stava prema softveru ce netbook market da se ulupa jer je PC softver generalno neupotrebljiv na njima.

Sada kada su baterije u igri se prica menja drasticno... a Apple je uspeo da istrenira ljude da ocekuju 10+ sati baterije pa ce te price o "15% je nista" malo da prestanu da vaze posto murovi "zakoni" nece bas da budu relevantni u small-footprint uredjajima.

Citat:

Ne znam kakav dokaz od mene ocekujes, da napravim h264 dekoder u c#-u?


Jock, samo da nas uputis u neki high-performance H.264 codec pisan u managed jezicima koji je ekvivalentan C implementaciji, to bi bilo dovoljno.

Citat:
Dejan Lozanovic
E o tome se radi, pravi muskarci koriste C/C++ a oni macho neobrijani asm.


Ne znam ja nista... samo na mom PC-ju sve sto vidim a da jeste kompleksno nije pisano u .njavama.

A i .NET i Java postoje vec ohoho vremena...
[ JPF @ 28.01.2011. 18:07 ] @
Citat:
mmix:@JPF, drago mi je da to cujem, nikad mi nije ni bilo najjasnije zasto je Sun stalno insistirao na intepretaciji a Javu nisam dirao godinama. Medjutim, i po dokumentaciji hotspota koju sam sad pogledao stvar nije istao kao kod CLRa, hotspot jituje one delove koji su pod pritiskom, CLR sve radi na native nivou od pocetka. Samim tim je onaj bendhmark i dalje smesan, u najgorem slucaju po c# rezultati za ta dva moraju da se podudaraju.

Pa zato se generalno kod benčmarka pusti da se JVM 'zagrije' - mislim da po defaultu JITuje metod nakon 10000 poziva, a u međuvremenu prati kako se metod izvršava da bi mogao optimalno da ga kompajlira. LM, na kraju je i kod Jave prevedeno sve što ima potrebe da se prevede (možeš i da forsiraš da prevede sve ali nisam primjetio da to neko radi) pa se onda praktično poredi native protiv native koda.

Ne vidim zašto bi Mono, koji je znatno mlađi od Jave i u koga je skrljano manje para, generisao bolji kod (recimo da su tu negdje). S druge strane, GC kod Jave je značajno bolji od GC-a koji koristi Mono tako da me ne bi iznenadilo da razlika u brzini potiče od toga.

Možda bi stvari drugačije stajale da su koristili MS VM u testovima.

[ kandorus @ 28.01.2011. 18:07 ] @
^Dejan Lozanovic

Nisam napisao da je u pitanju jedna mašina, već da kad se porede dva programska jezika, recimo Jave i C#, onda treba da se testiraju na "na toj istoj mašini".

Drugo, novi link koji si postavio opet ne govori o poredjenju programskih jezika, pre je neka reklama za Hadoop.
[ kandorus @ 28.01.2011. 18:17 ] @
^Ivan Dimkovic

Geogebra je pisana u Javi. Iako nema istu oblast primene kao MS Mathematics 4 stiče se utisak da je pouzdanija, naravno svaki u svom domenu. Zanimljivo je da iza Geogebre ne stoji nikakav "džin" poput Microsoft-a.

Upravo takve situacije sam imao na umu kad sam kritički pisao o .njet tehnologijama, gde se u dobroj meri nedovršen proizvod skriva iza velikog blata.
[ Nedeljko @ 28.01.2011. 18:23 ] @
Evo, napisao sam bukvalno isti program u Javi i C-u za računanje 10,000 decimala broja , pa merite. Ja sam dobio da je C brži oko 15%. Programi mere samo vreme računanja i ispisuju vreme na kraju.
[ Ivan Dimkovic @ 28.01.2011. 18:31 ] @
Pa da.

Tih 15% je nebitno na trzistima gde je jeftinije i moguce dokupiti jos 15% snage.

Ali tamo gde nije... e to ce biti zanimljivo :)

Mislim i sam Android, recimo, pa sve njegove low-level stvari su native... Od samog kernela, browsera, media framework-a (OMX) - sve sam suvi C/C++... Da nije tako prilicno sam siguran da bi baterija u Android telefonu trajala prilicno manje.
[ kandorus @ 28.01.2011. 18:43 ] @
^Nedeljko

Kakav je to tip podataka "long long int" ?

Citat:
pi.c

...
int main() {
start();
long long int t = 1;
int n = (DIGITS + EXPONENT - 1) / EXPONENT;
char format[] = "%.0d ";
long long int summand[n+2];
long long int sum[n+2];
int i;
long long int k = 0;
long long int p;
long long int q;
...
[ dejanet @ 28.01.2011. 18:51 ] @
Citajuci postove, neki nesretnik ce greskom da naruci CRM, robno-finansijsko(&related) custom aplikaciju u c-u ..

Pisanje codec-a(&related), voice over ip, pbx svakako bi pisao u c-u, pre svega zbog linije manjeg otpora -> postojanja puno toga napisanog,open sorsovanog i dokumentovanog.
I bas bi front-end -ovao u javi(android) ko' one batice sa sipdroid-om(ako su tako odradili), meni je to savrseno logicno..

Ne treba biti gadljiv...
[ Dejan Lozanovic @ 28.01.2011. 18:59 ] @
Citat:
Ivan Dimkovic: Pa da.

Tih 15% je nebitno na trzistima gde je jeftinije i moguce dokupiti jos 15% snage.

Ali tamo gde nije... e to ce biti zanimljivo :)

Mislim i sam Android, recimo, pa sve njegove low-level stvari su native... Od samog kernela, browsera, media framework-a (OMX) - sve sam suvi C/C++... Da nije tako prilicno sam siguran da bi baterija u Android telefonu trajala prilicno manje.


Pa i ranije nekada davno kad je C bio main stream isto si imao asm { ... } sekcije kad su se ljudi spustali na nivo nize da bi izvlacili performanse, ne vidim sto su managed jezici operisani od toga.
[ Nedeljko @ 28.01.2011. 19:00 ] @
Citat:
kandorus^Nedeljko

Kakav je to tip podataka "long long int" ?


Na 32-bitnim mašinama 64-bitni ceo broj. U Javi je long 64-bitni ceo broj.
[ serbolicious @ 28.01.2011. 19:26 ] @
Koliko vidim zelja nekih je da imamo jedan programski jezik za sve! Dajte manite se corava posla - Java nije brza kao C/C++ jer joj je potreban taj isti C/C++ za runtime (JVM). Sa druge strane niko normalan ne bi pisao neku business web aplikaciju u C/C++ nego bi odabrao najverovatnije Javu. Drugaciji nivo apstrakcije za drugacije probleme. As simple as that!

Citat:
Every computer problem can be solved by adding a layer of indirection.


Imas traktor i imas BMW. Nije im ista svrha, i ne treba da bude.
[ kandorus @ 28.01.2011. 19:28 ] @
&Nedeljko

E da, sad vidim da danas koristiš Linux a u MSDN ne mogu da pronadjem da je MS uveo taj tip.
[ Nedeljko @ 28.01.2011. 19:32 ] @
Koristi int64_t, trebalo bi da radi.

Citat:
kandorus: Geogebra je pisana u Javi. Iako nema istu oblast primene kao MS Mathematics 4 stiče se utisak da je pouzdanija, naravno svaki u svom domenu. Zanimljivo je da iza Geogebre ne stoji nikakav "džin" poput Microsoft-a.


Maxima, koja služi za simbolička izračunavanja, kao i Microsoft Mathematics 4.0 je pisana u lispu i razvaljuje pomenutog konkurenta.
[ kandorus @ 28.01.2011. 19:53 ] @
Ma radi i Int64 samo MS nije još uveo "long long int". Možda će kad bude finalizovan novi standard.

Citat:
^serboliciousKoliko vidim zelja nekih je
da imamo jedan programski jezik za sve!


To je verovatno neostvarivo.

Ali moguće je nešto drugo. Na primer, računar koji ima samo ROM za podizanje i priključenje na neku mrežu, recimo internet. Sa interneta preuzme operativni sistem prema svojim potrebama (recimo iz favorit liste) i ima mašinu koja radi optimalno. Pri tome neučitava DipectX jer mu mašine ne služi za igranje ili gomilu drugih gluposti. Opet ako mu je računar namenjen poslovnim primenama onda može da se podigne operativnim sistemom koji sadrži i .NET.

E sad će neko reći da uvek može da instalira više operativnih sistema na jednu mašinu. Može ali taj broj je ograničen. Korisniku može zatrebati isti OS sa različitim konfiguracijama što je teško sa sadašnjom koncepcijom OS-a. Na primer jednom instaliran DirectX se nemože deinstalirati isl. Sa druge strane broj ponudjenih OS-a na internetu bi mogao biti na desetine ili stotine.

Tako šta je moguće realizovati pogotovo padanjem cena i rastom perfomansi fleš memorija koje mogu da "zamrznu" stanje pri isključenju računara a po uključenju da nastave sa istog mesta. Velike kompanije imaju svoj interes pa što ne bi hostirali i operativne sisteme i to besplatno. Naravno posebne usluge bi se plaćale ali "osnovni paket orbitalnog-operativnog sistema" bi mogao biti besplatan.
[ mmix @ 28.01.2011. 19:58 ] @
Ma da, debil od korisnika ne zna da instalira runtime ali ce zato da bira personal-flavored cloud OS sa interneta. Ne moze vam taj famozni korisnik biti jdnom debil jednom genije, pa po potrebi

[ kandorus @ 28.01.2011. 20:20 ] @
Krajnji korisnik uvek ima pravo da bude potpun debil. Što bi učitavao run-time u svoj računar ako mu nije non-stop potreban. Rešenje po kome bi run-time preuzimao sa interneta je izvodljivo. U tom smislu i .NET može biti rezidualan na nekoj host mašini a klijent da preuzme samo prema potrebi.
[ Nedeljko @ 28.01.2011. 20:40 ] @
Instalacija DirectX-a ne usporava mašinu. Tačka!
[ kandorus @ 28.01.2011. 21:39 ] @
Pa sad, pri instalaciji VS2008 .NET 3.5 ni ja nisam tražio da mi promeni registre za Defrag pa je to učinjeno gratis. To zaista ne usporava mašinu dok se ne napravi pauza, račun stiže posle toga. Uostalom što da ventilator hladi procesor na 100% kad oboje mogu da kuliraju na 5%. I to je nešto što utiče na vek eksploatacije a time i na cenu a i potrošnju električne energije koja je sve skuplja.
[ mmix @ 28.01.2011. 22:42 ] @
Ok, ovo su vremena koje sam ja dobio (best of 10 runs)

JAVA 4.35

c# 1.98 (x64 release safe optimized)
c# 3.38 (x86 release safe optimized)

c++ 1.97 (release x64 optimized-for-speed)
c++ 3.20 (release x86 optimized-for-speed)

Otprilike ono sto sam i ocekivao, veoma marginalna razlika na 64 bita, 5% na x86 (30% sporije od x64 zbog 64bit aritmetike), javu sam nesto botchovao sigurno (verovatno to moze da se potera brze). Jedina razlika u odnosu c# na c++ je manja devijacija kod c-a. Npr za x64 c# je varirao od 1.98 do 2.06 dok je c isao od 1.97 do 1.99. Dakle, ne vidim da je to nesto zbog cega bih izgubio nesto sna, cak i na netbucima. Opet kazem, ovo se sve menja kad u igru udje FCL i verovatno ce pasti 1, 2% na GC u slucaju cestih alokacija koje ovaj primer nema.

Ja inace i nisam rekao da je 15% zanemarljivo, samo da je onaj lik dobio 15% za prvi bild i direktni rewrite koda bez ikakve dalje optimizacije, dakle da nije ni 50%, ni 150%, ni 2222%. Ignorisimo na trenutak da 15% jeste zanemarljivo vecini ljudi i skoro svima na desktopima, razlika cak nije ni u dvocifrenim procentima po gornjem algoritmu izmedju najgoreg c# i najboljeg c++ merenja. Ja, niti bilo koji drugi developer na .NETu nemamo interes da prepisujemo nesto sto je vec napravljeno i nesto sto su uber geekovi vec optimizovali na C++-u narocito uzimajuci u obzir da nam je frame switch jeftin, jednostavno cu uzeti vec napisano i integrisati kroz direktne pozive bez proxya. Zato neces videti jos neko vreme masovne kodeke u .NETu. To sasvim sigurno ne znaci da je tako nesto nemoguce uraditi, samo da .net developeri nisu dovoljno zaludni da teraju mak na konac sa C++ developerima.

@konduras, .net ti sigurno nije promenio registry setting za defrag. ovo ti je jedna od jacih.
[ RF MasterX @ 28.01.2011. 23:14 ] @
mmix, posto kazes da si taj kod uradio i na c++ -u, jesi li koristio SSE instrukcije
za optimizaciju?

Pitam zato jer ih visual c++ ne koristi automatski bez obzira kakva su ti podesavanja
kompajlera/linkera.

http://msdn.microsoft.com/en-us/library/708ya3be(v=VS.90).aspx
[ mmix @ 28.01.2011. 23:30 ] @
nisam, samo sam rebildovao nedeljkov sors kroz vc++ kompajler. Ako si rad da ga preradis baci izmenjeni kod, pusticu ga. Mada ne ocekujem drasticniju promenu u odnosu na x64 resenje.
[ Nedeljko @ 29.01.2011. 00:36 ] @
Evo šta sam ja dobio (isto minimumi od 10 pokretanja):

C - 4.020 s,
Java - 4.672 s,
C# Mono - 11.266544 s.
[ mmix @ 29.01.2011. 08:35 ] @
Sheesh, znao sam da je Mono spor, ali ovo je zaista razicaravajuce, VB6 interpreter bi ovo odradio brze. Koji mono imas? (da nije onaj stari koji nema JIT?)

Probaj da ga pokrenes u AOT modu sa optimizacijom (i mene zivo interesuje). Probacu ja kod mene za windows mono.

mono --aot -O=all prog.exe
[ bachi @ 29.01.2011. 10:32 ] @
RF MasterX napisa:
> Kao sto naslov teme kaze.

Iz korisničkog ugla, naježim se kada je neki program pisan u
dot netu, gore reagujem nego kada naletim na Java program. Najviše zbog
smaranja oko updatovanja, krpljenja, novih verzija, bezveze... Sa
programerske strane pojma nemam, nisam programer. :D
[ mmix @ 29.01.2011. 12:56 ] @
Java 6 je imala vise update-a od .NETa 2, 3, 3.5 i 4 zajedno, sam windows ima vise update-a nego svi aplikacioni layeri zajedno. VC++ ima vise side-by-side runtime-a, quick-fixeva i post-SP updatea nego sto ima update-a za .NETa i Javu ukupno. Sve to nas u svakom slucaju vraca na pricu o jadikovanju za 1.44 flopijem i straha od update-a, ta vremena su gotova kako god da obrnes.

@Nedeljko:
Mono/Win isto kao kod tebe, 2.6.7 ne moze da spusti ispod 10s sa svim ukljucenim optimizacijama. Mono c# compiler (csmc) pravi dobar IL kod (MS JIT sa tim ILom pravi kod koji zavrsava za 2.00s) ali je ocigleno Mono JIT dimenzijama daleko iza MSovog, bar kad je u pitanju x86. Ne mogu da proverim kako bi bilo za 64, Mono nema 64bit JIT za WIndows, samo za "Linux, FreeBSD, OpenBSD, Solaris, OS X"

Edit: sad sam pustio i kroz poslednji stable 2.8.2, isto 10.5s
[ bachi @ 29.01.2011. 13:53 ] @
mmix napisa:
> Java 6 je imala vise update-a od .NETa 2, 3, 3.5 i 4 zajedno,

Jeste, ali još nisam naleteo na Java program koji je odbio da
radi zato što nemam poslednji update verzije 6, dok sad nalećem na
programe koji rade isključivo na .NET 4, a kada stavim taj .NET 4, neki
.Net2 programi ne rade kako treba. :(

Java 5 programi sasvim lepo rade u Java 6.

Drugo, čitam diskusiju i svi nešto govorite o nekim procentima i
kako je mašina sa dual core procesorom, 2GB rama i 500GB hard diskom
podrazumevano u radnom okruženju, e, ćorak, nije to baš tako. Ne znam po
kakvim se vi to firmama šetate, ali tamo gde se ja šetam, tamo je dosta
mašina sa XPom sa 512MB rama i itekako je .net ili java aplikacija
jezivo sporija, nego što vi kažete native. Na poslu pravna služba
koristi neki program koji je baza propisa, zakona i šta već njima treba
koji je pisan u Javi. Program se pokreće 5 minuta na AMD Sempronu 2600+,
Windows XP, 512MB RAMa i pritom, kada se taj program jednom pokrene,
zaboravi na upotrebu još nekog programa, pa makar to bila i Opera za
Internet. Jedino rešenje jeste restartovanje računara kako bi korisnik
mogao da kucka u wordu... Pa mislim... I sad, toj softverskoj firmi je
bilo super da plaća niže nekog java programera koji je žešće izbloatovao
softver svojim nestručnim radom, ali isto tako, toj softverskom firmi
neće biti super nakon što im otkažemo pretplatu i pređemo kod
konkurencije (na svu sreću te je ima).

Gledam onaj XP koji bez bilo kakvog .net frameworka prosto leti
na 512MB RAMa, ono, munja... Staviš mu .NET 2.0, podnošljivo je, staviš
mu 3.5, umire, a pričamo samo o frameworku. :(

Drugo, stiče se utisak kao da govorite o jednom programu koji će
da radi na kompu, a mi smo u 2011. godini i multitasking valjda nije
stvar prošlosti? Mogu da zamislim situaciju u kojoj će mi antivirus biti
napisan u .netu, office paket, browser, program za puštanje muzike,
gledanje filmova, a onda šlag na tortu - poslovna aplikacija... Pa
mislim, tu ni quad core mašini sa 8GB RAMa ne bi bilo sve jedno.

U današnje vreme se na računarima vrti gomila aplikacija, na
dosta radnih stanica, sve i da hoćeš, ne možeš da staviš više od 4GB
rama, max 8GB, (a da ne govorimo o ITX pločama gde se vrte Atom
procesori) i naravno da je svaki % bitan.

I da, ja kada gledam neki paket da kupim za bilo šta, *pitam* u
kom je programskom jeziku pisan i to mi je bitna stavka.
[ __Mrgud__ @ 29.01.2011. 14:32 ] @
Citat:
bachi: mmix napisa:
> Java 6 je imala vise update-a od .NETa 2, 3, 3.5 i 4 zajedno,

Jeste, ali još nisam naleteo na Java program koji je odbio da
radi zato što nemam poslednji update verzije 6, dok sad nalećem na
programe koji rade isključivo na .NET 4, a kada stavim taj .NET 4, neki
.Net2 programi ne rade kako treba. :(

Java 5 programi sasvim lepo rade u Java 6.


Vidiš, ja imam potpuno suprotna iskustva sa Java i .NET aplikacijama:

Na poslu smo imali nekoliko Java aplikacija koje uopšte nisu htele da rade sa J6. Da stvar bude još zanimljivija, nisu htele da rade ni sa svim varijantama J5, već samo sa odabranim apdejtima, koji su, pak, da stvar bude potpuno apsurdna - morali da budu instalirani u tačno određenom redosledu, koji se uzgred nije poklapao sa redosledom kojim su apgrejdi objavljivani. Sećam se da smo ludeli i mi, i momci iz Service Deska kojima je instalacija adekvatnog JRE, pravim redom, bila najgora muka. Redosled je bio otprilike: JRE 1.5 U16, U15, U22, U21 (pričam napamet, al' logika je ta :). Ako staviš bilo koju varijantu šestice - tri od sedam Java aplikacija neće uopšte raditi.

S druge strane, .NET aplikacije koristim samo na kućnom računaru, i do sada - nisam niti jednom naišao na situaciju koju ne mogu da rešim intuitivno: treba mi to-i-to, download, install. :)
[ dusans @ 29.01.2011. 14:52 ] @
Bachi,

Biće da su to neki šampionski programi.
Ja programiram u .Net-u od kako je izašao, skoro 10 godina.
Radio sam development i na daleko slabijim mašinama nego ove koje
viđaš po firmama, sa sve SQL Serverom, IIS-om i čime god već.
Isto tako, aplikacije su se bez problema vrtele i na takvim mašinama.

Evo, imam kod kuće staru mašinu sa 512 MB ram-a
I stvarno kad pokrenem jednu .Net aplikaciju, treba joj vremena i radi sporo.
Isto tako kada pokrenem neku igru ili npr. office ili bilo šta što nije .Net, ista priča, radi sporo.

SVE to radi sporo zato što se na mašini vrti XP SP2 bez ikakvog tjunovanja,
sa svim servisima i podešavanjima po default-u, i troši u idle stanju 400-450 MB ram-a - hronični nedostatak memorije za gotovo sve.
Čim pokreneš nešto (osim Winamp-a), dolazi do swapovanja i tu je kraj, nebitno da li je native ili ne.
Da je u pitanju SP1 ili stariji, zauzeće memorije bi bilo manje i samim tim bi imao lufta za rad aplikacija do određene mere.



[ RF MasterX @ 29.01.2011. 16:42 ] @
Kod mene kontra , jbt ima da batalim asm i c++,
i samo cu da cepam vb i c# .

Citat:
mmix: Ako si rad da ga preradis baci izmenjeni kod...

Pokusacu da ga optimizujem pa ako uspem okacicu src.

[ Shadowed @ 29.01.2011. 16:43 ] @
Bachi, za .net ces instalacijom 3.5 i 4.0 pokriti gotovo sve aplikacije. I to je to :)
OK, pojavljuju se i service pack-ovi, ali oni uglavnom ne donose nove stvari koje ce ti neki program traziti. Moze da se desi ali tesko (jedino sto mi trenutno pada na pamet je entity framework iz SP za 3.5).

Sto se tice pokrenutih programa, ja trenutno imam dva visual studija 2010 koji su i sami .net aplikacije. Pored toga imam (uglavnom ne-.net): total commander, firefox, pidgin, notepad++, winrar, neki help, operu, Di recnik, uTorrent i jos nekoliko sitnih aplikacija u sys tray-u.
Pored toga, imam SQL server aktivan kao i web server na kojem ima par nekih web aplikacija.
Windows7 je u pitanju.
C2D, 4GB ram-a.

Ti programi su aktivni danima a komp se restartuje jednom u mesec-dva.
Najveci problem sa resursima prave FF i eventualno Opera.

OK, ovo uglavnom nisu .net aplikacije, ali je glavna poenta u VS-u koji jeste i koji je prilicno.. kako da se izrazim.. "velika" aplikacija, gledano po tome sta radi a aktivna je zajedno sa gomilom drugih aplikacija.
[ JPF @ 29.01.2011. 17:13 ] @
Citat:
__Mrgud__: Vidiš, ja imam potpuno suprotna iskustva sa Java i .NET aplikacijama:
Na poslu smo imali nekoliko Java aplikacija koje uopšte nisu htele da rade sa J6. Da stvar bude još zanimljivija, nisu htele da rade ni sa svim varijantama J5, već samo sa odabranim apdejtima, koji su, pak, da stvar bude potpuno apsurdna - morali da budu instalirani u tačno određenom redosledu, koji se uzgred nije poklapao sa redosledom kojim su apgrejdi objavljivani. Sećam se da smo ludeli i mi, i momci iz Service Deska kojima je instalacija adekvatnog JRE, pravim redom, bila najgora muka. Redosled je bio otprilike: JRE 1.5 U16, U15, U22, U21 (pričam napamet, al' logika je ta :). Ako staviš bilo koju varijantu šestice - tri od sedam Java aplikacija neće uopšte raditi.)

Ovo naravno nema veze s mozgom. Java apdejtu su u stvari kompletni JDK (ili JRE) i ne pečuju prethodne verzije. Na mašini možeš paralelno da držiš sve ikad napravljene verzije bez opasnosti da se one sudare ili da naprave problem jedna drugoj (ne govorim o apletima ovde pošto u jednom trenutku možeš da imaš samo jedan Java plugin uglavljen u IE, mada i tu može da se izabere iz Control Panel apleta koji je trenutno aktivan).

Aplikacije koje hoće da rade samo sa specifičnim apdejtom su rijetke (dovoljno rijetke da nikad nisam naletio na neku), a namjestiti specifičan JRE za takvu aplikaciju je trivijalno.

Java ima svojih problema, ali bojim se da to nisu oni o kojima se priča na ovom tredu - ovdašnji problemi se lako rješavaju tako što primjenite bachijev recept i nađete firmu ili ljude koji znaju posao.
[ bachi @ 29.01.2011. 17:30 ] @
__Mrgud__ napisa:
> Vidiš, ja imam potpuno suprotna iskustva sa Java i .NET aplikacijama:

Nema razloga da ne bude tako kao što ti tvrdiš, što upravo
govori u prilog onoj strani koja se kune u c++. A i zašto ne bi? Takav
program instaliraš sa next next next finish i on radi. Eventualno mu
treba runtime koji je par MB i kojeg ubaciš u samu instalaciju programa,
što opet ne remeti korisnikov next next next finish sistem.

Jeste, i .net može da se ubaci u instalaciju, ali takva
instalacija biva malo poteža, što nije preporučljivo, ako se ista
distribuira preko sajta na primer.


Shadowed napisa:

> Bachi, za .net ces instalacijom 3.5 i 4.0 pokriti gotovo sve
> aplikacije. I to je to :)

Ok, jedno pitanje... Instaliram svež XP i odem na MS update,
zašto mi MS nudi i .net 1.1, pa SP za njega, pa .net 2, pa sp za njega,
pa 3.5, pa sp za njega i na kraju .net 4? Da li ja to moram sve da
instaliram, a ako ne moram, zašto mi onda sve to nudi? Čemu ova cela
zbrka? Ako mene ovo buni, koji ipak i ponešto znam oko računara, kako li
je tek onda običnom useru? U stvari, njemu je super, on će sve to da
instalira, ali to što će XP da mu se vuče samo tako, nema veze. :D

Uopšte mi se ne sviđa kuda plovi ovaj brod. :(

> C2D, 4GB ram-a.

Malo li je, na ovu skupoću? :) Sad nađi iole veću firmu čiji je
najslabiji komp takav, pa srećno u traženju. :)

Preključe sam ispizdeo jer onaj neki player za iptv traži .net
4. Šta je to što ima u .net 4 u čemu će taj player da radi bolje, a da
ga nema u .net 3?

Programeri su postali neobzirni prema korisnicima i umesto da
oni program prilagođavaju nama, očekuju da se mi, kupovinom novog
hardvera prilagođavamo njima, e, pa, neće moći. :)

Opet se pozivam na onaj primer onog softvera za pravne propise
koji je pisan u Javi i koji ubija XP mašine. Je li sad zbog toga treba
da bacimo te dve mašine koje vrše posao i svi programi sasvim lepo rade
(osim tog) i da kupimo računare sa dual core procesorima i 4GB ram-a
kako bi to prase od programa moglo lepo da radi? Nema šanse, batalićemo
taj program i uzeti od druge softverske kuće.

> OK, ovo uglavnom nisu .net aplikacije, ali je glavna poenta u VS-u
> koji jeste i koji je prilicno.. kako da se izrazim.. "velika"
> aplikacija, gledano po tome sta radi a aktivna je zajedno sa gomilom
> drugih aplikacija.

A sad zamisli da ti je svaka aplikacija pisana u .netu ili javi.
:)
[ dusans @ 29.01.2011. 18:52 ] @
Čekajte, sad mi ništa nije jasno, jel su ovi testovi od RF MasterX dobri ili ne?
Dobijam pozamašnu razliku u korist C#?
[ mmix @ 29.01.2011. 19:47 ] @
Ko ima 64bit OS a pusti cpp kompajliran za 32bit dobice oko 50% sporiji c++ program. To ne znaci da je c# mnogo brzi od C++ :), to je zbog 64bit aritmetike sa 32bit instrukcijama, eventualno ako MasterX optimizuje sors da koristi SSE na 32bit onda ce rezultat verovatno biti isti za 32bit i 64bit c++ bildove. CSharp verzija ce JITovati na 64bita (ako je any cpu build), samim tim treba da je poredite sa 64bit c++ bildom.
[ mmix @ 29.01.2011. 20:05 ] @
Bachi, trazi .net4 zato sto .net 4 ima novi runtime (3.5, 3.0 i 2.0 dele isti runtime). Zato ti je to i rekao.
.net 4.0 runtime ima poboljsanja, izmedju ostalog u GC, JIT, exception propagation, itd. U principu sto ti kazes "programerske" stvari ali stvari koje morale da dobiju novi runtime jer bi pokvarile stare aplikacije. Na service packove si trebao da naviknes do sada, to je MS filozofija za SVE njihove proizvode. Nisi ti bas tolko naivan da se zbunis na service pack I btw, svi runtime-i za .NET (plus silverlight) su OPCIONI update-i, nece se instalirati sami od sebe.

Sto se tice multi-.NET procesa, treba da imas u vidu da su svi .NET asembliji shared. JIT ih kompajlira a windowsov loader zakucava na memorijsku poziciju. Kao i ostali sistemski shared DLLovi .NET asemby koji referenciraju dva aktivna procesa NECE biti ucitavan dvaput, samo ce se segment memorije s DLLom mapirati u novi proces. To vazi cak i za core runtime-a (mscor*.dll)

[Ovu poruku je menjao mmix dana 29.01.2011. u 21:28 GMT+1]
[ serbolicious @ 29.01.2011. 20:35 ] @
cek, cek - nije mi bas sve jasno!

da li sam dobro razumeo da iako imamo .NET runtime 4.0 nama je nekad potreban 3.0? Ne postoji backward compatibility?
[ bachi @ 29.01.2011. 20:47 ] @
mmix napisa:
> Nisi ti bas tolko naivan da se zbunis na service pack ;)

Nisam, to me ne zbunjuje, to mi jasno, čak i za smrdljivi office
compatibility pack za otvaranje novog formata na starim office-ima ima
čitava 2 servis peka, ali me buni koliko ja to verzija .neta moram da
imam. Po vašoj priči dovoljno je 3.5 i 4.0, što onda nudi i 2.0?

> Sto se tice multi-.NET procesa, treba da imas u vidu da su svi .NET
> asembliji shared. JIT ih kompajlira a windowsov loader zakucava na
> memorijsku poziciju. Kao i ostali sistemski shared DLLovi .NET asemby
> koji referenciraju dva aktivna procesa NECE biti ucitavan dvaput, samo
> ce se segment memorije s DLLom mapirati u novi proces. To vazi cak i
> za core runtime-a (mscor*.dll)

Sve sam te razumeo. :) Pojma nemam šta si napisao, ali
pretpostavljam da to u praksi znači da imao jedan .net program, ima da
ždere resurse isto kao i da imao pokrenuta na primer 4 programa, jer on
sve to učita u memoriju, a onda ti programi koriste taj isti deo
memorije? Ako je tako, taj deo onda i nije tako loš, ali opet ostaje
problem onog inicijalnog zauzeća resursa.
[ dusans @ 29.01.2011. 20:49 ] @
Šta smatraš pod inicijalnim zauzećem resursa?
[ bachi @ 29.01.2011. 20:55 ] @
dusans napisa:

> Šta smatraš pod inicijalnim zauzećem resursa?

To što prvi pokrenuti program pojede NN (ili NNN) MB RAMa.
[ kandorus @ 29.01.2011. 21:00 ] @
Citat:
bachi
Programeri su postali neobzirni prema korisnicima i umesto da oni program prilagođavaju nama, očekuju da se mi, kupovinom novog hardvera prilagođavamo njima, e, pa, neće moći. :)

Ovo mogu da potpišem. Zaista programeri treba da isporučuju aplikacije koje se izvršavaju bez uslovljavanja a ne da teraju klijente da jure po internetu i instaliraju kojekave update. Razvoj aplikacije u .NET okruženju može biti opravdan samo na izričit zahtev klijenta.

A zašto MS gura .NET? Pa ima interes da bude sveprisutan. Kad potpuno preovlada onda će ispostaviti račun.
[ RF MasterX @ 29.01.2011. 21:04 ] @
Citat:
bachi: ali me buni koliko ja to verzija .neta moram da imam...


Pa ako hoces da ti svi .net programi rade treba da imas:

http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions

Ps: Verzije 1 i 2 mogu da rade i u starijim 'otpisanim' sistemima, npr. Win98,WinMe
mada ne verujem da ces ih ikad koristiti, to samo mi nostalgicari ponekad pokrenemo.

[Ovu poruku je menjao RF MasterX dana 29.01.2011. u 22:27 GMT+1]
[ Shadowed @ 29.01.2011. 21:15 ] @
Bachi, taj komp je star ravno tri godine :)
A ni tada nije bio neki hi-end, osim sto je za to vreme imao prilicno rama.

Citat:
bachi: Po vašoj priči dovoljno je 3.5 i 4.0, što onda nudi i 2.0?

Pa, stvar stoji ovako..
.NET Framework se zapravo sastoji iz runtime-a i biblioteke klasa. E sad, 2.0 ima svoj runtime (i class library). 3.0 nema svoj runtime, koristi isti koji i 2.0 samo ima dodatne klase koje prosiruju class lib. Sa 3.5 je ista stvar. Zato je dovoljno instalirati 3.5 jer on sadrzi runtime od 2.0 i class lib. koji ukljucuje klase iz 2.0, 3.0 i 3.5.
4.0 ima nov runtime, kao sto je mmix rekao, i nov class library.

Citat:
bachi: Sve sam te razumeo. :) Pojma nemam šta si napisao, ali
pretpostavljam da to u praksi znači da imao jedan .net program, ima da
ždere resurse isto kao i da imao pokrenuta na primer 4 programa, jer on
sve to učita u memoriju, a onda ti programi koriste taj isti deo
memorije? Ako je tako, taj deo onda i nije tako loš, ali opet ostaje
problem onog inicijalnog zauzeća resursa.

Umm, ne, pogresno si razumeo.
Ono sto je hteo reci je da ako proces A.exe koristi x.dll, y.dll i z.dll; a B.exe koristi y.dll, z.dll i m.dll onda ce u mermoriju y.dll i z.dll biti ucitani samo jednom. Odnosno, svaki proces ucitava samo one dll-ove koji su mu potrebni. Ali kada su potrebni jos nekom, ne ucitavaju se ponovo.
[ mmix @ 29.01.2011. 22:12 ] @
Citat:
serbolicious: cek, cek - nije mi bas sve jasno!
da li sam dobro razumeo da iako imamo .NET runtime 4.0 nama je nekad potreban 3.0? Ne postoji backward compatibility?

Postoji, ali ima nekih izmena zbog kojih bi neke aplikacije mogle puci, mislim da je glavna zackoljica to sto je sad CAS deprecated i zamenjen sa novim security modelom. Da citiram sam MS (http://msdn.microsoft.com/en-au/library/ms171868.aspx):

"The .NET Framework 4 is highly compatible with applications that are built with earlier .NET Framework versions, except for some changes that were made to improve security, standards compliance, correctness, reliability, and performance."
Ranije to nije bio problem jer su 2, 3, 3.5 imali isti runtime, tako da se razlika izmedju verzija svodila na razlicite sastave FCLa, mogao si cak i da prvis ludorije tipa 3.5 aplikacija koja radi na .net.0 a DLLove koje koristi iz 3.5 . Nesrecna posledica nesrecnog verzioniranja, i meni izaziva migrenu, mogu misliti kako izgleda nekome van price.

U svakom slucaju verzije mogu da koegzistiraju, 3.5 i 4 na sistemu ce pokrenuti 99% svih .NET aplikacija danas i u skorom periodu buducnosti. Ono malo sto je ostalo na 1.1 runtime-u nije vredno spomena, kome to treba taj ce i znati kako da stavi 1.1 runtime.

Sto se tice "incijalnog otkidanja" resursa, on je jedan-po-procesu, i cini mise da je 16Mb u data bloku. TO je velicina jednog efemeral segmenta (mehanizam kojim CLR obezbedjuje space-time tradeoff). Taj semgent je na pocetku jedini alociran ali je ujedno i VIRTUELNI, nece zauzeti ni jedan jedini page fizicke memorije ako ga CLR ne alocira nekome. Za neke ce rasti a neke aplikacije (kao nas pi test) nece nikad iskoristiti vise od malog dela tog inicijalnog segmenta pa ce veci deo tog segmenta ostati ne-commitovan. U svakom slucaju procena je da na danasnjim sistemima 16mb virtuelne memorije po procesu nije problem, sve i da svaki proces commituje ceo segment (zaista alocira 16Mb managed memorije) u 1Gb staje 64 procesa.
[ mmix @ 29.01.2011. 22:24 ] @
Evo performance report za nasu csharp pi test aplikaciju. Iako je proces alocirao blok od 16Mb samo je 3Mb zaista u upotrebi unutar managed heap-a, ostalo je virtuelna memorija "na papiru"
[ mmix @ 30.01.2011. 11:21 ] @
Evo koga interesuje malo vise detalja o tome kako izgleda .net memory footprint za pites aplikaciju, zakacen je commited mem report. Ceo commited deo managed heap-a je samo 124kb u private working setu. Najveci "trosadzija" je bio JIT sa svojim unmanaged bufferima od cirka 2Mb, ostalo su private working setovi ukljucenih DLLova.

[ kandorus @ 30.01.2011. 22:54 ] @
Dakle taj VS2008 sa .NET 3.5 je zaista za posmatranje. Instaliran je po difoltu ali ipak je zblentao sam sebe. Iz poruke



se vidi da nemože da inicijalizuje SQL biblioteku. I sad traži da se reinstalira. To je poruka odmah nakon instalcije pa je i greška u instalacionoj proceduri.

Dalje, prijavljuje da je izabrano da se ne koristi MS Wireless Configuration Manager



što uopšte nije tačno jer je instalacija po difolu i ništa nije traženo za Wireless pa već konfigurisane komponente nije trebalo ni menjati. Barem tako zvuči logično. Ali logika i .njet ...
[ mmix @ 31.01.2011. 07:16 ] @
Za pocetak vs nije isto sto i .net, isto kao sto java i eclipse nisu isto.

Za prvi problem deinstaliras "Microsoft SQL server VSS Writer" u control panelu ako ne koristis volume shadow copy (sto sumnjam da koristis). Ovo inace nije problem VSa vec instalacije SQL express servera na XPu (koji ide po difoltu uz vs2008+)
Za drugo, to nema nikakve veze ni sa .NETom ni sa VSom.
[ kandorus @ 31.01.2011. 18:15 ] @
Citat:
mmix
vs nije isto sto i .net

Bingo!

Citat:
mmix
Za prvi problem deinstaliras "Microsoft SQL server VSS Writer"

Kakva je to instalacija kad odmah mora da se deinstalira? Izbacivanjetako nepouzdanog softvera na tržište je neozbiljno pogotovo ako je reč o svetskom igraču broj 1.

Citat:
mmix
Za drugo, to nema nikakve veze ni sa .NETom ni sa VSom.

Kako nema kad je upravo instalacija proizvela taj problem. Uostalom u poruci upravo piše "During instalation" tako da nema sumnje da je instalacija uzrok nečega što uopšte nije traženo.
[ kandorus @ 31.01.2011. 18:17 ] @
Nedeljko
Kad već pominješ Javu, da li u VS/.NET postoji pandan za Java BigInteger?
[ kandorus @ 31.01.2011. 23:51 ] @
Pokušao sam da napravim malu alikaciju (manje od 1000 linija) i dobio release 27MB. Isključivo VC++2008, konzolska aplikacija. Što je rasipanje, rasipanje je. Ali ko još brine za memoriju?

U tom smislu VC++2010 je napredniji jer sam tamo za aplikaciju od oko 3000 linija i uz korišćenje MFC dobio release od "svega" 20MB.
[ Marko_L @ 01.02.2011. 00:54 ] @
Nešto ti tu jako pogrešno radiš. Evo, baš sad gledam, poslednja aplikacija koju sam kompajlirao, preko 1.000 linija koda i dosta integrisane png grafike za elemente aplikacije (doduše, mahom ikonice veličine 1-2KB), ukupna veličina exe fajla 937KB. Kompajlirano u VB.NET 2008.
[ kandorus @ 01.02.2011. 03:20 ] @
^Marko_L

Pa sigurno je nešto pogrešno. Pazi, to je VC++2008, grafički interfejs tek treba da se uradi. Program sortira do 1000 instanci klase koja nije memorijski zahtevna, sa malim brojem promenljivih i samo sa par funkcija članica. Nedostatak je što je alokacija memorije statička ali to nije posebno bitno za ovako malu aplikaciju. Sam exe fajl nije prevelik 178kB ali ovi ostali krpelji su ogromni. Nezgodno je klijentu reći, "ej instaliraj 3.5GB VS da bi to radilo". Sutra ću probati optimizaciju mada ne očekujem ništa od toga.
[ Marko_L @ 01.02.2011. 04:07 ] @
Ček, malo si nejasan ovde. Prvo pominješ release, što obično podrazumeva exe fajl i ostale prateće fajlove, pa onda pominješ memoriju, pa onda nekakve krpelje. šta je tačno veliko 27MB ? Zauzeće na hard disku ? Zauzeće RAM memorije kad pokreneš aplikaciju ? I kakve krpelje spominješ ? Ako si pravio aplikaciju na .NET platformi, onda ti za njeno pokretanje ne treba ništa osim .NET Frameworka, osim naravno ukoliko nisi koristio neke eksterne biblioteke ili svoje dodatne fajlove, što ne može biti problem .NET-a. Ako je zauzeće memorije u pitanju, opet može biti do loše optimizacije i to nema veze sa .NET-om kao platformom. Ti i u asembleru možeš da napraviš programče teško 2KB koje će da uzrupira svu dostupnu memoriju. Sam exe fajl takođe ne može biti toliko veliki osim ako nisi nešto embedovao u njega (slike, zvuk, razna dokumenta).

Tako da, ne znam šta pokušavaš da kažeš. Ja sam napravio gomilu .NET aplikacija i prosek veličine exe fajla je tu negde oko 1MB sa sve grafičkim elementima. Naravno radi se o nekim standardnim database aplikacijama. Zauzeće memorije je od oko 15MB u mirovanju, pa naviše, zavisi šta se otvara, ali evo izlistao sam nekoliko tabela u nekoliko različitih prozora iste aplikacije i zauzeće memorije ne prelazi 30MB, što je smešno s obzirom da je neki prosek na današnjim uobičajenim mašinama 2-4 GB. I što je najbitnije, radi bez ikakvih krpelja... samo .NET Framework 3.5 i to je to.

Znači tvoj klijent ne mora da instalira nikakvih 3.5GB bilo čega, već jednostavno da ima .NET Framework od 230MB, koji verovatno već ima, a ako nema možeš mu dostaviti uz instalaciju programa na CD-u ili flešu.
[ RF MasterX @ 01.02.2011. 04:14 ] @
^kandorus
To je klasika .

Treba u opciji za konfigurisanje "Solution Configurations" da postavis na "Release",
potom odes na "Configuration Properties" pa na "General", tu imas opciju "Use of MFC" to postavi
na "Use MFC in a Static Library"(tako ces izbeci situaciju da ti program trazi za gomilu dll-ova ).
Kad si to uradio onda ides na "C/C++" pa na "General" tu je opcija "Debug information format"
to postavi na "Disabled", nakon toga ides na "Precompiled Headers" pa u opciji
"Create/Use of Precompiled Header" postavis na "Not Using Precompiled Headers".

Kad je to gotovo, onda ides na "Linker" pa na "General", tu je opcija "Enable Incremental Linking"
to postavis na "No (/INCREMENTAL:NO)" zatim na "Debugging" gde je opcija "Generate Debug Info"
to takodje postavis na "No".

I to bi ukratko bilo to, ima mnogo finesa oko podesavanja kompajlera i linkera ali mi je smor
da sad tome detaljno pisem, a u ostalom sve to imas lepo objasnjeno u MSDN help-u.
[ mmix @ 01.02.2011. 08:21 ] @
Citat:
kandorusNedeljko
Kad već pominješ Javu, da li u VS/.NET postoji pandan za Java BigInteger?


System.Numerics.BigInteger

a sto se tice ostalog, sta da ti radim, ako mislis da je mnogo nepouzdano sto ti ne radi VSS writer na XPu ja preporucujem da deinstaliras ceo vs.net (posto je jelte to instalacija koja je proizvela problem). To ionako nije alat za generalnu populaciju.
[ dejanet @ 07.02.2011. 16:26 ] @
Koga zanima uz kaficu sam sam sklepao ovaj pi test u f# i dobio sledece:
u c# oko 4.6 sec
u f# oko 10.1 sec

Ko se bavi sa f# a ne mrzi ga da eventualno uradi ovo ljudski, a dobije bitno bolje rezultate bilo bi lepo da postuje code..
[ RF MasterX @ 08.02.2011. 14:39 ] @
Experimentisao sam malo sa optimizacijama ovih dana, na pocetku sam razmisljao
da za ovaj PI Calc algoritam upotrebim SIMD (SSE) za optimizaciju ali se ispostavilo
da nije pogodan za to, ali je pogodan da se uradi 'paralelizacija', pa da onda iskoristi
prednosti visejezgarnih procesora. Algoritmi gde je pogodno koristiti SSE izgledaju
npr. ovako:
Code:

float a[n], b[n];

for (int i=0;i<n;i++)
  a[i]=sqrt(b[i]);

// ILI

__int16 a[n], b[n];

for (int i=0;i<n;i++)
  a[i]*=b[i];


Pa sam zato upotrebio OMP za ovaj 'ned_picalc_cpp_omp_x86.exe'

info: http://msdn.microsoft.com/en-us/library/tt15eb9t(v=VS.90).aspx

Kod mene nema nikakvih poboljsanja od omp-a zato sto mi je u masini sngle-core procesor,
verujem da bi bili zanimljivi rezultati kad bi ga neko pokrenuo na procesoru sa 2 ili 4 jezgra.

Anyway, evo kako mi sad izgledaju rezultati, Open Watcom pobedio :)

[ Burgos @ 08.02.2011. 14:51 ] @
Kod mene su na dvojezgralno procesoru rezultati:


ned_picalc_wat_cpp_x86.exe - 3.828s

ned_picalc_charp_x86.exe - 7.2968750

ned_picalc_cpp_omp_x86.exe - 5.688s
[ mmix @ 08.02.2011. 14:53 ] @
1.90 kod mene watcom

ps: dual core

bilo bi zanimljivo paralelizovati c# kod isto.
[ dejanet @ 10.02.2011. 18:10 ] @
Algoritam koji smo koristili u primerima je valjda Spigot alg. za dobijanje pi broja, a koliko vidim on se ne moze apstrakovati u funkciji paralelizacije, jer medjuzavisnost iteracija sezu do 1. u nizu.
Postoje pi algoritmi koji se mogu pustiti u paralelizaciji(npr. BBP), ali onda gubimo osnovu za uporedjivanje rezultata(a i smor)...

Nista, ja sam ipak 'podelio' ovaj nas pi alg. na 2 dela, tako sto sam hardkodovao rezultate medju iteracija, izmedju ta dva dela..

Sve ovo u cilju evaluacije f# i odgovora na pitanje, da li je ekipa iz ms-a dzabe krecila..

U svakom slucaju rezultati su zanimljivi:

- ms c++ : 5.32 s
- c# : 4.64 s

- f# : 10.28 s
- f#(worker proces) : 9.56 s
- f#(async, paralel, 2 jezgra) : 2.01 s (podeljen algoritam)
[ RF MasterX @ 10.02.2011. 21:43 ] @
Ma gotovo nista nije nemoguce paralelizovati , kad dodjes u situaciju
da kad treba tako nesto da paralelizujes, nesto sto ce uvek dati isti rezultat a ti onda jednom izracunaj
vrednosti matrice, pa iz polovine matrice je dovoljno da uzmes samo jedan pocetni broj i da onda
racunanje podelis na pola, do polovine u matrici tera jedan thread a od polovine do kraja drugi thread,
i tako jedan thread na jedno jezgro a drugi na drugo , nije spektakularno resenje, ali sljaka.
[ Nedeljko @ 10.02.2011. 22:07 ] @
Tipičan primer algoritma koji se ne može paralelizovati je iteratiivno rešavanje jednačina: .
[ MarkoBalkan @ 11.02.2011. 19:46 ] @
Citat:
dejanet: Algoritam koji smo koristili u primerima je valjda Spigot alg. za dobijanje pi broja, a koliko vidim on se ne moze apstrakovati u funkciji paralelizacije, jer medjuzavisnost iteracija sezu do 1. u nizu.
Postoje pi algoritmi koji se mogu pustiti u paralelizaciji(npr. BBP), ali onda gubimo osnovu za uporedjivanje rezultata(a i smor)...

Nista, ja sam ipak 'podelio' ovaj nas pi alg. na 2 dela, tako sto sam hardkodovao rezultate medju iteracija, izmedju ta dva dela..

Sve ovo u cilju evaluacije f# i odgovora na pitanje, da li je ekipa iz ms-a dzabe krecila..

U svakom slucaju rezultati su zanimljivi:

- ms c++ : 5.32 s
- c# : 4.64 s

- f# : 10.28 s
- f#(worker proces) : 9.56 s
- f#(async, paralel, 2 jezgra) : 2.01 s (podeljen algoritam)


zašto se mučiti sa optimizacijom i izmišljanjem tople vode na .net-u, kad se može uzeti C++ ili haskell i efikasnije napisati code koji je brži.

ako netko ima volje neka testira na c++ i haskellu.
pretpostavljam da je ovaj c++ unutar .net-a ma kojem se radio test.
[ kandorus @ 11.02.2011. 21:49 ] @
Testovima u kojima se zadaci svode na par petlji koje se mogu izvršavati u registrima procesora nisu neko značajno merilo. Ako je cilj poredjenje onda treba testirati programom koji operiše sa velikim blokovima podataka i raznovrsnim operacijama koje bi uključile više različitih mašinskih instrukcija. Broj promenljivih mora biti veći tako da se iste smeštaju u memoriju a ne u registre procesora. Tek kad se pripremi program sa raznovrsnim operacijama može se govoriti o kvalitetu testiranja. Takav zahtev sigurno ne zadovoljava nekoliko jednostavnih for next petlji.
[ Nedeljko @ 11.02.2011. 23:33 ] @
10000 cifara broja ne možđe stati u registre procesora. Ako ti je malo, promeni konstantu DIGITS u neku veću, samo imaj na umu da ako povećaš broj cifara puta, vreme izvršavanja će se povećati puta.
[ kandorus @ 12.02.2011. 04:56 ] @
Šta je keš memorija?
[ Nedeljko @ 12.02.2011. 09:11 ] @
To je memorija koja se nalazi u mikroprocesoru i koja predstavlja kopiju dela skoro korišćene memorije. Da, ovo može da stane u keš savremenih procesora, ali registri su nešto sasvim drugo nalik na fiksan broj promenljivih sa kojima možeš vršiti tačno određene operacije.
[ Nedeljko @ 15.02.2011. 18:56 ] @
Evo primera koji garantovano izlazi iz keša.

Program pravi tabelu svih prostih brojeva do 232 tako što Eratostenovim sitom izbacuje sve brojeve koji su deljivi nekim od manjih prostih brojeva koji su manji od 216. Na mom laptopu se program izvršava nekih 2 minuta i 40-tak sekundi.

Tokom rada ispisuje prost broj manji od 216 čije sadržaoce trenutno izbacuje.

Ako imate računar sa manje od 1GB RAM-a, nemojte pokušavati da ga izvršite, jer koristi sito veličine tačno 512MB.
[ Dejan Lozanovic @ 15.02.2011. 21:40 ] @
Citat:
Nedeljko: Evo primera koji garantovano izlazi iz keša.

Program pravi tabelu svih prostih brojeva do 232 tako što Eratostenovim sitom izbacuje sve brojeve koji su deljivi nekim od manjih prostih brojeva koji su manji od 216. Na mom laptopu se program izvršava nekih 2 minuta i 40-tak sekundi.

Tokom rada ispisuje prost broj manji od 216 čije sadržaoce trenutno izbacuje.

Ako imate računar sa manje od 1GB RAM-a, nemojte pokušavati da ga izvršite, jer koristi sito veličine tačno 512MB.


http://mina.apache.org/performance-test-reports.html

Mislim da su ovakve stvari merodavnije :)
[ Nedeljko @ 15.02.2011. 22:28 ] @
Gde se tamo porede jezici? Gde je tamo isti program jeda na jedan zapisan u raznim jezicima?
[ Nedeljko @ 15.02.2011. 22:39 ] @
Omašio si temu.
[ Dejan Lozanovic @ 16.02.2011. 12:24 ] @
Jok, ceo problem nije na mikro nivou gledati poredjenje nego pogledaj na makro nivou.
[ mmix @ 16.02.2011. 12:37 ] @
Pa samim tim i jesi promasio temu jer se ovde upravo barvimo mikro stvarima, u osnovi razlici u performansama izmedju native c++ optimizovanog koda i JITovanog/VMovanog koda. TO ne mozes da odredis posmatrajuci "veliku sliku masivnih distributed sistema" jer ti sistemi uvode svoja kasnjenja koja nemaju nikakve veze sa optimizacijama kompajlera.
[ Nedeljko @ 16.02.2011. 13:14 ] @
Ma, pusti Dejana. On poredi babe i žabe, ali kako kaže, na makronivou.