Kontrolni centar za Debian/Ubuntu

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Avatar
DoDo
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Spol: M
OS: GNOME 3
Lokacija: ~/Croatia/Zagorje/Radoboj

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la DoDo »

Slažem se glede gtk2+-a, našao sam i dobar tutorial, no svejedno da razjasnimo neke stvari:
shrike je napisao/la:Java je i dalje pre spora.
Sama Java je svega 1.3 puta sporija od C-a (pokazuju mjerenja napravljena nad identičnim algoritmima na istom računalu). To je zanemarivo u odnosu na to što ona sve za razliku od C-a pruža. Program koji ti pišeš je onoliko brz koliko ga ti brzim napišeš. Uzmi jedan primjer: M$ Office je rađen u C-u i C++-u (uz ponešto .NET-a u verziji 2007), a OpenOffice u Javi. Pitanje: koji radi brže?
shrike je napisao/la: C++ vodi na gradnju gigantskih programa.
Ne kužim baš što si time htio reći??? Program je onoliko velik, koliko ga velikim napišeš. C++ je po meni sjajan programski jezik jer kombinira ono najbolje iz C-a i Jave --> brzinu C-a i jednostavnost Jave. Mana su mu memory leakovi, koje treba znati rješavati, jer u suprotnom nastaju pohlepni programi koji žderu puno RAM-a.
shrike je napisao/la: U kratko, ovo je moja ideja. Da se čitava stvar narpavi modularno. Znači ,svak imodul odrađuje specifičnu zadaću: jedna kontrolira multimediju ,jedan mrežne postavke, ... Svaki modul se može maknuti ili dodati interaktivno. Svaki progrmer uzme po jedna ili dva modula i radi na njima tako da se distribuira rad.
S ovim ćeš se u C-u namučiti - prvenstveno jer C nije objektno orjentirani jezik, i to mu je najveća mana (iako je moguće programirati u OOP stilu u C-u, to jednostavno nije "ono pravo").
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la shrike »

DoDo je napisao/la: Sama Java je svega 1.3 puta sporija od C-a (pokazuju mjerenja napravljena nad identičnim algoritmima na istom računalu). To je zanemarivo u odnosu na to što ona sve za razliku od C-a pruža. Program koji ti pišeš je onoliko brz koliko ga ti brzim napišeš. Uzmi jedan primjer: M$ Office je rađen u C-u i C++-u (uz ponešto .NET-a u verziji 2007), a OpenOffice u Javi. Pitanje: koji radi brže?
C++ vodi na gradnju gigantskih programa.
MS office je brži. Kada radim u njemu ne trebam čekati 30 sekundi da se pokrene + manje zauzeće memorije.
DoDo je napisao/la: Ne kužim baš što si time htio reći??? Program je onoliko velik, koliko ga velikim napišeš. C++ je po meni sjajan programski jezik jer kombinira ono najbolje iz C-a i Jave --> brzinu C-a i jednostavnost Jave. Mana su mu memory leakovi, koje treba znati rješavati, jer u suprotnom nastaju pohlepni programi koji žderu puno RAM-a.
Osobna frustracija megalomanskim programima koji rade nešto jednostavno. Po meni bi Nero Burning ro mtrebao biti do 50 MB apsolutno maksimalno. No, na 4 jezgrenom kompu sa 4 GB rama on se starta 40 sekundi. To je po meni definicija katastrofe.
DoDo je napisao/la: S ovim ćeš se u C-u namučiti - prvenstveno jer C nije objektno orjentirani jezik, i to mu je najveća mana (iako je moguće programirati u OOP stilu u C-u, to jednostavno nije "ono pravo").
Postavlja se pitanje koliko je teško naučiti Javu? To je ono što mene muči. Da li ću ja učiti javu (a i sotali) još godinu dana ili će to trajati mnogo manje? Ako je java toliko jednsotavna, onda se lako sredi sve na javu samo mi treba dobra literatura. Bitno da kasnije ne zažalimo :D Dakle, bitno pitanje: jel imaš koji zanimljivi PDF? Možemo i C++ koristiti onda. Valjda nije tolio različit od C-a.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
iv@n
Site Admin
Postovi: 7631
Pridružen/a: 01 pro 2007, 18:12
Spol: M
OS: openSUSE TW
Lokacija: Vinkovci, Hrvatska
Kontakt:

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la iv@n »

