Kategorie:
39

Mono Paint — w końcu konkurent GIMP-a?

Miguel de Icaza udostępnił przyjazną zwykłym śmiertelnikom wersję programu paint-mono — portu Paint.NET, edytora grafiki rastrowej dla platformy Mono. Teraz paint-mono może skompilować każdy legitymujący się Mono w wersji 1.2.6, dowolnym systemem uniksowym oraz klientem SVN.

paint-net
paint-net pod Linuksem

Port biblioteki SystemLayer.dll nie jest jeszcze zakończony, ale większość funkcji Paint.NET powinna działać.

Jako że twórcy Paint.NET poprosili, aby nie korzystać z ich nazwy na użytek portów, Miguel proponuje nazywać nowe dziecko Mono Paint.

Na Google Code udostępniony jest kod projektu.

Więcej informacji: http://tirania.org/blog/archive/2007/Dec-21.html

«
»

Znalazłeś literówkę? Zgłoś ją używając formularza!


Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.

Niusy na podobny temat:

Komentarze (RSS)

Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

171 komentarzy

zwiń wątek Void  24 grudnia 2007 o godz. 2:32 #
Gravatar

Wszystko mnie cieszy, tylko ten .NET jakoś niezbyt…

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek mario  24 grudnia 2007 o godz. 3:23 #
Gravatar

W Javie nie ma takich problemów – Java oferuje prawdziwą przenośność aplikacji pomiędzy różnymi platformami!

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Moarc  24 grudnia 2007 o godz. 9:49 #
Gravatar

I prawdziwe ZOO szarych zwierzątek afrykańskich.

 
zwiń wątek cakper  24 grudnia 2007 o godz. 11:05 #
Gravatar

hm

wybacz ale program do grafiki w javie? nie, chyba podziekuje

przenośność super sprawa ale coś za coś – wydajność spada i wzrasta obciążenie, a przecież grafika to przede wszystkich w 3 i troche obliczeń przy filtrach, efektach i innych edycjach

wiec… raczej się nie sprawdzi :P

zwiń wątek MichalK  24 grudnia 2007 o godz. 11:42 #
Gravatar

takoz i w mono, te same wady

zwiń wątek zwierzak  24 grudnia 2007 o godz. 12:03 #
Gravatar

Mono/Net rozwiązuje te wady w inny sposób, dlatego też jest on mniej zasobożerny.

 
zwiń wątek citan  24 grudnia 2007 o godz. 14:13 #
Gravatar

W jaki inny? Inny lepszy niż sprzętowo – jak w Javie – o to ciekawe!

 
zwiń wątek Michał Pasternak  25 grudnia 2007 o godz. 11:58 #
Gravatar

To Java rozwiązuje problemy "sprzętowo"?

 
zwiń wątek citan  25 grudnia 2007 o godz. 13:31 #
Gravatar

Tak, w przypadku Java2D korzysta z Direct3D pod MS Windows.

 
zwiń wątek citan  25 grudnia 2007 o godz. 13:58 #
Gravatar

Miało być DirectDraw.

 
 
zwiń wątek k2  24 grudnia 2007 o godz. 13:02 #
Gravatar

Akurat grafika w Javie(java2d) jest bardzo wydajna.

zwiń wątek userek  24 grudnia 2007 o godz. 15:19 #
Gravatar

3d zreszta tez(np jwlgl). Zreszta o czym my mowimy. Kto powazny robi cos w mono? Poki co raczej ciekawostka.

Tak na margineise to ze net jest wydajniejszu od javy to bzdura.

Osoby krytykujace jave rzadko maja cos madrzejszego niz cos w stylu "moj kolega uzywal javy 10 lat temu i byla wolna".

 
zwiń wątek uzytkownik  24 grudnia 2007 o godz. 15:44 #
Gravatar

.Net było szybsze przed wyjściem Javy 1.5 (w którą dużo włożyli). 1.6 przyniosło kolejne przyspieszenie. W tej chwili nie wiem jak to jest.

 
zwiń wątek arag0rn  24 grudnia 2007 o godz. 17:45 #
Gravatar

> Kto powazny robi cos w mono?

Novell i Medsphere na przykład.
http://www.mono-project.com/Companies_Using_Mono#

Przy czym moim zdaniem najważniejsze są zdania takie jak przy SplendidCRM:

" is a commercial open source product that was originally developed for Windows and .NET but now runs on SUSE Linux with Mono".

Pół roku temu też zastanawiałem się po co nam to Mono, ale teraz już nie mam wątpliwości.

 
zwiń wątek zuzia  24 grudnia 2007 o godz. 22:55 #
Gravatar

> Kto powazny robi cos w mono?

Kto poważny robi coś w javie?

PS. Dla niedomyślnych: proszę nie odpowiadać.

 
zwiń wątek jellonek  25 grudnia 2007 o godz. 14:15 #
Gravatar

te niepowazne firmy to ibm, oracle, redhat, sun – w koncu j2ee to bardzo niepowazne rozwiazanie ;)

.

.net jest w miare szybki, ale jakos oratorzy jego "wolnej" implementacji (mono) zapominaja ze jest ona sporo wolniejsza niz wersja MS. .net ma ciekawe rozwiazania w bibliotece standardowej (wzgledem javy), ale to jave wybraly wielkie korporacje i tak na prawde w powaznych rozwiazaniach ms nie ma co szukac…

.

.net to taka zabawka dla "webmasterow" (popularna grupa w polsce ;) ) – prawdziwi programisci tego czegos nawet kijem nie ruszaja :]

 
zwiń wątek arag0rn  26 grudnia 2007 o godz. 0:41 #
Gravatar

> tak na prawde w powaznych rozwiazaniach ms nie ma co szukac…

Zapewniam Cię że się mylisz. Medycyna to wystarczająco poważne rozwiązania? Microsoft ma się tu zdecydowanie lepiej niż Ci się wydaje.

 
zwiń wątek szymon  26 grudnia 2007 o godz. 13:16 #
Gravatar

Może dlatego, że programy kamsoftu do rozliczania się z NFZ są tylko pod windę? ;)

 
zwiń wątek Karmi  26 grudnia 2007 o godz. 14:37 #
Gravatar

Może nie zauważyłeś, że od roku możesz się rozliczać czym chcesz, nawet vi lub notatnikiem, bo opublikowano format komunikatów XML do sprawozdawczości i rozliczania. Możesz się wykazać i podarować światu hiper implementację softu do rozliczania z NFZ.

 
zwiń wątek arag0rn  27 grudnia 2007 o godz. 20:32 #
Gravatar

@szymon: Nie mówię o tym akurat, Karmi ma prawie rację (prawie, bo nie jest tak hop siup z tym otwartym formatem i np. w moim województwie tak naprawdę ruszy to dopiero od nowego roku). Mówię o systemach przechowujących i serwujących DICOMowe obrazki, sterujących tomografami, wielu przenośnych wspomagaczach (opartych o Pockety z Windows, programy klienckie napisane w C#), BizTalk HL7 i wiele, wiele innych.

 
 
 
zwiń wątek ultr  24 grudnia 2007 o godz. 15:37 #
Gravatar

A podsumowując wojnę java vs mono, najlepsze jest po prostu programowanie przy użyciu przenośnych bibliotek widżetów takich jak Qt czy GTK oraz poprawnego kodu.

Lepiej skompilować 3 razy na różne platformy, niż udawać, że chodzi na każdej, ale jakby nie do końca.

zwiń wątek arturz  24 grudnia 2007 o godz. 16:21 #
Gravatar

Co w Javie chodzi Ci nie do końca?

zwiń wątek ultr  24 grudnia 2007 o godz. 16:33 #
Gravatar

Szybkość i zasobożerność.

Niektórzy programiści wykorzystyują w C++ unie, aby oszczędzać pamięć.

Ale po co… teraz komputery takie szybkie.

 
zwiń wątek arturz  24 grudnia 2007 o godz. 18:19 #
Gravatar

Ale jaki jest wyznacznik tej szybkości i zasobożerności? Szybkość ASM-a, C, C++?

Czy aby na pewno wiesz po co są unie i jakie jest ich zastosowanie?

PS. Może urządzimy zawody na napisanie jakiegoś work-flowa w 3 językach? ASM, C/C++, Java? :-)

 
zwiń wątek arturz  24 grudnia 2007 o godz. 18:34 #
Gravatar

Tak jeszcze dodam.

@ultr: może uświadom Apache Foundation że brną w ślepą uliczkę (Java).

http://projects.apache.org/indexes/quick.html – większość to Java. Ba! Nawet Apache ma własną implementację Javy – Apache Harmony. Po co oni w ogóle to robią zamiast zająć się pisaniem wydajnych programów w C/C++?

 
zwiń wątek bies  25 grudnia 2007 o godz. 1:33 #
Gravatar

ultr: programiści korzystający z unii w C++ (w przypadkach innych niż używanie interfejsów C) to idioci z nożyczkami. Należy uważać bo jak pokaleczą będzie boleć.

.

arturz: a może silnik 3D? ;) Z resztą workflow też nie piszesz w Javie (no chyba, że piszesz — ale to błąd) a w dedykowanym środowisku do modelowania workflow. Takie środowisko możesz napisać i w Javie i w C++ (ba są takie napisane jeszcze w COBOL-u).

 
zwiń wątek userek  25 grudnia 2007 o godz. 13:45 #
Gravatar

> arturz: a może silnik 3D?

A co za problem? Sa silniki 3D w javie i maja sie bardzo dobrze. Nie sa to moze suoper zaawansowane silniki pokroju UGINE ale ale wydajnoscia wcale nie odbieaja od odpowiednikow w c++ – jelsi juz to nieznacznie.

 
zwiń wątek bies  25 grudnia 2007 o godz. 18:38 #
Gravatar

Jakie gry (taki normalne, nie amatorskie pierdółki) mają silnik 3D napisany w Javie? Unreal? QuakeWars? Może Wiedźmin? A może żadna? ;)

.

Aha, ten silnik nazywa się UNIGINE.

 
zwiń wątek userek  25 grudnia 2007 o godz. 18:59 #
Gravatar

>Jakie gry (taki normalne, nie amatorskie pierdółki) mają silnik 3D napisany w Javie? Unreal? QuakeWars? Może Wiedźmin? A może żadna?

A jak to sie ma do sprawy silnikow 3d w javie? Nijak. Bo to nie znaczy ze nie mozna i ze sie nie powinno.

Wielcy gracze z pewnoscia nie rzuca sie na jave dlatego bo od lat robia gry w c++.

Ale mali i sredni dla ktorych licza sie koszty i czas z pewnoscia sie nia zainteresuja. Wiele projektow upada wlasnie ze wgledu na koszty.

 
zwiń wątek arturz  26 grudnia 2007 o godz. 21:11 #
Gravatar

@bies: http://bytonic.de/html/jake2.html – silnik Quake II napisany w Javie – polecam podstronę Benchmarks. Wcale nie jest tak źle jak mogło by się wydawać.

 
zwiń wątek bies  27 grudnia 2007 o godz. 3:21 #
Gravatar

Halo, grafikę na poziomie Q2 obecnie pociągną co lepsze komórki. A pecety mogą użyć raytrace'ingu.

 
zwiń wątek Maciek  27 grudnia 2007 o godz. 3:36 #
Gravatar

> ultr: programiści korzystający z unii w C++ (w przypadkach innych

> niż używanie interfejsów C) to idioci z nożyczkami. Należy uważać

> bo jak pokaleczą będzie boleć.

Dlaczego unia jest zła sama przez się?

 
zwiń wątek arturz  27 grudnia 2007 o godz. 13:11 #
Gravatar

@bies: Miałem na myśli porównanie FPS-ów na podstronie Benchmarks a nie to że to działa.

 
zwiń wątek Moarc  4 stycznia 2008 o godz. 22:51 #
Gravatar

