Volite web dizajn?

Zašto ne podijelite svoje znanje s cijelim svijetom? Svatko može pisati za Kroativ i na taj način se promovirati.

Pomoć potrebitima

http://www.hck.hr

Hrvatski Crveni križ

u službi humanosti od 1878.

PHP i ASP

Autor/ica itzvonko

Iskusni web developer s višegodišnjim iskustvom u back-end i front-end kodiranju. Odnedavno voditelj projekata tvrtke IT Sense.
Najponosniji na projekt SliceMachine koji vam pomaže u rezanju dizajna i pretvaranju u web stranicu.

Oglas

Ovo je dosta škakljiva tema koja uvijek za sobom povlači duge rasprave. Moj cilj nije utvrditi koji je programski jezik bolji, nego ih čisto lagano usporediti.

PHP i ASP su po mnogočemu slični, no razlikuju se u četiri dosta bitne kategorije, a to su:

  • cijena
  • platforma
  • programerska zajednica
  • brzina

Cijena

Sam ASP je besplatan, no da biste ga koristili, morate imati IIS server koji se vrti na nekim od Windows operativnih sustava. Najčešće se u ASP aplikacijama koristi MS SQL Server koji također nosi nekakvu cijenu.

Na drugoj strani, programiranje u PHPu ne košta ništa (najčešće se vrti na Linuxu), a popularne baze podataka za PHP su besplatne (MySQL i PostreSQL).

Platforma

Korištenje ASP aplikacija je ograničeno na Windows platformu, dok se PHP applikacije vrte na svim platformama.

Programerska zajednica

ASP ima svoju zajednicu na MSDN-u, no doći do zaista korisnih stvari besplatno na internetu nije lako. Na drugoj strani, za PHP postoji zilion tutoriala, članaka, foruma …

Brzina

ASP je sporiji u izvođenju od PHPa.

Ono što PHP nema je robusan Visual alata za programiranje (mnogi programeri to smatraju prednošću), dok ASP ima na raspolaganju moćan Visual Studio (koji najčešće nije besplatan). No, postoje mnogi editori za PHP koji olakšavaju rad, a nemaju Visual komponente (DreamVeawer se najviše približio nekakvom Visual sustavu).

Zaista mi nije namjera povući neke rasprave oko ovoga. ASP se i dalje koristi najčešće od strane većih tvrtki, koje su iz nekoliko razloga primorane koristiti Microsoft tehnologiju (kompatibilnost aplikacija). PHP se od verzije 5 zaista ustabilio kao standard te ga koriste i velike tvrtke da bi smanjile troškove koje za sobom povlači ASP platforma.

Da bismo pokazali kakve su razlike u samom kodu između ASP.NET i PHPa, riješit ćemo jednostavan zadatak u oba jezika: petlja vrti brojeve od 1 do 100 i ispisuje zbroj trenutnog broja i njegovog prethodnika.

Domagoj iz dizzy.hr nam je ljubazno poslao kod u ASP.NET-u (C#).

< %@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 1; i < = 100; i++)
        {
            Response.Write((i + (i - 1)).ToString() + "<br />");
        }
    }
</script>

Može i inline, ali to nije praksa kod ASP.NET aplikacija:

< %@ Page Language="C#" %>
<html>
<head></head>
<body>
    < % for (int i = 1; i <= 100; i++)
       { 
	   Response.Write((i + (i - 1)).ToString() + "<br />"); 
       } 
    %>
</body>
</html>

Sad pogledajmo isti kod u PHPu:

<html>
<head></head>
<body>
    < ?php
    for ($i = 1; $i <=100; $i++) {
        echo $i + ($i - 1) . "<br />";
    }
    ?>
</body>
</html>

Ovo je zaista banalan primjer, tek toliko da dobijete osjećaj razlike između jezika.

Označeno s: ,
Za ovaj članak možete glasati na CroPortalu i tako pomoći u njegovoj promociji. Ako članak još nije objavljen vi možete biti prvi!
Stavovi i mišljenja izrečena u ovome članku i/ili komentarima odnose se samo na autora/icu članka i/ili komentara, a ne i cijele Kroativ mreže. Zabranjeno je neovlašteno prenošenje članaka u cjelosti bez prethodnog dogovora ili bez istaknutog povratnog linka na www.kroativ.net stranicu te imena autora.
Oglas

