Etaoy rozwoju linuxowca :)
Patrzysz na wersję archiwalną tematu "Etaoy rozwoju linuxowca :)" z forum pl.comp.os.linux
Marcin Qycek Bierkowski - 17 Maj 2005, 02:11
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy: 1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty 2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji 4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :) 5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów
i co jest dalej? :)
Robert Magott - 17 Maj 2005, 02:26
1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty 2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji 4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :) 5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów i co jest dalej? :)
hehh... u mnie jest mniej więcej tak samo...... coprawda mam po jednej dystrybucji na jednym kompie.... ale jestem tak na tym 5 etapie... wiem, że wielu rzeczy się jeszcze nie nauczyłem... wielu rzeczy pod konsolą jeszcze nie znam..... ale na codzień - w domu - siedzę 95 proc czasu na linuxie.... i to co mi jest potrzebne robię, czasami z problemami..... ale zawsze coś się człowiek uczy... czytanie grup i forum dyskusyjnych zawsze uświadamia mi ile jeszcze przede mną....
ale nie każdy musi wymiatać na Slacku, wszystko z konsoli odpalać, bez środowiska graficznego gnome lub kde.... ja trzymam windę jeszcze ze względu na pracę, ale nie przeszkadza to mi np. uczyć i zachęcać moją pannę do takich systemów jak SuSe czy Ubuntu.....
Maciek - 17 Maj 2005, 02:26
i co jest dalej? :)
Jak już wiesz, która dystrybucja najbardziej ci pasuje i potrafiłeś ją doprowadzić do stanu idealnego dla Ciebie, to zaczynasz używać komputera zgodnie z jego przeznaczeniem :)
Areh - 17 Maj 2005, 02:51
A dalej zaczyna się normalna praca. No i oczywiście zaczynasz kombinować, to tu zrobić żeby wszystko działało jeszcze lepiej/szybciej, samodzielna kompilacja pakietów itp.
Amber - 17 Maj 2005, 03:19
to zaczynasz używać komputera zgodnie z jego przeznaczeniem :)
tak jest. i tym samym zamykasz usta tym, którzy twierdzą, że "linux nadaje się wyłacznie do konfigurowania."
Michał Wróbel - 17 Maj 2005, 03:36
| i co jest dalej? :)
A dalej zaczyna się normalna praca. No i oczywiście zaczynasz kombinować, to tu zrobić żeby wszystko działało jeszcze lepiej/szybciej, samodzielna kompilacja pakietów itp.
Kombinowanie z samodzielna kompilacja umiescilbym raczej w punkcie 4, ewentualnie 4.5 ;)
Dalej, albo zaczynasz uzywac komputera do normalnej pracy, albo wciagasz sie i sam zaczynasz rozwijac jakies oprogramowanie ;)
pzdr. Michal Wrobel
Kajetan Staszkiewicz - 17 Maj 2005, 04:28
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy: 1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty 2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji 4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :) 5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów i co jest dalej? :)
u mnie: 6) dopasowanie distro do własnych potrzeb (modyfikacje skryptów startowych) 7) zainteresowanie innymi systemami, np. FreeBSD
sumar - 17 Maj 2005, 04:34
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy:
Moim pierwszym etapem było poznanie poprawnej pisowni słowa Linux.
http://www.sumar.info/linux.html
przempo - 17 Maj 2005, 09:41
Użytkownik "Marcin "Qycek" Bierkowski"
i co jest dalej? :)
co za pytanie !!!! oczywiście Windows XP :D
Marcin Qycek Bierkowski - 17 Maj 2005, 11:03
co za pytanie !!!! oczywiście Windows XP :D
Prędzej Bill będzie rozdawał Windę za darmo! :)
Marcin Qycek Bierkowski - 17 Maj 2005, 11:06
Moim pierwszym etapem było poznanie poprawnej pisowni słowa Linux.
Dobrze, teraz już będę pisał poprawnie :) ale nieznajomość poprawnego nazewnictwa nie przeszkadza mi się Linuksem cieszyć :)
Marcin Qycek Bierkowski - 17 Maj 2005, 11:09
u mnie: 6) dopasowanie distro do własnych potrzeb (modyfikacje skryptów startowych) 7) zainteresowanie innymi systemami, np. FreeBSD
Nie próbowałem FreeBSD, może kiedyś...
Marcin Qycek Bierkowski - 17 Maj 2005, 11:15
A dalej zaczyna się normalna praca. No i oczywiście zaczynasz kombinować, to tu zrobić żeby wszystko działało jeszcze lepiej/szybciej, samodzielna kompilacja pakietów itp.
I już się zaczęła normalna praca :)
Marcin Qycek Bierkowski - 17 Maj 2005, 11:19
Dalej, albo zaczynasz uzywac komputera do normalnej pracy, albo wciagasz sie i sam zaczynasz rozwijac jakies oprogramowanie ;) pzdr. Michal Wrobel
Myślę o własnym oprogramowaniu, ale na razie nie wiem jak to ugryźć. Od czego zacząć naukę pisania oprogramowania?
Marcin Qycek Bierkowski - 17 Maj 2005, 11:20
Jak już wiesz, która dystrybucja najbardziej ci pasuje i potrafiłeś ją doprowadzić do stanu idealnego dla Ciebie, to zaczynasz używać komputera zgodnie z jego przeznaczeniem :)
Już używam :)
Marcin Qycek Bierkowski - 17 Maj 2005, 11:31
tak jest. i tym samym zamykasz usta tym, którzy twierdzą, że "linux nadaje się wyłacznie do konfigurowania."
wyłącznie do konfigurowania, czy to nie było na pl.comp.os.advocacy? nie jestem pewien. Jednak sądzę, że ten ktoś bazował w tym stwierdzeniu na swojej niewiedzy. Na niewiedzę i to taką upartą niewiedzę niewiele można poradzić
Niemniej jednak Ty i ja mamy wiedzę :) (ja na pewno mniejszą niż niejedna tutaj osoba)
Marcin Qycek Bierkowski - 17 Maj 2005, 11:41
hehh... u mnie jest mniej więcej tak samo...... coprawda mam po jednej dystrybucji na jednym kompie.... ale jestem tak na tym 5 etapie... wiem, że wielu rzeczy się jeszcze nie nauczyłem... wielu rzeczy pod konsolą jeszcze nie znam..... ale na codzień - w domu - siedzę 95 proc czasu na linuxie.... i to co mi jest potrzebne robię, czasami z problemami..... ale zawsze coś się człowiek uczy... czytanie grup i forum dyskusyjnych zawsze uświadamia mi ile jeszcze przede mną....
U mnie: 99 % czasu na Linuksie -biuro, muzyka, internet 1% na FreeDOS - stare gierki na DOSA :)
ale nie każdy musi wymiatać na Slacku, wszystko z konsoli odpalać, bez środowiska graficznego gnome lub kde.... ja trzymam windę jeszcze ze względu na pracę, ale nie przeszkadza to mi np. uczyć i zachęcać moją pannę do takich systemów jak SuSe czy Ubuntu.....
Moja panna (pozdrowionka Madziu jeśli to czytasz :) ) jest zaciekawiona Linuksem. :) Opowiadam jej o tym dużo. Na razie dam jej kilka dystrybucji Live aby się rozejrzała :)
Marcin Dębicki - 17 Maj 2005, 11:45
| Dalej, albo zaczynasz uzywac komputera do normalnej pracy, albo wciagasz | sie i sam zaczynasz rozwijac jakies oprogramowanie ;)
| pzdr. | Michal Wrobel
Myślę o własnym oprogramowaniu, ale na razie nie wiem jak to ugryźć. Od czego zacząć naukę pisania oprogramowania?
Proponuje od podstaw czyli jakiegos podrecznika C++/ANSI C. Na necie tego troche jest nawet kiedys widzialem oryginalna online'owa wersje Ritchie'go a to juz klasyka. Po za tym jest kilka fajnych ksiazek w ksiegarniach dotyczacych programowania pod systemem UNIX. Na koniec jak opanujesz juz znajomosc jezyka to przydalaby sie znajomosc POSIX'a (przydatna gdy program pisany pod Linuksem ma dzialac takze np z Darwinem). Niezaleznie pozostaje kwestia wyboru narzedzi ale to juz sprawa indywidualna;) Ja tam uzywam gcc oraz Borland'a przy projektach komercyjnych:]
Bartosz Feński aka fEnIo - 17 Maj 2005, 12:14
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy: 1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty 2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji 4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :) 5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów i co jest dalej? :)
Dołożenie swojej cegiełki w ramach wdzięczności za to, że tysiące ludzi zrobiło to wszystko z potrzeby serca ;)
pozdr, fEnIo
s0lnic - 17 Maj 2005, 12:32
Dnia wtorek, 17 maja 2005 17:41 użytkownik Marcin "Qycek" Bierkowski
Moja panna (pozdrowionka Madziu jeśli to czytasz :) ) jest zaciekawiona Linuksem. :) Opowiadam jej o tym dużo. Na razie dam jej kilka dystrybucji Live aby się rozejrzała :)
No właśnie, to kolejny etap - przekonanie żony/dziewczyny, że Linuks lepsiejszy jest od Windowsa :)
s0lnic - 17 Maj 2005, 12:36
Dnia wtorek, 17 maja 2005 17:19 użytkownik Marcin "Qycek" Bierkowski
Myślę o własnym oprogramowaniu, ale na razie nie wiem jak to ugryźć. Od czego zacząć naukę pisania oprogramowania?
Poczytaj ogólnie o programowaniu, najlepiej na przykładzie języka C++. Popisz sobie trochę prostych programików, jak poczujesz o co chodzi, to pogrzeb w źródłach jakiegoś większego programu...:)
Filip Kata - 17 Maj 2005, 13:10
Dnia pańskiego wtorek, 17 maja 2005 08:11 szanowny(a) Marcin "Qycek" Bierkowski zamieścił(a) na forum publicznym pl.comp.os.linux co następuje:
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy: 1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty
Nie przechodziłem
2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :)
Nigdy nie było więcej niż 2 dystrybucje...
3) Wybór jednej dystrybucji
Wybrałem Debiana na samym początku i się trzymam tego wyboru.
4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :)
Nie przechodziłem. Debian SID i codzienny apt-get update && apt-get dist-upgrade + oficjalne repozytorium Debiana i Marillat mi spokojnie wystarczy...
5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów
Od początku tak się zachowuję
Dalej już przestajesz się tym podniecać i przechodzisz do porządku dziennego...
Filip Kata - 17 Maj 2005, 13:11
Dnia pańskiego wtorek, 17 maja 2005 18:32 szanowny(a) s0lnic zamieścił(a) na forum publicznym pl.comp.os.linux co następuje:
No właśnie, to kolejny etap - przekonanie żony/dziewczyny, że Linuks lepsiejszy jest od Windowsa :)
Ja żony nie przekonywałem. Zainstalowałem na jej komputerze, posadziłem ją i do tej pory używa...
Filip Kata - 17 Maj 2005, 13:12
Dnia pańskiego wtorek, 17 maja 2005 18:41 szanowny(a)
publicznym pl.comp.os.linux co następuje:
| Dnia wtorek, 17 maja 2005 17:41 użytkownik Marcin "Qycek" Bierkowski | Moja panna (pozdrowionka Madziu jeśli to czytasz :) ) jest zaciekawiona | Linuksem. :) Opowiadam jej o tym dużo. Na razie dam jej kilka | dystrybucji Live aby się rozejrzała :)
| No właśnie, to kolejny etap - przekonanie żony/dziewczyny, że Linuks | lepsiejszy jest od Windowsa :)
Żony mi się nie udało :( Ale piętnastoletnia córka przyszła pewnego dnia - tato zainstaluj mi linuksa!
To się nazywa dobre wychowanie :) Dziecko wie co dobre, a co złe. :D
Filip Kata - 17 Maj 2005, 13:12
Dnia pańskiego wtorek, 17 maja 2005 15:41 szanowny(a) przempo zamieścił(a) na forum publicznym pl.comp.os.linux co następuje:
| i co jest dalej? :) co za pytanie !!!! oczywiście Windows XP :D
do śmieci...
Filip Kata - 17 Maj 2005, 13:14
Dnia pańskiego wtorek, 17 maja 2005 18:14 szanowny(a) Bartosz Feński aka fEnIo zamieścił(a) na forum publicznym pl.comp.os.linux co następuje:
| i co jest dalej? :) Dołożenie swojej cegiełki w ramach wdzięczności za to, że tysiące ludzi zrobiło to wszystko z potrzeby serca ;)
To co pisze fEnIo pisze to prawda. Linux wychowuje. Człowiek zaczyna się udzielać na grupach, pisze jakiś otwarty soft, pomaga innym ludziom przerzucić się na OS.
przempo - 17 Maj 2005, 13:21
| co za pytanie !!!! oczywiście Windows XP :D do śmieci...
żeby tak jeszcze producenci sprzetu chcieli pisać sterowniki dla linuksa ale nie zaczną do chwili gdy w linuksie bedzie mozna wszystko wykonać jako: dalej-dalej-dalej-finisz , oraz wszystkie wydawane gry beda działały po włozeniu płytki i instalacji bez instalacji wine i innych dobrodziejstw - dopiero wtedy ten system tak naprawdę trafi pod "strzechy"
Filip Kata - 17 Maj 2005, 13:28
Dnia pańskiego wtorek, 17 maja 2005 19:21 szanowny(a) przempo zamieścił(a) na forum publicznym pl.comp.os.linux co następuje:
| co za pytanie !!!! oczywiście Windows XP :D
| do śmieci...
żeby tak jeszcze producenci sprzetu chcieli pisać sterowniki dla linuksa ale nie zaczną do chwili gdy w linuksie bedzie mozna wszystko wykonać jako: dalej-dalej-dalej-finisz , oraz wszystkie wydawane gry beda działały po włozeniu płytki i instalacji bez instalacji wine i innych dobrodziejstw - dopiero wtedy ten system tak naprawdę trafi pod "strzechy"
U mnie jest na 3 komputerach pod "strzechą". Windowsa nie ma...
Marcin Kocur - 17 Maj 2005, 13:31
do chwili gdy w linuksie bedzie mozna wszystko wykonać jako: dalej-dalej-dalej-finisz , oraz wszystkie wydawane gry beda działały po włozeniu płytki i instalacji bez instalacji wine i innych dobrodziejstw
Wtedy poszukam innego systemu.
areh - 17 Maj 2005, 13:33
Ale piętnastoletnia córka przyszła pewnego dnia - tato zainstaluj mi linuksa!
Tylko pozazdrościć latorośli.
przempo - 17 Maj 2005, 13:49
| do chwili gdy w linuksie bedzie mozna wszystko wykonać | jako: | dalej-dalej-dalej-finisz , oraz wszystkie wydawane gry beda | działały | po włozeniu płytki i instalacji bez instalacji wine i innych | dobrodziejstw Wtedy poszukam innego systemu.
chyba nie zrozumiałeś mojej myśli :D nie powiedziałem, że trzeba pozbawić system konsoli i narzędzi z tym zwiazanych, tylko, że trzeba go uczynic tak łatwym w używaniu przez laików jak to tylko możliwe - tylko wtedy ma prawo sie upowszechnić, a co za tym idzie stać się systemem, z którym bedą się liczyły firmy np. produkujace sprzęt, ale ty jako zatwardziały miłośnik konsoli(bedzie burza?) nie bedziesz musiał instalować tych wszystkich dobrodziejstw, których tak nienawidzisz :D
ps. a może mi odpowiesz na jedno wazne pytanie? na cholere powstał serwer x, na cholere to całe gnome, kde,icewm-y i inne których już chyba zliczyć nie można? no po co to wszystko skoro było tak pięknie ?
i teraz sam sobie odpowiedz ! ilu miałby linuks użytkowników na dzień dzisiejszy gdyby nie posiadał powłoki graficznej ?
ps.2 - sorki, że tak rozwlekam ten eot, ale punkt widzenia "zatwardziałych" "hardkorowców" jest conajmniej śmieszny jeśli nie wręcz szkodliwy dla dalszego rozwoju systemu linuks
pozdrawiam
Uzytkownik - 17 Maj 2005, 14:19
Zastanawia mnie czy istnieją etapy rozwoju użytkownika linuxa. Na moim przykładzie mogę prześledzić takie etapy: 1) Pierwsza fascynacja - pierwsze instalacje pierwsze sukcesy i kłopoty
Winzgroza itd. - inaczej neoficka faza
2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji
Czasami mogą być powroty do fazy 2.
4) Szał pakietów - a są nowe pakiety, trzeba ściągnąć i zainstalować :) 5) Akceptacja tych pakietów, które są dostarczane w dystrybucji a ściąganie tylko tych pakietów , które realizują zadania niemożliwe do realizacji w standardowym zestawie pakietów
ACCEPT_KEYWORDS="~x86" + ewentualne odmaskowanie -* + CVS na $HOME/Aplikacje (anjuta2, glade3...) - to znaczy, że jestem w fazie 4. A może 5?
i co jest dalej? :)
Praca, dokładanie cegiełek, eksperymenty (czytaj chwilowe powroty do faz 2,4,5).
Pozdrawiam.
Lech Lorens - 17 Maj 2005, 14:45
Dnia wtorek, 17 maja 2005 17:19 użytkownik Marcin "Qycek" Bierkowski | Myślę o własnym oprogramowaniu, ale na razie nie wiem jak to ugryźć. Od | czego zacząć naukę pisania oprogramowania?
Poczytaj ogólnie o programowaniu, najlepiej na przykładzie języka C++.
Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to robisz mu krzywdę.
Stachu 'Dozzie' K. - 17 Maj 2005, 15:02
| Dnia wtorek, 17 maja 2005 17:19 użytkownik Marcin "Qycek" Bierkowski | Myślę o własnym oprogramowaniu, ale na razie nie wiem jak to ugryźć. Od | czego zacząć naukę pisania oprogramowania?
| Poczytaj ogólnie o programowaniu, najlepiej na przykładzie języka C++.
Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to robisz mu krzywdę.
A czym by krzywdy nie zrobil?
s0lnic - 17 Maj 2005, 15:13
Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to robisz mu krzywdę.
Nie no jasne, może najpierw pomarnować trochę czasu w Pascalu ;) Ok, zapomnijmy o C++. Czysty C też będzie za trudny? Z tego co zauważyłem to na wszystkich uczelniach (albo mat-infach w średnich szkołach) ludzie zaczynają od Pascala albo C właśnie, chociaż ja pierwsze linijki kodu pisałem w Perlu, ot taki idiotyczny program miałem na krakowskiej AE :)
Kurd Kombajn - 17 Maj 2005, 15:37
chociaż ja pierwsze linijki kodu pisałem w Perlu, ot taki idiotyczny program miałem na krakowskiej AE :)
ale cie wywalili i nie dotrwales nawet do javy ;
s0lnic - 17 Maj 2005, 15:43
| chociaż ja pierwsze linijki kodu | pisałem w Perlu, ot taki idiotyczny program miałem na krakowskiej AE :)
ale cie wywalili i nie dotrwales nawet do javy ;
Ile razy mam powtarzać, że sam zrezygnowałem :)
Stachu 'Dozzie' K. - 17 Maj 2005, 17:16
| Poczytaj ogólnie o programowaniu, najlepiej na przykładzie języka C++.
| Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, | to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to | robisz mu krzywdę.
| A czym by krzywdy nie zrobil?
Mam dziwne przeczucie, że mnie podpuszczasz i będziesz mi usiłował wmówić, że się mylę, ale OK. Zasadniczą wadą C++, ze względu na którą wydaje mi się być złym pomysłem na pierwszy język jest jego rozmiar. Najlepszym dowodem jest fakt, że chyba istnieje tylko jeden kompilator (Comeau?), który w pełni implementuje standard C++ (chodzi o słowo kluczowe 'export') albo grubość TC++PL (wydanie, które posiadam - 976 stron).
Ja poleciłbym Pythona, Perla, C, Javę, cokolwiek - tylko nie C++.
Python -- podobno OK (nie wiem, nie uzywalem). C -- OK. Java -- pomylka na calej linii (za bardzo wymusza obiektowy model programowania). Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie bylo: to jest moj ulubiony jezyk). W Perlu zbyt latwo popelnic pomylke, zbyt wiele jest zalezne od kontekstu uzycia. Mowisz, ze C++ jest za bardzo rozbudowany? C++ da sie uzywac nawet bez dokladnej znajomosci tych 700 stron standardu. Perl jest podobnie mocno rozbudowany, przy czym Perla nie da sie uzywac, jesli nie znasz co najmniej polowy kruczkow. Nawiasem mowiac, standard C99 ma podobny rozmiar do standardu C++: 560 stron.
PS Ale ja jestem uprzedzony, bo w pierwszym projekcie zaliczeniowym w C++ miałem sytuację z wielokrotnym dziedziczeniem po tej samej klasie :-)
A czy w takim wypadku nie powinno sie uzywac w pelni kwalifikowanych nazw metod?
Stachu 'Dozzie' K. - 17 Maj 2005, 15:51
| chociaż ja pierwsze linijki kodu | pisałem w Perlu, ot taki idiotyczny program miałem na krakowskiej AE :)
ale cie wywalili i nie dotrwales nawet do javy ;
Jak rozumiem, sugerujesz ze uczenie (kiedykolwiek) Javy jest jeszcze bardziej idiotyczne? Jesli tak, to zgadzam sie na calej rozciaglosci ;
Lech Lorens - 17 Maj 2005, 16:53
| Poczytaj ogólnie o programowaniu, najlepiej na przykładzie języka C++.
| Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, | to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to | robisz mu krzywdę.
A czym by krzywdy nie zrobil?
Mam dziwne przeczucie, że mnie podpuszczasz i będziesz mi usiłował wmówić, że się mylę, ale OK. Zasadniczą wadą C++, ze względu na którą wydaje mi się być złym pomysłem na pierwszy język jest jego rozmiar. Najlepszym dowodem jest fakt, że chyba istnieje tylko jeden kompilator (Comeau?), który w pełni implementuje standard C++ (chodzi o słowo kluczowe 'export') albo grubość TC++PL (wydanie, które posiadam - 976 stron).
Ja poleciłbym Pythona, Perla, C, Javę, cokolwiek - tylko nie C++.
PS Ale ja jestem uprzedzony, bo w pierwszym projekcie zaliczeniowym w C++ miałem sytuację z wielokrotnym dziedziczeniem po tej samej klasie :-)
Lech Lorens - 17 Maj 2005, 17:54
| Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, | to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to | robisz mu krzywdę.
| A czym by krzywdy nie zrobil?
| Ja poleciłbym Pythona, Perla, C, Javę, cokolwiek - tylko nie C++.
Python -- podobno OK (nie wiem, nie uzywalem). C -- OK. Java -- pomylka na calej linii (za bardzo wymusza obiektowy model programowania). Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie bylo: to jest moj ulubiony jezyk). W Perlu zbyt latwo popelnic pomylke, zbyt wiele jest zalezne od kontekstu uzycia. Mowisz, ze C++ jest za bardzo rozbudowany? C++ da sie uzywac nawet bez dokladnej znajomosci tych 700 stron standardu.
Problem w tym, że bardzo dużo osób pozostaje przy takiej nie dokładnej znajmości C++.
Perl jest podobnie mocno rozbudowany, przy czym Perla nie da sie uzywac, jesli nie znasz co najmniej polowy kruczkow.
Czy ja wiem? Po przeczytaniu 200 stron (około 2 dni nauki) IMNSHO bardzo
serwer systemu IM (kolejne zaliczenie laborki). Wolę nie myśleć, ile bym
poszło mi tak łatwo (w dalszym ciągu znam go bardzo przeciętnie - golf to dla mnie abstrakcja), bo zacząłem się go uczyć jako (chyba) 5 języka.
Nawiasem mowiac, standard C99 ma podobny rozmiar do standardu C++: 560 stron. | PS Ale ja jestem uprzedzony, bo w pierwszym projekcie zaliczeniowym w | C++ miałem sytuację z wielokrotnym dziedziczeniem po tej samej klasie | :-)
A czy w takim wypadku nie powinno sie uzywac w pelni kwalifikowanych nazw metod?
W stylu: rodzic::metoda()? Ale jeśli źle to rozwiążesz (ja to oczywiście źle rozwiązałem :-) - nie za pomocą wirtualnej klasy podstawowej), to masz dwie instancje tej samej klasy rodzic i rodzic::metoda() jest niejednoznaczne.
Stachu 'Dozzie' K. - 17 Maj 2005, 18:20
| | Czy ten język C++, który polecasz początkującemu jako *pierwszy* język, | | to ten sam, który zaprojektował Bjarne Stroustrup?! Bo jeśli tak, to | | robisz mu krzywdę.
| A czym by krzywdy nie zrobil?
| Ja poleciłbym Pythona, Perla, C, Javę, cokolwiek - tylko nie C++.
| Python -- podobno OK (nie wiem, nie uzywalem). C -- OK. Java -- pomylka | na calej linii (za bardzo wymusza obiektowy model programowania). | Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie | bylo: to jest moj ulubiony jezyk). W Perlu zbyt latwo popelnic pomylke, | zbyt wiele jest zalezne od kontekstu uzycia. Mowisz, ze C++ jest za | bardzo rozbudowany? C++ da sie uzywac nawet bez dokladnej znajomosci | tych 700 stron standardu.
Problem w tym, że bardzo dużo osób pozostaje przy takiej nie dokładnej znajmości C++.
To juz nie wina jezyka.
| Perl jest podobnie mocno rozbudowany, przy czym Perla nie da sie | uzywac, jesli nie znasz co najmniej polowy kruczkow. Czy ja wiem? Po przeczytaniu 200 stron (około 2 dni nauki) IMNSHO bardzo
serwer systemu IM (kolejne zaliczenie laborki).
W Perlu akurat wszystko sie pisze szybko, bo taka jest konstrukcja tego jezyka. Po prawdzie podejrzewam, ze wszystko wychodzi takie male, bo
Wolę nie myśleć, ile bym
Czyzbys byl z tych, ktorzy C++-em nazywaja juz program uzywajacy z mechanizmow C++ tylko cout/cin?
Ale może z Perlem poszło mi tak łatwo (w dalszym ciągu znam go bardzo przeciętnie - golf to dla mnie abstrakcja), bo zacząłem się go uczyć jako (chyba) 5 języka.
Perl to byl moj chyba siodmy jezyk, co nie zmienia faktu, ze jest ulubiony.
Lech Lorens - 17 Maj 2005, 18:47
| Problem w tym, że bardzo dużo osób pozostaje przy takiej nie dokładnej | znajmości C++.
To juz nie wina jezyka.
Pozwolę sobie być przeciwnego zdania.
| Czy ja wiem? Po przeczytaniu 200 stron (około 2 dni nauki) IMNSHO bardzo | serwer systemu IM (kolejne zaliczenie laborki). W Perlu akurat wszystko sie pisze szybko, bo taka jest konstrukcja tego jezyka. Po prawdzie podejrzewam, ze wszystko wychodzi takie male, bo
| Wolę nie myśleć, ile bym
Czyzbys byl z tych, ktorzy C++-em nazywaja juz program uzywajacy z mechanizmow C++ tylko cout/cin?
?! Ciężko mi nawet przypuszczać, dlaczego doszedłeś do tego wniosku. Wydawało mi się, że to ja argumentuję, że C++ jest zbyt rozbudowany, a teraz nagle zarzucasz mi, że próbuję jego sens sprowadzić do strumieni.
Stachu 'Dozzie' K. - 17 Maj 2005, 19:43
| Problem w tym, że bardzo dużo osób pozostaje przy takiej nie dokładnej | znajmości C++.
| To juz nie wina jezyka.
Pozwolę sobie być przeciwnego zdania.
Prosze bardzo, jednak uwazam, ze brak checi poznania jezyka powyzej if/while z funkcjami jednak jest wina tego, kto sie "uczy", a nie tego, ze jezyk nie pozwala.
| Czy ja wiem? Po przeczytaniu 200 stron (około 2 dni nauki) IMNSHO bardzo | serwer systemu IM (kolejne zaliczenie laborki). | W Perlu akurat wszystko sie pisze szybko, bo taka jest konstrukcja tego | jezyka. Po prawdzie podejrzewam, ze wszystko wychodzi takie male, bo
| Wolę nie myśleć, ile bym
| Czyzbys byl z tych, ktorzy C++-em nazywaja juz program uzywajacy | z mechanizmow C++ tylko cout/cin?
?! Ciężko mi nawet przypuszczać, dlaczego doszedłeś do tego wniosku.
Pisanie prostej aplikacji sieciowej w C++ kojarzy mi sie wlasnie z nazywaniem C z cin/cout jezykiem C++. OIMW C++ nie dorobil sie zadnego w miare powszechnego obiektowego interfejsu do komunikacji sieciowej, wiec i tak musialbys zejsc na poziom C. W przypadku serwera IM C++ nie ujawnia az tak znowu wiele, zeby byl duzo lepszy od C, wiec praktycznie
Lech Lorens - 17 Maj 2005, 20:26
| Czyzbys byl z tych, ktorzy C++-em nazywaja juz program uzywajacy | z mechanizmow C++ tylko cout/cin?
| ?! | Ciężko mi nawet przypuszczać, dlaczego doszedłeś do tego wniosku.
W przypadku serwera IM C++ nie ujawnia az tak znowu wiele, zeby byl
No tak, ale Ty przecież Javy nie lubisz za przesadnie obiektowe podejście :P
EOT?
Stachu 'Dozzie' K. - 18 Maj 2005, 03:00
| Czyzbys byl z tych, ktorzy C++-em nazywaja juz program uzywajacy | z mechanizmow C++ tylko cout/cin?
| ?! | Ciężko mi nawet przypuszczać, dlaczego doszedłeś do tego wniosku.
| W przypadku serwera IM C++ nie ujawnia az tak znowu wiele, zeby byl
No tak, ale Ty przecież Javy nie lubisz za przesadnie obiektowe podejście :P
A kto powiedzial, ze Javy nie lubie wlasnie za _obiektowe podejscie_? Poszukaj moich wypowiedzi na pl.comp.lang.c, pl.comp.programming i alt.pl.comp.os.apcoh (zwlaszcza tu, ostatnio pisalem o tym), jesli interesuja cie powody, dla ktorych nie lubie Javy.
EOT?
Jak chcesz.
Marcin Qycek Bierkowski - 18 Maj 2005, 03:05
Dziękuję za tak liczny odzew w sprawie czym pisać programy :) Powiem Wam, ze ja ostatnio pisałem programy jeszcze jak były SPEKTRUMY :) Jeszcze przejrze wszystkie posty, pogoglam i sobie coś wybiorę :)
Marcin Qycek Bierkowski - 18 Maj 2005, 03:22
Dołożenie swojej cegiełki w ramach wdzięczności za to, że tysiące ludzi zrobiło to wszystko z potrzeby serca ;)
Zastanawia mnie jaka ta moja cegiełka mogła by być, lamerem jestem, niewielu ludziom i w niewielu sprawach umiem pomóc, moze jakies podpowiedzi jaka ta cegiełka może byc?
Amber - 18 Maj 2005, 04:03
Ja żony nie przekonywałem. Zainstalowałem na jej komputerze, posadziłem ją i do tej pory używa...
i to jest słuszne podejście. my mamy w domciu tylko linuksa, więc moja 6-letnia córka w ogóle nie wie, jak wygląda windows. zastanawiam się, czy w ogóle wie, że coś takiego jest. nie udało mi się jednak przekonać jej, że ten mały pingwin nazywa się tux. dla niej nazywa się linux. :)
Bartosz Feński aka fEnIo - 18 Maj 2005, 04:34
| Dołożenie swojej cegiełki w ramach wdzięczności za to, że tysiące ludzi | zrobiło to wszystko z potrzeby serca ;) Zastanawia mnie jaka ta moja cegiełka mogła by być, lamerem jestem, niewielu ludziom i w niewielu sprawach umiem pomóc, moze jakies podpowiedzi jaka ta cegiełka może byc?
No jeśli twierdzisz, że jesteś lamerem to masz ciut bardziej ograniczone możliwości, ale nadal możesz się przyczynić do rozwoju.
Możesz choćby zgłaszać błędy w istniejącym oprogramowaniu jeśli coś dostrzeżesz. Próbując skonfigurować jakąś usługę czy sprzęt, możesz robić notatki ze swoich męczarni i potem opisać to w jakimś artykule i ewentualnie wrzucić na jakąś stronkę.
No i zawsze pozostaje forma wsparcia finansowego, która właściwie nie wymaga żadnych umiejętności, ale co dość oczywiste, wymaga finansów ;)
Był gdzieś artykuł opisujący 10 sposobów odwdzięczenia się społeczności, ale go nie mogę wygooglać. Może ktoś rzuci linkiem.
pozdr, fEnIo
Lech Lorens - 18 Maj 2005, 05:11
| No tak, ale Ty przecież Javy nie lubisz za przesadnie obiektowe | podejście :P
A kto powiedzial, ze Javy nie lubie wlasnie za _obiektowe podejscie_? Poszukaj moich wypowiedzi na pl.comp.lang.c, pl.comp.programming i alt.pl.comp.os.apcoh (zwlaszcza tu, ostatnio pisalem o tym), jesli interesuja cie powody, dla ktorych nie lubie Javy.
Nie będę tak daleko szukał:
<cytat Python -- podobno OK (nie wiem, nie uzywalem). C -- OK. Java -- pomylka na calej linii (za bardzo wymusza obiektowy model programowania). </cytat
Jeśli uznanie czegoś za pomyłkę nie jest Twoim zdaniem równoznaczne z nielubieniem, to OK.
A jednak nie wyszło :-)
Stachu 'Dozzie' K. - 18 Maj 2005, 05:48
| No tak, ale Ty przecież Javy nie lubisz za przesadnie obiektowe | podejście :P
| A kto powiedzial, ze Javy nie lubie wlasnie za _obiektowe podejscie_? | Poszukaj moich wypowiedzi na pl.comp.lang.c, pl.comp.programming | i alt.pl.comp.os.apcoh (zwlaszcza tu, ostatnio pisalem o tym), jesli | interesuja cie powody, dla ktorych nie lubie Javy.
Nie będę tak daleko szukał:
<cytat Python -- podobno OK (nie wiem, nie uzywalem). C -- OK. Java -- pomylka na calej linii (za bardzo wymusza obiektowy model programowania). </cytat
Wyrwales wypowiedz z kontekstu. Java jest pomylka, jesli ma byc pierwszym jezykiem programowania, bo wymusza obiektowe podejscie do programowania. Jesli juz umiesz programowac strukturalnie, to nauka programowania obiektowego jest jak najbardziej na miejscu.
Jeśli uznanie czegoś za pomyłkę nie jest Twoim zdaniem równoznaczne z nielubieniem, to OK.
Jesli jeszcze nie zauwazyles: polecanie poczatkujacemu Perla tez uwazam za pomylke, mimo ze Perla lubie.
Hoppke - 18 Maj 2005, 06:21
has been fingerprinted by Stachu 'Dozzie' K.:
| Ja poleciłbym Pythona, Perla, C, Javę, cokolwiek - tylko nie C++. Python -- podobno OK (nie wiem, nie uzywalem).
Bardzo fajny. Idealny IMO do uczenia się programowania, a przy tym w bardzo naturalny sposób obiektowy. No i wymusza robienie wcięć, więc uczytelnia kod. Samodokumentujący, wygodny tryb interaktywny. Na początek - idealny.
Ja w domu z perla zsiadłem na pythona właśnie.
C -- OK.
Popularny, ale ni to pies, ni wydra. Zawieszony gdzieś między asemblerem a normalnymi HLL. Obsługuje tablice, ale zmusza do certolenia się z **foo i &var. Nie lubię go za to :)
Java -- pomylka na calej linii (za bardzo wymusza obiektowy model programowania).
Co nie jest takie złe, wyrabia nawyki (ale fakt, nie uważam że OOP jest stosowne w każdej sytuacji)
Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie bylo: to jest moj ulubiony jezyk).
Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem. Tak jakby jego kawałki były projektowane przez różnych ludzi i dolepiane w miarę potrzeb.
s0lnic - 18 Maj 2005, 06:30
| Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie | bylo: to jest moj ulubiony jezyk). Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem. Tak jakby jego kawałki były projektowane przez różnych ludzi i dolepiane w miarę potrzeb.
Otóż to, dlatego kompletnym nieporozumieniem jest zaczynanie od Perla.
Stachu 'Dozzie' K. - 18 Maj 2005, 06:32
| Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby nie bylo: | to jest moj ulubiony jezyk). Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem.
Chaotyczny to on na pewno nie jest, co najwyzej tak wyglada dla kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, ale bronil sie przed tym rekami i nogami). Tak naprawde Perl jest calkiem konsekwentny.
Tak jakby jego kawałki były projektowane przez różnych ludzi i dolepiane w miarę potrzeb.
Bo tak na dobra sprawe bylo. Przez to zrobil sie niesamowicie zwiezly w kazdym zastosowaniu, mimo ze pewne konstrukcje potrafia przyprawic o zawrot glowy.
Piotr Dembiński - 18 Maj 2005, 07:51
Dziękuję za tak liczny odzew w sprawie czym pisać programy :) Powiem Wam, ze ja ostatnio pisałem programy jeszcze jak były SPEKTRUMY :)
O, tam był chyba nawet Pascal i jakieś C :)
Piotr Dembiński - 18 Maj 2005, 07:53
[snap]
Ja w domu z perla zsiadłem na pythona właśnie.
IMO Python jest lepszy od Perla, jak ci się początkowo niewielki program rozrasta do, powiedzmy, kilku tysięcy linii kodu.
A optymalizację zawsze można zrobić pisząc krytyczne części programu w C :)
Piotr Dembiński - 18 Maj 2005, 08:13
| Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby | nie bylo: to jest moj ulubiony jezyk). | Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem.
Chaotyczny to on na pewno nie jest, co najwyzej tak wyglada dla kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, ale bronil sie przed tym rekami i nogami). Tak naprawde Perl jest calkiem konsekwentny.
Ale, z drugiej strony, wiele jest w nim 'special cases', w których używa się takich, a nie innych konstrukcji językowych.
| Tak jakby jego kawałki były projektowane przez różnych ludzi | i dolepiane w miarę potrzeb.
Bo tak na dobra sprawe bylo. Przez to zrobil sie niesamowicie zwiezly w kazdym zastosowaniu, mimo ze pewne konstrukcje potrafia przyprawic o zawrot glowy.
No właśnie. IMO to konsekwencja żywiołowego, user-driven rozwoju :)
Stachu 'Dozzie' K. - 18 Maj 2005, 09:14
| Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby | nie bylo: to jest moj ulubiony jezyk). | Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem.
| Chaotyczny to on na pewno nie jest, co najwyzej tak wyglada dla | kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, | ale bronil sie przed tym rekami i nogami). Tak naprawde Perl jest | calkiem konsekwentny.
Ale, z drugiej strony, wiele jest w nim 'special cases', w których używa się takich, a nie innych konstrukcji językowych.
Mozesz powiedziec cos wiecej? Nie przychodzi mi nic takiego do glowy.
Stachu 'Dozzie' K. - 18 Maj 2005, 09:15
[snap]
| Ja w domu z perla zsiadłem na pythona właśnie.
IMO Python jest lepszy od Perla, jak ci się początkowo niewielki program rozrasta do, powiedzmy, kilku tysięcy linii kodu.
Przy tak duzych programach trzeba zachowac pewna higiene pracy, to i Perl nie bedzie w jakos specjalnie gorszy.
A optymalizację zawsze można zrobić pisząc krytyczne części programu w C :)
Mowisz jakby w Perlu sie nie dalo.
Marcin Qycek Bierkowski - 18 Maj 2005, 09:39
O, tam był chyba nawet Pascal i jakieś C :)
Wstyd się przyznać uczyłem się BASICA :) Byłem wtedy w liceum :)
Hoppke - 18 Maj 2005, 10:22
has been fingerprinted by Stachu 'Dozzie' K.:
| Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem. Chaotyczny to on na pewno nie jest,
Dobradobra :)
co najwyzej tak wyglada dla kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, ale bronil sie przed tym rekami i nogami).
Język który trzeba poznać od A do Z by zacząć widzieć jakąś "myśl przewodnią" to język zamotany.
A po "intensywnej pracy" to każdy jeden język będzie się tolerowało - organizm się przyzwyczaja. Gdy pisałem więcej w Perlu to też sobie radziłem. Przyzwyczaiłem się, że np. length zadziała na ciągu, ale nie na hashu (przykład z sufitu, niewiele konkretów już z perla pamiętam ale właśnie rzeczy tego typu mnie kłuły w tym języku).
Wtedy mi się to wydawało całkiem normalne bo w tym siedziałem, ale po przejażdżce po innych językach zacząłem się zastanawiać po cholerę w perlu tyle sytuacji "specjalnych", metod i funkcji specyficznych dla danego typu danych etc. Żeby stworzyć jak najwięcej konstrukcji syntaktycznych?
Tak naprawde Perl jest calkiem konsekwentny.
Tylko bardzo dobrze to skrywa? ;)
| Tak jakby jego kawałki były projektowane przez różnych ludzi i dolepiane | w miarę potrzeb. Bo tak na dobra sprawe bylo. Przez to zrobil sie niesamowicie zwiezly w kazdym zastosowaniu,
Nie. Nie w każdym. Golfowanie to patologia, a zwięzłość jest zachowana co prawda przy pracowaniu z tekstem etc., ale próby zrobienia czegoś obiektowego czy np. obróbki grafiki, obsługi GUI itp. NIE są ładne w perlu. Zwięzłość czy objętość skryptu nie powinny być priorytetem języka skryptowego - no, chyba że perl ma być językiem do "4KB compo"...
mimo ze pewne konstrukcje potrafia przyprawic o zawrot glowy.
Tak. A "there's more than one way to do it" to niekoniecznie zaleta, to raczej dowód na to że język nie ma żadnego pomysłu na jednolitą i spójną składnię. Developer "A" lubi opisowe konstrukcje z użyciem słów kluczowych, więc Perl ma słowa typu "foreach". Developer "B" lubi zawody w "obfuscated C", więc Perl ma $_ i pozwala na golfowanie. "More than one way" nie dowodzi wcale dopracowania języka. Dowodzi tylko tego, że nikt nie miał pomysłu/siły przebicia koniecznego by zrobić składnię raz a porządnie. Więc dostajesz taki eklektyczny zlepek.
A konsekwencja? O, pewnie, jest. I to niejedna. To przekombinowanie widać np. po skonfrontowaniu z Pythonem, gdzie generalnie jest "only one way to do it". Np. iterowanie po obiekcie plikowym, stringu, tablicy czy generatorze wygląda zwykle identycznie. Taka sama formułka "for i in..." (i nie ma zbyt sensownego sposobu by zapisać to inaczej). To bardzo ułatwia sprawę przy dłubaniu w cudzym kodzie... przejmowanie za to cudzego perla to często koszmar, zwłaszcza gdy autor preferował akurat inną konwencję perlowania albo używał jakichś kruczków których w ogóle nie znam (bo nauczyłem się coś robić jakąś synonimiczną konstrukcją).
Hoppke - 18 Maj 2005, 10:26
has been fingerprinted by Stachu 'Dozzie' K.:
| Ja w domu z perla zsiadłem na pythona właśnie. | IMO Python jest lepszy od Perla, jak ci się początkowo niewielki | program rozrasta do, powiedzmy, kilku tysięcy linii kodu. Przy tak duzych programach trzeba zachowac pewna higiene pracy, to i Perl nie bedzie w jakos specjalnie gorszy.
Jest różnica drobna - w Pythonie ta "higiena" jest wpleciona w sam język. Jednolitość składni, wymuszanie wcięć etc. - on był projektowany z myślą o pisaniu czytelnego, zrozumiałego kodu. Coś o czym w Perlu widać nikt specjalnie nie myślał
| A optymalizację zawsze można zrobić pisząc krytyczne części programu | w C :) Mowisz jakby w Perlu sie nie dalo.
IMO chodziło o zarzucaną pythonowi "powolność"... argument który często wyciągają ludzie traktujący pythona jako język do nauki programowania, ale już nie do normalnego użytku.
ryoshu - 18 Maj 2005, 10:51
że co??
ryoshu - 18 Maj 2005, 11:08
2) Szał dystrybucji - a może ta dystrybucja jest lepsza niż tamta? trzeba ściągnąć i sprawdzić :) i w ten sposób na kompie bywało 5 dystrybucji :) 3) Wybór jednej dystrybucji
Moze jestem dziwny ale mialem do tej pory do czynienia z 3 (no kiedys przez dzien mialem redhata ale rodzice kazali bezwzglednie wywalic :(, i czekalem na wlasny komputer 2-3 lata) dystrybucjami. Najpierw debiana, uzywalem przez 3 lata, dzial dokladnie jak mu kazalem, nigdy nie narzekalem (a slowa ze dystrybucja jest kiepska bo ciezko sie ustawia, czy instaluje programy to juz swiadczy o uzytkowniku ktory nie moze sobie poradzic), potem jak unowoczesnilem komputer do amd64 przeszedlem tymczasowo na mandrake-amd64 bo byl pod reka (i wyczekiwalem jak to juz na debianowca przystalo na wydanie wersji AMD64) a debian do dzisiaj nie zostal wydany dla owego procesora.. Mandrake siedzial pol roku i nie narzekalem ze kiepski. A ze lubilem sobie czasem kompilowac samemu programy to teraz mam gentoo (a debiana-amd64 jak nie bylo to nadal nie ma, ale chyba juz nie bede wracal bo to wieczne czekanie juz mi sie znudzilo). Jakos szalu dystrybucji zeby na tydzien miec 2-3 dystrybucje nigdy nie mialem.
A jako nastepny krok w liscie to wsparcie ideai OpenSource i pomoc w
a newet propagowanie systemu wsrod znajomych (juz kilku osobom pomoglem zainstalowac pierwszy porzadny system :P).
Stachu 'Dozzie' K. - 18 Maj 2005, 11:17
has been fingerprinted by Stachu 'Dozzie' K.: | Ja w domu z perla zsiadłem na pythona właśnie. | IMO Python jest lepszy od Perla, jak ci się początkowo niewielki | program rozrasta do, powiedzmy, kilku tysięcy linii kodu. | Przy tak duzych programach trzeba zachowac pewna higiene pracy, to | i Perl nie bedzie w jakos specjalnie gorszy.
Jest różnica drobna - w Pythonie ta "higiena" jest wpleciona w sam język.
Nie "wpleciona", a "wymuszona". To jest jednak roznica. Choc na pewno nie jest to zla cecha jezyka.
Jednolitość składni, wymuszanie wcięć etc. - on był projektowany z myślą o pisaniu czytelnego, zrozumiałego kodu. Coś o czym w Perlu widać nikt specjalnie nie myślał
Perl z zalozenia mial byc jak najbardziej wygodny i zwiezly i mial nie narzucac programiscie absolutnie nic. W Perlu masz wybor: albo robisz takie, albo inne wciecia. Podobnie jest przy OOP z nazwami metod i dostepnoscia pol. Metoda tworzaca wcale nie musi sie nazywac new (choc zgodnie z umowa programistow new powinno tworzyc nowy obiekt), a w pola nie zagladasz nie dlatego, ze jezyk nie pozwala, tylko dlatego, ze nikt cie o to nie prosil. Jesli uzyjesz czegos, co zostalo oznaczone jako "do uzytku wewnetrznego", to musisz sie liczyc z tym, ze z inna wersja biblioteki twoj program dzialal nie bedzie.
Co ciekawe: to podejscie sie sprawdza, i to nie tylko w Perlu. W Objective-C tez sa tylko konwencje zamiast konstrukcji wymuszonych jezykiem.
Stachu 'Dozzie' K. - 18 Maj 2005, 11:43
has been fingerprinted by Stachu 'Dozzie' K.: | Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem. | Chaotyczny to on na pewno nie jest,
Dobradobra :)
| co najwyzej tak wyglada dla kogos, kto nie pracowal w nim zbyt intensywnie | (albo pracowal, ale bronil sie przed tym rekami i nogami).
Język który trzeba poznać od A do Z by zacząć widzieć jakąś "myśl przewodnią" to język zamotany.
Przesadzasz. Perla nie trzeba poznawac od A do Z, zeby widziec mysl przewodnia.
A po "intensywnej pracy" to każdy jeden język będzie się tolerowało - organizm się przyzwyczaja. Gdy pisałem więcej w Perlu to też sobie radziłem. Przyzwyczaiłem się, że np. length zadziała na ciągu, ale nie na hashu (przykład z sufitu, niewiele konkretów już z perla pamiętam ale właśnie rzeczy tego typu mnie kłuły w tym języku).
Owszem, wziety z sufitu. length zwraca dlugosc stringa, wiec naturalne jest, ze to kontekst skalarny. Tu nie ma sie co przyzwyczajac do tego, ze length() nie dziala. Tu trzeba zrozumiec, co sie dzieje.
Wtedy mi się to wydawało całkiem normalne bo w tym siedziałem, ale po przejażdżce po innych językach zacząłem się zastanawiać po cholerę w perlu tyle sytuacji "specjalnych", metod i funkcji specyficznych dla danego typu danych etc. Żeby stworzyć jak najwięcej konstrukcji syntaktycznych?
Mniej wiecej (przynajmniej mnie sie tak wydaje). Dzieki temu Perla mozna uzywac do codziennych zadan jako "perl -e ''".
| Tak naprawde Perl jest calkiem konsekwentny. Tylko bardzo dobrze to skrywa? ;)
Nie. Cala konsekwencja lezy na wierzchu, wystarczy przeczytac dokumentacje.
| Tak jakby jego kawałki były projektowane przez różnych ludzi i dolepiane | w miarę potrzeb. | Bo tak na dobra sprawe bylo. Przez to zrobil sie niesamowicie zwiezly | w kazdym zastosowaniu, Nie. Nie w każdym. Golfowanie to patologia, a zwięzłość jest zachowana co prawda przy pracowaniu z tekstem etc., ale próby zrobienia czegoś obiektowego czy np. obróbki grafiki, obsługi GUI itp. NIE są ładne w perlu.
#v+ #!/usr/bin/perl
use Tk;
$mw = new MainWindow; $mw-Label(-text ="Hell oWorld!")-pack; $mw-Button(-text ="Wyjscie", -command =sub { exit })-pack; MainLoop;' #v-
Zwięzłość czy objętość skryptu nie powinny być priorytetem języka skryptowego - no, chyba że perl ma być językiem do "4KB compo"...
Zwiezlosc jest jednym z priorytetow, bo Perl ma byc uzywalny bezposrednio z linii polecen, czyli w formie "perl -e ''"
| mimo ze pewne konstrukcje potrafia przyprawic o zawrot glowy. Tak. A "there's more than one way to do it" to niekoniecznie zaleta, to raczej dowód na to że język nie ma żadnego pomysłu na jednolitą i spójną składnię.
Raczej odwrotnie: dowod na to, ze jezyk nic nie narzuca programiscie.
Developer "A" lubi opisowe konstrukcje z użyciem słów kluczowych, więc Perl ma słowa typu "foreach". Developer "B" lubi zawody w "obfuscated C", więc Perl ma $_ i pozwala na golfowanie. "More than one way" nie dowodzi wcale dopracowania języka. Dowodzi tylko tego, że nikt nie miał pomysłu/siły przebicia koniecznego by zrobić składnię raz a porządnie. Więc dostajesz taki eklektyczny zlepek.
G*** prawda. Jednemu programiscie potrzebne byly takie, innemu inne konstrukcje. $_ skraca, a przez to uczytelnia, zapis wielu operacji (zakladam, ze mowimy o kims, kto programuje w Perlu, wiec zna najczesciej uzywane konstrukcje).
A konsekwencja? O, pewnie, jest. I to niejedna. To przekombinowanie widać np. po skonfrontowaniu z Pythonem, gdzie generalnie jest "only one way to do it". Np. iterowanie po obiekcie plikowym, stringu, tablicy czy generatorze
Co to jest generator i co to jest iterowanie po obiekcie plikowym? [*] Pytam, zebym pozniej mogl ocenic jakosc pythonowego rozwiazania.
wygląda zwykle identycznie. Taka sama formułka "for i in..." (i nie ma zbyt sensownego sposobu by zapisać to inaczej).
To znaczy prawdopodobnie "nikt z developerow Pythona nie wpadl na pomysl, jak mozna to zrobic wygodniej dla pewnych zastosowan", ale to bede mogl stwierdzic dopiero jak sie otrzymam odpowiedz na pytanie [*].
To bardzo ułatwia sprawę przy dłubaniu w cudzym kodzie... przejmowanie za to cudzego perla to często koszmar, zwłaszcza gdy autor preferował akurat inną konwencję perlowania
Nieprawda. Przejmowalem cudzy kod w Perlu. *Raz* mi sie zdarzylo, ze to bylo toporne, bo gosciu uzywal Perla jak powloki: do wykonywania zewnetrznych polecen.
albo używał jakichś kruczków których w ogóle nie znam (bo nauczyłem się coś robić jakąś synonimiczną konstrukcją).
Od rozumienia kruczkow sa `man perlop', `man perlre', `man perlvar' i `man perlsyn'.
Wojciech Mula - 18 Maj 2005, 12:34
| A konsekwencja? O, pewnie, jest. I to niejedna. | To przekombinowanie widać np. po skonfrontowaniu z Pythonem, gdzie | generalnie jest "only one way to do it". Np. iterowanie po obiekcie | plikowym, stringu, tablicy czy generatorze Co to jest generator i co to jest iterowanie po obiekcie plikowym? [*] Pytam, zebym pozniej mogl ocenic jakosc pythonowego rozwiazania.
W pythonie iterowanie po sekwencjach jest możliwe właściwe tylko przy użyciu instrukcji for, tzn.
for item in sequence: zrób coś z item
Każda klasa może stać się iteratorem, wystarczy, żeby posiadała dwie metody: 1) __iter__, która przygotowuje obiekt przed iteracją i zwraca iterator; 2) next, która zwraca kolejny element sekwencji, albo rzuca wyjątek StopIteration. Oczywiście jasne jest, że to, co zwraca next może być wyznaczane w dowolny sposób. W pythonie typy takie jak tablice, listy, zbiory i pliki są w naturalny sposób iteratorami.
Generatory to takie funkcje, które działają jak iteratory, ale nie trzeba tyle pisać, a w szczególności nie trzeba tworzyć specjalizowanej klasy. Funkcja staje się generatorem jeśli posiada przynajmniej jedną instrukcję yield; yield działa podobnie do instrukcji return, ale przed zwróceniem wartości (i wyjściem z funkcji) zapamiętywane jest miejsce w którym następuję return oraz stan lokalnych zmiennych. Przy kolejnym wywołaniu generatora w pętli for, odtwarzany jest stan funkcji sprzed wykonania yield. W generatorze zakończenie iteracji jest robione naturalnie, przez zwykle wyjście z funckcji.
w.
Stachu 'Dozzie' K. - 18 Maj 2005, 12:34
| A konsekwencja? O, pewnie, jest. I to niejedna. | To przekombinowanie widać np. po skonfrontowaniu z Pythonem, gdzie | generalnie jest "only one way to do it". Np. iterowanie po obiekcie | plikowym, stringu, tablicy czy generatorze | Co to jest generator i co to jest iterowanie po obiekcie plikowym? [*] | Pytam, zebym pozniej mogl ocenic jakosc pythonowego rozwiazania.
W pythonie iterowanie po sekwencjach jest możliwe właściwe tylko przy użyciu instrukcji for, tzn.
for item in sequence: zrób coś z item
Każda klasa może stać się iteratorem, wystarczy, żeby posiadała dwie metody: 1) __iter__, która przygotowuje obiekt przed iteracją i zwraca iterator; 2) next, która zwraca kolejny element sekwencji, albo rzuca wyjątek StopIteration. Oczywiście jasne jest, że to, co zwraca next może być wyznaczane w dowolny sposób. W pythonie typy takie jak tablice, listy, zbiory i pliki są w naturalny sposób iteratorami.
Generatory to takie funkcje, które działają jak iteratory, ale nie trzeba tyle pisać, a w szczególności nie trzeba tworzyć specjalizowanej klasy. Funkcja staje się generatorem jeśli posiada przynajmniej jedną instrukcję yield; yield działa podobnie do instrukcji return, ale przed zwróceniem wartości (i wyjściem z funkcji) zapamiętywane jest miejsce w którym następuję return oraz stan lokalnych zmiennych. Przy kolejnym wywołaniu generatora w pętli for, odtwarzany jest stan funkcji sprzed wykonania yield. W generatorze zakończenie iteracji jest robione naturalnie, przez zwykle wyjście z funckcji.
Dziekuje slicznie za objasnienie.
Hoppke - 18 Maj 2005, 13:18
has been fingerprinted by Stachu 'Dozzie' K.:
Owszem, wziety z sufitu. length zwraca dlugosc stringa, wiec naturalne jest, ze to kontekst skalarny.
Perl Cię trzyma.
Tu nie ma sie co przyzwyczajac do tego, ze length() nie dziala. Tu trzeba zrozumiec, co sie dzieje.
Ależ ja doskonale rozumiem co się dzieje. Ale dlaczego nie ma jednego słowa którym można poznać długość ciągu/tablicy?
Pewnie gdyby stringi definiowało się przez $str="foo", a tablice przez "def $tab [1,2,3,4]", to też byś mówił że to naturalne i wystarczy zrozumieć co się dzieje? No bo to przecież normalne, różne konteksty, różne konstrukcje. Wystarczy zrozumieć, że stringi są w pamięci zapisywane inaczej niż tabele, stąd NATURALNIE używa się innego słowa kluczowego w operacji przypisania.
No bo przecież nie może być $str="foo" i $tab=[1,2,3,4]. Tak samo niedorzeczny jest pomysł jednolitego length($str) i length($tab) - przecież to różne konteksty, nawet dziecko to zrozumie. Prawda? :)
#v+ #!/usr/bin/perl use Tk;
Eee, poniżej gtk/qt nie schodzę ;)
$mw = new MainWindow; $mw-Label(-text ="Hell oWorld!")-pack;
Brzydkie. Nie mogłoby być "mw-add(Label("Hello World"))?
$mw-Button(-text ="Wyjscie", -command =sub { exit })-pack;
No i już widać perlowe tendencje do zbijania wielu czynności w jeden wiersz. Definiowanie nowego przycisku, ustawianie etykiety, wiązanie z czynnością i wkładanie do okna w jednej linijce. Tak się zaczyna, a w wierszu numer 200 masz już zgolfowane osiem czynności.
Tylko lispowe tasiemce to przebijają.
| C", więc Perl ma $_ i pozwala na golfowanie. "More than one way" nie | dowodzi wcale dopracowania języka. Dowodzi tylko tego, że nikt nie miał | pomysłu/siły przebicia koniecznego by zrobić składnię raz a porządnie. | Więc dostajesz taki eklektyczny zlepek. G*** prawda. Jednemu programiscie potrzebne byly takie, innemu inne konstrukcje.
Jeden potrzebował stołka, drugi parasola. I tak powstał Perl.
$_ skraca, a przez to uczytelnia, zapis wielu operacji
"Używam zmiennych $a, $b, $c bo są krótsze, a przez to czytelniejsze?" ;)
(zakladam, ze mowimy o kims, kto programuje w Perlu, wiec zna najczesciej uzywane konstrukcje).
Ale to nie argument. Starohebrajski też jest logiczny i w ogóle - jeśli założę, że mówimy o kimś kto pisze czasem teksty w tym języku i zna najczęściej używane słowa...
Przecież powiedziałem już, że organizm się do wszystkiego przyzwyczai. Nawet programy używające WinAPI da się zrozumieć jeśli w tym programujesz - co nie znaczy, że WinAPI nie jest np. gorzej zaplanowane od Qt. I że np. jeden koder Qt łatwiej odczyta kawałek obcego kodu Qt niż jeden koder Perla obcy kawałek .pl
Co to jest generator
Tak po chłopsku to obiekt który generuje (zwraca) porcje danych gdy go o to poprosisz.
porcjowanie danych wysyłanych przez obiekt.
i co to jest iterowanie po obiekcie plikowym? [*]
Oj no, to np. takie coś:
plik=open("/etc/fstab") for wiersz in plik: if wiersz.startswith("/dev/hd"): print wiersz plik.close()
"obiekt plikowy" to "file object" - coś jak "file handle", tyle że z zintegrowanymi od razu różnorakimi funkcjami. W końcu to obiektówka. A iterowanie to przebieganie po wszystkich elementach jakiejś struktury danych.
Gdybym np. wczytał najpierw plik do tablicy, to iteracja by wyglądała nadal tak samo:
plik=open("/etc/fstab") tab=plik.readlines() plik.close() for wiersz in tab: if wiersz.startswith("/dev/hd"): print wiersz
Gdybym miał np. hasha, to by przejrzeć jego zawartość też bym użył jakiegoś "for key in my_hash"... gdybym chciał przetworzyć np. spis plików JPEG w katalogu to też bym zrobił jakieś "for plik in glob(*.jpg):". Gdybym zrobił tę swoją klasę do czytania mbox-ów, to mógłbym zrobić
listy=mbox("~/Mail/office") for list in listy: ...
i w "list" mieć w każdym przebiegu pętli treść pojedynczego emaila. Użytkownik pythona po pewnym czasie każde przechodzenie po elementach jakiejkolwiek "listy danych" robi w ten sam sposób. Ta redukcja składni jest rozciągnięta gdzie tylko się da, dlatego też np. w pythonie nie musisz się zastanawiać jaką funkcją zliczyć długość hasha, a jaką stringa. Nową klasę obiektu definiuje się tak samo jak prototyp funkcji etc.
Chociaż pewnie perlowcy mogą to uznać za wynaturzenie, no bo jak tak można? Tym samym słowem kluczowym mierzyć obiekty niezależnie od kontekstu? Niedorzeczne! Tak samo definiować klasy i funkcje? Oburzające! ;)
Ale w końcu to na tym polega abstrakcja w HLL. Mniej formalności i języka, za to więcej treści i algorytmu.
Piotr Dembiński - 18 Maj 2005, 13:43
| | Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby | | nie bylo: to jest moj ulubiony jezyk). | Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem.
| Chaotyczny to on na pewno nie jest, co najwyzej tak wyglada dla | kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, | ale bronil sie przed tym rekami i nogami). Tak naprawde Perl jest | calkiem konsekwentny.
| Ale, z drugiej strony, wiele jest w nim 'special cases', w których | używa się takich, a nie innych konstrukcji językowych.
Mozesz powiedziec cos wiecej? Nie przychodzi mi nic takiego do glowy.
OK. W jaki sposób odczytujesz w Perlu plik linia po linii?
Piotr Dembiński - 18 Maj 2005, 13:49
[snap]
| wygląda zwykle identycznie. Taka sama formułka "for i in..." (i nie | ma zbyt sensownego sposobu by zapisać to inaczej). To znaczy prawdopodobnie "nikt z developerow Pythona nie wpadl na pomysl, jak mozna to zrobic wygodniej dla pewnych zastosowan",
Ależ zapewniam Cię, że twórcy Pythona mają wiele pomysłów.
Tyle tylko, że mają dla tych pomysłów trochę więcej samokrytyki niż perlowcy dla swoich :
Stachu 'Dozzie' K. - 18 Maj 2005, 14:06
| Tu nie ma sie co przyzwyczajac do tego, ze length() nie dziala. Tu trzeba | zrozumiec, co sie dzieje. Ależ ja doskonale rozumiem co się dzieje. Ale dlaczego nie ma jednego słowa którym można poznać długość ciągu/tablicy?
Pewnie gdyby stringi definiowało się przez $str="foo", a tablice przez "def $tab [1,2,3,4]", to też byś mówił że to naturalne i wystarczy zrozumieć co się dzieje? No bo to przecież normalne, różne konteksty, różne konstrukcje. Wystarczy zrozumieć, że stringi są w pamięci zapisywane inaczej niż tabele, stąd NATURALNIE używa się innego słowa kluczowego w operacji przypisania.
No bo przecież nie może być $str="foo" i $tab=[1,2,3,4].
Masz pecha, oba sa poprawnymi konstrukcjami. Zeby bylo smieszniej: przez $tab da sie dobrac do wszystkich elementow tablicy.
| #v+ | #!/usr/bin/perl | use Tk; Eee, poniżej gtk/qt nie schodzę ;)
To znaczy na poziom czegokolwiek, co nie wymaga maszyny porownywalnej z serwerami pod hurtownie danych?
| $mw = new MainWindow; | $mw-Label(-text ="Hell oWorld!")-pack; Brzydkie. Nie mogłoby być "mw-add(Label("Hello World"))?
| $mw-Button(-text ="Wyjscie", -command =sub { exit })-pack;
No i już widać perlowe tendencje do zbijania wielu czynności w jeden wiersz. Definiowanie nowego przycisku, ustawianie etykiety, wiązanie z czynnością i wkładanie do okna w jednej linijce. Tak się zaczyna, a w wierszu numer 200 masz już zgolfowane osiem czynności.
Zastrzezenia zglos do tworcow Tcl/Tk. Perl/Tk zachowuje maksymalne podobienstwo do oryginalnego Tcl/Tk (w granicach rozsadku, bo potem wychodzi taki cpptk). Wiazan do innych toolkitow nie uzywalem do tej pory.
| C", więc Perl ma $_ i pozwala na golfowanie. "More than one way" nie | dowodzi wcale dopracowania języka. Dowodzi tylko tego, że nikt nie miał | pomysłu/siły przebicia koniecznego by zrobić składnię raz a porządnie. | Więc dostajesz taki eklektyczny zlepek. | G*** prawda. Jednemu programiscie potrzebne byly takie, innemu inne | konstrukcje. Jeden potrzebował stołka, drugi parasola. I tak powstał Perl.
| $_ skraca, a przez to uczytelnia, zapis wielu operacji
"Używam zmiennych $a, $b, $c bo są krótsze, a przez to czytelniejsze?" ;)
ROTFL. Widziales kiedys taka konstrukcje? #v+ $_ =~ s/abc/def/; #v- Nie chodzi o dlugosc zmiennych, jakbys jeszcze nie zauwazyl mimo pewnej praktyki w Perlu. Chodzi o mozliwosc usuniecia z kodu jawnego podawania nazwy zmiennej, na ktorej operujesz, o ile jest to uzasadnione.
| (zakladam, ze mowimy o kims, kto programuje w Perlu, wiec zna najczesciej | uzywane konstrukcje). Ale to nie argument. Starohebrajski też jest logiczny i w ogóle - jeśli założę, że mówimy o kimś kto pisze czasem teksty w tym języku i zna najczęściej używane słowa...
A niby starohebrajski nie jest logiczny?
| i co to jest iterowanie po obiekcie plikowym? [*] Oj no, to np. takie coś:
plik=open("/etc/fstab") for wiersz in plik: if wiersz.startswith("/dev/hd"): print wiersz plik.close()
Dobrze. Chce zmienic piata, szosta i siodma linijke z /etc/fstab (np. odwrocic stringa) i takie cos wypisac na stdout. Chyba nie chcesz mi wmowic, ze musze wstawic if wewnatrz petli iterujacej?[*]
Gdybym np. wczytał najpierw plik do tablicy, to iteracja by wyglądała nadal tak samo: plik=open("/etc/fstab") tab=plik.readlines()
^^^^^^^^^^^^^^^^^^^^ [*] -- jak widac nie chcesz, tylko tak sie samo ulozylo
plik.close() for wiersz in tab: if wiersz.startswith("/dev/hd"): print wiersz
Dobrze. To juz mamy co najmniej dwie metody lazenia po zawartosci pliku. W Perlu tez zasadniczo w ten sposob sie przechodzi po wszystkich elementach listy (_mozna_ uzyc map{}, ale to _nie jest w dobrym stylu_).
Gdybym miał np. hasha, to by przejrzeć jego zawartość też bym użył jakiegoś "for key in my_hash"...
for my $i (keys %hash) { # XXX: code here
} gdybym chciał przetworzyć np. spis plików JPEG w katalogu to też bym zrobił jakieś "for plik in glob(*.jpg):".
for my $i (<*.jpg) { # XXX: code here
} Gdybym zrobił tę swoją klasę do czytania mbox-ów, to mógłbym zrobić listy=mbox("~/Mail/office") for list in listy: ...
i w "list" mieć w każdym przebiegu pętli treść pojedynczego emaila. Użytkownik pythona po pewnym czasie każde przechodzenie po elementach jakiejkolwiek "listy danych" robi w ten sam sposób.
Uzytkownik Perla tez, bo to jest naturalna metoda przechodzenia po liscie. Chyba ze z jakiegos powodu potrzebny jest indeks biezacego elementu.
Ta redukcja składni jest rozciągnięta gdzie tylko się da, dlatego też np. w pythonie nie musisz się zastanawiać jaką funkcją zliczyć długość hasha, a jaką stringa. Nową klasę obiektu definiuje się tak samo jak prototyp funkcji etc. Chociaż pewnie perlowcy mogą to uznać za wynaturzenie, no bo jak tak można? Tym samym słowem kluczowym mierzyć obiekty niezależnie od kontekstu? Niedorzeczne! Tak samo definiować klasy i funkcje? Oburzające! ;)
LOL. Jesli chcesz wiedziec, to w Perlu wlasnie zaleznosc od kontekstu uzycia daje mozliwosc uzycia tej samej skladni w roznych sytuacjach: chomp, chop, reverse, exec, system, kill itd. length akurat sie wybija, bo to length wymusza kontekst skalarny, ale naprawde rzadko miewa sie
Stachu 'Dozzie' K. - 18 Maj 2005, 14:10
| | Perl -- tego nikt normalny nie poleca wannabe-programiscie (zeby | | nie bylo: to jest moj ulubiony jezyk). | | Bardzo, hmm, chaotyczny. Tak ja go zawsze odbierałem.
| Chaotyczny to on na pewno nie jest, co najwyzej tak wyglada dla | kogos, kto nie pracowal w nim zbyt intensywnie (albo pracowal, | ale bronil sie przed tym rekami i nogami). Tak naprawde Perl jest | calkiem konsekwentny.
| Ale, z drugiej strony, wiele jest w nim 'special cases', w których | używa się takich, a nie innych konstrukcji językowych.
| Mozesz powiedziec cos wiecej? Nie przychodzi mi nic takiego | do glowy.
OK. W jaki sposób odczytujesz w Perlu plik linia po linii?
open FILE, "/etc/passwd"; while (<FILE) { # do something;
}
close FILE;
przempo - 18 Maj 2005, 14:29
że co??
słyszałem to na jednym filmie - GÓWNO !
Piotr Dembiński - 18 Maj 2005, 15:50
[snap]
| OK. W jaki sposób odczytujesz w Perlu plik linia po linii? open FILE, "/etc/passwd"; while (<FILE) { # do something; } close FILE;
No właśnie, co to za konstrukcja? Nie uważasz, że jest nieprzyzwoicie specjalna i nadmiernie przystosowana do tego, konkretnego przypadku?
Piotr Dembiński - 18 Maj 2005, 15:52
[snap]
| plik=open("/etc/fstab") | for wiersz in plik: | if wiersz.startswith("/dev/hd"): | print wiersz | plik.close() Dobrze. Chce zmienic piata, szosta i siodma linijke z /etc/fstab (np. odwrocic stringa) i takie cos wypisac na stdout. Chyba nie chcesz mi wmowic, ze musze wstawic if wewnatrz petli iterujacej?[*]
Takie rzeczy robi się w awk, a nie zaprzęga kobyłę w rodzaju Perla.
Piotr Dembiński - 18 Maj 2005, 15:50
[snap]
Tyle tylko, że mają dla tych pomysłów trochę więcej samokrytyki niż perlowcy dla swoich :
Miało być 'samokrytycyzmu'.
Hoppke - 18 Maj 2005, 15:57
has been fingerprinted by Stachu 'Dozzie' K.:
| No bo przecież nie może być $str="foo" i $tab=[1,2,3,4]. Masz pecha, oba sa poprawnymi konstrukcjami.
To była ironia... zresztą nieważne.
| Eee, poniżej gtk/qt nie schodzę ;) To znaczy na poziom czegokolwiek, co nie wymaga maszyny porownywalnej z serwerami pod hurtownie danych?
Jeśli chcesz powiedzieć, że gtk+ wymaga maszyny porównywalnej z serwerem pod hurtownię danych, to chyba ostro przesadziłeś. Wtedy do włączenia Gimpa potrzebny by musiał być Xeon z co najmniej 1GB ramu :)
A serio, to używam pythona do domowych robótek. A na biurku nie lubię mieć toolkitów z ery Pentium 75. Dlatego kompletuję sobie aplikacje używające gtk+ (najchętniej, z braku laku akceptuję też Qt), a jeśli samemu coś mam pisać no to oczywiście w pygtk. Bo się komponuje mi z rox-filerem, gqview, firefoksem itp. (PyQt nie używam, bo za mało wiem o Qt. A w C/gtk+ parę rzeczy pisałem, więc przynajmniej znam nazwy typów widgetów).
Zastrzezenia zglos do tworcow Tcl/Tk. Perl/Tk zachowuje maksymalne podobienstwo do oryginalnego Tcl/Tk
Rozumiem.
W takim pygtk na przykład zgodność jest zachowana na poziomie nazwy "properties", widgetów czy funkcji oferowanych przez toolkit, ale składnia i bebechy są już dopasowane do pythona. Czyli np. widgety są obiektami, chociaż w samym gtk+ jest inaczej. Mi osobiście to bardziej pasuje, bo używanie bindingów nie odstaje tak od reszty kodu. Jednolita konwencja.
A niby starohebrajski nie jest logiczny?
Według standardów technicznych? Nie. Żaden język naturalny zresztą nie jest, bo nie był projektowany i jest eklektyczną mieszanką "udogodnień wprowadzonych przez maintainerów aby ułatwić posługiwanie się nim w jakiejś konkretnej sytuacji". Ułatwianie życia małym grupom użytkowników nigdy nie służy logice całego języka, bo prowadzi do powstawania wyjątków, specjalnych kontekstów, nowych reguł obowiązujących tylko lokalnie itp. A w językach naturalnych nikt nie panuje nad całością, nikt nie ma dosyć siły by wymusić jedną jedyną konwencję. Na to może sobie pozwolić np. układ SI, albo chemicy zapisujący wzory białek, albo autorzy języka programowania...
| plik.close() | for wiersz in tab: | if wiersz.startswith("/dev/hd"): | print wiersz Dobrze. To juz mamy co najmniej dwie metody lazenia po zawartosci pliku.
Niezupełnie. Tutaj łazisz już po zawartości tablicy, nie po pliku. Jak widać plik jest już zamknięty już w momencie wchodzenia w pętlę, więc o jego zawartości nie wiadomo już nic.
Chociaż obiekt plikowy pozwala na iterację jak zwykła tablica, to jednak tablicą nie jest (ma inny zestaw metod na przykład, nie jest indeksowalny bo nie wiadomo z góry ile ma wierszy etc.).
EOT z mojej strony, bo temat już mocno zszedł z kursu. Ale wrócę do "języka dobrego dla początkujących": gdy pisałem w Perlu generator statystyk grup usenetowych (wtedy jakoś najintensywniej Perla używałem), to też mi się wydawał tak uporządkowany itp. (chociaż brakowało mi JAK DIABLI tego, co w pythonie potem odkryłem jako cPickle - rany, ile ja czasu się w perlu namęczyłem żeby takie coś uzyskać...). Ale po zapoznaniu się z pythonem... no, zupełnie inne podejście do projektu języka. W pythonie naprawdę ma się wrażenie że ktoś kiedyś usiadł z ołówkiem w ręku, popatrzył na język jako całość (typy, pętle, warunki, obiekty, klasy) i dorobił do tego składnię zachowując w oku język jako całość. Że to nie było tylko zlepianie kawałków przeznaczonych do specyficznych zastosowań w jeden uniwersalny język.
I dlatego uważam, że to świetny język do nauki programowania. Czysty, zrozumiały, minimum słów kluczowych, samodokumentujący[1], genialny tryb interaktywny[2], w standardzie jest pydoc którego można uruchomić w trybie serwera http (i czytać sobie o jakimś module w browserze)...
[1] - to szalenie ułatwia robotę, zwłaszcza poznawanie np. metod dostępnych w jakimś obiekcie. Nie muszę sprawdzać w dokumentacji co oferuje np. obiekt GtkButton czy jakie metody mam do dyspozycji w int-ach, mogę w trybie interaktywnym samemu sprawdzić. No cudo. Do tego skrótowe opisy funkcji...
[2] - readline razem z całym tego dobrodziejstwem, można włączyć sobie tab-completion... Perl był robiony pod wywoływanie jednolinijkowców w CLI, a Python jest świetny w trybie interaktywnym.
Stachu 'Dozzie' K. - 18 Maj 2005, 16:35
[snap]
| OK. W jaki sposób odczytujesz w Perlu plik linia po linii?
| open FILE, "/etc/passwd"; | while (<FILE) { | # do something; | } | close FILE;
No właśnie, co to za konstrukcja?
Standardowa. A co ci sie w niej nie podoba?
Nie uważasz, że jest nieprzyzwoicie specjalna i nadmiernie przystosowana do tego, konkretnego przypadku?
?? Lepiej, zebym musial wpisac cos takiego? #v+ while ( defined($_ = <FILE) ) { # do something;
}
#v- Wynikiem warunku i tak bedzie co najmniej zawartosc $/, jesli nie trafilismy na EOF, wiec defined() mozna opuscic. A petla "while ($_ = <FILE){ }" jest na tyle czesta, ze mozna skrocic zapis do "while (<FILE){ }". A zeby bylo konsekwentnie: petla #v+ for (<FILE) { # do something;
}
#v- dziala tak samo, z dokladnoscia do tego, ze for wymaga juz utworzonej listy, w przeciwienstwie do while.
Marcin Dębicki - 18 Maj 2005, 19:30
Moze jestem dziwny ale mialem do tej pory do czynienia z 3 (no kiedys przez dzien mialem redhata ale rodzice kazali bezwzglednie wywalic :(, i
Madrze zrobili:P
czekalem na wlasny komputer 2-3 lata) dystrybucjami. Najpierw debiana, uzywalem przez 3 lata, dzial dokladnie jak mu kazalem, nigdy nie narzekalem (a slowa ze dystrybucja jest kiepska bo ciezko sie ustawia, czy instaluje programy to juz swiadczy o uzytkowniku ktory nie moze sobie poradzic), potem jak unowoczesnilem komputer do amd64 przeszedlem tymczasowo na mandrake-amd64 bo byl pod reka (i wyczekiwalem jak to juz na debianowca przystalo na wydanie wersji AMD64) a debian do dzisiaj nie zostal wydany dla owego procesora..
http://amd64.debian.net. Nie ma? Zreszta sa juz linki na debian.org o ile pamietam;)
Mandrake siedzial pol roku i nie narzekalem ze kiepski. A ze lubilem sobie czasem kompilowac samemu programy to teraz mam gentoo (a debiana-amd64 jak nie bylo to nadal nie ma, ale chyba juz nie bede wracal bo to wieczne czekanie juz mi sie znudzilo). Jakos szalu dystrybucji zeby na tydzien miec 2-3 dystrybucje nigdy nie mialem.
Debian na amd64 juz jest od conajmniej kilku miesiecy, ale nie bede sie czepial:D nie ma tylko Woody'ego
Swoja droga jezeli to mozna anzwac szalem dystrybucji i pakietow do mam SuSE + Debian'a wlasnie dla amd64 z czego ten drugi ma dla siebie caly jeden dysk (80 GB):D
ryoshu - 19 Maj 2005, 12:23
no cos tam bylo kiedys amd64 debianowego ale nie wiem jak teraz trzeba bylo samodzielnie szukac potrzebne pliki i chroota robic
a ze niechcialo mi sie a mandrake lezal pod reka to go zainstalowalem
Marcin Dębicki - 19 Maj 2005, 10:32
no cos tam bylo kiedys amd64 debianowego ale nie wiem jak teraz trzeba bylo samodzielnie szukac potrzebne pliki i chroota robic a ze niechcialo mi sie a mandrake lezal pod reka to go zainstalowalem
Heh chroot'a robisz tylko jak dodajesz jakies 32 bitowe biblioteki wiec to nie jest zaden problem. A na multiarcha w Debianie nie ma co na razie liczyc i w sumie dobrze:]
SirMike - 19 Maj 2005, 13:51
Moje etapy to takie: - pierwsze zetkniecie z Linuksem RedHat5 lub wczesniejszy bodajze - "ble co to ma byc za shit, jakie to ma gowniane tapety, ze o wygaszaczach nie wspomne" :D - po kilku latach - "mmmmm, linux - moze by jednak sprobowac raz jeszcze ?" (RedHat7) - "ooo Mandrake, jaki fajowy instalatorek" - "co za gowno ten Mandrake, to dla dzieciakow, nie chce go" - jeszcze pozniej - "Dlaczego w tym SuSE jest taki bajzel !! i do cholery po co taki cukierkowy !!" - pierwsze zetkniecie z FreeBSD - "wszystko poukladane, prosto i przejrzyscie, podoba mi sie" - slackware - "to jest to, kontrola nad wszystkim, porzadek i bez zbednych smieci....i nawet jadro sie udalo skompilowac..."
Ze Slackiem jestem do dzis.
ryoshu - 19 Maj 2005, 14:37
| no cos tam bylo kiedys amd64 debianowego ale nie wiem jak teraz trzeba | bylo samodzielnie szukac potrzebne pliki i chroota robic
| a ze niechcialo mi sie a mandrake lezal pod reka to go zainstalowalem
Heh chroot'a robisz tylko jak dodajesz jakies 32 bitowe biblioteki wiec to nie jest zaden problem. A na multiarcha w Debianie nie ma co na razie liczyc i w sumie dobrze:]
teraz to juz pewnie gra na amd64 ale nieco ponad rok temu to raczkowalo i chroot byl robiony w druga strone ;-)
Marcin Dębicki - 19 Maj 2005, 15:26
| no cos tam bylo kiedys amd64 debianowego ale nie wiem jak teraz trzeba | bylo samodzielnie szukac potrzebne pliki i chroota robic
| a ze niechcialo mi sie a mandrake lezal pod reka to go zainstalowalem
| Heh chroot'a robisz tylko jak dodajesz jakies 32 bitowe biblioteki wiec | to nie jest zaden problem. A na multiarcha w Debianie nie ma co na razie | liczyc i w sumie dobrze:] teraz to juz pewnie gra na amd64 ale nieco ponad rok temu to raczkowalo i chroot byl robiony w druga strone ;-)
Moim zdaniem nie ma niczego lepszego dla amd64
Powiązane tematy
Kolejny artykul przeciwko linuxowi w znanej gazecie linuxowe zamienniki Serwer usług biurowych :). Jaka dystrybucja? 64 czy 32 bity? I inne pytania. Wydajny kernel Czy Fedora to dobry wybór na desktop? blondynka i linux rewelacje interii jest coś w stylu wirtual cd na linuksa pakiety, struktura folderów, jeden wielki burdel Skan pakietu *.rpm - infekcja (bardzo długie) czy świeże jajko jest lepsze niż nieświeże Jak to jest z darmowym oprogramowaniem? KDE 4.0 released LINUX zostaje w tyle
Lista wiadomości z for internetowych | Strona Główna Odnośniki,
|
|