@bies: A Doom chodzi na 30MHz procku, boostowanym do 80MHz z 30MB cache'a (Rockbox, SanDisk Sansa c240) :p

 
 
zwiń wątek p.  25 grudnia 2007 o godz. 3:37 #
Gravatar

To taka sama teoria, jak przenośność .Net ;) Jak robisz w Qt coś nietrywialnego i coś co trochę wykracza poza frontend do bazy danych, to nie unikniesz setek #ifdefów zapewniających wieloplatformowość.

 
 
 
zwiń wątek sawyer  24 grudnia 2007 o godz. 11:02 #
Gravatar

Oby Paint-Mono zmotywował developerów GIMP-a i Krity do ulepszenia swoich programów – taki pozytywny aspekt widzę. Bo .NET czy Mono jakoś mi się nie uśmiecha.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek michaler  24 grudnia 2007 o godz. 12:01 #
Gravatar

Uff Dobrze że w końcu jest jakiś konkurent dla Gimp'a przecież photoshop nie jest żadną konkurencją :D

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek ultr  24 grudnia 2007 o godz. 15:40 #
Gravatar

:D

Choć jest w tym trochę prawdy.

Photoshop jest może lepszy o kilka przydatnych efektów oraz możliwość przełączania ich zastosowania (czyli masz nadal dostęp do pierwotnej warstwy).

A cała reszta to tragedia. Kiedy już się człowiek przyzwyczai do GIMPa, to za nic nie można wrócić do Photoshopa. Wolę poczekać, aż GIMP nadrobi niektóre zaległości, niż męczyć się z Photoshopem.

zwiń wątek Beeez  25 grudnia 2007 o godz. 14:03 #
Gravatar

To prawda Nijak nie potrafię się przestawić na PS i zawsze wybieram GIMPa Siła przyzwyczajeń

 
 
 
zwiń wątek tuluttut  24 grudnia 2007 o godz. 12:07 #
Gravatar

Screen nie działać.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek krzychoocpp  24 grudnia 2007 o godz. 12:34 #
Gravatar

I Java i .NET zużywa więcej zasobów zasobów niż natywny exec. Czasami ważniejsze jest to że program działa w ogóle (Worse is Better), czy też to że można go przenieść bez kompilacji na inną platformę. Ale używanie .NET czy Javy do tworzenia programów codziennego użytku to chory pomysł. No bo po co ? Niestety do pana Miguela to niedociera, on "rewolucjonizuje". Wróćmy do czasów kiedy programy działały wolno, bo te nowe procesory takie szybkie są…

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek abc  24 grudnia 2007 o godz. 14:04 #
Gravatar

Używam RSSowl i Azureusa na codzień i jakoś nie narzekam – a najszybszej maszyny nie mam (jeden rdzeń – 2,6 MHz, 1GB ram). Poza tym Netbeans i Eclipse to dla niektórych też programy 'codziennego użytku' ;)

zwiń wątek ultr  24 grudnia 2007 o godz. 15:44 #
Gravatar

Eclipse? Wolne żarty.

To tnie się bardziej niż mocna gra 3D. Szczególnie przy edycji interfejsu, choć samo środowisko też muli.

Jeżeli tak ma wyglądać przyszłość oprogramowania, to ja wolę, żeby na Linuxa nadal nie było aplikacji. Przynajmniej nikt nie będzie mi wmawiał, że są.

Precz z javą/.net !

zwiń wątek arturz  24 grudnia 2007 o godz. 16:25 #
Gravatar

Bez urazy ale masz małe pojęcie o tworzeniu oprogramowania i o nim samym.

To że Visual Editor w Eclipsie jest skopany to każdy wie. Spróbuj Matisse z NetBeans o niebo lepszy i nie tnie się.

Podobnie można powiedzieć precz z Pythonem/Ruby. Porównaj czas i koszty rozwoju jakiegoś większego projektu w Javie i np. w C++.

 
zwiń wątek krzychoocpp  24 grudnia 2007 o godz. 17:33 #
Gravatar

Można sobie kupić taniego laptopa. Będzie skrzypiał, matryca będzie słaba i po jakimś czasie cały komputer popęka czy w inny sposób się zepsuje.

Można kupić droższego, który nie zaskrzypi, wytrzyma polanie wodą i upadek z kilku metrów.

Można mieć programy w Pythonie, Javie .NET i można mieć programy w "normalnych" językach.

 
zwiń wątek arturz  24 grudnia 2007 o godz. 18:24 #
Gravatar

Tylko nie rozumiem porównania oprogramowania w Javie do taniego laptopa?

Jak wytłumaczysz to że większość oprogramowania w korporacjach, firmach tworzona jest w Javie a nie C/C++?

- Tanio? Pewnie tak.

- Szybko? Tak.

- Bezpiecznie? Tak.

- Duże możliwośći w porównaniu do innych języków (jakość IDE, biblioteki itd.)? Tak.

Dla mnie odpowiedź jest jedna :-)

 
zwiń wątek bies  25 grudnia 2007 o godz. 1:39 #
Gravatar

arturz: pierwsza trójka to nadal Java, C, C++. Biznes (banki itp.) to rzeczywiście więcej Javy. Przemysł to więcej C/C++. Rozrywka to tylko C++. ;)

 
zwiń wątek q  26 grudnia 2007 o godz. 0:18 #
Gravatar

do biznesy dochodzi jeszcze moi drodzy, fox, vb i inne super jezyki. przemysl wyznaje zasady,

po pierwsze firma kupi to co wydaje jej sie ze chce,

po drugie kupi to co w czym ja to napisze (dlatego delphi jeszcze ma takie powiedzenie)

po trzecie wazne zeby dzialalo (za wolno, wymienisie sie czesc maszyn),

po czwarte wazne zeby bylo napisane szybko

pamietajcie ze w firmach nie siedza sami informatycy a ci o czym decyduja czesto sie na niej nie znaja. (prezes nie musi sie znac na programowaniu, dlatego moze kupic soft w czymkolwiek, nawet w cobolu).

powiedzmy sobie rowniez szczerze ze czas prawdziwych programistow minal, na topie znajduje sie php, java etc .net. kiedy wystarczylo znac sprzet, miec pomysl i napisac (w wiekszosci w asemblerze :) , ciekowe kto go dzisiaj chce sie nauczyc) … aaa btw. przeczytalem gdzies ze C jest jezykiem niskiego poziomu, lol usmialem sie po pachy.

 
zwiń wątek el.pescado  26 grudnia 2007 o godz. 0:36 #
Gravatar

Tak, C jest językiem szalenie wysokiego poziomu, zupełnie abstrahuje się od sprzętu i wprowadza kupę abstrakcyjnych rozszerzeń;) Jasne.

P.S. Piszę to jako oddany fan C.

 
zwiń wątek userek  26 grudnia 2007 o godz. 0:54 #
Gravatar

>powiedzmy sobie rowniez szczerze ze czas prawdziwych programistow minal, na topie znajduje sie php, java etc .net.

Aha, czyli jesli ktos pisze w php, javie, net etc to juz nie jest prawdziwym programista, jak ty ? :)

>Tak, C jest językiem szalenie wysokiego poziomu, zupełnie abstrahuje się od sprzętu i wprowadza kupę abstrakcyjnych rozszerzeń;) Jasne

Jesli c jest jeszykiem niskiego poziomu to faktycznie wystarczy spojrzec na assemblera zeby zrozumiec ze to zart :P .

 
zwiń wątek q  26 grudnia 2007 o godz. 17:17 #
Gravatar

powiedzmy sobie szczerze prawdziwi programisci to np. developerzy kernela, dzisiajesi 'hackerzy', czesc ludzi z demosceny (fox, musashi, miklesz …).

kto z tych co dzisiaj nazywaja sie programistami wiedza co to stos, sterta, rejestry procesora, ramka tcp/ip etc. wiekszosc zalatwia sam jezyk programowania.

porownalbym programistow do kompzytorow, muzykiem nie jest ten co zna trzy akordy i stworzy jakas prosta melodyjke. muzyk powinien przynajmniej wiedziec co to partytura, kontrapunkt etc. chociaz dzisiaj kazdy hip hopowiec to muzyk.

wracajac do programowania, to jak ktos wczesniej napisal, kazdy jezyk zostal stworzony do jakiegos celu, i wyskakiwanie poza ten cel jest bez sensu. programista powinien ze sprzetu wyciagnac maks co sie da, tzn. program dostosowywany jest do sprzetu a nie na odwrot. maluchem tez mozna wystartowac na f1, w koncu dojedzie celu …

ps. gdzies na necie znalazlem ogloszenie, "poszukiwany programista html …" nic dodac nic ujac.

pozdro dla wszystkich

 
zwiń wątek userek  26 grudnia 2007 o godz. 18:20 #
Gravatar

>powiedzmy sobie szczerze prawdziwi programisci to np. developerzy kernela, dzisiajesi ‘hackerzy’, czesc ludzi z demosceny (fox, musashi, miklesz …).

Coz niekotrym techonlogia miesza sie z religia ale mozna i tak.

 
 
zwiń wątek uzytkownik  24 grudnia 2007 o godz. 15:47 #
Gravatar

I zapewniam, że gdyby NB był szybszy ucieszyłbym się… A on sam zajuje prawie 512 MiB (tyle mam właśnie pamięci ;) ).

 
zwiń wątek bednar  24 grudnia 2007 o godz. 15:50 #
Gravatar

Faktycznie niezbyt szybkiej używasz maszyny. Nawet moja stara Amiga miała 16 MHz :)

 
zwiń wątek MichalK  26 grudnia 2007 o godz. 22:10 #
Gravatar

ja mam k6 450 mhz i 256 mb ramu, obawiam sie ze to by byla rzezba, mam tez laptop 1,6 ghz i 512 ram twoj nie najszybszy to przy moich rakieta. A po co to pisze? Puenta jest taka ze nie ma znaczenia jaka ty masz maszyne ale jaka jest przecietna maszyna kowalskiego.

 
 
zwiń wątek citan  24 grudnia 2007 o godz. 14:17 #
Gravatar

Powiedz to developerom np. IBM/Lotus, bo oni chyba nie wiedzą i piszą dalej w tej Javie, a nie w szybkim C++.

zwiń wątek krzychoocpp  24 grudnia 2007 o godz. 14:41 #
Gravatar

Azureus, Eclipse i Lotus do najszybszych programów nie należą… zresztą porównajcie sobie. Jeden z najpopularniejszych klientów BitTorrenta to µTorrent. Dlatego że podaje tyle informacji co Azureus zuzywając nieporównywalnie mniej zasobów. To że się da, nie znaczy że trzeba. Jeśli nie ma dobrej alternatywy, ludzie będą używać zamulacza. Ale jeśli się pojawi, od razu zdobędzie dużą popularność, tak jak µTorrent.

zwiń wątek userek  24 grudnia 2007 o godz. 15:26 #
Gravatar

Programy w javie sa zamulaczami gdy sie uzywa komputera z 256 ramu sprzed 5 lat. Na dzisiejszych komputerach z 1GB RAM+ azureus nie jest zadnym zamulaczem.

A zadnej alternatywy w c/c++ dla linuxa nie ma i nie bedzie.

Poza tym, gdyby bylo tak jak mowisz nikt nie uzywalby azureusa pod windowsem, a wiele osob go uzywa.

 
zwiń wątek userek  24 grudnia 2007 o godz. 15:29 #
Gravatar

Programy w javie sa zamulaczami gdy sie uzywa komputera z 256 ramu sprzed 5 lat. Na dzisiejszych komputerach z 1GB RAM+ azureus nie jest zadnym zamulaczem.

A zadnej alternatywy w c/c++ dla linuxa nie ma i nie bedzie.

Poza tym, gdyby bylo tak jak mowisz nikt nie uzywalby azureusa pod windowsem, a wiele osob go uzywa.

>Ale używanie .NET czy Javy do tworzenia programów codziennego użytku to chory pomysł. No bo po co ?