DoDo je napisao/la:Sama Java je svega 1.3 puta sporija od C-a (pokazuju mjerenja napravljena nad identičnim algoritmima na istom računalu). To je zanemarivo u odnosu na to što ona sve za razliku od C-a pruža. Program koji ti pišeš je onoliko brz koliko ga ti brzim napišeš. Uzmi jedan primjer: M$ Office je rađen u C-u i C++-u (uz ponešto .NET-a u verziji 2007), a OpenOffice u Javi. Pitanje: koji radi brže?
MS Office? Nisam znao da je OpenOffice rađen u Javi, al eto sada znam zašto je toliko trom. Btw, zanimljivo je da ista verzija OpenOfficea radi puno brže pod Windowsima nego pod Linuxom.
To avoid criticism ~ do nothing, say nothing, be nothing.
Avatar
DoDo
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Spol: M
OS: GNOME 3
Lokacija: ~/Croatia/Zagorje/Radoboj

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la DoDo »

shrike je napisao/la: MS office je brži. Kada radim u njemu ne trebam čekati 30 sekundi da se pokrene + manje zauzeće memorije.
Kod mene to i nije baš slučaj. Writer mi se pokreće točno 15 sec, dok word zna varirati od 5 do čak 30 sec (kao i sve na win).
shrike je napisao/la: Osobna frustracija megalomanskim programima koji rade nešto jednostavno. Po meni bi Nero Burning ro mtrebao biti do 50 MB apsolutno maksimalno. No, na 4 jezgrenom kompu sa 4 GB rama on se starta 40 sekundi. To je po meni definicija katastrofe.
To se slažem. Nero je napisan katastrofalno loše. No to nije posljedica C++-a. Kako god okreneš, onaj dio koji je zaslužan za direktnu komunikaciju sa pržilicom je morao biti izveden u C-u, jer ni jedan drugi programski jezik (kolko ja znam) nema podršku za direktnu komunikaciju s hardverom.
shrike je napisao/la: Postavlja se pitanje koliko je teško naučiti Javu? To je ono što mene muči. Da li ću ja učiti javu (a i sotali) još godinu dana ili će to trajati mnogo manje? Ako je java toliko jednsotavna, onda se lako sredi sve na javu samo mi treba dobra literatura. Bitno da kasnije ne zažalimo :D Dakle, bitno pitanje: jel imaš koji zanimljivi PDF? Možemo i C++ koristiti onda. Valjda nije tolio različit od C-a.
Samu Javu i nije teško naučiti. Jako je slična C#-u (ako si ikad u njemu radio). Ovo ti je stranica tečaja kojeg trenutno polazim: http://java.zemris.fer.hr/materials.jsp?lang=hr Tu imaš dobre prezentacije i zanimljive primjere. Inače, taj tečaj traje 1 semestar i prođe se sve od prvih koraka u javi, preko razvoja višedretvenih aplikacija, razvoja GUI aplikacija, razvoja aplikacija koje rade preko interneta (npr. za DZ je trebalo napraviti svoj vlastiti HTTP server :D ), te razvoja web aplikacija uporabom JSP-a i java servlets tehnologije (koja se pokazala čak bržom od PHP-a).

C++ je pak prošireni C. To znači da apsolutno sve naredbe koje imaš u C-u, imaš i u C++-u. Prednost C++-a je samo u tome što je objektno orjentirani, pa se kod može lakše organizirati u cjeline pa onda i razumjeti.

Konačno, ti želiš napraviti control panel za ubuntua. Kao što si rekao, on će pozivati GOTOVE naredbe ili sam slagati BASH skripte i imat će grafičko sučelje izvedeno u gtk2+-u. To znači da tvoj program zapravo neće u sebi imati nikakav poseban algoritam, nego će samo pozivati druge programe. Znači da ti brzina programskog jezika uopće nije bitna. Ovo možeš napisati i u pythonu i radit će jednako brzo kao da si pisao u C-u. Zašto? E pa zato jer ti ćeš ionako samo pozivati gotove funkcije gtk2+-a za crtanje sučelja (koje su već ionako napisane u C-u i full optimizirane za brzi rad i malu potrošnju memorije), i pozivat ćeš razne konzolne programe za konfiguraciju (tipa update-rc.d, itd.) koje je opet već netko drugi implementirao i optimizirao. U cijelom tom projektu nemaš nikakvih algoritama, osim možda neke obrade stringova, a obrada stringova je u pythonu smiješno lagana, dok C uopće nema stringove, nego se moraš s pointerima šetat po memoriji šta zna ubiti čovjeka u pojam. I ako sad misliš da je zbog obrade stringova C bolja solucija nego python, promisli ponovno - u C-u moraš sam implementirati obradu stringova, dok u pythonu implementacija već postoji, i to full izoptimizirana.

