Etaoy rozwoju linuxowca :)



Patrzysz na wersję archiwalną tematu "Etaoy rozwoju linuxowca :)" z forum pl.comp.os.linux





Strona 1 z 21, 2


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


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.



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ę

i co jest dalej? :)



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.

| EOT?

Jak chcesz.



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


Strona 1 z 21, 2


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,