Wlasnie po to ze programy duzo pisze sie szybciej, duzo latwiej zarzadza sie kodem, robi sie duzo mniej bledow. I wcale nie sa duzo wolniejsze.

 
zwiń wątek krzychoocpp  24 grudnia 2007 o godz. 15:36 #
Gravatar

"Na dzisiejszych komputerach"… tak. Ulubiona wymówka na "Nie potrafię napisać porządnego programu/biblioteki". Tylko kiedy trzeba uruchomić jeszcze kilka programów, lub szerzej użyć biblioteki, wszystkie wady wychodzą na wierzch.

Przez długi czas używałem "niewspółczesnego" komputera i widziałem znaczące różnice wydajności między Qt a GTK, między Operą a Firefoksem, między Azureusem a Ktorrentem/µTorrentem pod Wine. Po co mam katować moje nowe C2D ? Ma inne rzeczy do roboty, np. Kompilowanie nowych wersji dobrze napisanych programów.

Co do popularności Azureusa… IE też ludzie przecież używają ?

 
zwiń wątek userek  24 grudnia 2007 o godz. 15:49 #
Gravatar

>“Na dzisiejszych komputerach”… tak. Ulubiona wymówka na “Nie potrafię napisać porządnego programu/biblioteki”.

U mnie dziala dobrze i szybko. Zajmuje wiecej ramu niz cos w c++ ale mam go wystarczajaco wiec mnie to nie interesuje. Moge miec uruchomiengo azureusa, eclipse , mysql apacza firefoxa i pare innych rzeczy, i jakos nic mi nie muli.

Tak na marginesie, jak cos bierzesz w cudzyslwo czyli cytujesz, to cytuj to co ktos napisal, a nie swoja interpretacje.

>Przez długi czas używałem “niewspółczesnego” komputera i widziałem znaczące różnice wydajności między Qt a GTK, między Operą a Firefoksem, między Azureusem a Ktorrentem/µTorrentem pod Wine.

Im lepszy sprzet tym takie roznice sa procentowo mniejsze. A to ze cos dziala wolno na zakurzonym zlomie dla mnie nie jest zadnym arugemntem.

Windows 95, tez dziala szybciej niz linux z kde na komptuerze klasy 486, wiec moze powiniennes go uzywac?

>Co do popularności Azureusa… IE też ludzie przecież używają ?

Jesli ktos uzywa IE to przewaznie dlatego "bo jest" a azureusa na wlaasne zyczenie, bo jest dobry, Widzisz roznice?

 
zwiń wątek mario  24 grudnia 2007 o godz. 16:11 #
Gravatar

@userek: "A zadnej alternatywy w c/c++ dla linuxa nie ma i nie bedzie."

Jest KTorrent – moim zdaniem bardzo dobry.

 
zwiń wątek Ponton  24 grudnia 2007 o godz. 20:18 #
Gravatar

Znam co najmniej 3 dobre alternatywy dla Azeurusa, oprócz tego konsolowego rTorrenta (sam używam, idealny dla mnie), a jak ktoś woli, to nawet uTorrent zadziała.

 
zwiń wątek bies  25 grudnia 2007 o godz. 1:42 #
Gravatar

Popieram, rTorrent — nie ma to jak podłączyć się zdalnie i w screenie ściągnąć nowy odcinek Naruto. ;)

 
zwiń wątek userek  25 grudnia 2007 o godz. 13:52 #
Gravatar

Nie oszukujmy sie nikt normlany nie bedzie uzywal czegos w stylu rTorrent, a kTorrentowi do azureusa to mu troche jednak brakuje. Jesli by szukac na sile to opera rowniez ma klienta torrent.

Jesli ktos uzywa torrenta do scagania jednego odcinka bajki, to faktycznie mozna sobie uzywac czegos typu rTorrent i myslec jakim to jest dzieki temu 31337 :P .

 
zwiń wątek bies  25 grudnia 2007 o godz. 18:41 #
Gravatar

Hint: ,,zdalnie'', ,,screen''. Azureus już to potrafi?

 
zwiń wątek userek  25 grudnia 2007 o godz. 18:52 #
Gravatar

>Hint: ,,zdalnie”, ,,screen”. Azureus już to potrafi?

Dzieki za uswiadomienie ale wiem co to jest screen. Co nie zmienia faktu ze nikt nie uzywa tego do normalneog sciagania, ale niektorych to dowartosciowuje w pewien sposob widac ;) .

 
zwiń wątek bies  25 grudnia 2007 o godz. 19:09 #
Gravatar

Czyli nie potrafi. Zatem następujący scenariusz nie przejdzie: łącze się zdalnie z pracy do domu przez ssh, puszczam ściąganie Naruto w screenie. Wracam do domu i oglądam Naruto. Nie przejdzie, zatem Azureus nie spełnia moich wymagań.

 
zwiń wątek ultr  25 grudnia 2007 o godz. 20:28 #
Gravatar

@userek

> Dzieki za uswiadomienie ale wiem co to jest screen.

> Co nie zmienia faktu ze nikt nie uzywa tego do normalneog sciagania [...]

Myślę, że wiele osób używa.

Ja również. Kiedy chcę coś wrzucić z zewnętrznego komputera, żeby mi się ściągało, to screen jest idealny.

 
zwiń wątek ja  25 grudnia 2007 o godz. 20:39 #
Gravatar

Idąc twoim tokiem myślenia, to niedługo kalkulator będzie potrzebował 1GB ramu tylko żeby się uruchomić. Te nowe komputery są takie szybkie ehh…

 
zwiń wątek witek  25 grudnia 2007 o godz. 20:52 #
Gravatar

jest nawet popularniejszy scenariusz. D domu mam łacze up 128 kpbs, down 512 kpbs, więc w dobrego serwera ciągne około 60kB/s, z torrenta może z 15kB/s "(zależy od prędkości uploadu, zawsze są jakieś przerwy, itp.). Na serwerze na którym posiadam konto shellowe dziele z innymi osobami symetryczne łącze 100Mbps. szybciej ściągnę coś przez torrenta na shella i np. przez ftp do siebie, niż bezpośrednio do siebie. Nie muszę też mieć tak długo włączonego komputera, nie wysyłam danych, więc dalej mi do przekroczenia limitu transferu na domowym łączu.

Nie ma się jednak co łudzić, szary kowalski i tak będzie wolał wyklikać. Narzędzie dobiera się do konkretnego celu, a nie cel do narzędzia.

Żeby skończyć mniej offtopicowo, to analogicznie jest z językami programowania. Jeśli projekt ma być stosunkowo prosty, używany przez dużą grupę osób (czyli rozwijany przez dużą liczbę programistów), a wydajność ma duże znaczenie, najlepszy będzie C/C++, jeśli projekt jest skomplikowany, ma służyć kilku osobom, a wydajność nie ma większego znaczenia, to lepiej wybrać któryś z bardziej wysokopoziomowych języków.

 
zwiń wątek userek  25 grudnia 2007 o godz. 20:54 #
Gravatar

>Czyli nie potrafi. Zatem następujący scenariusz nie przejdzie: łącze się zdalnie z pracy do domu przez ssh, puszczam ściąganie Naruto w screenie. Wracam do domu i oglądam Naruto. Nie przejdzie, zatem Azureus nie spełnia moich wymagań.

Tylko ze to nie kwestia tego co potrafi azureus, tylko tego co umozliwa ssh i screen. Sa inne protokoly zdalnego dostepu, co nie znaczy ze lepiej ich uzywac do sciagniecia jednego pliku.

 
 
 
 
zwiń wątek stilgar  24 grudnia 2007 o godz. 12:41 #
Gravatar

hmm… to o co wlasciwie chodzi w tym calym mono czy dotnecie – jak napisze program w C++ to tez moge go sobie przekompilowac pod innym systemem…

a w Javie dziala po prostu, bez potrzeby rekompilacji…

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek obi_gl  24 grudnia 2007 o godz. 13:26 #
Gravatar

w dotnet też nie trzeba rekompilować.

zwiń wątek stilgar  24 grudnia 2007 o godz. 14:14 #
Gravatar

to dlaczego Paint.NET nie dziala pod linuksem?

zwiń wątek houp  24 grudnia 2007 o godz. 14:30 #
Gravatar

Bo został napisany w taki sposób, że korzysta z tego czego jeszcze nie było w Mono oraz przebija się bezpośrednio do Win32 API w niektórych sytuacjach. W Javie też tak można poprzez JNI (Java Native Interface). Jest cała masa aplikacji .NET, których nie trzeba przerabiać na inne platformy… Ale tak samo pewnie znajdą się aplikacje Java, które trzeba trochę przerobić żeby działały na czymś innym niż ulubiony system twórców danej aplikacji.

A do wszystkich, którzy narzekają na Java/.NET/… no cóż. W informatyce emocje się nie liczą – liczą się zyski i straty. Programy pisane w tych technologiach zazwyczaj działają trochę, albo dużo wolniej, ale zazwyczaj pisze się je trochę albo dużo dużo szybciej niż w innych i są trochę albo dużo dużo bardziej bezpieczne.

Nie bardzo rozumiem też czemu ktokolwiek miałby nie lubić Paint.NET (czy Mono Paint) tylko dlatego, że jest napisany w jakimś tam języku – bo akurat ten język jest "beee". Dla przeciętnego grafika (a chyba do takich osób jest to adresowane) takie sprawy nie powinny mieć znaczenia. Nawet lepiej żeby nie wiedział o tym, że jest coś takiej jak język programowania, platforma uruchomieniowa, JIT itd. Liczy się użyteczność i funkcjonalność – a tutaj Paint.NET ma naprawdę bardzo dużo do zaoferowania.

 
zwiń wątek ultr  24 grudnia 2007 o godz. 15:50 #
Gravatar

@houp

> Bo został napisany w taki sposób, że [...] przebija

> się bezpośrednio do Win32 API w niektórych sytuacjach.

Świetna "technologia" ten .net – nie udostępnia nawet tak podstawowych funkcji, żeby prosty edytor graficzny napisać – trzeba odwoływać się do API systemu.

Żałosne.

 
zwiń wątek uzytkownik  24 grudnia 2007 o godz. 15:50 #
Gravatar

Nie chodzi o język a o szybkość (grafika nie obchodzi jak program to wykonuje. Filtr ma nałożyć przed przerwą na obiad i już). Z resztą się zgodzam.

 
zwiń wątek ultr  24 grudnia 2007 o godz. 15:56 #
Gravatar

@houp

> Nie bardzo rozumiem też czemu ktokolwiek miałby

> nie lubić Paint.NET (czy Mono Paint) tylko dlatego,

> że jest napisany w jakimś tam języku –

> bo akurat ten język jest “beee”.

Bo wyobraź sobie, że ten język nie jest "beee", bo jest od MS, ale podobnie jak java zaczyna być normalnością wśród developerów, choć takie podejście jest skrajnie nienormalne.

Myślałem że java będzie (i była) tymczasowym rozwiązaniem, a z punktu prawdziwego programowania raczej ciekawostką. A tu pojawia się .net, który jest wizją na kolejne lata.

Kiedy połowa waszych aplikacji to będzie java/.net, wtedy przejrzycie na oczy, jak wszystko muli i nagle wasze C2D będzie się wlokło jak P2.

Ale wszystko w imię postępu (i przenośności).

/ Sorry za podwójny komentarz, ale jestem zbulwersowany krótkowzrocznością niektórych osób :) /

 
zwiń wątek michuk  24 grudnia 2007 o godz. 15:57 #
Gravatar

O właśnie chciałem to napisać, ale widzę że houp mnie ubiegł. .NET i Java są po prostu łatwiejsze, szybciej pisze się aplikacje i są one bezpieczniejsze i stabilniejsze (same języki/środowiska mają w sobie mechanizmy sprzyjające takiemu pisaniu kodu, a często po prostu inaczej niż bezpiecznie się nie da).

