Jump to content
php.lv forumi

Kāpēc PHP tik ļoti sux'o, bet tomēr mēs visi to lietojam


daGrevis

Recommended Posts

Es gan redzu. Ja, teiksim, Top hostinga kompānija Rackspace atver jaunu produktu - cloude storage un sākotnēji tās API ir tikai PHP bibliotēka, tad PHP programmētāji, var šo servisu izmantot uzreiz, kāmēr pārējiem ir jāraksta bibliotēka savā valodā.

Nu ja Rackspace ir tik tuvredzīgi, tad jau viņi paši vainīgi. Django vari nohostēt iekš google apps engine un tas ir šodien, bet tu runā par abstraktu nākotni - kas varbūt kaut kad notiks.

 

No pieredzes. Veidoju aplikāciju pythonā (ne web, jo webam izvēlos PHP), bija nepieciešama attēlu apstrāde. izrādījā, ka nāksies ņemt visai aplikācijai zemāku python versiju, jo PIL bibliotēka neatbalstīja tik jaunu.

Slikta pieredze. Piemēram, lai iedarbinātu django, būs nepieciešams tikai pats python`s.

 

PHP šādas problēmas nav, ja ir konkrēta PHP versija, tad visas biežāk izmantotās bibliotēkas tur ir iekšā (attēlu apstrāde, DOM/XML , cookies, sesijas, get, post mainīgo apstrāde, failu uploads, mysql, pasts), savukārt pythonā ta viss gandrīz vienmēr jāinstalē klāt + liela daļa no šīm funkcionalitātēm nav kā C moduļi, bet gan pašā pythonā rakstīti, tāpēc lēnāki.

Priekš kam? Kam ir vajadzīgs kombains? Kā jau teicu, tad django ietver vajadzīgas web izstrādes lietas.

 

Ne tikai ir, bet ir arī rīki, kas pie skeilošanās ir īpaši svarīgi, jo vari ātri samazināt serveru noslodzi vairākas reizes.

Iedomājies, ka uz PHP aizņem kodēt mēneša garu aplikāciju par 2 dienām ilgāk. Darba devējam (ja tu saņem 700Ls/mēnesī) šīs divas dienas izmaksās nelielu virtuālu serveri pusgada garumā.

Pirmais, kas mani interesē, tas ir ieguvums naudas izteiksmē no tādām priekšlaicīgām "optimizācijām".

 

Es vērtēju valodu pēc šādiem principiem: sintakse (5%) un valodas iespējas (95%).

 

Sintaksi var apgūt max 2 dienās. Tie, kas saka, ka template engine ir jauna sintakse, tad cik jūs sintakses lietojat? Es lietoju 12: python, django template (ja jau patīk to izdalīt kā atsevišķu sintaksi), html, haml, css, sass, javascript, coffee un dažreiz: less, shell, php, ruby. Vienai sintaksei vairāk, vienai mazāk, ko tas maina?

 

Python valodas iespējas ir daudz pārākas, te var diskutēt ilgi (sākot ar OO un traits :)). Vai moduļu organizēšana mapēs - es nebaidos veidot 100 klases kaut vai ar vienādiem nosaukumiem. Vai piemēram, ja man vajag no datne.py mainīgo banana - vienkārši paņemam "from datne import banana". Kā to izdarīt PHP?

 

Lai tas PHP arī neattīstīts, tad vēl ne mazāk man svarīgi ir izstrādes rīki - vienību testēšana, datubāzes testēšana, ORM utt. Vai ir kaut kas līdzīgs django?

 

Par pašu django - es varu uzprogrammēt veselu mājas lapu neizejot no IDE:

1) vienību testi - modeļiem, view`iem (url`s) un funkcionālie testi

2) izlaist testus un uzrakstīt vajadzīgo kodu

Tad viena komanda, kas nosinhronizēs jaunu datubāzi un es varu apskatīt jaunizcepto mājas lapu-aplikāciju.

 

TDD man nodrošina kvalitatīvu kodu, kuru vēlāk es varu labot un neuztraukties, ka kaut kas saplīsīs. Tas pats arī ar jaunu kolēģu piesaisti, kuri bezbailīgi var labot jebkuru aplikācijas vietu.

 

To es iegūstu, neatverot nekādus sql table buldier`us (ko es jau sen nedaru) un pārējos zvērus. Tikai IDE, nekādas pārslēgšanās. Vai to var iekš PHP darīt?

 

Vai piemēram werkzeug debug tūlis. Komandrinda tur pat pārlūkā

Vai ir kas tāds iekš PHP?

 

Visi kā partizāni klusē blakus tēmā http://php.lv/f/topi...jektu-izstrade/, vienīgi python`ists pastāstīja par savu pieredzi. Pastāstiet man "kā jūs taisāt lielus projektus" :)

 

PHP vs django ilgtermiņā varētu izskatīties šādi:

python-vs-php.png

Edited by nemec
Link to comment
Share on other sites

  • Replies 253
  • Created
  • Last Reply

Top Posters In This Topic

Tur jau tā lieta, ka uzliec django un ir viss nepieciešamais web izstrādei. Uzliec PHP, nokačā no vienas puses, no otras puses dažādas lib`as, tad kādu atjauno un kāda daļa aplikācijas nolūzt.

Django nāk kopā ar bilžu apstrādes bibliotēku?

PHP ir valoda Django ir Freimworks, manurpāt, nekorekti salīdzināt.

 

 

Pirms teikt, ka python ir lēnāks, lūgums publicēt datus (saites), nevis izteikt pieņēmumus.

Es runāju par PHP translētu uz C++ un nokompilētu vai PHP laistu uz hiphop virtuālās mašīnas.

 

 

Nebūšu kompetents un nevarēšu atbildēt cik daudz norij resursus. Kā minēju augstāk, pagaidām tik detalizēta optimizācija nebija nepieciešama. Varu tikai piebilst, ka python`a skripti tiek ielādēti un gaida pieprasījumu, bet savukārt PHP tiek katru reizi ielādēti no jauna (un mysql konekcija tiek izveidota no jauna) - jau šajā posmā ir pamatīgs robs.

Ja izmantosi populāros serverus Apache vai Nginx un WSGI/FastCGI, tad tā nebūs.

Savukārt, kas attiecas un ne stateless pieprasījumiem, tad ar tiem ir daudzas problēmas:

1)Izdomāsi kādu resursu dalīt starp pieprasījumiem, var gadīties, ka nevarēsi skeiloties uz 2 serveriem