16 komentara

  • stepic kaže:

    Kratko i jasno objašnjeno. Sad su mi neke stvari jasnije.
    Hvala na odgovoru, a vjerujem da će biti koristan i ostalim posjetiteljima.

  • Davor kaže:

    PHP – pijmo hrvatska piva!

  • Webomedia kaže:

    Da li se ove informacije odnose na ASP ili na ASP.NET jer vidim logo od .NET-a, a spominjes ASP 🙂 Mislim da si trebao spomenuti i .NET framework jer je on taj koji se danas razvija i dosta je jak za razliku od “klasičnog” i zastarjelog ASP-a.

    • Zvonko kaže:

      Mislio sam na .NET.

      Ovako, sve što možeš napraviti sa ASP.NET, možeš i sa PHP-om i obrnuto. No, najveći nedostatak ASP.NET platforme je cijena i vezanost za Microsoft platformu. U čemu je problem: ASP.NET ima dobre skupove klasa za brzi razvoj aplikacija na različitim browserima i platformama (PDA i slično). No, MS shvaćanje browsera se razlikuje od realnog, te zadaje dosta muke developerima koji žele svoje aplikacije prikazati i na ne MS browserima. Drugo, u Hrvatskoj je stvarno teško naći kvalitetan ASP.NET hosting.
      Napomenuo sam da ASP.NET ima jak Editor. ASP.NET ima kompajliran kod. To je otprilike to.

      Sa PHPom možeš raditi sa svim bazama na svijetu, na svim platformama, od verzije 5 je objektan, brži (po pitanju baratanja memorijom) …

      PHP ima ogromnu zajednicu, velika većina PHP aplikacija/skripti je dostupna kao Open Source. Za početnika je to idealna kombinacija.

      Na vama je da odaberete koji jezik vam više odgovara. Moje je mišljenje da developer odabere alat koji njemu osobno najviše odgovara.

      Ovo je samo članak…

  • Domagoj Pavlešić kaže:

    Fuf, sori, ne znamo se, no ne mogu ovo prešutjeti – ovo je izuzetno površna usporedba, i u mnogim stvarima pogrešna.

    Pitanje cijene je samo djelomično točno – mnogi hostinzi imaju iste cijene za Win i Linux pakete, Visual Studio i SQL Server (iako se mogu koristiti i druge baze, bez problema) imaju i svoje besplatne inačice.

    Platforma – cijela priča se može vrtiti i na Linuxu zahvaljujući projektu Mono, iako to nije nešto što je uobičajeno. No može se, i to treba reći. Otprilike isto kao što se PHP može vrtjeti na Windowsima, no ne koristi se baš često.

    Programerska zajednica i support – radim u ASPu i ASP.NET-u od samih početaka i ako sam nečim oduševljen, onda je to količina tutoriala, primjera, objašnjenja i, nadasve, izuzetna kvalitetna dokumentacije na MSDN. No, MSDN nije niti 5% onoga što je na Internetu dostupno. Ne znam kakva je situacija s PHPom, možda je zaista brojčano bogatiji po tom pitanju, no ne sjećam se da mi se ikada dogodilo da sam išta tražio i ne našao, bilo u vidu tutoriala, dokuemntacije, gotovih komponenata… Ukratko, totalno si u krivu po ovom pitanju.

    Brzina? Nisam osobno mjerio, no neki drugi jesu. Osobno nikad nisam imao problema s brzinom samog ASP.NETa, a radio sam na nekoliko vrlo zahtjevnih aplikacija. Također, treba imati na umu da se ASP.NET i IIS u zadnjim verzijama značajno doradio (ne samo po pitanju brzine)
    http://naspinski.net/post/AspNet-vs-php–speed-comparison.aspx

    Sad bih naradije napisao po čemu je ASP.NET bolji od PHP-a, no ne osjećam se kompetentnim raditi usporedbu PHP-a i ASP.NET jer PHP poznajem vrlo površno. Nažalost, teško je naći čovjeka koji podjednako dobro poznaje oba, jer bi jedino to bila vjerodostojna usporedba – ovo i sve ostalo što sam pronašao online na tu temu su samo pogledi iz jednog kuta, i kao takvi totalno nerelevantni.

    • Zvonko kaže:

      OK. ovo je upravo ono što sam želio izbjeći. Slažem se sa svime, ali me zanima što misliš o ovakvom vidu testiranja : http://talks.php.net/show/drupal08/8

      Što se tiče “besplatnog” Visual Studia:
      The Express Editions (2005 and 2008) mostly have the same following limitations:

      * No IDE support for databases other than SQL Server Express and Microsoft Access
      * No support for Web Applications with ASP.NET (this can instead be done with Visual Web Developer Express, though the non-Express version of Visual Studio allows both web and windows applications from the same IDE)

      Na taj način mogu reći i da možeš raditi ASP.NET u NotePadu, ali ja govorim o platformi i njenoj cijeni.

      Dalje, usporedba brzine za koju si stavio link ne pokazuje pravo stanje stvari, jer uspoređuje brzinu u command-line okruženju, a ne u browseru.

      Ja se isto ne osjećam kompetentnim da uspoređujem ova dva jezika, ali ipak… kad u Google ukucam ASP.NET tutorials dobijem 20 milijuna rezultata, a na PHP tutorials dobijem skoro 40 milijuna, ali ne bih sad spominjao PHP Classes i ostale free stvari gdje možeš dobiti pomoć za PHP…

      Ponavljam, radio sam u Javi, JSPu i PHPu i kao takav nisam kompetentan za ovaj članak, ali vi jeste 😉

    • Domagoj Pavlešić kaže:

      Sori, ne možeš napisati blog post i očekivati da nitko ne reagira. Započeo si temu, pa me sad malo trpi 🙂

      Testiranja su gotovo uvijek u nekakvim laboratorijskim uvjetima, a ona prava, u real situacijama, je teško napraviti i usporediti, jer nitko neće raditi ogroman site u dvije tehnologije samo da bi izmjerio koja je brža. Uostalom, nebitno je tko je brži u čemu – bitno je da su oba dovoljno brzi, a to jesu, jer ima hrpa velikih i opterećenih siteova napravljenih na obje platforme, što znači da se može. Ionako se razvoj tako zahtjevnih aplikacija razlikuje od ovih “malih”, kojima je brzina nebitna. Uostalom, oni koji zaista hoće brzinu, ne koriste niti jedan niti drugi…

      Što se tiče besplatnog VS-a, gledao si krivu verziju. “Puni” Visual Studio dozvoljava da razvijaš sve, dok su besplatne inačice razdvojene – postoje one za razvoj desktop aplikacija (iz kojih je citat), i postoji Visual Web Developer Express koji je baš za ASP.NET. To što nema IDE podršku za druge baze podataka, to je marginalno – svejedno ih možeš koristiti, samo im ne možeš pristupati iz sučelja Vistual Studija (ja osobnu tu mogućnost ne koristim niti za MS baze, no to je druga priča).

      Usporedba brzine u browseru nema veze s tehnologijom na serveru. PHP i ASP.NET su serverske tehnologije, i bitno je koliko se brzo izvršavaju na serveru, a ne u browseru jer je u oba slučaja finalni rezultat HTML kod. Ako aludiraš na kod koji generira i njegovu veličinu, to opet nema veze sa samim ASP.NET-om već programerom – ako koristiš neke njegove gotove kontrole, onda će, istina, napraviti tonu glupog i nepotrebnog koda, no ako je to bitno, to se može lako izbjeći. No isto tako, ako želiš napraviti nešto brzo i jednostavno, i nije ti bitno što kod koji se u pozadini nalazi nije optimiziran, onda ćeš cijeniti i tu mogućnost.

      Broj rezultata na Googleu nisu baš mjerodavni (možda neki članci tutorijalnog tipa uopće ne koriste pojam tutorial), no dobro – čak i ako postoji duplo više indeksiranih stranica, to ne znači da su materijali bolji ili da pokrivaju više stvari (niti obrnuto, naravno). Uostalom, tako je svejedno postoji li 20 ili 40 milijuna tutorijala – u oba slučaja je dovoljno i znatno više nego što bi itko mogao trebati u jednom životu, a kamoli da sve pročita 🙂

      Uopće ne tvrdim da je “moj” bolji – dobro si rekao u jednom komentaru – tko što voli, nek izvoli – no nisam mogao ne reagirati na argumente koji su bili… eto… malo upitni što se ASP.NET-a tiče.

      Sori što ti govorim ti, vidim da si ti počeo s “vi”, no nekako mi je to na Internetu normalno 🙂

    • Zvonko kaže:

      Vidim da se obojica slažemo u jednom, neka ljudi odaberu. Meni više odgovara PHP, tebi više odgovara ASP.NET, netko treći će odabrati Javu ili JSP.

      Ustvari, ovaj članak sam napisao jer je jedan čovjek u jednom drugom članku pitao u čemu je razlika. Sad shvaćam da je to jako teško pitanje.

      Možda da ja riješim simple zadatak sa PHPom, a ti sa ASP.NET pa postamo kod ovdje, te onda ljudi vide u čemu je razlika 😉

      Recimo, petlja od 1 do 100 ispisuje zbroj trenutnog broja sa njegovim prethodnikom … (samo ne bude se moglo u komentar to ubaciti, pošalji ako želiš kod na zbiskup@gmail.com pa ću ga objaviti gore ispod članka, nemoj zaboraviti napisati kako želiš da te potpišem) 🙂

  • stepic kaže:

    Ja sam postavio pitanje u članku prije, sad mi je jasno zašto nije odgovoreno odmah 🙂
    Mislim da je dovoljno rečeno da bi laici shvatili razliku i to je bit ove teme.
    Ionako se i ovdje može primjeniti ona narodna “boj ne bije zlaćano oružje, već srce u junaka”.

  • weberica kaže:

    Đurđa daj 2 pana!

  • Zvonko kaže:

    Evo mali update članka. Domagoj je riješio zadatak u ASPu, a ja u PHPu, pa možete vidjeti koliko su jezici lsični odnosno različiti.

  • weberica kaže:

    krasno, a sada nam recite najvažniju stvar: koji od ta dva jezika je lakše naučiti?

    • Zvonko kaže:

      Moje je mišljenje da možeš naučiti bilo koji. A, opet ponavljam, onaj koji ti se više sviđa, lakše ćeš i naučiti. 😉

      A ionako ću sad početi pisati tutoriale o PHPu ovdje, pa ćeš ga lakše naučiti 🙂

  • Weberica kaže:

    Možda se Domagoj razljuti pa i on počne pisati o ASP-u 😛

    • Domagoj Pavlešić kaže:

      Pisao sam godinama o ASP.NET-u u Mreži, no više nažalost nemam za to vremena.

  • AquaDek kaže:

    Mislim da si zaboravio jednu bitnu (možda i najbitniju) razliku između PHP-a i .NET-a. PHP je skriptni jezik koji se interpretira i izvrši svaki put kad dođe request od klijenta. I, nema permanentne memorije, nego sve stvari koje trebaju biti dostupne između dva requesta spremaš ili u session ili na filesystem ili u memorije (memcache) ili u bazu.

    .NET je instalacija koja se vrti u svom procesu svo vrijeme dok je startana na serveru i čeka requeste. Dakle, imaš luksuz čuvanja stvari u memoriji, ili startanja nekog posla iz čistog mira (bez potebe da dođe request od klijenta, u PHP-u moraš kreirati cron job-ove za to).

Trackbacks & Pingbacks

Ostavite komentar

Autori s više od 10 komentara nemaju tag nofollow na svojim linkovima! Zabranjeno je vrijeđanje, omalovažavanje ili na bilo koji drugi način ometanje normalnog toka komentara. Također je zabranjeno oglašavanje u komentarima i sve druge vrste spam-a.

(*) polja su obavezna

XHTML: Možete koristiti: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">