Oczywiście nie jest to remedium na wszelkie zło. Dobry programista napisze bezpieczny program i w asemblerze. Ale zajmie mu to 100 razy więcej czasu, ciężko to będzie rozwijać i będzie zdecydowanie mniej przenośne.

Myślę, że chcemy tego czy nie — przyszłość to .NET i Java oraz języki skryptowe i języki systemowe do specyficznych zasosowań.

 
zwiń wątek houp  24 grudnia 2007 o godz. 16:24 #
Gravatar

@ultr

> Kiedy połowa waszych aplikacji to będzie java/.net, wtedy

> przejrzycie na oczy, jak wszystko muli i nagle wasze C2D

> będziesię wlokło jak P2.

Kiedy połowa "naszych" aplikacji będzie napisana w .net to już nie będzie C2D tylko coś co ma dużo rdzeni. Akurat pojawianie się javy/.net podobnie jak rosnąca popularność języków typu python/ruby to dla mnie naturalna kolej rzeczy – tak jak przesiadka z asm na c a potem na c++. Maszyny są coraz szybsze, dzięki temu można tworzyć środowiska, które zamiast być super blisko sprzętu i wyciskać z niego co się da, są super blisko programisty i po prostu ułatwiają życie. I nie uważam, że ktokolwiek sądzi dzisiaj poważnie – z punktu widzenia biznesu czy też branży IT, że java albo .net są tylko "na chwilę". Oczywiście nie będą też nigdy "na zawsze" ale to inna sprawa.

>Świetna “technologia” ten .net – nie udostępnia nawet tak

>podstawowych funkcji, żeby prosty edytor graficzny napisać –

>trzeba odwoływać się do API systemu.

>Żałosne.

Po pierwsze jest to technologia bez "". Po drugie program o którym mówimy to nie jest prosty edytor graficzny, tylko raczej dość nieprosty. Po trzecie użycie API systemu to świadomy wybór twórców Paint.NET a nie wymaganie platformy .NET. Po czwarte mamy tu typową sytuację "coś za coś" – twórcom chodziło o to, żeby program możliwie dobrze integrował się z systemem Windows więc użyli kawałków jego API, tracąc tym samym łatwą przenośność. Gdyby stwierdzili, że robią program dla wszystkich systemów to pewnie postąpili by inaczej. Ale są wolni – tak samo jak i my – i mogą podejmować nawet głupie decyzje. Jak łatwo wywnioskować z bloga Miguela – całość odwołań do API jest w jednym oddzielnym pakiecie i właśnie to zostało przeportowane żeby było przenośne i tyle.

@uzytkownik

>Nie chodzi o język a o szybkość (grafika nie obchodzi jak

>program to wykonuje. Filtr ma nałożyć przed przerwą na obiad i

>już). Z resztą się zgodzam.

Ok. Rozumiem. Zgadzam się w 100%, że programy w .NET są z reguły wolniejsze. Ale pytanie o ile wolniejsze. Na codzień używam Photoshopa, który stanowczo nie jest napisany w .NET ;) i jest bardzo wydajny. Próbowałem Paint.NET i w niewielkich projektach prędkość jest znośna. W dużych jest gorzej. Ale z tego co wiem GIMP, który również nie jest napisany w .NET, w przypadku dużych rozdzielczości radzi sobie raczej średnio.

Tak czy inaczej wydaje się, że podejście typu – piszemy wszystko w języku zarządzalnym (C#, Java… cokolwiek) a to co musi być super szybkie (np. wspomniane filtry) przepisujemy w C++ (albo rzucamy na GPU na przykład) – ma obecnie największy potencjał.

 
zwiń wątek tomek  24 grudnia 2007 o godz. 16:29 #
Gravatar

nie wiem jak tam z tym dot netem, ale java służy do pisania aplikacji i apletów internetowych. Używanie javy do pisania programów działających tylko lokalnie to jest jakieś nieporozumienie (obecnie wyjątkiem są telefony komórkowe i temu podobne)…

 
zwiń wątek ultr  24 grudnia 2007 o godz. 16:30 #
Gravatar

@michuk

Nie wiem czy takie łatwiejsze. Qt jest proste, a nie ma nawet porządnego IDE.

> Dobry programista napisze bezpieczny program i w asemblerze.

> Ale zajmie mu to 100 razy więcej czasu,

Niby dlaczego pisanie tej samej rzeczy w Javie czy Qt ma zabrać różną ilość czasu? Jeżeli się zna dany język, to programuje się porównywalnie szybko.

> ciężko to będzie rozwijać

To zależy, jak to zostanie napisane. Fakt – tutaj java wymusza pisanie łatwo rozszerzalnego kodu. Czyli mam rozumieć, że dziś na programistów jest bat potrzeby, żeby dobry kod pisali?

> i będzie zdecydowanie mniej przenośne.

Ale przynajmniej nie będzie pseudoprzenośne. Jeżeli zostanie dobrze (poprawnie) napisane, to wystarczy rekompilacja. W tych miejscach, gdzie nie ma przenośności (np. format ścieżek pomiędzy unix a dos) Java też nic nie pomoże. A w C++ i tak wystarczy kilka #define i problem z głowy.

> Myślę, że chcemy tego czy nie —

> przyszłość to .NET i Java

Owszem, jeżeli każdy będzie przytakiwał – to z pewnością.

Myślę, że zaczyna szerzyć się moda na przenośność – i tacy producenci, który dotychczas pisali jedynie dla windowsa, mają wybór: albo prawdziwe pisanie przenośnych programów, albo ominięcie problemów za pomocą javy/.net.

Jeżeli wszędzie zobaczą komentarze, jakie to wspaniałe i przyszłościowe rozwiązania, to zgadnijcie, co wybiorą?

Java/.net powinna być traktowana jak VB. Zastępcze rozwiązania dla małych niekrytycznych programików.

 
zwiń wątek stilgar  24 grudnia 2007 o godz. 16:36 #
Gravatar

a jakie sa te mechanizmy, ktore wymuszaja bezpieczne programowanie w Javie/dotnecie ?

 
zwiń wątek userek  24 grudnia 2007 o godz. 20:14 #
Gravatar

Chociazby obsluga wyjatkow.

 
zwiń wątek stilgar  24 grudnia 2007 o godz. 20:28 #
Gravatar

i niby nie ma tego w C++ ?

zreszta, wyjatki nic nie wymuszaja, mozna programowac bez nich. ba, mozna je ignorowac

 
zwiń wątek arturz  24 grudnia 2007 o godz. 20:48 #
Gravatar

@stilgar: Są. W Javie łapanie wyjątków jest obowiązkowe (tych nie RuntimeException) także musisz je obsługiwać – niby nic a jednak programista jest zmuszony do obsłużenia wyjątków.

 
zwiń wątek stilgar  24 grudnia 2007 o godz. 21:22 #
Gravatar

w C++ tez jest obowiazkowe – jak nie bedziesz lapac, to program sie wysypie. i tak samo jak w Javie mozesz lapac wszystkie wyjatki i nie reagowac na nie…

wiec leniwy programista moze bez problemu zrobic blok

try

{

//kod wyrzucajacy wyjatki

}

catch (…)

{

//do nothing

}

i co, niby mamy obowiazkowe wyjatki, ale wcale program nie stal sie bezpieczniejszy, wszystkie zignorowane. Oczywiscie, programista musi pojac decyzje o tym, ze wyjatki bedzie ignorowal, samo sie nie zrobi – ale slaby programista, ktory nie bardzo sie na programowaniu zna, bedzie ignorowal wyjatki, bo nie bedzie wiedzial co z nimi zrobic.

I gdzie tu to wymuszone bezpieczenstwo?

Podsumowujac – i w Javie i w C++ masz taka sama obsluge wyjatkow – ergo, jak to przemawia na korzysc Javy?

 
zwiń wątek mario  24 grudnia 2007 o godz. 21:53 #
Gravatar

@stilgar: brak wskaźników, możliwości odwołania się do komórki o podanym adresie. Kontrola absolutnie wszystkiego, na poziomie kompilacji. Tablica jest obiektem pamiętającym jej rozmiar, zapisanie czegoś pod nieistniejący indeks (adres) skutkuje zgłoszeniem IndexOutOfBoundsExceotion, a nie wyjątkiem ochrony pamięci, przez co nie możliwe jest zrobienie programu w Javie z błędem typu BufferOverflow.

@ultr: pisałem w ASM (x86, 6502, 8051), C/C++ i Java, projektuję i piszę aplikacje zawodowo i komercyjnie. Z mojego doświadczenia mogę CI powiedzieć szczerze, w Javie napiszesz program o wiele wiele szybciej, jeśli ja mam pisać aplikację dla biznesu to pierwsza myśl to Java, a serwerowe aplikacje piszę tylko w Javie i inne rozwiązania nie wchodzą w grę bez konkretnego uzasadnienia.

Dlaczego Java? :

- przenośność

- bezpieczeństwo

- szybkość szukania błędów

- jednolite i bogate API standardowe

Na serwerach nie ma znaczenia czy program działa szybko czy wolno, zazwyczaj maszyna i tak jest na wyrost. Ważne aby aplikacje napisać w miarę szybko i bardzo szybko móc zdiagnozować problem i poprawić.

W Javie jak się wysypie program masz pełnego stack trace'a, który rozwiązuje 90% problemów, w C/C++ masz info, że program wykonał nieprawidłową operację. Po co więc mam ryzykować i dawać klientowi aplikację w C i potem modlić się abym mógł z logów wywnioskować dlaczego się wysypał, zamiast aplikację, która w momencie wysypania się daje mi pełne info. Tak w Javie pisze się o wiele szybciej i to nie podlega dyskusji.

Dlaczego w C++ pisze się wolniej:

- musisz osobno utrzymywać pliki nagłówkowe i źródłowe, np. modyfikujesz parametr w metodzie, to musisz to robić 2 razy w 2 osobnych plikach, piszesz nową metodę to też 2 razy piszesz raz deklarację, potem definicję.

- API jest bardzo ubogie, nie ma standardu co do obsługi socketów, plików ZIP, protokołów internetowych typu HTTP – Java ma to wszystko w podstawowym API

- API Javy jest prawdziwie obiektowym API, niestety ale w C++ inaczej się czyta z pliku, z socketa, z ZIPa z HTTP ….. metody oparte o strumienie Javy mogą nie wiedzieć z czego czytają czy do czego zapisują, dlatego w Javie łatwiej zaprojektować uniwersalne metody.

- C++ nie ma żadnego GUI w standardzie, Java ma SWINGa, który działa wszędzie

- mechanizm exceptionów w Javie jest o wiele lepiej skonstruowany w C++ w Windows w pliku DLL nie złapiesz exceptiona

 
zwiń wątek userek  24 grudnia 2007 o godz. 21:56 #
Gravatar

>nie wiem jak tam z tym dot netem, ale java służy do pisania aplikacji i apletów internetowych.

Widze, ze kolejny expert sie wypowiada. Java sluzy do tego to czego chce sie jej uzyc, a applety akurat sa na wymarciu.

To ze najczesciej jet uzywana j2ee nie wyklucza innych uzyc. Mozna z powodzeniem nawet piasc gry 3d i powstalo pare takich.

>zreszta, wyjatki nic nie wymuszaja, mozna programowac bez nich. ba, mozna je ignorowac

Tak jak kolega napisal wyzej, w c++ mozna je ignorowac, w javie nie. Poza tym operowanie na wskaznikach tez daje mozliwosc popelnienia bledow ktorych w javie nie da sie popelnic.

 
zwiń wątek stilgar  24 grudnia 2007 o godz. 22:09 #
Gravatar

W Javie łapanie wyjątków jest obowiązkowe (tych nie RuntimeException) także musisz je obsługiwać – niby nic a jednak programista jest zmuszony do obsłużenia wyjątków.

Jak programista jest leniem, to moze zawsze lapac wyjatki i je ignorowac. Wiec wymuszenia bezpieczenstwa nie ma.

- musisz osobno utrzymywać pliki nagłówkowe i źródłowe, np. modyfikujesz parametr w metodzie, to musisz to robić 2 razy w 2 osobnych plikach, piszesz nową metodę to też 2 razy piszesz raz deklarację, potem definicję.

Jak sie pisze w edytorze typu nano czy vim to istatonie moze byc to problemem – ale w KDevelopie to zaden problem, wszystko robi sie samo i to bardzo wygodnie.

A rozdzielenie od siebie deklaracji i implementacji ma wielka zalete – jak widzisz opis klasy, masz po prostu wypisane jej zmienne i metody – szybko mozesz sie zorientowac co ta klasa robi i jakie metody sa jakie – a w javie musisz przebrnac przez tony implementacji…

zreszta, nikt ci nie broni pisac w C++ w ten sam sposob co w javie…

- API jest bardzo ubogie, nie ma standardu co do obsługi socketów, plików ZIP, protokołów internetowych typu HTTP – Java ma to wszystko w podstawowym API

Czesciowo sie zgodze – API Javy jest bardzo rozlegle, swietnie udokumentowane, po prostu sama przyjemnosc – az do momentu, kiedy chce sie uzyc czegos, czego nie ma w standardowym zestawie – np. OpenGL – zeby zmusic JOGLa do dzialania, musialem sie niezle nameczyc… w C++ wystarczyl include i -lGL w opcjach kompilacji

C++ nie ma żadnego GUI w standardzie, Java ma SWINGa, który działa wszędzie

a w C++ masz wybor :) mozesz uzywac Qt, ktore dziala wszedzie, mozesz uzywac GTK