2)Ja pēkšni pārtrūkst mysql konekcija, vai notiek kāda cita kļūda dalītā resursā, tad jātaisa speciāli monitorēšanas rīki, jātaisa pooli priekš resursu sadalīšanas. PHP stateless pieprasījumos tādas problēmas nav.

 

 

Es arī neapgalvoju, ka python ir galīgs mēsls, patiesībā es python uzskatu par vienu no labākajām pieejamajām skriptu valodām un esmu taisījis pat vairāku projektus tajā, kā arī savam dēlam programmēšanu sāku mācīt tieši ar python, jo daudzas programmēšanas koncepcijas tajā ir ērti uzrakstāmas un viegli saprotamas, taču priekš web izstrādes es uzskatu, ka PHP tik un tā ir summāri labāks.

Edited by codez
Link to comment
Share on other sites

Kur ir tie rīki? Tikai viens liels treš http://www.phpclasses.org/

Salīdzini ar http://djangopackages.com/

Man ir divi iebildumi:

  1. Django ir framework un djangopackages attiecoši ir tam framework. phpclasses kadreiz bija populars un tur ir vienkāŗsi klasses un bibliotekas PHP valodā. Nu un projekts ir butībā miris.
  2. Attiecoši ir jaskatās kas ir pieejams attiecošam framework.

Tā kā šis punkts ir fail.

Link to comment
Share on other sites

> ...heštabulas, binary search tree, grafus, segmentu kokus, intervālu kokus, vispār sarežģītākas datu struktūras un algritmus...

 

Jā, šito tikai ar PHP!

Link to comment
Share on other sites

Man ir divi iebildumi:

  1. Django ir framework un djangopackages attiecoši ir tam framework. phpclasses kadreiz bija populars un tur ir vienkāŗsi klasses un bibliotekas PHP valodā. Nu un projekts ir butībā miris.
  2. Attiecoši ir jaskatās kas ir pieejams attiecošam framework.

 

Tā kā šis punkts ir fail.

ok. Kur ir tas progresīvs ietvars iekš PHP ar kaudzi skriptiem?

Link to comment
Share on other sites

ok. Kur ir tas progresīvs ietvars iekš PHP ar kaudzi skriptiem?

Katram framework ir sava ekosistēma, paplašinājumi un ir lieli projekti konkrētām lietām: Doctrine, TCPDF u.t.t. Zend Framework componentes aktīvi tiek izmantotas ka bibliotekas konkrētiem uzdevumiem (es piemēram Yii projektos izmantoju Zend_Mail)