Ne znam zašto se "bojiš" "sporih" programskih jezika. To bi se trebao u slučaju da razvijaš neki algoritam. Npr. implementacija RSA enkripcijskog algoritma u javi, C-u, assembleru, i izvedba u FPGA ili direktno u CMOS tehnologiji se jaaaakoo razlikuje u brzini izvođenja. No za pozivanje gotovih funkcija ti je apsolutno svejedno da li ih zoveš iz C-a, pythona, jave ili nečeg drugog, jer će krajnja brzina izvođenja tvog programa ovisiti o brzini funkcija koje zoveš, a ne o brzini pozivanja istih.

http://www.micahcarrick.com/12-24-2007/ ... art-1.html
Ovo je jedan jako dobar tutorial za gtk2+ kojeg kanim proučiti nakon svih ispita. On se orjentira na sam gtk2+, a ne toliko na to da li funkcije gtk2+-a zoveš iz pythona ili iz C-a. Štoviše, primjeri su napisani u OBA jezika, tako da sam možeš ispitati razlike u brzini izvođenja.
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
DoDo
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Spol: M
OS: GNOME 3
Lokacija: ~/Croatia/Zagorje/Radoboj

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la DoDo »

adminivan je napisao/la: MS Office? Nisam znao da je OpenOffice rađen u Javi, al eto sada znam zašto je toliko trom. Btw, zanimljivo je da ista verzija OpenOfficea radi puno brže pod Windowsima nego pod Linuxom.
Ugasi compiz i radit će ti jednako brzo. Compiz je poznat po svojim problemima prilikom iscrtavanja java window-a. Zato se sve čini da radi sporije i nestabilnije.
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la shrike »

Moja ideja je bila da program radi isključivo na Debianu, čak me ni ubuntu nije zanimao, al iako će se raditi zajedno onda je valjda ubuntu nužan jer ga večina koristi, a ne bi smjelo biti prevelike razlike.
javu sam malo pogledao, izgleda mi ko C+VB6=java. bar moja percepcija. Ako bude tako lako za naučit, onda nje poblem. Jedino što ja nikada nisam radio u objektnim jezicima. Vidim da su opni tutorijali napravljeni za FER i za windows. Ako je C lošiji izbor, onda nije problem preći na Javu, al imisli mda python ne želim vidit.
Zašto? Loše iskustvo sa sporim jezicima. Kad čekaš da ti se mandelbrot fraktal u patetičnoj rezoluciji izrenderira za 70 minuta, nekako ti dopizde "lagano al' sporo". Dakle, opet neka osobna frustracija.
Iako, jedno imaš pravo, najbolje bi bilo kada bi postoja unificirani sustav mijenjanja parametara, jer niej mudro raiti iznimke. Najbolje ako se jednim udarcem ubiju sve muhe.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
DoDo
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Spol: M
OS: GNOME 3
Lokacija: ~/Croatia/Zagorje/Radoboj

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la DoDo »

shrike je napisao/la:javu sam malo pogledao, izgleda mi ko C+VB6=java. bar moja percepcija.
Dobra ti je percepcija. :ugeek:
shrike je napisao/la:Jedino što ja nikada nisam radio u objektnim jezicima.
Onda još nisi prosvijetljen... To je kao da nikad nisi vidio linux.
shrike je napisao/la:Ako je C lošiji izbor, onda nije problem preći na Javu, al imisli mda python ne želim vidit.
Za ono što ti trebaš je apsolutno svejedno u čemu programiraš, jer ionako pozivaš samo gotove funkcije.
shrike je napisao/la: Zašto? Loše iskustvo sa sporim jezicima. Kad čekaš da ti se mandelbrot fraktal u patetičnoj rezoluciji izrenderira za 70 minuta, nekako ti dopizde "lagano al' sporo". Dakle, opet neka osobna frustracija.
Iako, jedno imaš pravo, najbolje bi bilo kada bi postoja unificirani sustav mijenjanja parametara, jer niej mudro raiti iznimke. Najbolje ako se jednim udarcem ubiju sve muhe.
Kao što sam već rekao, spori jezici ti dopizde kad radiš neki algoritam u njima, npr. renderiranje mandelbrotovog fraktala -> na višim rezolucijama je to sporo čak i u C-u. No spori jezici NISU PREDVIĐENI za pisanje algoritama. Oni su predviđeni za slijedno pozivanje već implementiranih algoritamskih funkcija (tu prvenstveno mislim na python --> u javi se već i mogu slagati neki jednostavniji algoritmi bez prevelikog usporenja), a to je upravo ONO ŠTO TEBI TREBA --> pozivanje gtk2+-ovih funkcija za crtanje prozora i pozivanje funkcija za obradu stringova. Nešto mi govori da takav control panel ne bi trebao imati više od 10 for petlji, ali možda nisam u pravu. No svejedno, 80% programa je moguće napisati u pythonu za neka 2 tjedna. Eventualno ako bi koji modul trebao raditi nešto više posla, može ga se napisati u C-u, pa onda pozvati iz pythona.