Tak jak kolega napisal wyzej, w c++ mozna je ignorowac, w javie nie. Poza tym operowanie na wskaznikach tez daje mozliwosc popelnienia bledow ktorych w javie nie da sie popelnic.

Mozna ignorowac tak samo w C++ jak w javie – robisz pustego catch i juz

 
zwiń wątek userek  24 grudnia 2007 o godz. 22:25 #
Gravatar

>- az do momentu, kiedy chce sie uzyc czegos, czego nie ma w standardowym zestawie – np. OpenGL – zeby zmusic JOGLa do dzialania, musialem sie niezle nameczyc…

Coz tak to zwykle bywa jesli nie do konca wie sie co sie robi, bo tak na prawde to nie ma w tym nic skomplikowanego – kwestia dwoch rzeczy, przy ktorych wcale nie trzeba sie nameczyc.

>Mozna ignorowac tak samo w C++ jak w javie – robisz pustego catch i juz

Chyba nie rozumiesz ,ze w c++ nie ma obowiazku obslugiwania wyjatkow, w javie jest.

 
zwiń wątek arturz  24 grudnia 2007 o godz. 22:28 #
Gravatar

Jak sie pisze w edytorze typu nano czy vim to istatonie moze byc to problemem – ale w KDevelopie to zaden problem, wszystko robi sie samo i to bardzo wygodnie.

A rozdzielenie od siebie deklaracji i implementacji ma wielka zalete – jak widzisz opis klasy, masz po prostu wypisane jej zmienne i metody – szybko mozesz sie zorientowac co ta klasa robi i jakie metody sa jakie – a w javie musisz przebrnac przez tony implementacji…

Co to za zaleta. Od takich rzeczy jest IDE. Cały wygląd klasy masz w outline a do tego w kontekstowym Javadocu. KDevelop potrafi czytać Doxygena ze źródeł i od razu podpowiadać? KDevelop w porównaniu do NetBeans czy Eclipse to porażka.

a w C++ masz wybor :) mozesz uzywac Qt, ktore dziala wszedzie, mozesz uzywac GTK

Tyle że Qt musisz sobie kupić by rozwijać komercyjne aplikacje.

Mozna ignorowac tak samo w C++ jak w javie – robisz pustego catch i juz

Nie tak samo. W C++ nie masz wymuszonego złapania wyjątku a rozwiązanie podane przez Ciebie zachowa się inaczej niż nie złapanie wyjątku w ogóle.

 
zwiń wątek stilgar  24 grudnia 2007 o godz. 22:38 #
Gravatar

>Mozna ignorowac tak samo w C++ jak w javie – robisz pustego catch i juz

Chyba nie rozumiesz ,ze w c++ nie ma obowiazku obslugiwania wyjatkow, w javie jest.

Nie zlapanie wyjatku w C++ powoduje wysypanie sie calego programu.

 
zwiń wątek userek  24 grudnia 2007 o godz. 22:42 #
Gravatar

>Nie zlapanie wyjatku w C++ powoduje wysypanie sie calego programu.

Jesli wystapi, jesli nie to sie nie wysypie przeciez. W javie bez zlapania wyjatku program sie nie skompiluje i o to chodzi.

 
zwiń wątek arturz  24 grudnia 2007 o godz. 22:48 #
Gravatar

Nie zlapanie wyjatku w C++ powoduje wysypanie sie calego programu.

Ale nadal nie rozumiesz o co chodzi z łapaniem/nie łapaniem wyjątków. Chodzi o obsługiwanie w stosowny sposób sytuacji wyjątkowych i normalne kontynuowanie programu.

Zauważ że:

<code>

try {

foo();

} catch (…) {}

</code>

to co innego niż:

<code>

foo(); // bez złapania wyjątku

</code>

 
zwiń wątek jakub007  24 grudnia 2007 o godz. 23:03 #
Gravatar

> W tych miejscach, gdzie nie ma przenośności (np. format > ścieżek pomiędzy unix a dos) Java też nic nie pomoże.

@ultr

Widze, ze nie umiesz programowac w Javie i nie masz

o niej zbyt duzego pojecia:

java.io.File.separator

 
zwiń wątek citan  25 grudnia 2007 o godz. 0:03 #
Gravatar

Niby dlaczego pisanie tej samej rzeczy w Javie czy Qt ma zabrać różną ilość czasu? Jeżeli się zna dany język, to programuje się porównywalnie szybko.

Dlatego, że na 10 programistów na 3 lata kilku zmieni pracę, trzeba będzie znaleźć osobę, którą da się szybko wdrożyć.

To zależy, jak to zostanie napisane. Fakt – tutaj java wymusza pisanie łatwo rozszerzalnego kodu. Czyli mam rozumieć, że dziś na programistów jest bat potrzeby, żeby dobry kod pisali.

Jedno jest pewne, zostanie to napisane szybko. Bat/minimalne zapewnienie jakości – nazywaj to jak chcesz.

Ale przynajmniej nie będzie pseudoprzenośne.

Co to znaczy?

Jeżeli zostanie dobrze (poprawnie) napisane, to wystarczy rekompilacja.

Tak, szczególnie, gdy ktoś 3 lata wcześniej dla wygody użył win32 API, albo gdy po prostu aplikacja w związku z postawionymi odgórnie wymaganiami w win32 została napisana.

W tych miejscach, gdzie nie ma przenośności (np. format ścieżek pomiędzy unix a dos) Java też nic nie pomoże. A w C++ i tak wystarczy kilka #define i problem z głowy.

Pisałeś coś w Javie kiedyś? Wygląda na to, że nie. (mała podpowiedź… zajrzyj do System.getProperties())

Owszem, jeżeli każdy będzie przytakiwał – to z pewnością.

Przytakiwanie, myślisz, że to przez to sporo dużych aplikacji pisze się w Javie? Jak Ty sobie to wyobrażasz?

Myślę, że zaczyna szerzyć się moda na przenośność – i tacy producenci, który dotychczas pisali jedynie dla windowsa, mają wybór: albo prawdziwe pisanie przenośnych programów, albo ominięcie problemów za pomocą javy/.net.

Java zapewnia przenośność – to nie moda, to też nie sposób na ominięcie problemów, to wymagania klientów. I wsparcie dużego producenta oprogramowania.

Jeżeli wszędzie zobaczą komentarze, jakie to wspaniałe i przyszłościowe rozwiązania, to zgadnijcie, co wybiorą?

Java/.net powinna być traktowana jak VB. Zastępcze rozwiązania dla małych niekrytycznych programików.

Kto managerzy, tak siedzą teraz na osnews i czytają Twoje komentarze i lamentują, że powinno być jednak w C++ i QT? Udał Ci się żart.

 
zwiń wątek bies  25 grudnia 2007 o godz. 2:00 #
Gravatar

Hmm, Java nie wymusza wyłapania wyjątków w momencie ich wystąpienia (gdyby tak było mechanizm wyjątków w Javie byłby kompletnie popsuty). Wystarczy zadeklarować, że metoda ,,throws Exception''. Bo zazwyczaj ciężko zareagować na wyjątek na poziomie abstrakcji wywołania konkretnej funkcji. Należy to zrobić wyżej w hierarchii — np. ubić cały wątek który ,,zbłądził''. Jedyne co Java ma to statyczne typowanie wyjątków. C++ ma dynamiczne. Co o tyle jest dziwne, że to Java jest bardziej dynamicznym językiem.

.

Ziew, strasznie dużo bzdur napisaliście (i o Javie, i o C++). Na pl.comp.lang.c i pl.comp.programming są często flame'y nt. ,,C++ vs. Java'' — polecam poczytać. Można dowiedzieć się wielu ciekawych rzeczy o językach które, we własnym mniemaniu, się zna.

 
zwiń wątek userek  25 grudnia 2007 o godz. 13:39 #
Gravatar

>Wystarczy zadeklarować, że metoda ,,throws Exception”.

Whatever szczegol, nie zmienia to faktu ze java wymusza obsluge wyjatku a c++ nie.

 
zwiń wątek arturz  25 grudnia 2007 o godz. 13:44 #
Gravatar

@bies: Nie rozumiem co masz na myśli? Przecież opisałem że wyjątki RuntimeException nie muszą być deklarowane w 'throws' sygnatury metody, ani nie muszą być łapane w kodzie (wtedy wyjątek przekazywany jest do góry aż trafi do miejsca gdzie program się zaczął i jest wykonywane printStackTrace() na wyjątku). Niestety nie rozumiem co masz na myśli w:

Bo zazwyczaj ciężko zareagować na wyjątek na poziomie abstrakcji wywołania konkretnej funkcji. Należy to zrobić wyżej w hierarchii — np. ubić cały wątek który ,,zbłądził”. Jedyne co Java ma to statyczne typowanie wyjątków. C++ ma dynamiczne.

To powiedz jak wg. Ciebie powinny wyglądać wyjątki w Javie żeby mogły zaliczyć się do systemy wyjątków "bardziej dynamicznego języka"?

 
zwiń wątek bies  25 grudnia 2007 o godz. 18:59 #
Gravatar

Obrazowo: masz pulę połączeń z klientami. Na pewnym etapie jednego z połączeń występuje błąd i jest sygnalizowany wyjątkiem. Sam obiekt połączenia nie ma wystarczających kompetencji aby taki wyjątek obsłużyć i musi przekazać go wyżej. Dopiero obiekt zarządcy połączeń (opiekujący się całą pulą) może wyłapać wyjątek i ubić popsute połączenie, i uzupełnić pulę.

.

To czy wyjątek będzie dzieckiem RuntimeException to właściwie nie ma znaczenia. Tzn. nie miałoby znaczenia gdyby nie statyczne sprawdzanie obsługi wyjątków. I teraz masz pewną rozbieżność — dzieci RuntimeException lecą w górę bez deklaracji a inne wyjątki musisz deklarować. Przykładem takich wyjątków są wszystkie dzieci IOException. To są typowe wyjątki czasu wykonania ale nie dziedziczą po RuntimeException.

.

A w dynamicznych językach wyjątki zazwyczaj latają bez potrzeby wyliczania. Z drugiej strony są takie wyjątki jak InterruptedException, które warto sprawdzać statycznie (choćby dając ostrzeżenia kompilatora).

 
zwiń wątek citan  25 grudnia 2007 o godz. 22:19 #
Gravatar