Link to comment
Share on other sites

Django nāk kopā ar bilžu apstrādes bibliotēku?

Nē, django nenāk kopā ar bilžu apstrādi, jo bilžu rediģēšana nav vajadzīga web izstrādei.

Jāuzstāda būs PIL, ja vēlies manipulēt ar bildēm. Kaut gan es dodu priekšroku imagemagick.

 

Es tā saprotu, ka biji mēģinājis palaist PIL uz python3? Jāņem vērā, ka pagaidām python3 netiek aktīvi lietots.

 

Nu un uz PHP arī vajadzēs uzlikt GD bibliotēkas http://lv.php.net/ma...equirements.php vai tad nē?

 

PHP ir valoda Django ir Freimworks, manurpāt, nekorekti salīdzināt.

Nav korekti, bet efektīva web izstrāde nav iedomājama bez laba ietvara (vai rīku kastes). Python`am tas ir django. Iekš PHP es nevaru atrast konkurentu, tāpēc arī salīdzināt nav īsti ar ko.

 

Es runāju par PHP translētu uz C++ un nokompilētu vai PHP laistu uz hiphop virtuālās mašīnas.

Baigi forši. Kur ir reāli dati? Ātrāks par 1% vai par 300%? Biju redzējis pieaugumus līdz 3x reizes, ja salīdzina ar PHP un hiphopPHP. Vēl varētu salīdzināt ar eaccelerator un APC.

 

Jau biju prasījis par pieredzi, piemēram jāņem vērā tādas lietas https://github.com/f...inconsistencies

 

Ja ir pieredze, tad es domāju, ka ne tikai man gribētos par to palasīt.

 

Ja izmantosi populāros serverus Apache vai Nginx un WSGI/FastCGI, tad tā nebūs.

Savukārt, kas attiecas un ne stateless pieprasījumiem, tad ar tiem ir daudzas problēmas:

1)Izdomāsi kādu resursu dalīt starp pieprasījumiem, var gadīties, ka nevarēsi skeiloties uz 2 serveriem

2)Ja pēkšņi pārtrūkst mysql konekcija, vai notiek kāda cita kļūda dalītā resursā, tad jātaisa speciāli monitorēšanas rīki, jātaisa pooli priekš resursu sadalīšanas. PHP stateless pieprasījumos tādas problēmas nav.

Protams, jebkurā nepilnībā var atrast arī priekšrocības.

Kas traucē 2. punktā veikt atkārtotu pieslēgšanos, ja ir runa par gone away erroru?

 

Es arī neapgalvoju, ka python ir galīgs mēsls, patiesībā es python uzskatu par vienu no labākajām pieejamajām skriptu valodām un esmu taisījis pat vairāku projektus tajā, kā arī savam dēlam programmēšanu sāku mācīt tieši ar python, jo daudzas programmēšanas koncepcijas tajā ir ērti uzrakstāmas un viegli saprotamas, taču priekš web izstrādes es uzskatu, ka PHP tik un tā ir summāri labāks.

Es nevienam netaisos pierādīt, ka python`s ir labāks. Paprogrammējiet gadu tajā un paši sapratīsiet.

Es tikai varu atbildēt uz jautājumiem kā notiek izstrāde tajā un kā tiek risinātas manas problēmas.

Link to comment
Share on other sites

  • 2 weeks later...

Inb4 rage, šeit manuprāt viss ir skaidri pateikts- http://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html#more

 

Un jautājums mazliet off-topic: nakuj visi šitie python (lai arī cik laba valoda tā nebūtu) un citu valodu gandrīz vai idiotiski reliģiska līmeņa fanāti nāk, es atvainojos, PHP.LV forumā un mēslo savu ticību augstākiem spēkiem kā argumentus minot kaut kādas mītiskas priekšrocības?

 

Pitons ierindas web projektiem nav un nekad nebūs labāks par PHP. Punkts. Ir jābūt tērētam lai argumentētu pretējo. Django nav pretinieku? What is this? Cake, Yii, symphony? Nope? (CI nepieminu ar domu- old and valid no more. Kohana centās, bet izskatās, ka ne visai sanāk).

 

Nemec var turpināt argumentēt ar putām uz lūpām, cik čūsks ir labs un incredible, un awesome, un magical un un un un un.. krkrrkrhhhghhghh... Hello Mr Jobs. Tikai vispirms padomā, jo kāds varētu sākt iedomāties Py un Django salīdzināt ar Go un citiem new age projektiem. Diez ko tu teiksi tādā gadījumā. Ak jā, runājot par Py, v2 un v3 - kā patīk lielā migrācija? :*

 

