Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Python
misiek172
post
Post #1





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Witam.

Od paru dni próbuję zapoznać się z tematyką Pythona. Przeczytałem pare artykułów, posiedziałem na forach itp. I nadal do końca niewiem do czego on tak naprawde służy, co ma takiego co innym językom brakuję.

Bardzo proszę o przedstawienie mi tematyki Pythona tak na chłopski rozum. Jego zalty i wady oraz w czym ułatwie prace.

Pozdrawiam i z góry dziękuje, Łukasz.
Go to the top of the page
+Quote Post
11 Stron V   1 2 3 > »   
Start new topic
Odpowiedzi (1 - 99)
nasty
post
Post #2





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Witam,
Ja osobiście nie znam python-a, ale z tego co się nasłuchałem to jest to język lepszy od php (Ze strony OOP). Mnie on nie przekonuje z kilku powodów takich jak np. mała popularność albo brak curly brackets. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

<edit>
Po małym researchu i naczytania się tego topiku, wycofuje to co powiedziałem o tym ze Python ma lepsze OO niż PHP. Takie informacje kiedyś słyszałem ale okazały się nie prawda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Przepraszam wszystkich wprowadzonych w błąd (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
</edit>

Ten post edytował nasty_psycho 3.04.2007, 12:07:17
Go to the top of the page
+Quote Post
wolan
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.10.2004

Ostrzeżenie: (0%)
-----


misiek172: do czego potrzebujesz tego Pythona?

nasty_psycho: mała popularnosc? (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif) obecnosc na wielu platformach (wszystkich?), mozliwosc napisania wlasciwie kazdej aplikacji (www czy okienkowa - bez roznicy). nie bardzo rozumiem w czym problem... istnieje mnostwo frameworkow webowych, pythonowych bindingow roznych bibliotek GUI. nic tylko googlowac i pisac. zreszta zobacz.
Go to the top of the page
+Quote Post
Fipaj
post
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Panowie, po prostu wstyd ;-)
http://pl.wikipedia.org/wiki/Python
Nie wierzę, że po przeczytaniu tego możecie mieć jeszcze takiego typu wątpliwości.

A jeśli - w Pythonie można zrobić to, co w PHP, i jeszcze więcej ;-)
Go to the top of the page
+Quote Post
Jabol
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Python jest po prostu niesamowity. Porównywanie tego języka do php to po prostu pomyłka. PHP przy Pythonie to jak zabawka dla dzieci przy przyśpieszaczu atomów w cernie. Po pierwsze składnia - w PHP się pisze, w Pythonie się myśli. Po prostu myśli dużo naturalniej układają się w składnie pythona niż jakiegokolwiek innego języka. Dwa jest on po prostu dużo bardziej przejżysty i ładniejszy niż kod innych języków. Dalej PHP to OOP w jego wydaniu wytryskowym, czyli ściągniętym z Javy i niekoniecznie najlepszym. OOP w pythonie jest dużo bardziej naturalne, przemyślane i w przeciwieństwie do PHP pełne (wszystko jest obiektem - nawet klasy oraz funkcje). Dalej Python czerpie też z języków funkcjonalnych i takiego podejścia do programowania, co daje dużo naturalniejsze implementowanie jakichkolwiek algorytmów w Pythonie niż w PHP. Jest to też język dużo bardziej przemyślany i to od początku, a nie jak PHP łatkowany raz po raz.
Osobiście też grzebałem troszkę w źródłach pythona i pisałem do niego rozszerzenia. Muszę powiedzieć, że sposób w jaki Python jest zaimplementowany po prostu powala na kolana. Python jest językiem obiektowym już na poziomie implementacji, pomimo, że jest napisany w C, czyli w języku strukturalnym.
Jeżeli chodzi o popularność to byś się chyba zdziwił. Cała dystrybucja Gentoo, BitTorrent, Gajim i wiele innych programów (których nazw akurat nie pamiętam) zostało napisanych Pythonie. Oprócz tego wiele innych oferuje pluginy w tym języku.
Poza tym python to język na którym naprawdę można polegać - nie odważyłbym się napisać systemu obsługi lotniska w PHP, a w Pythonie i owszem.

Z bardziej aktualnych doświadczeń testowałem ostatnio ORM SQLObject. Genialna rzecz. PHP po prostu czegoś takiego nigdy nie będzie mieć. W Pythonie definiujesz model, który automatycznie staje się integralną częścią języka i środowiska. W PHP język i program pozostają oddzielone - nie unifikują się.

Python to po prostu jak rozwój od ryby do człowieka, od świadomości do samoświadomości. Oczywiście nie uniżam tutaj nikomu kto piszę w PHP bo oczywiście na końcu wszystko zależy od programisty. Polecam jednak Pythona tak mocno jak tylko mogę. Tym bardziej, że tak jak boom PHP powoli już mija (albo conajmniej zwalnia), to boom Pythona nie jest co prawda tak gwałtowny i zapewne nigdy nie będzie aż tak duży, ale język ten zdobywa sobie coraz większe uznanie we wszystkich kręgach (przede wszystkim Open Source, ale też przedział komercyjny). Od Pythona się nie odchodzi, podczas gdy od PHP i owszem.

PS. przepraszam za nadużywanie "po prostu", to z podekscytowania.

PS2. Osobom które by chciały zacząć polecam koniecznie interfejs interaktywny ipython - narzędzie niewiarygodne - coś, czego nie ma chyba rzaden inny język oprócz shelli, z których jedynie tcsh dorównuje temu z ipythona.

PS3. Fanom .NET polecam boo, choć rozumiem, że nie jest język jeszcze całkiem gotowy do użytku komercyjnego.

Ten post edytował Jabol 21.03.2007, 18:39:57
Go to the top of the page
+Quote Post
son
post
Post #6





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 31.01.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jabol dałeś świetną recenzję... aż wypada poznać podstawy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jaką lekturę na jego temat polecacie oprócz manuala?
Go to the top of the page
+Quote Post
Fuzja
post
Post #7





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Książka Python od podstaw.
Traktuje od podstaw czyli pętli, zmiennych, obiektówki, przez gui w tk, moduły, aplikacje sieciowe i internetowe skrypty po tworzenie rozszerzen w jezyku C oraz tematy teorytczne jak python w firmie czy aplikacjie shareware, freeware.
Go to the top of the page
+Quote Post
wolan
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.10.2004

Ostrzeżenie: (0%)
-----


tutorial i potem Dive into Python. A potem jak chcesz zapomniec o PHP, to np. Django i Django Book.
Go to the top of the page
+Quote Post
splatch
post
Post #9





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A ja powiem tylko, że oprócz wielkich zachwytów i westchnień och i ach nie pada żaden przykład, który by do mnie przemawiał. Prezentuję podejście pragmatyczne, czyli muszę ocenić coś w działaniu. Co mi po tym, że core języka jest obiektowy, co wielkiego w tym, że zaimplementowano ORM, w końcu co z tego, że parę programów okienkowych napisano w pythonie? Co mi po matematyce wysokiej precyzji, jeśli nie korzystam z tego częściej niż raz na pół roku.

W końcu argumentowanie, że OOP jest bardziej naturalne niż gdziekolwiek indziej jest dla mnie po prostu pomylone. Idea programowania obiektowego jest jedna, różne są tylko konstrukcje. Dlaczego niby python miałby zmuszać do myślenia a PHP nie? Idąc tym tokiem myślenia C, czy też Asembler jest lepszy ponieważ tam się najwięcej myśli.

Zdanie Python czerpie też z języków funkcjonalnych i takiego podejścia do programowania, co daje dużo naturalniejsze implementowanie jakichkolwiek algorytmów w Pythonie niż w PHP można między bajki włożyć.
Jak mechanizmy dwóch różnych języków wysokiego poziomu mogą przyczyniać się do tego, że implementacja jakiegoś algorytmu może być naturalniejsza?

Nie chcę być ani złośliwy a tym bardziej sprawiać wrażenia malkontenta, ale nie padły żadne rzeczowe argumenty a tylko bardzo subiektywne opinie, które nie są w stanie mnie przekonać, wszak pragmatyzm bazuje na doświadczeniach.

Jabol będę wdzięczny, za przykłady kodu naturalnych implementacji algorytmów jak bardziej naturalnego OOP niż gdziekolwiek indziej.
Proszę o opamiętanie. Po prostu zamiast oceniać i osądzać język z góry usiądźmy i porównajmy go z innymi. Nie wątpię, że Python może być lepszy od PHP czy innych języków skryptowych.

Na koniec krótka historyjka. Jakieś pięć lat temu Bruce Eckel twierdził, że Python to idealny język i zawojuje świat. Minęło pięć lat i prawdę powiedziawszy pozycja Pythona nie ulega znacznej poprawie a Eckel zmienił konika i jest nim teraz Agile ..
Go to the top of the page
+Quote Post
Jabol
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Nie napisałem, że w Pythonie się bardziej myśli, tylko łatwiej się myśli (łatwiej przetłumaczyć sobie myśli na kod pythona).

Teraz tutaj Model drzewka jaki sobie ostatni stworzyłem:
Kod
from sqlobject import *
from connection import *
from string import join
from exceptions import KeyError

class Node(SQLObject):
  name        = StringCol(length=100)
  parent      = ForeignKey('Node', default=None)
  features    = MultipleJoin('Feature')
  content     = ForeignKey('Content', default=None)
  children    = MultipleJoin('Node', joinColumn='parent_id')
  parentNameInd = DatabaseIndex('parent', 'name', unique=True)
  parentInd     = DatabaseIndex('parent')
  def _get_path(self):
    nodes = []
    r = self
    while r is not None:
      nodes.append(r.name)
      r = r.parent
    nodes.append('')
    nodes.reverse()
    return join(nodes, '/')
  def __getitem__(self, key):
    for f in self.features:
      if f.name == key:
        return f.value
    raise KeyError('Feature %s not found!' % key)
  def __setitem__(self, key, val):
    for f in self.features:
      if f.name == key:
        f.value = val
        return
    Feature(name=key, value=val, node=self)
  def __delitem__(self, key):
    for f in self.features:
      if f.name == key:
        f.destroySelf()
        return
    raise KeyError('Feature %s not found!' % key)


class Feature(SQLObject):
  node    = ForeignKey('Node')
  name    = StringCol(length=20)
  value   = StringCol(length=100)
  nodeIdNameInd = DatabaseIndex('node', 'name', unique=True)

class Content(SQLObject):
  content = StringCol()
  nodes   = MultipleJoin('Node')

Jestem ciekawy ile zajęłoby stworzenie podobnego modelu w PHP i czy byłby kiedykolwiek tak funkcjonalny.

Tutaj algorytm dzielenia pliku z napisami na trzy części - w php chyba trzeba by się z tym bardziej pomęczyć, co?
Kod
import string, datetime

fpr=open("lotr3.txt")

fpw1=open("lotr3_1.txt", "w")
fpw2=open("lotr3_2.txt", "w")
fpw3=open("lotr3_3.txt", "w")

dts=[[fpw1, datetime.datetime(2000, 1, 1, 0, 0)]
    , [fpw2, datetime.datetime(2000, 1, 1, 1, 25)]
    , [fpw3, datetime.datetime(2000, 1, 1, 2, 35)]]
dts.reverse()
dt0=datetime.datetime(2000, 1, 1, 0, 0)

for l in fpr.xreadlines():
    arr=l.split(":")
    ddt=dt0+datetime.timedelta(hours=int(arr[0]), minutes=int(arr[1]), seconds=int(arr[2]))
    for try_ in dts:
        if ddt>=try_[1]:
            try_[0].write((dt0+(ddt-try_[1])).strftime("%H:%M:%S:")+string.join(arr[3:], ":"))
            break