Dobry inżynier jest w stanie przewidzieć taką sytuację i nie będzię ona RuntimeException, co spowoduje dalsze konsekwencje…

 
zwiń wątek Maciek  26 grudnia 2007 o godz. 2:32 #
Gravatar

Co do Javy:

Paradoksalnie właśnie w zastosowaniach serwerowych często jest dużo miejsca na… języki normalne. Jeśli w języku normalnym program będzie konsumował 20% mniej zasobów, to już będzie można kupić 20% mniej hardware. Jeśli nawet napisanie w języku normalnym będzie trwało 2 razy więcej czasu, to się zatrudni programistów 2 razy dłużej, wybuli dodatkowy milion złotych, ale zysk z tego tytułu będzie wprost proporcjonalny do skali rozwiązania.

A na domowych komputerach… no cóż… nie ma dla Javy miejsca w ogóle. to zamulacz i tyle. Ale akurat nieliczenie się z zasobami sprzętowymi to taka widzę nowa moda. To co, że na domowym komputerze nie ruszy? dokupi użytkownik 4 razy więcej pamięci i ruszy. No przecież takie podejście do sprawy jest… niepoważne.

 
zwiń wątek michuk  26 grudnia 2007 o godz. 15:51 #
Gravatar

@Maciek: ale faktycznie w 95% zastosowań (strzelam)cena sprzętu są o rząd wielkości mniejsza niż pensja programisty. Dlatego opłaca się minimalizować czas programisty, nawet jeśli kod nie będzie optymalny i potrzeba będzie do jego odpalenia klastra z 3 serwerami, zamiast dwóch.

Tylko w zastosowaniach, które naprawdę muszą się świetnie skalować (np na setki tysięcy maszyn) oraz w przypadku aplikacji instalowanych na komputerze end-usera optymalizacja kodu jest istotna i tu warto poświęcić pieniądze na dobrego programistę.

Takie życie.

 
zwiń wątek Maciek  26 grudnia 2007 o godz. 16:07 #
Gravatar

michuk: Oczywiście zgoda! Z resztą jeśli n.p. program nie jest "ciężki obliczeniowo", to i … mniejszy jest pożytek z podwojenia szybkości.

 
zwiń wątek userek  26 grudnia 2007 o godz. 16:25 #
Gravatar

>Z resztą jeśli n.p. program nie jest “ciężki obliczeniowo”, to i … mniejszy jest pożytek z podwojenia szybkości.

Czyli uwazasz ze cos napisane w c/c++ jest dwa razy szybsze od tego samego w javie?

 
zwiń wątek stilgar  26 grudnia 2007 o godz. 16:53 #
Gravatar

@michuk

koszt sprzetu o rzad wielkosci mniejszy od plac programistow? serio? to juz sie ciesze, ze sobie taki zawod wybralem ;-)

a na serio: programista dostaje 100k zl za napisanie softu, ktory bedzie odpalany na serwerze za 10k ? no, oczywiscie, to zalezy jaki to soft, jak caly system operacyjny, to pewnie i takie sa proporcje… ale jak ktos zamawia program do obslugi firmy, ktory instaluje na kilku-kilkunastu komputerach w firmie, to jeszcze nie widzialem, zeby placil za niego kilkaset tysiecy zl, raczej kilka…

chociaz ( tu nawiaze do dyskusji z innego watku ) jesli piszesz programy, ktore maja po kilka mln linii kodu, to pewnie i wynagrodzenie jest odpowiednie…

 
zwiń wątek Maciek  26 grudnia 2007 o godz. 17:25 #
Gravatar

> Czyli uwazasz ze cos napisane w c/c++ jest dwa razy szybsze od tego samego w javie?

Tak dobrze to nie ma :)

 
zwiń wątek luk  26 grudnia 2007 o godz. 18:15 #
Gravatar

> a na serio: programista dostaje 100k zl za napisanie softu, ktory bedzie odpalany na serwerze za 10k ? no, oczywiscie, to zalezy jaki to soft, jak caly system operacyjny, to pewnie i takie sa proporcje…

Moja firma jest właśnie w trakcie zamawiania dedykowanego systemu ERP. W firmie jest około 20 komputerów, na których będzie działać + około 10 przedstawicieli w trasie. W 100k raczej nie wyrobimy się. Serwer, na którym będzie działać napewno będzie sporo tańszy.

>ale jak ktos zamawia program do obslugi firmy, ktory instaluje na kilku-kilkunastu komputerach w firmie, to jeszcze nie widzialem, zeby placil za niego kilkaset tysiecy zl, raczej kilka…

Widocznie niewiele widziałeś. Nie wiem skąd wymyśliłeś te "kilka" tysięcy na dedykowany soft. Może jeśli studenci piszą go w akademiku to cena jest niewielka, ale jakość takiego kodu będzie proporcjonalna do ceny.

 
zwiń wątek mario  29 grudnia 2007 o godz. 15:37 #
Gravatar

@stilgar: duże systemy pisze się długo – wiele miesięcy – policz sobie np. zapłacenie pensji 10 dobrym programistom po np. 4k zł + podatki przez rok albo i dłużej (bo. tyle powstają duże systemy). Bez podatków jest to 480 000 zł za rok, z podatkami grubo ponad 600 000 zł – cena sprzętu przy tym to w większości przypadków jest nic, a cena systemu operacyjnego – nawet najdroższego Windowsa to darmocha! Tym bardziej, że za rok i tak sprzęt będzie tańszy, a programista za rok będzie chciał tyle samo albo i nawet więcej ;-) .

 
zwiń wątek stilgar  29 grudnia 2007 o godz. 16:45 #
Gravatar

tak tak, macie racje

po prostu mialem na mysli mniejszy kaliber projektow

 
 
 
zwiń wątek zuzia  24 grudnia 2007 o godz. 23:13 #
Gravatar

> hmm… to o co wlasciwie chodzi w tym calym mono czy dotnecie – jak napisze

> program w C++ to tez moge go sobie przekompilowac pod innym systemem…

>

> a w Javie dziala po prostu, bez potrzeby rekompilacji…

W dotniecie zasadniczo chodzi o to samo co w zjawie, novum jest tu brak podstawowej wady javy, którą jest konieczność pisania w javie. W dotnecie można pisać w zasadzie dowolnym języku, warunkiem jest istnienie kompilatora tegoż języka do CIL-a (dotnetowy bajtkod). Programy dla dotneta można pisać w basicu, c, pascalu, jak również, o zgrozo, w javie. Oczywiście lista ta krótka nie wyczerpuje wszystkich języków.

zwiń wątek michuk  24 grudnia 2007 o godz. 23:23 #
Gravatar

@zuzia: Java ma identyczny mechanizm. Możesz pisać w Python, JavaScript, Groovy, Scheme czy Ruby i odpalać te aplikacje na JVM po skompilowaniu do bajtkodu Javy.

 
zwiń wątek Budyń  28 grudnia 2007 o godz. 18:00 #
Gravatar

Java : jeden jezyk, wiele platform.

.NET : wiele języków, JEDNA platforma

Technologicznie może i pokrewne, ale doktrynalnie to przeciwne kierunki. Z czasem na JVM przeniesiono inne języki, ale to raczej hobbystyczna robota.

zwiń wątek mario  2 stycznia 2008 o godz. 16:47 #
Gravatar

Co nie zmienia faktu, że wirtualna maszyna .NET, czyli CLR ma praktycznie skopiowaną listę rozkazów z JavaVM, tym samym technicznie kompilowanie z innych języków do bytecodeu JavaVM nie jest problemem, niezależnie od tego jakiej otoczki marketingowej by wokół tego nie zbudować.

 
 
 
 
zwiń wątek soda2  24 grudnia 2007 o godz. 12:47 #
Gravatar

nie umiem tego zainstalować ;/ wywala mi jakiś błąd 1 i błąd 2 0.o ;(

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek patpi  24 grudnia 2007 o godz. 13:09 #
Gravatar

u mnie nie przechodzi make. Szkoda. GIMP ssie.

 
zwiń wątek renq  24 grudnia 2007 o godz. 13:23 #
Gravatar

Nie wiem jak u Was, ale u mnie pojawia się dokładnie ta sytuacja. Brakuje pliku System.Xml.Linq.

zwiń wątek patpi  24 grudnia 2007 o godz. 17:10 #
Gravatar

dokladnie to mam :)

 
 
 
zwiń wątek k2  24 grudnia 2007 o godz. 13:05 #
Gravatar

Do tych co narzekają na java albo .net-> dlaczego nie piszecie w assemblerze?Przecież będzie szybko i wydajnie hehe

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Void  24 grudnia 2007 o godz. 13:54 #
Gravatar

Tak się śmiesznie składa, że pisałem w assemblerze x86 przez dobrych parę lat, i w razie czego po dziś dzień mam gotowe routines pod parę różnych technologii (MMX, 3DNow!) do wykonywania krytycznych fragmentów obliczeń (operacje macierzowe itp.), a nawet jeśli jakichś mi brak, to wiem gdzie mogę je znaleźć (MPlayer chociażby). Uwaga wielokrotnie w komentarzach sformułowana jest co najmniej trafna (pisanie aplikacji typu Photoshop w Java/.NET to trochę mijanie się z celem zastosowania tych języków IMO), natomiast pytanie postawione przez Ciebie jest co najmniej trollowate, bo każdy, nawet najbardziej zielony developer wie, że odpowiednie języki stosuje się do odpowiednich projektów, i tak, owszem, można napisać KDE w asemblerze, tylko czy stwarza to sens wydajnościowy? Jak dobrze wiadomo, nie, podobnie jak nie stwarza sensu wydajnościowego pisanie KDE w, nie wiem, PHP. :]

Jeśli moja argumentacja Cię nie przekonuje, to zadaj to pytanie na LKML. No chyba że tylko bawisz się w Jasia Śmietanę.

zwiń wątek userek  24 grudnia 2007 o godz. 15:31 #
Gravatar

>(pisanie aplikacji typu Photoshop w Java/.NET to trochę mijanie się z celem zastosowania tych języków IMO)

To tez jest trollowanie. Rzucasz haslo, nie podajesz zadnych argumentow.

 
zwiń wątek mario  25 grudnia 2007 o godz. 2:28 #
Gravatar

"pisanie aplikacji typu Photoshop w Java/.NET to trochę mijanie się z celem zastosowania tych języków IMO"

Nie koniecznie! Interfejs może być w Javie, a pluginy (filtry etc) mogą być pisane uniwersalnie, nawet w assemblerze, przy zachowaniu wersji w Javie dla pełnej kompatybilności. Wtedy dostajesz od ręki działające narzędzie, które będzie działać na wszystkich platformach, a dodatkowo możesz zoptymalizować pewne fragmenty pod najczęściej używane architektury.

Mnie wiele razy zdarzyło się wywalenie GIMPa – w odpowiedzi dostałem tylko "Segmentation fault", zamiast pełnego stosu wywołań z nazwami plików/metod i numerami linii w kodzie, co standardowo generuje VM Javy w przypadku dowolnego wyjątku. Ta informacja w 95% pozwala błyskawicznie poprawić błąd, niestety w C++ nadal one będą a user po prostu włączy program drugi raz. VM Javy ma jeszcze jedną zaletę, pozwala niezmodyfikowany program uruchomić z otwartym portem dla debuggera, wtedy developer może podłączyć się debuggerem zdalnie i sprawdzić dlaczego nie działa – to przydaje się zwłaszcza w biznesie, gdzie aplikacje stoją na serwerze.

zwiń wątek Maciek  26 grudnia 2007 o godz. 2:59 #
Gravatar

hm… przekonywująca argumentacja… choć co do tego stack trace, to wystarczy w C… zarejestrować stosowną funkcję onexit albo jakiś skrypt inicjalizacyjny, który wymusi core dump w razie segmentation faulta ;-)

 
 
 
zwiń wątek uzytkownik  24 grudnia 2007 o godz. 15:55 #
Gravatar