Sad te vjerojatno zanima zašto sad forsiram pythona, a prije sam javu? Jednostavno zato jer python može pozivati funkcije gtk2+-a za crtanje prozora, dok je u to javi malo teže, budući da java ima svoje funkcije za crtanje prozora koje su platformski neovisne, pa zato to kao posljedicu ima malo sporije renderiranje prozora (pogotovo na compizu), s čime se svakodnevno susrećemo pokretajući openoffice.

Uglavnom, pogledaj malo onaj tutorial koji sam ti poslao u prethodnom postu.
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la shrike »

Vidi mda se java može čak i kompilirat za specifičnu arhitekturu, pa bi to ubilo potrebu za JVM a i ubrzalo bi čitavu stvar. Također, Eclipse ima podršku za javu i C/C++ pa se tu može kombinirati. Što se jednostavnosti tiče, slažem se sa tobom. Ne vidim nikakvu potrebu za visokim kompleksnostima. Želim čisti program - što manje jezika, to bolje! Bilo bi možda zgodno pisati u Javi a gtk da sve renderira, pa se onda čitava stvar kompilira i opa - radi sve ko podmazano. nadam se.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
DoDo
Postovi: 1559
Pridružen/a: 23 sij 2008, 11:51
Spol: M
OS: GNOME 3
Lokacija: ~/Croatia/Zagorje/Radoboj

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la DoDo »

Istina. Problem je samo kaj se java i gtk baš i ne vole previše... Zato sam predložio pythona koji ima sve libraryje poput jave, ali i defaultnu podršku za gtk2+. Prednost mu je i u tome da nema kompajliranja, pa se bugovi lakše mogu pronaći i ukloniti. C je više za kompleksnije stvari koje imaju više algoritamske logike, a u tvom slučaju bi nepotrebno komplicirao stvari.

Što se pak tiče eclipse-a - to je najbolji IDE koji sam ikad koristio. Koristim ga (trenutno) za javu, C, C++ i pythona, a još uvijek evaluiram da li ga se isplati koristiti za PHP više nego dreamweavera...

A kompajliranje jave za specifičnu arhitekturu... To je svetogrđe! Na javu možeš gledati kao na puno poboljšani C++ s mogućnošću izvođenja na bilo kojoj platformi. Osim toga:

A) nemam ideje kako bi se java mogla vrtjeti bez JVM-a
B) kad bi to čak i izveo, to bi ubilo procesor i pojelo sav RAM, jer ne bi bilo JVM-ovog Garbage Collectora da dealocira zauzetu memoriju koja se više ne koristi

Ak se mene pita - za ovaj projekt je najbolja kombinacija pythona i C-a jer oba imaju izvrsnu podršku za rad sa gtk-om. Python za brzu i jednostavnu izgradnju grafičkog sučelja koje detektira prisutne module i učitava ih po potrebi, te za izradu jednostavnijih modula, te C za izradu algoritamski kompleksnijih modula koji ne moraju imati nikakvo grafičko sučelje.
Ovaj stil programiranja se inače naziva MVC (Model-View-Controller), gdje je model optimiziran na funkcionalnost i brzinu izvođenja, ali bez ikakvog sučelja, view je optimiziran za jednostavnost i samo prikazuje rezultate obrade modela, a controller bira koji view će prikazati rezultate obrade modela (ako ih ima više - npr. aplikacija za vektorsko crtanje: model je skup točaka i geometrijskih likova i sve operacije nad njima, jedan view je grafički izgled tih točaka i likova na ekranu, a drugi je popis istih u nekoj listi sa prikazom njihovih svojstava, dok se controller brine da su svi viewovi sinkronizirani sa modelom).

Prouči malo ovo: http://en.wikipedia.org/wiki/Model-view-controller
:mrgreen: Smile! It makes people wonder what you're thinking about... :mrgreen:
I am NaN, I am a free man!
Započnite svoje Linux iskustvo na http://wiki.open.hr
Avatar
shrike
Moderator
Postovi: 10322
Pridružen/a: 07 pro 2007, 18:07
Spol: Y
OS: utuntu 19.10
Kontakt:

Re: Kontrolni centar za Debian/Ubuntu

Post Postao/la shrike »

Ja sam više razmišljao o GUI za sve te CLi alate spojene u jedan program tkao da je sve "jednolično" iz perspektive korisnika. Ovo mi djeluje ko nepotrebno kompliciranje.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Odgovori