fpr.close()
fpw1.close()
fpw2.close()
fpw3.close()

Tutaj dalej mała klasa implementująca nowy język do robienia porównań
Kod
# author: Adam Wieckowski <mail>
# date:   07.01.2007

from re import compile
from fnmatch import *

class StringConstraint:

  def __init__(self, op, pattern):

    # 0 - equals caseinsensitive, 1 - equals casesensitive
    # 2 - fnmatch, 3 - fnmatchcase, 4 - regexp
    if op[0] == "!":
      self.__passMap = {True: False, False: True}
      op = op[1:]
    else: self.__passMap = {True: True, False: False}
    match           = {"==":0, "=*":1, "likei":2, "like":3, "=~":4}[op.lower()]
    self.__match    = match
    self.__pattern  = (match == 4) and compile(pattern) or pattern
  # /def __init__(self, pattern, op):

  def Evaluate(self, str):

#    # the readable way (long way/wrong way)
#    if self.__match == 0:
#      retVal = str.lower() == self.__pattern.lower()
#    elif self.__match == 1:
#      retVal = str == self.__pattern
#    elif self.__match == 2:
#      retVal = fnmatch(str, self.__pattern)
#    elif self.__match == 3:
#      retVal = fnmatchcase(str, self.__pattern)
#    elif self.__match == 4:
#      retVal = not self.__pattern.match(x) == None
#    return self.__passMap[retVal]

    # the one-statement-one-eval way
    return self.__passMap[ \
             [  (lambda x: x.lower() == self.__pattern.lower()) \
              , (lambda x: x == self.__pattern) \
              , (lambda x: fnmatch(x, self.__pattern)) \
              , (lambda x: fnmatchcase(x, self.__pattern)) \
              , (lambda x: not self.__pattern.match(x) == None)] \
              [self.__match](str)]

#    # the one-statement-all-eval way
#    return self.__passMap[ \
#             [  str.lower() == self.__pattern.lower() \
#              , str == self.__pattern \
#              , fnmatch(str, self.__pattern) \
#              , fnmatchcase(str, self.__pattern) \
#              , type(self.__pattern) is not type("") and not self.__pattern.match(str) == None or False] \
#              [self.__match]]
  # /def Evaluate(self, str):
# /class StringConstraint:

def StringConstraintParse(str):
  for op in ["likei", "like", "=~", "=*", "=="]:
    parts = str.split(op, 1)
    if len(parts) == 2: break
  if len(parts) == 1: raise Exception("Unknown operator.")
  if parts[0][-1] == "!": # negation
    op = "!" + op
    parts[0] = parts[0][:-1]
  if parts[0][-1] == "\\": # lets be able to escape the operator
    s, p = StringConstraintParse(parts[1])
    parts[0] = parts[0] + op + s
  else: p = StringConstraint(op, parts[1].strip())
  return (parts[0].strip(), p)
# /def StringConstraintParse(str):

def StringConstraintEvaluate(str): # shortcut
  str, p = StringConstraintParse(str)
  return p.Evaluate(str)
# /def StringConstraintEvaluate(str):
Polecam głównie linijkę 35 - tak apropo programowania funkcjonalnego.

Te trzy przykłady to różne możliwości zastosowania Pythona, które pokazują mam nadzieję główne różnice w zastosowaniu w przeciwieństwie do PHP. Jeżeli chodzi o zdanie z funkcjonalnym programowanie to jest opinia subiektywna - osobiście po prostu nabardziej lubię to podejście do programowania. Mam nadzieję, że podane przykłady unaoczniają jak można w Pythonie zaimplementować algorytmy w kilku dosłownie linijkach.

Pozdrawiam. I weźcie poprawkę, że to są wszystko subiektywne opinie.

Ten post edytował Jabol 1.02.2009, 12:48:52
Go to the top of the page
+Quote Post
splatch
post
Post #11





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Jabol @ 22.03.2007, 06:36:56 ) *
Teraz tutaj Model drzewka jaki sobie ostatni stworzyłem:
Kod
...

Jestem ciekawy ile zajęłoby stworzenie podobnego modelu w PHP i czy byłby kiedykolwiek tak funkcjonalny.

Możliwość obsługi drzew w Propelu. Propel ma swoje ograniczenia ale ma i zalety - nie piszesz kodu, którego nie musisz.

Cytat(Jabol @ 22.03.2007, 06:36:56 ) *
Tutaj algorytm dzielenia pliku z napisami na trzy części - w php chyba trzeba by się z tym bardziej pomęczyć, co?

  1. <?php
  2. $fp = fopen('lotr.txt', 'r');
  3. $fps = array(
  4. fopen('lotr_1.txt', 'w'),
  5. fopen('lotr_2.txt', 'w'),
  6. fopen('lotr_3.txt', 'w')
  7. );
  8.  
  9. while (!feof ($fp)) {
  10. $data = fgetcsv($fp, 1024, ':');
  11. foreach ($fps as $key => $val) {
  12. fwrite($val, $data[$key]);
  13. }
  14. }?>



Cytat(Jabol @ 22.03.2007, 06:36:56 ) *
Tutaj dalej mała klasa implementująca nowy język do robienia porównań

Jedno pytanie, po co? Czy w praktyce wykorzystałeś ten kod? Czy kilka klas to nowy język czy też może rozszerzenie języka? Chodzi o to by nazywać rzeczy po imieniu, bez marketingowego szumu (tj Collections framework w Javie czy też krotki, list i słowniki w Pythonie - wszystko to po prostu kolekcje).
Go to the top of the page
+Quote Post
nasty
post
Post #12





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
nasty_psycho: mała popularnosc? ohmy.gif obecnosc na wielu platformach (wszystkich?), mozliwosc napisania wlasciwie kazdej aplikacji (www czy okienkowa - bez roznicy).

Jest różnica miedzy wszechstronnością i przenośnością a popularnością.
Mówiąc o popularności mam namyśli, ilość firm hostingowych które oferują hosting Pythona, ilość firm tworzących oprogramowanie w Pythonie, itd...
A nie co można w nim zrobić i gdzie to uruchomić.

A z tego co widze tu na tych pokazanych przykładach, to składnia Pythona jest co najmniej dziwna żeby nie powiedzieć irytująca.
Go to the top of the page
+Quote Post
Fuzja
post
Post #13





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


No składnia to akurat dziwna nie jest napewno...
Wiele firm hostingowych oferuje pythona wiec nie narzekaj.
Uruchomisz wszędzie.
Zrobić można w nim praktycznie wszytko, a tworzenie w django na potrzeby internetu jest szybsze i przyjemniejsze niż w jakimkolwiek fw w php.
W pythonie tworzy oprogramowanie wiele firm, m.innymi google i nasa.
Go to the top of the page
+Quote Post
splatch
post
Post #14





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Fuzja @ 22.03.2007, 13:52:25 ) *
W pythonie tworzy oprogramowanie wiele firm, m.innymi google i nasa.

To nie jest argument. Microsoft tworzy oprogramowanie w C# i nie jest to powod dla ktorego ten jezyk jest lepszy niz inne. To, ze pythona wykorzystuje nasa osobiscie dla mnie niewiele znaczy. Banki wykorzystuja platformy sprzed kilku lat - czy to znaczy ze sa one najlepsze? Absolutnie nie.
Go to the top of the page
+Quote Post
mike
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(splatch @ 22.03.2007, 14:28:35 ) *
To nie jest argument.
Dokładnie.
To jest żaden argument.

Tak samo można powiedzieć, że Yahoo! korzysta z PHP.
I co z tego? Nic.


No i składnia, bleeee.
Koniecznie musieli się tak wygłupić?