Od kiedy kompilatory C potrafią wyprodukować znacznie bardziej wydajny kod niż ten w asm to nie sądze, żeby był duży nacisk na pisanie w assemblerze (wyjątek to chyba SIMD) – a na pewno na nie więcej niż wstawki assemblerowe.

zwiń wątek bies  25 grudnia 2007 o godz. 2:03 #
Gravatar

SIMD i operacje atomowe plus bariery.

 
zwiń wątek mario  25 grudnia 2007 o godz. 2:32 #
Gravatar

"kompilatory C potrafią wyprodukować znacznie bardziej wydajny kod niż ten w asm"

To nigdy nie będzie prawdą, człowiek potrafi o wiele lepiej zoptymalizować kod niż kompilator. Oczywiście ASM nadaje się do pisania tylko krytycznych fragmentów kodu, ponieważ inne i tak nie będą odczuwalne dla użytkownika.

zwiń wątek mario  25 grudnia 2007 o godz. 23:11 #
Gravatar

No cóż po minusach widzę, że jednak większość osób jest w błędzie i nadal bezsensownie twierdzi, że kompilatory potrafią wypluć szybszy kod od dobrze dopracowanej procedurki zrobionej przez zaawansowanego kodera… hmmm ja zawsze jak przepisuje na assembler to działa szybciej macie jakiś dziwne doświadczenia, albo brak doświadczeń ;-) .

 
zwiń wątek el.pescado  26 grudnia 2007 o godz. 0:51 #
Gravatar

Nie wszystkie procedurki są dobrze dopracowane.

Nie każdy koder jest zaawansowany.

Jedno i drugie kosztuje.

Poza tym ktoś w czasach Pentium I dobrze dopracował kod i działa szybciej. W międzyczasie wychodzi MMX i trzeba przepisywać asma, żeby dalej było szybko. Potem SSE. Potem SSE2. A gcc (czy inny kompilator) robi to gratis;)

 
zwiń wątek Maciek  26 grudnia 2007 o godz. 2:57 #
Gravatar

mario: zgoda!

el.pescado : też zgoda, ale: jeśli asemblera używa się w programach użytkowych czy grach (generalnie: dla użytkownika domowego), to cel jest w tym nie taki, aby działało "jeszcze szybciej" a w tym, aby jakaś funkcjonalność była w ogóle dostępna na kompach 99% potencjalnych użytkowników. W efekcie gdy wchodzi nowa generacja sprzętu, starego kodu nie trzeba poprawiać… bo co było potrzebne, zostało już osiągnięte.

 
zwiń wątek mario  26 grudnia 2007 o godz. 11:04 #
Gravatar

@el.pescado:

"Nie wszystkie procedurki są dobrze dopracowane.

Nie każdy koder jest zaawansowany.

Jedno i drugie kosztuje."

A ja nie piszę ani o kosztach ani o dobrych i złych koderach – po prostu obalam mit – bo kompilatory nie generują lepszego kodu niż człowiek. Oczywisty jest wybór w języku tak aby wybrać język który zapewni Ci odpowiednio szybki proces powstawania programu, sam większość piszę w Javie!

"Potem SSE. Potem SSE2. A gcc (czy inny kompilator) robi to gratis;)"

GCC nigdy nie zoptymalizuje dobrze procedurki do SIMD, bo jest to ogromnie trudne. Sam kiedyś zaimplementowałem liczenie przezroczystości w MMX i było ok. 2 razy szybsze niż to co jest w bibliotece allegro. Instrukcje SIMD są proste i stworzone pod ręczne pisanie kodu a nie pod kompilatory. Kompilator powinien mieć rozszerzenia do obsługi instrukcji SIMD ze specjalnymi instrukcjami, w których zapisuje się bloki operacji w grupach inaczej to nie ma sensu.

 
 
zwiń wątek Maciek  26 grudnia 2007 o godz. 2:51 #
Gravatar

Odnoszę wrażenie, że relacja programista asemblerowiec vs. kompilator… jest mniej więcej stała. Kompilatory optymalizujące są coraz sprytniejsze, ale i procesory są coraz bardziej skomplikowane. GCC (wiem, opensourceowe badziewie, nie to, co profesjonalne narzędzia Intel czy Microsoft) prawie nigdy nie wykorzystuje pełnego zestawu możliwości x86_64, nawet jeśli nie wchodzi w grę SSE/3dNow!.

Efektywnie 20 lat temu można było w asemblerze średnio o 50% przyspieszyć każdy ambitniejszy kawałek kodu "robiąc go na asemblera"… i dzisiaj też można, mimo, że kompilatory lepsze. Tylko, że dzisiaj jest to mniej potrzebne, bo procesory są szybsze.

Ja bym (wiem, że to nienaukowe) wyróżnił 3 języki: niskiego poziomu, gdzie programista kontroluje zużycie pamięci i procesora (asembler), średniego, gdzie programista kontroluje zużycie pamięci (C, Pascal), i wysokiego, gdzie nawet użycie pamięci jest kontrolowane bardzo pośrednio (n.p. Java). Gdzie się mieści C++? biorąc pod uwagę, że można używać C++ z Garbage Collectorem? dalej w średnim poziomie. Wysoki poziom to języki interpretowane. Niezależne od sprzętu.

Czy te języki (wysokiego poziomu) są złe? nie koniecznie. Ale są złe, jeśli stawiają dużo większe wymagania co do hardware. Komputery na prawdę nie są za darmo, a domowy użytkownik to nie czytelnik CD Action, który ekscytuje się benchmarkami procków i kart graficznych by co 2 lata się upgrade'ować. Użytkownik domowy kupuje komputer raz na7 lat i liczy, że będzie mu przez te 7 lat ten komputer służył.

Co do użytkownika biznesowego, to jest to różnica, czy wystarczy instalacja za 400 tysięcy, czy trzeba wybulić 800 tysięcy, bo program jest "tak nowoczesny, że potrzebuje".

zwiń wątek tad  27 grudnia 2007 o godz. 10:41 #
Gravatar

Przebrnąłem przez te komentarze i zauważyłem, że wielu z was wysokopoziomowość kojarzy głównie z przenośnością. Dla mnie poziom języka zależy od tego jakimi "częściami" operuję rozważając program. Dlatego Java jest wyższego poziomu niż C++, bo w niej niemal wszystko jest obiektem. W C++ mamy sporo możliwości operowania na niższym poziomie. A C jest jeszcze niżej, bo tam operuję głównie na typach podstawowych czy adresach pamięci, rzadko operując strukturami "obiektowopodobnymi".

Co do przyspieszania assemblerem i porównywania własnego pisania do automatycznego kompilowania. Wielu z Was twierdzi, że zrobi szybszy kod pisząc go samych. Ale po pierwsze kompilatory nie piszą się same a piszą je ludzi i to bardzo dobrzy eksperci, po drugie Wasz kod zapewne w większości przypadków nie jest bezpieczny i łatwo go wyłożyć. A sprawdzenie każdego warunku, które sprawia, że kod jest bezpieczniejszy niestety kosztuje nas wydajność.

Co do Javy i jej szybkości. Połowę komentarzy można wywalić do kosza od razu, bo bazują na mitach o Javie a nie na realiach. Oczywiście z Javą jest związany pewien nakład obciążenia, który zwraca nam się w bezpieczeństwie. Ale nakład o którym mówicie jest wysoko przesadzony. Pracuje w branży, gdzie wykonywane są bardzo zasobożerne i czasochłonne obliczenia. Co więcej dziedzina się bardzo szybko rozwija, także programy na których bazujemy ewoluują non stop. Same programy jak i ich utrzymywanie kosztują setki tysięcy dolarów/euro. Sprzęt również bardzo szybko ewoluuje. Posiadamy programy różnych dostawców wykorzystujących różne technologie także mam możliwość porównania technologii. Również sami rozwijamy niektóre produkty lub tworzymy własne rozwiązania. Mimo mojego wielkiego sceptycyzmu do Javy po roku doświadczeń z tą technologią mogę przyznać, że w zaawansowanych rozwiązaniach obliczeniowych sprawdza się ona bardzo dobrze. W większości przypadków jesteśmy na etapie zmiksowanego wykorzystywania technologii, czyli część w Javie obsługują np. wejście/wyjście na plikach rozproszonego formatu, a obliczenia jak na razie wykonywane są na starych metodach napisanych w FORTRAN/C. Ale tendencja na dzień dzisiejszy jest jasna – kierunek Java.

 
zwiń wątek michuk  27 grudnia 2007 o godz. 13:19 #
Gravatar

Dobrze gada, dać mu wódki (a przynajmniej plusika w karmie).

 
zwiń wątek mario  28 grudnia 2007 o godz. 12:15 #
Gravatar

@tad: zgadzam się z Tobą w dużej mierze, prawie w 100%

Co do przyspieszania assemblerem i porównywania własnego pisania do automatycznego kompilowania. Wielu z Was twierdzi, że zrobi szybszy kod pisząc go samych. Ale po pierwsze kompilatory nie piszą się same a piszą je ludzi i to bardzo dobrzy eksperci,

Problem polega na tym, że stworzenie kompilatora, który dobrze będzie optymalizował do MMX, 3Dnow, SSE jest o wiele trudniejsze od dopracowania specjalizowanej procedurki w ASM – jest to na tyle trudne, że żaden kompilator tego nie potrafi! Robiłem kiedyś testy z liczeniem przezroczystości, zaimplementowałem to w C i w czystym MMX – moja procedurka w czystym MMX była wiele razy szybsza! Zgodzę się że kompilator może wygenerować dobry kod SIMD, ale język musi mieć rozszerzenia w którym zapisuje operacje na zgrupowanych liczbach, inaczej analiza problemu przez kompilator ma poziom złożoności tak wysoki, że praktycznie problem jest nieopłacalny do rozwiązania i lepiej napisać dedykowaną procedurkę w ASM.

Oczywiście niezmiernie rzadko potrzebujemy aż takiej optymalizacji, tym bardziej, że dzisiejsze karty graficzne mają o wiele większą moc obliczeniową od CPU i raczej wszystko się zrzuca na nie. Ze względu na poziom abstrakcji, bezpieczeństwo i wygodę również stosuję w ogromnej większości moich programów Javę, w komercyjnych tylko Java. Również nie zgadzam się z osobami narzekającymi na prędkość Javy, uważam ją za bardzo dobrą – moim zdaniem programy Javy mogą sprawiać wrażenie działających wolniej, ze względu na dużą ilość pamięci jaką zużywają, a tym samym są częściej swapowane.

 
 
 
 
zwiń wątek dws  24 grudnia 2007 o godz. 14:47 #
Gravatar

Trochę przerażają mnie te wymagania jeśli chodzi o Mono 1.2.6. To jest nowiutka wersja której nie znajdzie się w żadnej ze znanych mi dystrybucji (łącznie z najnowszymi typu ubuntu hardy alpha 2).

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek uzytkownik  24 grudnia 2007 o godz. 15:56 #
Gravatar

W portage jest conajmniej od 16 grudnia.

 
zwiń wątek zuzia  24 grudnia 2007 o godz. 23:06 #
Gravatar

> Trochę przerażają mnie te wymagania jeśli chodzi o Mono 1.2.6. To jest

> nowiutka wersja której nie znajdzie się w żadnej ze znanych mi dystrybucji

> (łącznie z najnowszymi typu ubuntu hardy alpha 2).

Instalujesz tylko to co jest dostępne na płytkach/ISO? Update'ów z sieci nie robisz? Ratunku.

zwiń wątek dws  25 grudnia 2007 o godz. 12:50 #
Gravatar

A kto powiedział, że nie robię?

zwiń wątek zuzia  25 grudnia 2007 o godz. 15:37 #
Gravatar

A nikt, nikt. Pogratulować zatem aktualnej dystrybucji.

 
 