Manī kaut kā bija radusies cerība, ka deveropeļeļi šeit ir izauguši pāri holy-war līmenim, par to, kura valoda labāka vai sliktāka, vai vēl kāda un beidzot sapratuši, ka katrai valodai ir savs mērķis. PHP ir ierindas aplikāciju izveide, ātrs deploy un med. size projekti. Py darbojas citos laukos. Node darbojas vēl kaut kur citur. C++ lapas vispār ir labi talu no visa šī cirka. Man the fuck up.

Link to comment
Share on other sites

Inb4 rage, šeit manuprāt viss ir skaidri pateikts- http://blog.ircmaxel...ke-it.html#more

Esmu šo izlasījis, skatos, ka codez`a argumenti lielākoties no tās vietas arī ir paņemti.

Var paņemt kaut vai dažus citātus, kuriem es nu galīgi negribu piekrists:

1)

It's really easy to write working applications. It's really easy to create a large scale project.

Ja large scale ir daudz koda un funkcionalitātes, tad es nepiekrītu. Ja large scale ir bit.ly (vai līdzīgas funkcionalitātes portāls), tad vispār vienalga ar ko to taisīt.

 

2)

I mean in the CMS market alone, PHP dominates by a long shot (Wordpress, Joomla!, Drupal, vBulletin, MODx, TYPO, etc). Pick a web market, and PHP will likely dominate it (if not just have a strong presence). The fact of the matter is simply that PHP is ridiculously easy to deploy. So easy that even a non-developer can do it.

Joomlu man būtu kauns likt šajā maisā, nu bet lai paliek :)

Ja ir vajadzība pēc CMS vai kāda interneta veikala, protams, tad dažreiz attaisnojas ņemt gatavu. Es pats lietoju vairākus php opensource projektus, piemēram, drupal, livestreet un citus. Bet kur te PHP priekšrocība? Vai ir daudz tādu programmētāju, kuri paņem drupal un tad būvē/pārtaisa līdz kādam nopietnam paštaisītam projektam? Ja jums vajag uztaisīt personīgo interneta veikalu, tad pielāgot kaut ko gatavu būs nu baigi sarežģīti — galvenā nodarbe būs ņemt ārā nevajadzīgas fīčas un tas pietuvinās jūs pie code monkey. Vai arī jūs ejat pie klientiem ar wordpress un stāstāt, ka šīs 80% pogas jums nav vajadzīgas, tikai šī "Add new entry"? Vai arī kādas problēmas jums sagādās pārtulkot drupal, kur būs 1000 valodas ierakstu.

 

Rubijam arī ir labi projekti http://www.redmine.org/ , vai man pēc šī gribās visu programmēt ar ruby? Nē, taču. Es vienkārši šos projektus lietoju un pēc iespējas arī pielaboju, bet ja labošanai nepieciešams daudz laika un pārtaisīšanas, tad taisu savu. Jāizjūt tas kritiskais slieksnis. Un šo izjūtu var apgūt tikai paspaidot katru produktu no iekšpuses.

 

Un jautājums mazliet off-topic: nakuj visi šitie python (lai arī cik laba valoda tā nebūtu) un citu valodu gandrīz vai idiotiski reliģiska līmeņa fanāti nāk, es atvainojos, PHP.LV forumā un mēslo savu ticību augstākiem spēkiem kā argumentus minot kaut kādas mītiskas priekšrocības?

Es nāku un stāstu par savu pieredzi. Varbūt php.lv foruma biedrs saskatīs kādu django fīču baigi noderīgu un uztaisīt to uz PHP. Nevajag jau uz visu reaģēt kā mazs bērns, jo redz tava mašīnīte ir sliktāka.

 

Pitons ierindas web projektiem nav un nekad nebūs labāks par PHP. Punkts. Ir jābūt tērētam lai argumentētu pretējo.

Kāda ir pieredze ar django, ja apgalvo tādus "faktus"?

 

Django nav pretinieku? What is this? Cake, Yii, symphony? Nope? (CI nepieminu ar domu- old and valid no more. Kohana centās, bet izskatās, ka ne visai sanāk).

Atkal tiek saukti vairāki ietvari. Vai tiešām ikdienā visus 3 lieto? Paņem vienu un salīdzināsim. Python`am jau arī ir vairāki ietvari, bet nav jau kvantitātē lieta.

 