Ten post edytował mike_mech 22.03.2007, 14:42:16
Go to the top of the page
+Quote Post
Fuzja
post
Post #16





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Mi składnia odpowiada.
Słuchajcie to nie miał być argument (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Chciałem tylko pokazać nasty_psycho, że są firmy które używają pythona.
Nigdy bym tego nie wykorzystał jako argument bo bym nikogo nie przekonał (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
A co do skladni to jak ktoś nie lubi to może skorzystać z ironpython czy jpython i pisać aplikacje w swingu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Fuzja 22.03.2007, 14:48:23
Go to the top of the page
+Quote Post
Ociu
post
Post #17





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Brakuje jeszcze wypowiedzi fana RoR, że Ruby ma coś z Pythona (Jak i 5 innych).
Imho. Argumenty, które padły w tym temacie nie przemawiają nic za tym, że Python jest świetny, a reszta języków po prostu wysiada.

PHP ma o tyle plus, że jest na tyle popularne, że wsyzstkie jest pod dostatkiem, mając google znajdziesz wszystko, co skróci czas pisania aplikacji do minimum.

Co do skoku popularności...
Może nie było, ale to z lenistwa ludzi. Python ma dość odmienną składnię niż inne języki, brak klamerek wcale nie pomaga, a tylko przeszkadza. Ludzie, którzy pisali w innych językach często zapominają, że typowa składnia z klamrami, średnikami, funkcjami i throw new Exception nie pasuje do tego języka.
Aha, zapomniałem dopisać. Skok był, gdy w sieci wydano artykuł "walki" między django, RoR i symfony, w którym wygrał django. Ludzie zaczęli się podniecać, że świetny framework, że rzucam wszystko i ucze się pythona. Ale to lenistwo sprawia, że jest tak mało programistów w tej dziedzinie.

pozdrawiam
Go to the top of the page
+Quote Post
Fuzja
post
Post #18





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Python:
Plusy:
- Działa na wszystkich platformach
- Pythona przeniesiono także do .NET i vm Javy co powoduje, że każdy może wybrać własną składnię
- Świetny framework do tworzenia aplikacji internetowych - Django
- Duża ilość modułów co pozwala na stworzenie niemal wszystkiego
- Łatwość w tworzeniu modułów i rozszerzeń Pythona
- Polskie kursy: http://pl.wikibooks.org/wiki/Python - podstawy, http://www.ii.uni.wroc.pl/~marcinm/dyd/python/ -od podstaw do bardziej skomplikowanych rzeczy, python.rk.edu.pl - trochę o wszystkim, w tym django, pygame i pyqt.
- Przystępna angielska dokumentacja oraz darmowa książka dive into python i django book.
- Przejrzystość w kodzie
- Szybkość tworzenia - kody w pythonie są nie rzadko o wiele krótsze niż np. w c++ czy javie.
Minusy:
- Brak wiodącego IDE
- Brak strony zreszającej programistów pythona z forum gdzie ludzie pomagali by innym w problemach.
Go to the top of the page
+Quote Post
nasty
post
Post #19





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
Chciałem tylko pokazać nasty_psycho, że są firmy które używają pythona.
A gdzie napisałem ze niema? Ja pisałem ze jest mało a nie niema.
Cytat
- Przejrzystość w kodzie
Pudło, nie jest nawet w jednej dziesiątej tak przejrzysty jak PHP,C/C++,Java czy nawet debilny VB
Cytat
- Duża ilość modułów
To nie jest argument przemawiający za Pythonem, pogniewasz nie może się równać przynajmniej z .NET czy Java
Cytat
co pozwala na stworzenie niemal wszystkiego
To już zależy od wyobraźni i umiejętności programisty, bo można zrobić wszystko we wszystkim.
Cytat
- Świetny framework do tworzenia aplikacji internetowych - Django
Framework nie jest dobrym argumentem przemawiającym za językiem jeżeli jest robiony przez entuzjastów. Jedyny Framewok który może być takim argumentem to taki który jest częścią języka jak np. klasy Javy czy .NET Framework lub SPL w PHP. Bo to na razie jest jakbym reklamował PHP tym ze ma Symfony
Cytat
- Przystępna angielska dokumentacja oraz darmowa książka dive into python i django book.
A które środowisko niema kilku darmowych książek i obszernego manuala?

Cytat
- Brak wiodącego IDE

a TruStudio ?

Ten post edytował nasty_psycho 22.03.2007, 15:55:12
Go to the top of the page
+Quote Post
Fuzja
post
Post #20





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Trustudio to nie jest nic ciekawego i wartego uwagi, a poza tym eclipse.
Poza tym nie mam zamaru się kłócić ale no jakby nie było to nie przesadzaj, że python nie jest przejrzysty.
No dobra ale czy phpowe frameworki mają darmowe książki ? Nie więc django book jest trochę nowością.
Nie każde środowisko ma manuala tym bardziej obszernego, a nie chcę mówić o tym, żeby jakoś wyglądał bo niektóre to nawet nie wyglądają.
"To już zależy od wyobraźni i umiejętności programisty, bo można zrobić wszystko we wszystkim." taa ? a to ciekawe, nie można wszystkiego we wszystkiego no chyba, że napiszesz mi sterownik do karty graficznej w php.

Ten post edytował Fuzja 22.03.2007, 16:19:12
Go to the top of the page
+Quote Post
nasty
post
Post #21





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


fuzja: Pamiętasz jak społeczność PHP tez stękała ze niema dobrego IDE do PHP? a jednak to nie miało większego wpływu na popularność PHP. wiec to nie jest aż taki problem. Jakby było duże zainteresowanie tym środowiskiem to by ludziska zrobili tak jak było z PHP i Ruby.

Cytat
No dobra ale czy phpowe frameworki mają darmowe książki ?
No masz racje, coś mi się pomyliło (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Cytat
taa ? a to ciekawe, nie można wszystkiego we wszystkiego no chyba, że napiszesz mi sterownik do karty graficznej w php.
Nie gadajmy jak gówniarze. Proszę...

Ten post edytował nasty_psycho 22.03.2007, 16:26:01
Go to the top of the page
+Quote Post
Jabol
post
Post #22





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Co do frameworków to muszę przyznać, że Symfony jest lepsze dla PHP niż Django dla Pythona (obiektwynie nie chce się wypowiadać). Jak zobaczyłem Symfony to mi szczena opadła - jak zobaczyłem Django to po prostu było to fajne.
Inna sprawa, że też widziałem to porównanie Django, Symfony oraz RoR. I dla tych którzy nie widzieli - otóż przy większym obciążeniu 30% wywołań Symfony kończyło się błędem (500 - Internal Server Error, albo jakimś wewnętrznym PHP), podczas gdy Django oraz RoR dawały 100% wydajność. To także jest argument za tymi językami, w szczególności w miejscach, gdzie ważna jest wydajność (a nie chce się pomimo to wprowadzać języków kompilowalnych).

A co do IDE - raz rzeden nie oferuje takich możliwości testowania aplikacji i pomocy w jej rozwijaniu jak interaktywny interpreter ipython. A dwa, jest bardzo wiele IDE, które obsługują Pythona w pełni (również tworzenia drzewa struktury - z podziałem na funkcje, zmienne, klasy itp), a to, że nie ma wiodącego to jak dla mnie nie jest wada. Ale to pewnie zboczenie z korzystania ze środowiska open source.

Pozdrawiam

Ten post edytował Jabol 22.03.2007, 16:28:01
Go to the top of the page
+Quote Post
Fuzja
post
Post #23





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Ja lubię nie mieć wyboru i korzystać z jednego ide ale to już też jakaś choroba (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Ja natomiast bardziej podniecilem się django niż symfony.
nasty_pycho: powiedziales po prostu, ze wszystko da sie zrobic we wszystkim to napisalem, ze to nie mozliwe i zebys w takim razie napisal jak sie da, ja moge nawet zaplacic.
Go to the top of the page
+Quote Post
Hacker
post
Post #24





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


Przejrzysta składnia?? Dla mnie składnia jest co najmniej dziwna i z tego co czytałem to nie tylko dla mnie.
Fuzja, proszę nie rób z siebie debila - nie sądzę aby ktoś zdrowy umysłowo pisał sterownik karty graficznej w PHP albo Pythonie(chyba, że chciałby pokazać, że się da, co i tak uważam za głupie), ponadto nasty_psycho nie mówił dosłownie. Dla mnie PHP jest stworzony do pisania stron WWW (zaraz pewnie poleci wiele postów, że w PHP da się robić także inne rzeczy). W tym temacie chodzi przecież o Pythona, a nie o to czy sterownik karty graficznej można napisać w PHP czy nie. Nie powiesz, że dosłownie wszystko można napisać w Pythonie, bo to również nie prawda, a chodzi tutaj przecież o argumenty za Pythonem. Ja osobiście lubię PHP i uwielbiam Jave (może dlatego, że był to pierwszy prawdziwy język programowania jaki poznałem). Znam również inne języki C++, asm, VB (korzystam głównie do pisania makr) i inne oraz próbowałem nauczyć się Pythona. Więc mam jakieś porównanie.
Cytat
Działa na wszystkich platformach

o ile się nie mylę to jak zainstalujesz JRE to java też będzie działać (z pewnymi ograniczeniami działa również na większości(żeby nie napisać wszystkich) komórek).
Oczywiście nie mówię, że Python jest blee, a java super. Wszystko zależy od programisty, wady i zalety języków też zależą od punktu widzenia, czasem dla jednego wada jest zaletą dla drugiego.

To jest tylko moje skromne zdanie, jeżeli uważasz inaczej nie musisz zaraz robić na mnie wjazdów, że się nie znam itp., podaj argumenty na tym chyba polega dyskusja. Jeżeli treść mojego posta kogoś uraziła to przepraszam.

Ten post edytował Hacker 24.03.2007, 11:43:22
Go to the top of the page
+Quote Post
Fuzja
post
Post #25





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


No trudno żeby nie uraziła skoro uważasz, że robie z siebie debila (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wiem, że się nie da ale to był porostu przykład dla nasty_psycho żeby zrozumiał, że nie wszystko da sie we wszystkim.
Go to the top of the page
+Quote Post
nasty
post
Post #26





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
No trudno żeby nie uraziła skoro uważasz, że robie z siebie debila
Hacker cie nie uraża, on cie uświadamia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Cytat
Wiem, że się nie da ale to był porostu przykład dla nasty_psycho żeby zrozumiał, że nie wszystko da się we wszystkim.
podałem ci 7 argumentów na które nie potrafisz odpowiedzieć normalnie i próbujesz zmienić temat w bardzo prymitywny sposób żeby uniknąć odpowiedzi. jeśli jesteś taki mądry to odpowiedz mądrze chociaż na 1 z argumentów które Ci podałem. A co do tego ze można zrobić wszystko we wszystkim, to nadal to podtrzymuje, to co ty mówisz z tym sterownikiem to jest prawda ale to jest skrajność. Idąc twoim tokiem myślenia to żaden język z tych wymienionych w dyskusji nie jest dobry bo nie można w nim zaprogramować zegarek elektroniczny czy mikrofalówkę.

A z ta przenośnościa to tez "Pudło", dlaczego? bo każdy z języków webowych jest dostępny na wielu platformach, PHP, Python, Ruby a nawet ASP.NET (mono).

Pozdrawiam.

ps. proszę nie zrozumieć tego posta jako zaproszenie do flamewar. ale nie mogłem się powstrzymać czytając takie mądre słowa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Fuzja
post
Post #27





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


A mono to rzeczywiście zajebiście działa, na Twoje argumenty średnio chce mi sie odpowiadac bo i tak wiem, ze Cie nie przekonam.
"Idąc twoim tokiem myślenia to żaden język z tych wymienionych w dyskusji nie jest dobry bo nie można w nim zaprogramować zegarek elektroniczny czy mikrofalówkę" idziesz nie moim tylko Twoim tokiem myślenia, poza tym nie uważam, że jezyk nie jest dobry bo nie mozna w nim zrobic wszystkiego, nie ma takiego jezyka ale uwazam, ze to co napisales, ze mozna wszystko we wszystkim to bzdura
Go to the top of the page
+Quote Post
nasty
post
Post #28





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
A mono to rzeczywiście zajebiście działa, na Twoje argumenty średnio chce mi sie odpowiadac bo i tak wiem, ze Cie nie przekonam.
I znowu zmieniasz temat (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . A próbowałeś mnie przekonać ze tak mówisz ? czy po prostu nie potrafisz ? :S
Cytat
poza tym nie uważam, że jezyk nie jest dobry bo nie mozna w nim zrobic wszystkiego
Cytat
- Duża ilość modułów co pozwala na stworzenie niemal wszystkiego
To jeden z twoich argumentów za Pythonem :/

Ten post edytował nasty_psycho 24.03.2007, 19:25:17
Go to the top of the page
+Quote Post
Fuzja
post
Post #29





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Co ma 2 cytat do trzeciego...
To jest ułatwienie rozumiesz...
A co do pierwszego cytatu to nie zmieniam tematu tylko odpieram jeden z Twoich argumentów, że mono dobrze działa...
Mono to gówno...
Nie, nie potrafię Cie przekonać bo wiem, że i tak mi się nie uda. To sie czuje.
Go to the top of the page
+Quote Post
ferr
post
Post #30





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

Ostrzeżenie: (0%)
-----


Problem w tym kolego nasty, ze wydaje mi sie, ze Twoje kontrargumenty wcale nie sa lepsze. To tak, jakby dyskutowac o wyzszosci Swiat Wielkanocnych nad Bozym Nardzeniem i odwrotnie. W zasadzie mozna podpiac Twoje, nasty, tezy do prawie kazdego jezyka. I jesli nie mamy dyskutowac jak gowniarze, to sprawdz swoje posty pod wzgledem ortorgrafii, jak na powaznego dyskutanta przystalo, ktory szanuje swoich adwersarzy.

Prawda jest taka, ze Python ma inna skladnie, dla jednego moze byc zla dla jednego dobra. Ruby tez odbiega od standardow C/C++ pod wzgledem skladni, ale jakos po pewnym czasie wszyscy o tym zapomnieli i sie przyzwyczaili. Podobnie bedzie pewnie z Pythonem. Moim zdaniem Python to dobry, obiektowy jezyk, ktory jest fajna alternatywa do PHP/Java/Ruby. W dodatku jest szybki. Rozdziewiczac go, jak to probuja tutaj pseudo-sceptycy, nie potrzeba - w Pythonie pisze sie coraz wiecej (chocby grono.net jesli chodzi o pl rynek) i tylko od nas zalezy czy go wybierzemy. Faktem jest, ze to jezyk latwy do nauki.

Chetnym aby dowiedziec sie wiecej o Pythonie, polecam http://blog.zabiello.com/.
Go to the top of the page
+Quote Post
revyag
post
Post #31





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat
w Pythonie pisze sie coraz wiecej (chocby grono.net jesli chodzi o pl rynek)


Będąc bardziej precyzyjnym, grono hula na django (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
ano
post
Post #32





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(revyag @ 24.03.2007, 17:56:16 ) *

== grono hula na pythonie.... (przecież dijango to framework napisany w Python'ie, to tak jakby powiedzieć, że strona X która oparta jest na zend framework nie jest napisana w php (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
Go to the top of the page
+Quote Post
ferr
post
Post #33





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

Ostrzeżenie: (0%)
-----


ano: nadgorliwosc gorsza od faszyzmu ;-), ale zdaje sie, ze revyag chcial tylko uscislic i zapewne zdaje sobie sprawe, ze Django napisany jest w Pythonie :-)
Go to the top of the page
+Quote Post
sztosz
post
Post #34





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Może kogoś przekona spojrzenie Bruce'a Eckel'a na temat pythona: http://mindview.net/FAQ/FAQ-012 do ściągnięcia prezentacja w PowerPoint'cie z jego konferencji.

Mnie przekonało porównanie kodu Pythona, Javy i C++ na prostym przykładzie. Potem sam sobie napisałem prosty program do obliczania pierwiastków funkcji kwadratowej, zawsze to robię przy poznawaniu nowego języka, tuż po poznaniu podstaw składni. Zadziałało bez bugów od razu, tylko musiałem sprawdzić gdzie jest sqrt() i jak to wstawić {import math [...] math.sqrt() } Zawsze z innymi językami zdarzały się wpadki typu brak średnika i inne pierdoły. Tutaj po prostu napisałem programik i zadziałał.

Nie wiem czy kogoś to przekona, ale dla mnie rzeczywiście składnia jest tak naturalna i czytelna jak w żadnym innym języku. Oczywiście nie namawiam nikogo do przesiadki, ale chociaż do spróbowania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

_______
PS. Nie jestem programistą, jestem hobbystą który czasem musi się opiekować kodem. Dla mnie najważniejsza jest czytelność, bo ja przeważnie nie piszę tylko muszę czytać kod i wstawiać drobne poprawki.
Go to the top of the page
+Quote Post
revyag
post
Post #35





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat(ano @ 24.03.2007, 22:10:08 ) *
== grono hula na pythonie.... (przecież dijango to framework napisany w Python'ie, to tak jakby powiedzieć, że strona X która oparta jest na zend framework nie jest napisana w php (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )

Chciałem podać więcej informacji o grono i tyle (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Jabol
post
Post #36





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(sztosz @ 26.03.2007, 12:09:10 ) *
Zadziałało bez bugów od razu...
Mam dokładnie to samo doświadczenie - z powiedzmy 4 języków jakie regularnie używam, tylko w Pythonie procent programów które działają od razu jest liczbą w miarę znaczącą, w reszczie to kwestia możę 5% (na pewno nie więcej).
Co do silnej społeczności Pythona - może nie ma centralnego forum, polecam jednak zajrzeć na Usenet. comp.lang.python ma dwa razy więcej zarejestrowanych użytkowników niż comp.lang.php. Trzeba jednak niestety przyznać, że w polsce nie ma centralego ośrodka developerów Pythona (ktoś chętny do podjęcia takiej inicjatywy?).

Pozdrawiam
Go to the top of the page
+Quote Post
Fuzja
post
Post #37





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


"Trzeba jednak niestety przyznać, że w polsce nie ma centralego ośrodka developerów Pythona (ktoś chętny do podjęcia takiej inicjatywy?)." możemy coś popróbować, zainteresowany ?
Go to the top of the page
+Quote Post
wolan
post
Post #38





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.10.2004

Ostrzeżenie: (0%)
-----


warto wspomniec jeszcze takie projekty, jak Jython oraz IronPython. Pierwszy umozliwia tworzenie projektow Javowych bez Javy, a drugi to python na platformie .NET. zatem uzywajac jednej skladni mozna napisac np. jakis prosty programik administracyjny, aplikacje bazodanowa (pygtk, pyqt, wxpython itd...), strone internetowa (wspomniane django, pylons, myghty itd...) oraz aplikacje wykorzystujace Java VM czy tez platforme .NET.

BTW: uzywam php, ale gdzie tylko wlezie wpycham pythona. moim zdaniem warto.
Go to the top of the page
+Quote Post
Jabol
post
Post #39





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(Fuzja @ 26.03.2007, 18:46:17 ) *
"Trzeba jednak niestety przyznać, że w polsce nie ma centralego ośrodka developerów Pythona (ktoś chętny do podjęcia takiej inicjatywy?)." możemy coś popróbować, zainteresowany ?
No właśnie o tym piszę. Jeżeli jesteś zaintereoswany to napisz na PW. W ogóle jeżeli ktoś jeszcze jest zainteresowany to walcie narazie do mnie na PW. Nie mam wielkich ambicji, ale skoro tyle tutaj narzekają to trzeba coś zorganizować prowizorycznego (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Pozdrawiam
Go to the top of the page
+Quote Post
Fipaj
post
Post #40





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Takie rzeczy lepiej ustalić gdzieś publicznie, a nuż widelec więcej osób się zgłosi, tylko nie w tym temacie.

Ale anyway - /me zgłasza chęć pomocy, kupuję sobie właśnie serwer na dreamhoście i mogę załatwić hosting za darmo. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Jabol
post
Post #41





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Ale przecież nie tutaj - to jest forum o php.
Jak na razie zapraszam na http://groups.google.com/group/pythonpl/. Stworzyłem tą grupę, jestem też chyba jej adminem (hehe, tzn. moderatorem - musiałem się zapoznać z tym systemem). Jeżeli macie inne zdanie to dajcie znać.

Polecam zejść z tego OT i dalej kontunuwać dyskusję o tym wspaniałym języku (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam

Ten post edytował Jabol 26.03.2007, 18:59:41
Go to the top of the page
+Quote Post
hello.word
post
Post #42





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2006

Ostrzeżenie: (10%)
X----


Nie lubie PHP, strasznie mi się nie podoba. Odpowiedźie mi na pytanie co daje PHP, czego nie daje Python?
Pierwsza strona posiwęcona w całości o Pythonie (Nowa) - PPCG.
Go to the top of the page
+Quote Post
splatch
post
Post #43





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie lubię Pythona, strasznie mi się nie podoba. Odpowiedzcie mi na pytanie co daje Python, czego nie daje PHP? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Nie ma to jak rzeczowe argumenty w dyskusji.
Go to the top of the page
+Quote Post
sztosz
post
Post #44





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Satysfakcję (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Jabol
post
Post #45





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(sztosz @ 27.03.2007, 01:05:29 ) *

Oczywiście Python, prawda? Mi i owszem. Jak myślę o pisaniu w PHP to mnie skręca. A w Pythonie to prawdziwa przyjemność
Go to the top of the page
+Quote Post
splatch
post
Post #46





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Panowie, może ktoś powie do czego ma prowadzić ta dyskusja, czyżby do wyrażania swoich zachwytów na temat danego języka programowania?

Wracajcie do tematu bądź milczcie.
Go to the top of the page
+Quote Post
hello.word
post
Post #47





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2006

Ostrzeżenie: (10%)
X----


Cytat(splatch @ 26.03.2007, 21:16:02 ) *
Nie lubię Pythona, strasznie mi się nie podoba. Odpowiedzcie mi na pytanie co daje Python, czego nie daje PHP? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Nie ma to jak rzeczowe argumenty w dyskusji.


Nie ma to jak powtarzanie myśli przedmówcy z powodu braku odpowiedzi... - jesteś gupi.

Mam honor PHP nie tykam! Dorobił sie w końcu jakiegoś sensownego interfejsu? Bo ostatnio jak patrzyłem, to był najdupniejszy z jezykow wysokiego poziomu. Pozdrawiam.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #48


Admin Techniczny


Grupa: Administratorzy
Postów: 2 074
Pomógł: 93
Dołączył: 5.07.2005




Cytat(hello.word @ 26.03.2007, 23:02:38 ) *
Nie lubie PHP, strasznie mi się nie podoba. Odpowiedźie mi na pytanie co daje PHP, czego nie daje Python?
Pierwsza strona posiwęcona w całości o Pythonie (Nowa) - PPCG.

strona o pythonie a pisana w php :]
Go to the top of the page
+Quote Post
revyag
post
Post #49





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat(hello.word @ 27.03.2007, 10:08:22 ) *
Nie ma to jak powtarzanie myśli przedmówcy z powodu braku odpowiedzi... - jesteś gupi.

Mam honor PHP nie tykam! Dorobił sie w końcu jakiegoś sensownego interfejsu? Bo ostatnio jak patrzyłem, to był najdupniejszy z jezykow wysokiego poziomu. Pozdrawiam.


Twoja argumentacja jest po prostu miażdżąca (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Mógłbyś uzasadnić dlaczego php jest be ? Konkrety ? Zarzuty w stylu "najdupniejszy" jakoś do mnie nie przemawiają.
Go to the top of the page
+Quote Post
mike
post
Post #50





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(hello.word @ 27.03.2007, 10:08:22 ) *
Nie ma to jak powtarzanie myśli przedmówcy z powodu braku odpowiedzi... - jesteś gupi.
Pamiętaj, że jak ludzie przestaną odnosić się do Twoich postów i je zauważać to dlatego, że wzięli sobie do serca tekst napisany na czerwono w mojej sygnaturce.

Jeśli masz zamiar pisać tak rzeczowe posty i taką ilością wspaniałych argumentów to zrób nam przyjemność i się wyloguj (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował mike_mech 27.03.2007, 09:36:46
Go to the top of the page
+Quote Post
sztosz
post
Post #51





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(kwiateusz @ 27.03.2007, 10:11:40 ) *
strona o pythonie a pisana w php :]


Hmm... na pewno? To znaczy, czy jeżeli to jest Apache z PHP/5.1.6 to czy strona nie może być napisana w Pythonie? Czy wtedy byłby response header inny? Pytam, bo po prostu nie wiem, a chciałbym się dowiedzieć. I czy zna może ktoś jakiś prosty artykuł a propos pisania w pythonie na potrzeby www? Taki ogólny zarys, na kilka minut czytania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował sztosz 27.03.2007, 10:07:50
Go to the top of the page
+Quote Post
hello.word
post
Post #52





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2006

Ostrzeżenie: (10%)
X----


Cytat(kwiateusz @ 27.03.2007, 08:11:40 ) *
strona o pythonie a pisana w php :]


Pisana w PHP, ale to tylko na okres próbny. W przygotowaniu jest strona pisana w Django.


mike_mech: ;*

Ten post edytował hello.word 27.03.2007, 10:53:59
Go to the top of the page
+Quote Post
DeyV
post
Post #53





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Kurcze - ale się temat zepsuł.
A tak ciekawie się zapowiadał.

Niestety - ja nie mogę się dołączyć do zachwytów nad Pythonem, choć mój pierwszy kontakt był poprzedzony masą informacji na temat jego zalet, i "prawie" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) w nie uwierzyłem.

I faktycznie - ma ten język wiele zalet. Przede wszystkim, nie wiedzieć dlaczego, przy tak zaawansowanej obiektowości, jest bardzo szybki.
Ma również świetnie dopracowany mechanizm aktualizacji i instalacji aplikacji - te jajka z pobieraniem kolejnych modułów lub uaktualnień kodu, które sprawiają wrażenie niemal integrujących się z samym językiem i systemem - bardzo ciekawe rozwiązanie, znacznie ułatwiające, jak sądzę, dostarczanie kodu do klienta.
Ma też wiele bardzo przydatnych narzędzi do komunikacji z aplikacjami zewnętrznymi - np. świetna obsługa komunikacji z SVN i innymi repozytoriami - nie wiem jak teraz wygląda to w PHP, ale obawiam się, że jest znacznie trudniej.

Tyle o zaletach. A teraz o wadach.
Przyszło mi popracować trochę nad kodem świetnego projektu napisanego w Pythonie - Trac'u.
Przyszło mi to robić bez niemal żądnego przygotowania, przy bardzo słabej znajomości składni. Na początek przerażenie, później już - tak raczej na wyczucie, i dzięki dobrej wyszukiwarce grzebiącej po plikach - udało mi się sporo zrobić.
Okazało się jednak, że dzięki tym "fantastycznym" jajkom z kodem praca nad poprawkami była koszmarnie niewygodna. Odnalezienie pewnych elementów i upewnienie się, że to na pewno ten plik, który mnie interesuje - okazało się dla mnie straszne.
To, że Python tak dużo robi za mnie przestało mnie szybko cieszyć, gdyż zachowanie kontroli nad działaniem kodu było dla mnie znacznie kłopotliwsze, niż w PHP, gdzie zazwyczaj dokładnie widzę, gdzie jaki plik jest includowany, i skąd brany (nie znoszę autoload (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

Przyglądając się rozwojowi tego projektu mam też nieodparte wrażenie, że całe środowisko ciągle jest jeszcze bardzo raczkujące. Z jednej strony powstało świetne narzędzie, z drugiej - problemy pojawiają się na etapie rozważań, jak przygotować obsługę wielojęzyczności, jak przygotować obsługę błędów, oraz jak poradzić sobie z Unicode w bazie.
Troszkę było to dla mnie zaskoczeniem, bo wyraźnie widać, że projekt ten tworzą bardzo zaawansowani programiści, a sam język musi przecież umożliwiać to w sposób co najmniej tak dobry jak PHP. A jednak wygląda to tak, jakby byli zmuszeni dochodzić do tego wszystkiego zupełnie sami, tak jak ludzie walczący z PHP z 5 lat temu.
Podobny problem pojawił się z wyborem systemu szablonów, z którym pracują, i który drugi czy trzeci raz został już zmieniony lub przebudowany. I choć wiem, że takie sytuacje zdarzają się większości dużej trwających projektów, niezależnie od języka, w którym są pisane, nie sprawiło to zbyt pozytywnego wrażenia.

Nie można też pominąć tematu manuala. Który choć jest naprawdę niezły, i wiele podstaw przedstawia w czytelny sposób, to jednak do przyjazności Manuala PHP, według mnie, oczywiście, wiele jeszcze brakuje.
(co nie znaczy, że w manualu PHP wszystko mi się podoba - to jak rozwiązano sprawę łącznia materiałów dotyczących php5 z php4 wkurza mnie niesamowicie, szczególnie że wielu rzeczy nawet przy pomocy wyszukiwarki nie bardzo można odnaleźć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

Ach - i temat stabilności jeszcze. Co prawda nie jestem świetnym adminem, i serwerek, na którym mam postawioną swoją wersję traca, doskonały i zuper bezpieczny nie jest, ale nigdy nie zdarzyło mi się, by PHP się "zabiło". Ewentualnie poszła jakaś pętla, która wykorzystała 100% zasobów przez jakiś określony czas, po to tylko, by PHP i Apache po 30, 60 czy iluś tam sekundach grzecznie się z tym uporał.
Trac potrafił mi umrzeć, nie mówiąc nawet, że coś z nim jest nie tak...
Go to the top of the page
+Quote Post
nasty
post
Post #54





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
Mam honor PHP nie tykam! Dorobił sie w końcu jakiegoś sensownego interfejsu? Bo ostatnio jak patrzyłem, to był najdupniejszy z jezykow wysokiego poziomu. Pozdrawiam.
Dobra panie hello.world, skąd te porównanie? z jakimi językami go porównywałeś i w ogóle to jakie języki "Wysokiego Poziomu" Ty znasz, ze takie porównania przeprowadzasz?!
A skoro masz honor i nie tykasz PHP, to powiedz mi, czemu nie siedzisz na jakimś Pythonowym forum z Pythonowcami zachwycającymi się tym wspaniałym językiem, tylko siedzisz właśnie na tym forum: forum php
Gdyby Python był naprawdę taki super-hiper-mega-extra język, to byłby już dawno sławny i używany prawie wszędzie. Przykładem jest Ruby. Ruby jest stosunkowo młodym językiem który narobił dużo szumu wokół siebie i teraz ma ogromna społeczność wpierająca go. Dlaczego? Dlatego ze Microsoft, IBM, SAP i cala reszta go poparli? Dlatego ze mieli dużo kasy na reklamę? nie. Dlatego ze ludzie się przekonali co do niego. Python jednak jest prawie ze na końcu języków webowych pod względem popularności.
Ta akcja przekonywania do Pythona, przypomina mi swego czasu jak czytałem taki fajny flamewar, gdzie to programiści Visual Basic przekonywali cały świat o tym jaki to ich język jest fajny, miły, łatwy i w ogóle. Problem jednak w tym ze nawet oni sami sobie nie do końca wierzyli, jak nie w chwili pisania postu, to po jakimś czasie przestali wierzyć.

PS. A oprócz tego honoru, masz coś jeszcze ?

Ten post edytował nasty_psycho 27.03.2007, 16:28:05
Go to the top of the page
+Quote Post
Fuzja
post
Post #55





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


nasty_psycho: chyba sobie kpisz, wolisz pisac w perlu www niz w pythonie (np. django) ?
Python zdecydowanie nie jest na koncu.
Poza tym python ma w sobie ogromny potencjał ale żeby go rozpromowac potrzeba jakiegos waznego wydarzenia, lokomotywy, ktora by rozpedzila ten jezyk, taka lokomotywa dla rubiego sa railsy ( no prosze tez zwiazane z lokomotywa ;p) i to jest powod dlaczego jest slawny. Gdyby nie ror to o rubym bys nie slyszal, a w japonii pisalo by w nim tylu programistow co teraz w nemerle (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
nasty
post
Post #56





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
Poza tym python ma w sobie ogromny potencjał ale żeby go rozpromowac potrzeba jakiegos waznego wydarzenia, lokomotywy, ktora by rozpedzila ten jezyk, taka lokomotywa dla rubiego sa railsy ( no prosze tez zwiazane z lokomotywa ;p) i to jest powod dlaczego jest slawny.
A czy nie jest Django odpowiednikiem Railsow? A jakąś nie spowodował ten framework takiej furory jak w przypadku RoR.
----------------
Cytat
nasty_psycho: chyba sobie kpisz, wolisz pisac w perlu www niz w pythonie (np. django) ?

FUZJA: Ja Ciebie bardzo proszę, jak masz zamiar w taki prymitywny sposób dyskutować, jak tu czy z tym pisaniem sterownika, to byłbym wdzięczny gdybyś nie odpowiadał na moje posty. Po prostu je ignoruj.
Go to the top of the page
+Quote Post
Fipaj
post
Post #57





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ten temat śledzę już od dawna tylko dla dobrej zabawy. I mam taką, owszem ;-)

Osoby, które nigdy nic nie napisały w Pythonie, zażarcie bronią swoich racji - czyli PHP. Cały czas panowie prosicie o argumenty pythonowców, sami nie podając własnych, i jednocześnie tworzycie dziwną atmosferę.

Pythonowcy z kolei nie są w stanie podać żadnych dobrych argumentów, poza tą "satysfakcją". To mnie wcale nie dziwi, bo ulubiony język programowania to indywidualna sprawa każdego programisty! Panowie, którzy tak się kłócą za PHP: czy bylibyście w stanie na forum o ASP przekonać bandę 30 osób skupionych wokół technologii MS do PHP?

Zanim nie spróbujecie, to nie prowadźcie takich dyskusji.

Widzicie, ile osób jest za Pythonem. Oni nie prowadzą tej dyskusji dla siebie, tylko dla ewentualnych osób, które będą chciały spróbować. Zainteresujcie się bardziej Pythonem, bo zapewniam, że to nie jest język ani przestarzały, ani zaściankowy!

Jak dzieci normalnie ;-)
Go to the top of the page
+Quote Post
Fuzja
post
Post #58





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Jak dla mnie django jest lepszy niż RoR, wygodniej się w nim pisze, a przede wszystkim jest szybki. Nie zrobił furory bo nie był tak promowany, przecież wszytko zależy od odpowiedniej reklamy.
Nie będe ignorował Twoich postów bo gadasz bzdury i nie sposób zostawić to bez odpowiedzi.
Bardzo dobrze powiedział fipaj, po prostu nie spróbowałeś nie dyskutuj.
Go to the top of the page
+Quote Post
Jabol
post
Post #59





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(nasty_psycho @ 27.03.2007, 16:46:48 ) *
Python jednak jest prawie ze na końcu języków webowych pod względem popularności.
Bo Python to nie jest język webowy. To tylko jedno z jego zastosowań. Świat pythona to nie świat webdeveloperów a programistów (nie chcę zabrzmieć patetycznie, ale tak jest).
Wiem, że jako jest to forum o php patrzycie na to pod tym aspektem, ale to jakby patrzeć na piwo tylko poprzez pryzmat bąbelków na forum ludzi lubiących napoje gazowane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

@DeyV: Wszystko zależy od przyzwyczajenia. Ale też nie zapomne jak przez pół dnia się zastanawiałem czemu "import * from openssl" nic nie ładuje, aż zauważyłem, że mam plik openssl.py w katalogu roboczym (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Co do szybkości Pythona, to polecam źródła tego języka. Najlepiej napisać sobie jakiś moduł własnoręcznie, wtedy praktycznie bez czytania kodu źródłowego się nie obejdzie (tzn. powiedzmy, od pewnego momentu - wiele rzeczy jest doskonale opisanych - ale np. obsługa słowników oraz list...). I wtedy cała tajemnica się odkrywa. Źródła Pythona są po prostu mistrzostwem. To jak dobra, emocjonująca książka. Myślę, że każdy programista to doceni, bo jest tam kilka naprawdę świetnych rozwiązań. A przy tym wszystko to w C i to bez naginania standartów bądź też jakiś najnowszych standartów. A czuje się jakby się pisało w języku obiektowym... Kiedyś myślałem, że API C Pythona byłoby świetną biblioteką do organizowania własnych programów (w sumie rzeczy to wciaż tak myślę). Naprawdę niesamowite narzędzie.

Nie chodzi o to, żeby kłócić się który język jest lepszy. Ale po prostu nie znam nikogo kto po poznaniu Pythona (głębszym), by go odrzucił. Raczej spotykam tylko opinie, że ludzie się wręcz cieszą jak np. z powodów zawodowych już w Pythonie nie piszą a tutaj przyjdzie im coś napisać to zawsze się cieszą. A w PHP jestem najlepszym przykładem, że język ten nie powoduje przywiązania, nie kusi niczym aż tak bardzo. Poza tym niektóre rozwiązania z PHP są strasznie ordynarne, jak np. automatyczna konwersja typów... ble. Albo ta połowiczna obiektwość, ni to w jedną ni to w drugą. Z jednej strony jak mam napisać aplikację to powinienem organizować kod obiektowo, a z drugiej jak chce podzbiór tablicy to muszę używać zewnętrznej funkcji (tutaj się dopiero można pogubić). Nie podważam zalet i możliwości PHP, ale po prostu nie atakujcie tak agresywanie jak tłumacze że PHP to dla Pythona żadne porównanie... no inaczej się tego po prostu nie da powiedzieć. I sympatia dla PHP nic tu nie zmienia. Wystarczy chociażby spojrzeć na ilość stabilnych rozszerzeń do Pythona - nie ma chyba żadnej popularnej biblioteki do której Python nie miałby wrappera, ilość bibliotek jakie wspiera PHP można natomiast wyliczyć na palcach (osób w średniego rozmiaru klasie;) ). Tak samo jeżeli chodzi o technologie (PHP nie jest tutaj co prawda tak daleko w tyle, ale nie ma jakiegoś systemu oficjalnej weryfikajci tych bibliotek).
Jeżeli natomiast chodzi o możliwości stosowania w projektowaniu i implementacji aplikacji sieciowych to nigdy tego w Pythonie nie robiłem, ale myślę że i tam by się świetnie sprawdził.

No, jeżeli mi ktoś teraz wypomni brak argumentów to już będzi to chyba fanatyzm. I tak swoją drogą - ja nie chce nikogo przekonywać, że Python jest lepszy. Po prostu na moje upodobania oraz wymagania z PHP zupełnie nieporównywalny (jak grudka ziemi z lodami czekoladowymi).
Go to the top of the page
+Quote Post
Riklaunim
post
Post #60





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


Ja przeszedłem na django/python i nie odczuwam chęci powrotu do PHP (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

co do wypowiadających się tutaj autorów PPCG - trudna młodzież szkolna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Riklaunim 27.03.2007, 18:54:18
Go to the top of the page
+Quote Post
sztosz
post
Post #61





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jabol dobrze napisał. Nie chodzi o to aby kogoś przekonać, że Python jest lepszy. Tylko, że warto poznać ten język, bo można w nim prosto i przyjemnie stworzyć wiele rzeczy. W Pythonie nie da się napisać niczego, czego nie można by napisać w innych językach, ale warto spróbować, bo może się okazać, że zrobimy to z o wiele większą przyjemnością i szybciej.

Ja, jeśli mam coś napisać, wole to zrobić w godzinę niż np. trzy. A z tego co przeczytałem Python pozwala stawia właśnie na produktywność programisty, czyli też na szybkość tworzenia kodu. Tu po prostu zastanawiasz się i piszesz, zamiast pisać i się zastanawiać.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #62


Admin Techniczny


Grupa: Administratorzy
Postów: 2 074
Pomógł: 93
Dołączył: 5.07.2005




Czytam sobie ten temat od początku i na wstępie miałem mieszane uczucia, ale tak w miarę czytania tematu jak i google nawet spodobał mi sie ten język co prawda perla zamierzałem nadgryźć, ale chyba najpierw zrobię to z pythonem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ogólnie czytając czyjś blog spodobał mi sie styl pisania w django, prosto, czytelnie i w miarę szybko, to jakoś głównie mnie zainteresowało no i to że można w nim pisać nie tylko na potrzeby sieci jak w php czy Ruby(choć ten język podobno taki fajny, a zupełnie mnie nie pociąga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) tylko muszę sobie jakąś porządną książkę znaleźć lub kurs zdatny do wydruku bo mam awers do czytania długich tekstów na kompie...
Go to the top of the page
+Quote Post
Fuzja
post
Post #63





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Tak jak pisałem python od podstaw + python.rk.edu.pl i te wykłady chyba z pierwszej strony co dałem.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #64


Admin Techniczny


Grupa: Administratorzy
Postów: 2 074
Pomógł: 93
Dołączył: 5.07.2005




a właśnie ktoś tam pisał po drodze ze perl jest blee w porównaniu z pythonem... ktoś mi powie dla czego? tak z czystek ciekawości

przy okazji zaraz chyba mi głowa pęknie na dziś koniec czytania o pythonie :]

[ot]btw. Fuzja ile jeszcze będziesz chory (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) [/ot]
Go to the top of the page
+Quote Post
Fuzja
post
Post #65





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


nie moge zmienic sygnatury (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Perl ma skladnie, ze hej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) juz wole asm (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
To chyba wina safari ;p
Go to the top of the page
+Quote Post
Jabol
post
Post #66





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Jest taki kawał.
Rozmawiają dwaj programiści o perlu:
- Wiesz, ja nie lubię perla, bo to jest język do skryptów, nic większego w nim nie napiszesz.
A na to drugi, miłośnik perla:
- To nieprawda. Napiszesz nawet system obsługi lotnisk. I to w jednej linijce (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Perl to język hakerów (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Normalni ludzie nie lubią się katować. Mam nadzieję, że nikogo tym nie uraziłem. Oczywiście to taki żarcik (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , w perlu też można wiele i fajnie napisać, ale ten język czasami przesadza.

@kwiateusz: Syntax pythona jest prosty. Mam fajną książkę, PYTHON, Programowanie, z RM. Składnia może na 50 str opisana a potem 200 stron opisuje wbudowane moduły (jako dodatek (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )! Bardzo mi ta książka jest pomocna, nawet jeżeli już ciutkę nieaktualna.

Pozdrawiam
Go to the top of the page
+Quote Post
Riklaunim
post
Post #67





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


Cytat(Jabol @ 28.03.2007, 07:31:35 ) *
Mam fajną książkę, PYTHON, Programowanie, z RM. Składnia może na 50 str opisana a potem 200 stron opisuje wbudowane moduły (jako dodatek (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )! Bardzo mi ta książka jest pomocna, nawet jeżeli już ciutkę nieaktualna.

tak, ta jest dobra (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ma dobre wprowadzenie.
Go to the top of the page
+Quote Post
mike
post
Post #68





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Zainteresowaliście mnie. Choć może nie tyle zainteresowaliście co skłoniliście żeby odświeżyć pomysł sprzed pół roku żeby nauczyć się Python'a.
Jak się uda to w tym miesiącu (a jak nie to w przyszłym) kupuję Dive Into Python i jazda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
W końcu najsłuszniejsze słowa, które padły w tym wątku to że nie trzeba pokochać i zachwycić się, ale na pewno warto poznać.

Mam jednak pytanie, może nawet wątpliwość. Edytor.
Temat był zahaczony wcześniej przez kogoś ale padło nic konkretnego.
Czy Python posiada jakiś edytor/IDE na miarę Zend'a bądź Eclipse'a (mowa o wtyczkach obsługujących PHP, oczywiście).
Żeby programista z powodzeniem cieszył się owocną pracą potrzebuje dobrego IDE. Stąd jeśli możecie scharakteryzujcie jakieś dobre pełne środowisko dla Python'a.
Poza podpowiadaniem składni (na dobrym poziomie) interesuje mnie zarządzanie projektem podobne jak w Eclipse (bo Zend tutaj dla PHP okazuje się tylko banalnym edytorem) czyli historia zmian, obsługa CVS/SVN, ...

Pytam bo chyba w tym temacie nie jest tak fajnie z Python'em jak z PHP czy innym językiem.
Go to the top of the page
+Quote Post
siemakuba
post
Post #69





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Przyznam, że też się zaciekawiłem. Przyznam @Jabol, że masz "lekkie pióro", więc po lekturze twoich postów chce się zajrzeć głębiej, dać Nura w Pythona ;)

Właśnie, mike, jeżeli nie przeszkadza ci czytanie na ekranie tudzież druk we własnym zakresie: http://diveintopython.org/

Eclipse ma pyDEV, ale jeszcze nie próbowałem jak to działa. Strasznie długo budował mi się projekt po jego utworzeniu, nawet chyba skończyło się to jakimś błędem, ale być może to ja coś pokiełbasiłem.

pozdr.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #70


Admin Techniczny


Grupa: Administratorzy
Postów: 2 074
Pomógł: 93
Dołączył: 5.07.2005




JA tez sie chyba zainteresuje Dive Into Python tyle że własnego druku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to będzie ciekawe doświadczenie bo jeszcze książki po angielsku nie czytałem tak długiej i tratującej o technicznych sprawach...
Go to the top of the page
+Quote Post
siemakuba
post
Post #71





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@kwiateusz: w razie czego wikibooks nadciąga z pomocą: http://pl.wikibooks.org/wiki/Python. Co prawda jeszcze widzę, że nie całość w PL, ale zdecydowana większość.

Osobiście przyzwyczaiłem się już za bardzo do takiej literatury po angielsku, ciężko mi się czyta po polsku.

pozdr.
Go to the top of the page
+Quote Post
Jabol
post
Post #72





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Co do IDE...
osobiście pisze w kombie vim + ipython i jest wszystko, zupełnie wszystko czego mi trzeba. Ale rozumiem, że inni widzą to inaczej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Tak więc istnieje pyDEV, jak już ktoś pisał. Też nie próbowałem, ale jak widzę większość z Was lubi Eclipse, więc już chyba po sprawie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Jeżeli jednak nie to wciąż jest wiele edytorów które wspierają Pythona (i to nie tylko kolorowanie składnie) jak np. Geany (mój faworyt jeżeli chodzi o IDE). Dalej idąc jest Anjuta, bardzo fajne IDE. Co do dedykowanych edytorów to sam nie wiem, bo nie używam. Istnieje boa-constructor, ale jakoś mnie nie przekonuje... Istnieje PyIDE, czy jakoś tak ale też mnie nie urzeka... Myślę jednak, że z tej palety jaką podałem coś sobie można wybrać. Istnieją też edytory na Windowsa, ale jak dla mnie to to jest inny świat i nic tutaj nie mogę doradzić.

Pozdrawiam

Edit: Właśnie sobie zainstalowałem edytor Eric3! Naprawdę świetny! Szkoda tylko, że w Qt (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Nie wiem jak jego możliwości prowadzenia projektów ale na pierwszy rzut oka naprawdę świetny.

Ten post edytował Jabol 28.03.2007, 12:18:56
Go to the top of the page
+Quote Post
sztosz
post
Post #73





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Może Komodo? http://www.activestate.com/products/komodo_ide/
Go to the top of the page
+Quote Post
Hacker
post
Post #74





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


Ja również postanowiłem dać Nura w Pythona. Poczytam, popiszę, może mi się spodoba. Według mnie nie ma sensu dalej ciągnąć tego tematu. Każdy sam musi spróbować i ocenić.

Edit:
Przeczytałem drugi rozdział (1 pominąłem - Pythona nie instalowałem)... i jest dosyć ciekawie (angielski nie znam za dobrze, ale jakoś daję radę).

Ten post edytował Hacker 28.03.2007, 12:29:55
Go to the top of the page
+Quote Post
Riklaunim
post
Post #75





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


ja tam jako IDE używam kate - edytor tekstowy z kolorowaniem składni i trzymaniem wcięć/itp. Ogólnie do pythona jest eric3 (dodatkowo pod pyQT), można użyć też kdevelop, wspomniana "wtyczka" dla eclipse itp.

Do 4/2007 phpsolutions będę chyba właśnie coś pisać w stylu PHP vs Python / Django vs CodeIgniter/inne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Turgon
post
Post #76





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Riklaunim: Nawet się nie waż (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Bo w końcu wybiorę się do myśliwskiego po dubeltówkę i śrut (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

A co do Python'a. Miły język, ale za dużo przyzwyczajeń z PHP by w nim kodować bardzo szybko i skutecznie.
Go to the top of the page
+Quote Post
sztosz
post
Post #77





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A czemu? Ja bardzo chętnie przeczytam takie porównanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
occulkot
post
Post #78





Grupa: Zarejestrowani
Postów: 49
Pomógł: 5
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


Sam rowniez naleze do nawroconych z phpa na pythona - obecnie wiekszosc aplikacji tworze w django - glownie ze wzgledu na to iz na prawde malo rzeczy musze dopisywac do jego kodu sam - po opisaniu bazy, stworzeniu mapowania adresow i napisaniu templateow mamy praktycznie gotowe do odpalania systemy.
Dostepny panel administracyjny swietnie nadaje sie do podstawowych czynnosci - fakt faktem czasami dziwi mnie brak niektorych rzeczy - jak np dziwny sposob sortowania elementow za pomoca order_with_respect_to. Jednak jezeli musimy na szybko przygotowac dzialajacy frontend - panel adminsitracyjny dostepny bezposrednio z frameworka wystaczy do zarzadzania trescia!

Probowalem kilku roznych frameworkow php - od zenda (ciezka i kaprysna beta) code igniter (php 4 :/) i symfony (no na tym juz zostalem troche dluzej - obecnie jezeli chodzi o aplikacje php uzywam tego frameworka) - 2ch frameworkach pythona - django i pylons(SKALOWALNOSC) i ruby on rails - na razie django i python sa najblizsze temu czego mi potrzeba - na drugim miejscu jest pylons (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Co do samego jezyka - pythonem zaczalem sie juz interesowac jakis czas temu - odkad zaczalem uzywac gentoo (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Jezyk ten na poczatku wydawal mi sie dziwny. Pierwsza rzecza ktora mnie przerazila skladnia - czemu zmuszaja mnie do uzywania wciec - i jak tu czytac kod w ktorym nie ma klamer. Kolejna denerwujaca rzecza bylo znane z c namespace. W phpie wszystko jest dostepne od razu - wszystkie funkcje jakich tylko potrzebuje.

Swoje kroki z pythonem zaczalem od przeczytania "python od podstaw" z hellionu. Tam oprocz podstaw - mamy opisane juz bardziej zaawansowane elementy jezyka - takie jak budowanie modulow w c, jython lub interfejsy sieciowe - nawiasem mowiac, te ostatnie przydaly mi sie do zaliczenia "programowania uslug sieciowych" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Pierwszym elementem zaskoczenia dla programisty php beda na pewno tablice, a wlasciwie 3 rodzaje tablic - niby podobne a jednak inne - nawet kiedys jakis maly flame mialem z fanbojem php upierajacym sie ze fajnie ze w phpie do jednej tablicy raz moze dopisac przez array[]='' innym razem przez klucz jeszcze innym przez funkcje. Wszystko fajnie dopoki kod piszemy samemu - kiedy pozniej ten kod musi ktos po nas przejac powinnismy mu opisac kazda zmienna kiedy jest jakiego typu :/. Niestety - w phpie mamy taka roznorodnosc stylow programowania - ze ciezko znalezc tak samo napisane programy nawet u jednego programisty.

Kiedy juz przyszlo do pisania aplikacji w pythonie okazalo sie ze ta cala skladnia mimo pozornej nieczytelnosci jest bardzo przejzysta - w phpie i tak kazdy uzywal wciec - zakonczenie bloku sygnalizowala mu dodatkowo klamra zamykajaca - tutaj mam po prostu powrot do normalnej tabulacji - 2 znaki mniej podczas pisania (ktore i tak za nas wiekszosc edytorow sama zalatwia) - ale tez i 2 znaki mniej do odczytywania! - latwiej mozna zauwazyc cos w kodzie. Brak ";" na koncu polecenia - i nagle koncza sie czeste problemy z syntax error - ze tu sie zapomnialo srednika - szczegolnie gdy poprawiamy cos na szybko.

Dalej - importowanie, namespace i cale te dziwne odwolywanie sie przez obiekty i podobiekty - w phpie na "dziendobry" dostajemy caly namespace - wszystkie funkcje - czy potrzebne czy nie sa od razu dostepne - przyznam sie ze czasami mnie cos strzelalo jak w eclipsie probowalem znalezc dopelnienie nazwy jakiejs konkretnej funkcji do bazy danych pg<ctrl+spacja> i szukaj przez 30 podfunkcji - w pythonie musimy kazda funkcje zaimportowac z odpowiedniego modulu - moze sie to wydawac glupie jezeli patrzymy ile to modulow potrzebuje srednio prosta strona (baza, wyrazenia regularne obsluga plikow, operacje matematyczne) - ale zwroccie uwage ze w pythonie kazdy element jest obiektem - co za tym idzie wykonuje tylko okreslone funkcje - vide validacja formularza - wyszukiwanie w bazie danych - wyswietlanie szablonu - przez co finalny kod danego modulu wymaga tylko tych elementow jezyka ktore mu sa potrzebne - mozemy pozniej taki modul wykrozystac w zupelnie innym miejscu - w dodatku przez to ze kazda inkluzja tworzy osobny namespace - bez strachu iz wywali nam error "cannot redeclare function".

Co do IDE. na dzien dzisiejszy operuje PyDEV na P2.4 z PyLintem - bardzo ladnie podpowiada kod + podkresla bledy a nawet zwraca uwage na styl kodowania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (ta linijka jest za dluga itd...).

Obecnie jak mam napisac jakikolwiek kawalek kodu zawsze robie to w pythonie - nawet projekty na uczelnie - mimo iz kumple robia w c/c++ ja wole napisac w pythonie - raz zeby jescze pocwiczyc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - dwa - bo jest to po prostu przyjemniejsze. W PHPie pisze - bo musze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - mamy w firmie pare aplikacji napisanych w phpie - i czesto trzeba w nich cos zmieniac - i na prawde szlag mnie trafia jak co chwile wyskakuja mi syntax errory, tudziez tutaj zapomnialo sie przecinka tam znowu SQL nie wybiera tego co chce (do dobra - akurat to ze teraz sie z tym nie mecze to zasluga ORMow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). Poza tym nigdy nie wiem co napotkam w danym module - czy bedzie tylko operowal na bazie - czy moze jeszcze zapisze cos do pliku.
Go to the top of the page
+Quote Post
Ace
post
Post #79





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Z pół roku temu zainteresowałem sie Python'em, pisałem proste aplikacje konsolowe typu bot który przeszukuje cały serwis (gotowa biblioteka do obsługi http), wątki też poznałem.

Do końca nie mogłem dojść do ładu z namespace, ale dawałem sobie radę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Problem pojawiał się dla mnie z wygodą pisania. W php mam genialne podpowiadanie składni. Wystarczy, że komentuje odpowiednio kod (phpdoc) i wiem co dana metoda zwraca i na zwracanym obiekcie znów działa podpowiadanie składni.

Do python'a użyłem PyDEV. Używałem jakiejś metody która zwracała mi obiekt jednak, nie było już podpowiadania składni do tego obiektu.

Może spotkaliście się z IDE do pythona które oferuje to?
Go to the top of the page
+Quote Post
mike
post
Post #80





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Zgodnie z obietnicą zacząłem się uczyć Pythona. Chciałem mieć swoje zdanie zdobyte empirycznie i konkretne argumenty w dyskusji.

Co do jednego cofam swoje słowa: składnia Pythona nie jest taka zła a mało tego, po napisaniu kilkudziesięciu linii kodu wręcz przyjemna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale jedno mnie załamało. Z tego co zaobserwowałem, wyczytałem i wypytałem: ten język nie ma interfejsów i klas abstrakcyjnych.
Ja pierdziele, nawet nie mówcie więcej, że to jest język z silną i naturalną obiektowością.
Brak interfejsów i abstrakcji jest dla mnie na tą chwilę żenująco zabawny.
No chyba, że język wspiera inne metody uzyskiwania takich rzeczy.
Go to the top of the page
+Quote Post
NuLL
post
Post #81





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Intefejsy w aplikacji produkcyjnej sie wywala a abstrakcyjne nie sa az tak super potrzebne - ew w konstruktorze wyrzucasz wyjatek i z bani (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
mike
post
Post #82





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(NuLL @ 2.04.2007, 10:28:52 ) *
Intefejsy w aplikacji produkcyjnej sie wywala ...
Wykorzystujesz interfejsy tylko do wymuszania obecności funkcji w klasach? Nie wiem czy wiesz ale to nie jedyne zastosowanie interfesjów (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat(NuLL @ 2.04.2007, 10:28:52 ) *
... a abstrakcyjne nie sa az tak super potrzebne - ew w konstruktorze wyrzucasz wyjatek i z bani (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
~NuLL jakbym Cię nie znał to bym powiedział, że gówno wiesz o programowaniu obiektowym. A tak powiem Ci tylko: wyśpij się chłopie bo głupoty chrzanisz, że aż ręce opadają (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
athabus
post
Post #83





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


A właśnie miałem kupić książkę do Pythona... Ale jeśli to co pisze mike_mech jest prawdą to ja już wolę obiektowość w php...
Go to the top of the page
+Quote Post
Riklaunim
post
Post #84





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

Ostrzeżenie: (0%)
-----


Cytat(athabus @ 2.04.2007, 11:02:31 ) *
A właśnie miałem kupić książkę do Pythona... Ale jeśli to co pisze mike_mech jest prawdą to ja już wolę obiektowość w php...

zamiast przysłuchiwać się kłótniom zajrzyj do źródeł, np. http://docs.python.org/tut/node11.html
Go to the top of the page
+Quote Post
splatch
post
Post #85





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Riklaunim @ 2.04.2007, 11:36:45 ) *
zamiast przysłuchiwać się kłótniom zajrzyj do źródeł, np. http://docs.python.org/tut/node11.html

I tam przekonasz się, że w Pythonie nie ma interfejsów a klasy abstrakcyjne to nie mechanizm języka a Twoja proteza. Pozwolę sobie na ironię - to już jest ta naturalna obiektowość czy musimy jeszcze na nią poczekać czy też ewentualnie poszukać w dodatkowym module?
Go to the top of the page
+Quote Post
athabus
post
Post #86





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


splatch mnie uprzedził, więc nie będę go powtarzał.

Szczerze mówiąc to bardzo się rozczarowałem bo czytając początek dyskusji spodziewałem się, że znajdę język dla siebie (ASP odpada z powodu kosztów - jestem tylko hobbystą). Ale obiektowość bez interfejsów i klas abstrakcyjnych? Trochę nie potrafię sobie wyobrazić programowania bez tych elementów.
To już chyba nawet php jest bardziej obiektowe.

Sama składnia też mnie trochę odrzuca - ale wszyscy mówią, że można się przyzwyczaić więc pewnie można.
Go to the top of the page
+Quote Post
sztosz
post
Post #87





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Najpierw uprzedzę, że być może gówno wiem o programowaniu, ale zastanawia mnie po jaką cholerę mi interfejsy i klasy abstrakcyjne? Bo nie znam innego zastosowania interfejsów oprócz tego o który Nullowi chodziło. A jeżeli chodzi o klasy abstrakcyjne to są tylko po to aby mogły z nich korzystać klasy dziedziczące, natomiast nie można stworzysz obiektu który będzie instancją klasy abstrakcyjnej. Więc moim skromnym zdaniem abstrakcja tej klasy jest jak najzupełniej możliwa w pythonie (tak samo jak interfejs) ale nie ma tych magicznych słów "abstract" i "interface" i po prostu nie wywala nam errorów kiedy stworzymy obiekt instancję klasy abstrakcyjnej. Tak więc język nas nie zmusza nas do tworzenia interfejsów i klas abstrakcyjnych i ale wcale nam tego nie zabrania.

A czy zna ktoś może jakiś program który by przerabiał kod Pythona na kod źródłowy C++, bo w pythonie pisze mi się strasznie łatwo, a muszę coś prostego napisać w C++, albo Javie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) A nie przepadam za tymi językami.

____
PS. Nie mam nic do klas abstrakcyjnych i interfejsów. Trochę łyknąłem Design Patterns i potrafię zrozumieć ich potrzebę.
Go to the top of the page
+Quote Post
athabus
post
Post #88





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


@sztos interfejsy dodają obiektowi je implementujace dodatkowy typ.

Czyli np. chcesz w jakiejś kolekcji zebrać elementy, które można wyświetlić - obiekty takie np. implementują interfejs IDisplayable. Teraz możesz w tej kolekcji zrobić np:

public function addElement(IDisplayable $element)

co wymusi aby dodawane elementy implementowały interfejs. Oczywiście przykład trywialny, ale w większej aplikacji gdzie zachodzi wiele zależności między elementami interfejsy są przydatne.

Co do klas abstrakcyjnych to chodzi właśnie o to co napisałeś - klasa abstrakcyjna dodaje ci pewien poziom abstrakcji, który stanowi podstawę do budowy dalszych obiektów, ale sam w sobie nie może być inicjowany.

Np. Pisząc program do obsługi warsztatu możesz mieć klasę abstrkcyjną samochód i po niej dziedziczyć osobowy i ciężarowy. Po pewnym czasie możesz zapomnieć, że samochód sam w sobie nie miał być inicjowany bo jest zbyt abstrakcyjny i możesz sobie zrobić kuku powołująć instancję samochodu...

Oczywiście wszystko to można obejść, ale są to standardy, które każdy język obiektowy powinien wspierać, aby kod był bardziej czytelny - innymi słowy nie chcę się za rok zastanawiać czemu wyrzucam wyjątek w konstruktorze samochodu.

* oczywiście to tylko tak ogólnie
Go to the top of the page
+Quote Post
sztosz
post
Post #89





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Czyli dobrze mi się wydaje że to już tylko i wyłącznie chodzi o czytelność kodu i szeroko pojęty "maintenance", a nie że jest to taka obiektowość jak w BASIC'u?

Tak przeszukując net, to nawet nie wiem czy ta czytelność kodu cierpi jeżeli brak nam klas abstrakcyjnych tylko z powodu brak tego magicznego "abstract", nikt nie broni nam tworzyć abstrakcyjnych klas tak samo jak interfejsów, chociaż może nie wygląda to tak jak w Javie czy C++, być może mniej czytelniej. Ale to już, moim nie przyzwyczajonym zdaniem, kwestia właśnie przyzwyczajeń (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował sztosz 2.04.2007, 15:19:23
Go to the top of the page
+Quote Post
nasty
post
Post #90





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


sztosz: dam Ci dwa przykłady w których użyje interfejsu i klasy abstrakcyjnej a Ciebie bym poprosił o pokazanie mi jakiejś innej alternatywy. (albo zgodzenia się ze mną (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )

Wiec:
1. Klasa Abstrakcyjna
Masz system w którym konfiguracje się wydobywa z kilku źródeł (Xml, Baza danych, itd...) i wszystkie współdzielą funkcje takie jak IsModified (sprawdzającą czy od czasu załadowania dane się zmieniły), to czy w każdej z klas typu konfiguracji byś pisał ta funkcje ? IMO to jest sprzeczne z dobrymi nawykami programowania które mówią żeby się nie powtarzać. A wywołanie instancji takiej klasy która definiuje tylko ta metodę nie przyniesie Ci nic prócz wyjątków.

2. Interfejs
Użyje tego samego przykładu co wyżej, masz jakaś metodę która za parametr przyjmuje klasę do czytania konfiguracji, to czy byś przeciążał ta metodę dla każdego typu, czy sprawdzał jakie jest źródło konfiguracji, czy po prostu użył interfejsu ? a może w przyszłości będzie jakieś nowe źródło, i co wtedy ?
I jak byś definiował szkielet potencjalnych nowych typów konfiguracji ? (żeby np. funkcje zapisywania zawsze nazywały sie Save a nie Write ?)

Tymi przykładami mam nadzieje ze przekonam Cie o ważności klas abstrakcyjnych i interfejsów jak i innych składników OOP, które nie tylko służą do poprawienia czytelności kodu.

Pozdrawiam

Ten post edytował nasty_psycho 2.04.2007, 19:24:13
Go to the top of the page
+Quote Post
sztosz
post
Post #91





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Ok co do klasy abstrakcyjnej się z tobą zgodzę że to jest bardzo przydatne. Ale w Pythonie można to bez problemu zrobić. Jedyna różnica tak na prawdę to taka że w np. PHP jest to magiczne słówko "abstract" przed definicją, a w Pythonie nie ma, i z tego powodu można mieć obiekt będący klasą abstrakcyjną (ale jeżeli założenie jest że klasa jest abstrakcyjna, to żaden programista przy zdrowych zmysłach nie będzie tego robił). Dziedziczenie w Pythonie? Jak najbardziej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Co do interfejsu to nie za bardzo rozumiem twój przykład (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Interfejs to klasa która jedynie definiuje nazwy metod które muszą zawierać klasy dziedziczące (bez żadnej implentacji metody w interfejsie), tak? Więc, to też bez problemu zrobimy w Pythonie, chociaż przyznam że nie widzę na razie wbudowanego w język sprawdzania czy klasa poprawnie implentuje interfejs.
Ale akurat, tak jak klasy abstrakcyjne pojąłem, to interfejsy nie bardzo więc mogę być w ogromnym błędzie :|

____
PS. Jak już pisałem dupa ze mnie nie programista, ale lubię mieć jasność, i po tym co przeczytałem w tym wątku miałem i mam niejasność, że wy/my tu o czym innym rozmawiamy niż możliwości Pythona (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
athabus
post
Post #92





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


@sztosz - myślisz małą skalą :-) OOP chodzi o elegancję i łatwość utrzymania/rozszerzenia kodu. W sumie masz rację po części, że takie rzeczy jak final, abstract, __toString, interfejsy i wiele innych są możliwe do obejścia. Tylko, że o ile w małych aplikacjach możesz to obejść i nic się nie stanie o tyle w większych takie obchodzenie powoduje wiele problemów. Po prostu inny programista czy nawet Ty w przyszłym roku nie będziesz pamiętał o tym, że dana klasa miała być abstrakcyjna i będziesz tworzył jej instancje. Nie zastosujesz final i będziesz po niej dziedziczył itp itd. Im bardziej system skomplikowany tym bardziej potrzebne są tego typu rozwiązania. Trzeba pamiętać, że OOP powstało właśnie po to aby zapanować na chaosem dużych aplikacji.
Go to the top of the page
+Quote Post
mike
post
Post #93





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Panowie parafrazując słowa jednego z większych [edit]tutaj był epitet ale wykasowałem[/edit] w tym kraju.
Nie róbmy z szamba perfumerii.

Nie starajmy się wygładzić niedoróbek języka.

Dziś znajomy programista Pythona powiedział mi (zapytałem go właśnie o te interfejsy i abstrakty), że jeśli Python czegoś nie ma to znaczy że trzeba się zastanowić czy to w ogóle jest potrzebne. A potem zastanowić się jeszcze raz jak to obejść.

Chyba nie muszę komentować (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował mike_mech 2.04.2007, 22:12:14
Go to the top of the page
+Quote Post
sztosz
post
Post #94





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hmm... ale te final, abstract etc... można zawrzeć w nazwie klasy, w komentarzach(!), etc. Ale rozumiem wasz punkt widzenia.

Ja z tym nie mam problemów (ale też nie tworzyłem wiele (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ), ale z drugiej strony rozumiem, że dla wielu was jest to bariera nie warta przeskakiwania.

Ja w Pythonie prawie zakochałem, innym również życzę takiej wzajemnej miłości. Niekoniecznie Pythona (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Jabol
post
Post #95





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Osobiście zgadzam się ze Sztosem. Ale może to po prostu nawyki z Pythona. Osobiście korzystam ze wszystkich możliwości interfejsów oraz klas abstrakcyjnych w Pythonie, pomimo iż ich tam nie ma! I się nie gubie. A jeżeli komuś potrzeba czegoś więcej, to przecież można wprowadzić jakiś systematyczny sposób nazewnictwa - np. klasy abstrakcyjne pisać jako AClass albo ClassAbstract, tak samo z interfejsami. Oprócz tego można jeszcze robić po linijce komentarza przy klasach i już wszystko wiadomo.
A to, że w php można zarządać aby argument był instancją jakieś klasy to największa niekonsekwencja w PHP w ogóle. Ten język nawet nie rozróżnia stringa od integera. Nie można zarządać aby input był liczbą, a można zarządać aby był instancją BLEBLE_COSTAM_VERY_COMPLICATED_CLASS? Przecież to jest paranoja.

Pozdrawiam
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #96





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


PHP konwertuje typy 'w locie' ale je rozpoznaje. Co do instanceof to właśnie jest użyteczne i to pokazuje przydatność interfejsów, bo jak coś dziedziczy po tym interfejsie, to ma na pewno pewne metody, a jeśli tylko z nich korzystamy to wystarczy że dziedziczy po tym interfejsie, np. mamy 'urządzenia elektryczne' każde można 'włączyć' i 'włączyć' więc nas nie obchodzi jak ten przychodzący obiekt to zrobi, wiemy że może to zrobić.

Co do sensu interfejsów czy abstrakcji, to po co nam obiekty przecież bez nich też można pisać programy które będą działać, ba po co nam funkcje też bez nich można pisać... Więc zastanówcie sie czy to tak naprawdę sa zbędne rzeczy.
Go to the top of the page
+Quote Post
Jabol
post
Post #97





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(Sedziwoj @ 3.04.2007, 19:44:25 ) *
Więc zastanówcie sie czy to tak naprawdę sa zbędne rzeczy.

Jak dla mnie na pewno. Choć rozumiem o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
kwiateusz
post
Post #98


Admin Techniczny


Grupa: Administratorzy
Postów: 2 074
Pomógł: 93
Dołączył: 5.07.2005




klasa abstrakcyjna dla mnie tez jest zbędna, ale interfejs juz nie brak tego w pythonie jest zapewne upierdliwe (a podobno php takie upośledzone ^^) tak jak już ktoś wspomniał php rozpoznaje typy więc nie ejst jakiś poroniony, a że je w locie konwertuje to nawet użyteczna i duży + tego języka... ale to mnie nie zniechęca do nauki, z czasem wreszcie sie zabiore za pythona...
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #99





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


abstrakcja dostarcza pewne metody dla danej grupy, więc potem jak masz zmienić sposób działania tych metod to robisz w jednym miejscu i koniec, a dlaczego lepiej aby nie dało się tworzyć tego typu obiektów? ponieważ one tylko tworzą pewien szkielet który dopiero po 'ubraniu' jest użyteczny.

Co do interfejsu chyba już wszyscy widzą jego zaletę? Wykorzystujemy rzutowanie w górę i to wykorzystujemy, dlaczego interfejs jest lepszy od jakiejś klasy po której się dziedziczy, bo wymusza dla każdej dziedziczącej tworzenie własnych metod, a interfejs opisuje coś czego możemy określić tyko pewne właściwości ale nie możemy powiedzieć jak to jest realizowane w konkretnym przypadku.
Np. mamy interfejs jedzenie potem dziedziczący pieczywo po nim dziedziczą bułki, chleb któe mogą być już załóżmy czymś realnym, więc jedzenie można zjeść ale jak? to już zależy od konkretów inaczej zjemy pomarańcz inaczej bułkę... ale jak przyjmiemy do naszej klasy obiekt który wywodzi się z jedzenia wiemy że możemy wywołać jego metodę 'zjedz' i nas nie obchodzi jak to jest realizowane, dzięki temu możemy tworzyć klasy które na starcie przyjmują jeden tak na prawdę jeden obiekt dziedziczący po danym interfejsie ale po jakimś czasie może być setki implementacji tego interfejsu, a nasza klasa nadal działa jakby nigdy nic.
Go to the top of the page
+Quote Post
Zeman
post
Post #100





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

Ostrzeżenie: (0%)
-----


Cytat(mike_mech @ 2.04.2007, 23:09:43 ) *
...
Dziś znajomy programista Pythona powiedział mi (zapytałem go właśnie o te interfejsy i abstrakty), że jeśli Python czegoś nie ma to znaczy że trzeba się zastanowić czy to w ogóle jest potrzebne. A potem zastanowić się jeszcze raz jak to obejść.



Właśnie też słyszałem, że python nie obsługuje interfejsów. Swoja droga to o ile mi wiadomo, ale może się mylę, to python obsługuje CORBA'e a ta się opiera na interfejsach, IDL itd. To jest dość ciekawe.
Go to the top of the page
+Quote Post

11 Stron V   1 2 3 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.06.2026 - 10:43