zwiń wątek dws  25 grudnia 2007 o godz. 19:13 #
Gravatar

A dziękuję. To pewnie dlatego, że używam tab bardzo mało znanych dystrybucji jak Ubuntu i Fedora :-) , nie to co Ty ;-)

 
 
 
zwiń wątek arag0rn  24 grudnia 2007 o godz. 14:48 #
Gravatar

Dla mnie osobiście ważnym wydarzeniem jest też wydanie Monodevelop 1.0b3 – jeżeli ktoś zdążył się już zniechęcić do tego IDE przez notoryczne wysypywanie się w najmniej oczekiwanych momentach, to mogę z czystym sumieniem powiedzieć że warto przyjrzeć mu się jeszcze raz.

Uważam że Mono jest jednym z najważniejszych *niksowych projektów dających dostęp do całej rzeszy nowopowstających aplikacji i dziwi mnie że Apple nie chce jakoś mocniej w to wejść (chyba że czegoś nie wiem).

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek ultr  24 grudnia 2007 o godz. 16:03 #
Gravatar

Ważnym projektem dla uniksów (i reszty) to jest Qt i GTK.

Tyle że niektórzy postępowcy nadal spychają je na margines, choć jest to rozwiązanie kwestii _prawdziwej_ przenośności.

zwiń wątek arag0rn  24 grudnia 2007 o godz. 17:35 #
Gravatar

Hm, nie widzę związku między tym co napisałem a Twoją odpowiedzią (nie mówię tego złośliwie – po prostu nie bardzo rozumiem dlaczego porównujesz maszynę wirtualną z zestawami widgetów). Gtk nie rozwiąże mi np. problemu łączenia programów w Fortranie, Pythonie i C# (przykład realny).

 
zwiń wątek el.pescado  25 grudnia 2007 o godz. 0:19 #
Gravatar

No przecie jest najlepsza rzecz pod słońcem: GTK# ;)

 
 
 
zwiń wątek matiit  24 grudnia 2007 o godz. 14:59 #
Gravatar

No to czekamy na ebuilda :)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek DerDevil  24 grudnia 2007 o godz. 15:06 #
Gravatar

Paint.NET jest naprawdę niezły :)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek Gunther  24 grudnia 2007 o godz. 15:40 #
Gravatar

Póki co Gimp nie ma konkurencji (nie mówię o PS czy Corelu, chodzi o świat OpenSource). Krita niestabilna i nienadająca się do poważnej pracy (ten CMYK to promyczek, ale co mi po nim, jak program wywala bez przyczyny co kilkanaście minut), a Paint.NET nawet w pełni działającej wersji na Windows nie umywa się do Gimpa ilością funkcji i filtrów…

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek norbert_ramzes  24 grudnia 2007 o godz. 17:22 #
Gravatar

Swoją drogą proste programy do grafiki np. xpaint mają swoje poważne zalety i do niektórych rzeczy lepiej się nadają. Ileś lat temu jak używałem softu M$ to używałem zwykłego painta gdzie się da, a w ostateczności Photoshopa albo Paint Shop pro. To nie tylko moje zdanie ale też znajomych.

Co do wydajności to uważam że programista powinien o to dbać jak to tylko możliwe. Jest ku temu wiele powodów.

zwiń wątek Budyń  28 grudnia 2007 o godz. 18:03 #
Gravatar

Wydajność osiąga się przez projekt, a nie przez programistyczne wygibasy, których sam autor po kwartale nie rozumie. Programista ma pisać prosto i poprawnie.

 
 
zwiń wątek Void  24 grudnia 2007 o godz. 19:00 #
Gravatar

Spokojnie. Pierwsze koty za płoty, dajmy (pomóżmy?) aplikacji się rozwinąć. Dotnetowcy do boju ;-)

 
 
zwiń wątek citan  24 grudnia 2007 o godz. 23:03 #
Gravatar

Koledzy, troszkę dziwią mnie opinie o tym, że Java, czy .NET jest niedobry do pisania aplikacji. Z mojego doświadczenia wynika coś zupełnie innego…

Wiem, w ASM się da, w C się da, we wszystkim się da. Tylko weźcie pod uwagę, że duże projekty prowadzone są często przez kilkunastoosobowe grupy programistów – z różnym poziomem wiedzy i całkiem sporą rotacją w teamie. Stawiane są dość ostre wymagania eksportowe, a to, żeby np. projekt można było wdrożyć w Iraku. Sporo jest ograniczeń odgórnych – a to, żeby nie dorzucać żadnych bibliotek na licencji jakiejśtam, bo nikomu nie będzie się chciało sprawdzić, jakie nakłada ograniczenia. Często nie ma czasu na zrobienie czegoś dobrze, więc dobrze, żeby język pilnował, żeby zrobione było dobrze. Itd. itd. dużo się zmienia podczas pisania projektu. Java naprawdę się sprawdza w takich sytuacjach, a Sun "trzymający" ją w garści i wspierający cały proces standaryzacji setek API opartych o konkretny JSR, (certyfikacji programistów też) zapewnia sporą stabilność tego języka, dla dużych projektów przeznaczonych na kilka-kilkanaście lat jak znalazł.

Wsparcie takich gigantów jak Sun, IBM, Apache i innych (SWT, eclipse platform, ant, maven, WebSphere, JUnit, emma, spring, hibernate, itd. itd.) też pozostaje nie bez znaczenia. Weźcie to proszę pod uwagę przed napisaniem "Java ssie". ;) Aha, co może Was ucieszyć, czasami pojawia się też wymaganie, żeby działało również pod GNU/Linux.

Jak już pisałem Java może być wolniejsza, ale nie musi. Aha, używanie eclipse na 512MB jest trochę niepoważne (mówię o Java IDE [JDT]). A wszystkim, którym eclipse muli na komputerze średniej klasy współczuję (i życzę Św. Mikołaja z quadem od Intela :) )- u mnie gra i buczy, ale podobno pod MS Windows działa szybciej. ;)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Void  24 grudnia 2007 o godz. 23:37 #
Gravatar

> A wszystkim, którym eclipse muli na komputerze średniej klasy współczuję (i

> życzę Św. Mikołaja z quadem od Intela :) )- u mnie gra i buczy, ale podobno

> pod MS Windows działa szybciej. ;)

Siedzę od długiego czasu na Aptanie i przyznam, że nie widzę różnicy w prędkości pracy aplikacji pomiędzy Win32 i Linux.

zwiń wątek norbert_ramzes  24 grudnia 2007 o godz. 23:55 #
Gravatar

A ja widzę różnicę w wielu aplikacjach, również graficznych a np w PHP jest ogromna różnica w wydajności na tym samym kompie na win i Linux.

zwiń wątek k2  25 grudnia 2007 o godz. 0:24 #
Gravatar

Na czyją korzyść ?

 
zwiń wątek norbert_ramzes  25 grudnia 2007 o godz. 0:48 #
Gravatar

Na korzyść Linuksa. Różnica jest zwykle rzędu 5-12 razy.

 
zwiń wątek renq  25 grudnia 2007 o godz. 2:34 #
Gravatar

Najwyraźniej coś jest nie tak z twoim Windowsem. Na tym samym sprzęcie nie powinno być dużych różnic.

 
zwiń wątek mario  26 grudnia 2007 o godz. 0:29 #
Gravatar

sprawdź czy to PHP to jest ta sama wersja i skompilowana z podobnym poziomem optymalizacji.

 
 
 
 
zwiń wątek citan  25 grudnia 2007 o godz. 0:11 #
Gravatar

Siedzę od długiego czasu na Aptanie i przyznam, że nie widzę różnicy w prędkości pracy aplikacji pomiędzy Win32 i Linux.

Chodziło mi konkretnie o eclipse. Po prostu rozmawiałem z kimś kiedyś, kto pracował trochę na obu systemach i stwierdził, że na GNU/Linux działa mu wolniej. Ja takiej różnicy nie zauważyłem, ale kilka rzeczy w w Linuksie było w eclipse kiedyś zrobione wolniej, np. wykrywanie zmian w pliku – ale może teraz używają już jakiegoś FAM, czy coś w tym stylu nie wiem.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek mario  26 grudnia 2007 o godz. 0:37 #
Gravatar

Na Linuksie może być odczucie wolniej pracującego Eclipse, a to za sprawą GTK, które jest używane przez SWT. WinAPI jest bardziej responsywne niż GTK (Qt zresztą też), dlatego Eclipse może wydawać się pracować szybciej, ale w rzeczywistości jest to tylko złudzenie mniej responsywnego GUI.

 
 
zwiń wątek doominic  26 grudnia 2007 o godz. 0:10 #
Gravatar

A teraz z innej beczki

Ciężko przebrnąć przez te komentarze, czyta się to jak scenariusz jakiegoś serialu o programistach który wykazują swoją wyższość.

PS1.

Piszę te słowa z punktu widzenia użytkownika-głupka co na programowaniu się nie zna a jak się mu zachce coś napisać to wybiera język w którym będzie mu łatwiej to coś napisać.

PS2.

Z ortografią i gramatyką też mam problemy.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek joorek  26 grudnia 2007 o godz. 18:35 #
Gravatar

Gimp jest doskonałym programem. Mój kolega żałuje, że wybulił kupe forsy na PSa.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek mazdac  26 grudnia 2007 o godz. 21:23 #
Gravatar

@doominic:

łatwość i szybkość pisania programu jest odwrotnie proporcjonalna do szybkości jego działania.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek citan  29 grudnia 2007 o godz. 13:31 #
Gravatar

Dlaczego?

Proponuję Ci – całkiem poważnie – przyjrzeć się źródłom eclipsa, coś co jest dobrze zaprojektowane i później zaimplementowane naprawdę się sprawdza. Widać, że IBM/Eclipse foundation ma dobrych inżynierów.

 
 
zwiń wątek przemoc  28 grudnia 2007 o godz. 0:08 #
Gravatar

Ja liczę, że Pavel da kiedyś radę wydać stabilną wersję programu Pixel, który choć płatny (sensownie), byłby nie lada konkurencją dla GIMP-a. W aktualnych betach wciąż jest praktycznie nie do użytku…

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek asd  28 grudnia 2007 o godz. 1:29 #
Gravatar

Ja tam sie nie znam na tych wszystkich jezykach, komputerowych terminach i wogole ale wiem ze jakie programy nie mialem ktore do dzialania potrzebuja javy zawsze sa wolne, takie jakies niestabilne i dziwne , nie wiem, moze to mylne odczucie

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek citan  28 grudnia 2007 o godz. 1:42 #
Gravatar

asd, a ja jeździłem kikoma różnymi daewoo i jakieś zawieszenie takie strasznie miękkie miały…

zwiń wątek asd  28 grudnia 2007 o godz. 4:41 #
Gravatar

wiesz, daewoo to badziew, o tym kazdy wie … co jak co, ale mercedesa z daewoo nie porownasz … podobnie jest z programami … cos jest Lepsze i juz

zwiń wątek citan  29 grudnia 2007 o godz. 13:28 #
Gravatar

Gdybyś jednak nie zauważył, w mojej odpowiedzi do Twojego komentarza było sporo ironii. Bo zauważyłeś, że programy pisane w Javie są wolne, sypią się… nie napisałeś nic więcej, jakie programy, jaka VM, w jakiej wersji to wszystko. Ciężko brać na poważnie taki komentarz.

Patrz, a ja nie wiedziałem, że daweoo to badziew. Zawsze myślałem, że robią całkiem niezłe sliniki… popatrz czego to się człowiek może dowiedzieć!

 
 
 
 
zwiń wątek Livio  18 stycznia 2008 o godz. 20:30 #
Gravatar

Miguel zaproponował nazwę Paint Mono, a nie Mono Paint.

Nawet URL zawiera paint-mono a nie mono-paint.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 

Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="http://osnews.pl">OSnews: niusy IT</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <strike>tekst przekreślony</strike>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.

Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.

Twoja sugestia