Vai ir kaut viens ietvars, kurš piedāvā modeļus sinhronizēt ar mysql datubāzi? Vai administrācijas panelis, kas veidojas no modeļiem? Vienību testi ar mysql datubāzi? Un daudz kas cits.

 

Nemec var turpināt argumentēt ar putām uz lūpām, cik čūsks ir labs un incredible, un awesome, un magical un un un un un.. krkrrkrhhhghhghh... Hello Mr Jobs. Tikai vispirms padomā, jo kāds varētu sākt iedomāties Py un Django salīdzināt ar Go un citiem new age projektiem. Diez ko tu teiksi tādā gadījumā. Ak jā, runājot par Py, v2 un v3 - kā patīk lielā migrācija? :*

Es nebaidos, ja mans rīks novecos un būs nederīgs, vari droši salīdzināt, argumentēt un pamatot. Es neesmu mazs bērnus, kurš apvainojas, ja viņam pasaka "vecīt, tu programmē pēc vecām metodēm, jāiet tālāk". Un es eju tālāk vai vismaz mēģinu.

 

Manī kaut kā bija radusies cerība, ka deveropeļeļi šeit ir izauguši pāri holy-war līmenim, par to, kura valoda labāka vai sliktāka, vai vēl kāda un beidzot sapratuši, ka katrai valodai ir savs mērķis. PHP ir ierindas aplikāciju izveide, ātrs deploy un med. size projekti. Py darbojas citos laukos. Node darbojas vēl kaut kur citur. C++ lapas vispār ir labi talu no visa šī cirka. Man the fuck up.

Pats neesi pastāstījis pat par savu pieredzi. Kaut kādi sausi teksti - python`s neder lieliem projektiem un viss. Kur kaut viens arguments vai pamatojums? Liec savu pieredze uz galda, skatīsimies, vai biji izpratis līdz galam vai tik tiešām django bija nespējīgs.

 

Ja cilvēks, kuram nav pieredzes ar python, saka, ka python/django nerullē, tad tāda cilvēka viedoklis automātiski tiek pielīdzināts nullei (bezvērtīgs). Lasīt svešas domas internetā nav tas pats kā pašam pamēģināt.

 

Kā es jau teicu, tad pats izvēlos PHP mazām lapām, jo

1) man nav jāčakarējas ar hostingu un varu samest uz jebkura BAnano PHP skriptus

2) bieži vien klientiem ir paziņas hostingi (vai savi), kur parasti stāv tikai noklusētais LAMP un skaidrot par django/python vai ko citu ir lieka laika tērēšana

3) tas ir gatavs šablonu dzinis un var uztaisīt ātri primitīvu lapu

4) to sapratīs 95% web izstrādātāju

 

Un es neņemšu PHP, ja man vajag kādu no šiem punktiem:

1) pārklāt kodu ar vienību testiem (visu). Vai var normāli notestēt darbu ar datubāzi iekš PHP? Notestēt pieprasījumus? Iekš django testiem varu rakstīt arī selenium testus, to var darīt PHP ietvaros?

2) versionēt kodu un datubāzi

3) admin panelis

Link to comment
Share on other sites

Es visā neiedziļinājos, taču manuprāt neviens nenosauca pašu būtiskāko iemeslu PHP popularitātei (vismaz Latvijā). Vēl pavisam salīdzinoši nesen atrast hostingu, uz kura ietu Python un Ruby nebija nemaz tik viegli. Liela daļa no mums taisa visādas lapeles un portālus un ko tik vēl ne dažādiem klientiem, kas lieto dažādus labus un lētus hostingus, reizēm pat hostējot risinājumu paši. Gandrīz vienmēr var rēķināties, ka PHP lapa darbosies arī uz klienta īpaši superīgā labā un lētā hostinga, ko nevar teikt par citām valodām, lai gan nu jau kļūst labāk.

Link to comment
Share on other sites

1) pārklāt kodu ar vienību testiem (visu). Vai var normāli notestēt darbu ar datubāzi iekš PHP? Notestēt pieprasījumus? Iekš django testiem varu rakstīt arī selenium testus, to var darīt PHP ietvaros?

PHPUnit + Selenium.

 

 

2) versionēt kodu un datubāzi

Te var.

 

 

3) admin panelis

Paskaidrosi šo punktu sīkāk? Kādas fīčas tev ir jāadminē panelī un ko tā automātiskā ģenerēšana no modeļiem maģiski uzģenerē?

 

 

Rubijam arī ir labi projekti http://www.redmine.org/

Salikt kopā "labs projekts" un "redmine"... (facepalm)

Edited by Kavacky
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...