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

Personīgi es nelēkāju no valodas uz valodas un attīstu savas iemaņas un zināšanas dziļumā un apgūstu papildus tehnoloģijas kā NoSQL, Sphinx (memcache & co es pat neskaitu) un saistītas ar HTTP īpašības - līdz šim es nekad neesmu ticis situācijā kad izstrādājot WEB sistēmu man PHP nepietika - man vairāk traucē brauzeri un lielās biznesa prasību izmaiņas. Kārtīgi izdomāta arhitektura un pareizo rīku izvēle praktiski nerod problēmas ar PHP kā tādu. Ja tam ir savas īpašības, kuras ir jazin un ar kurām ir jareķinās, bet tas pats ir a Python/Ruby. Īsti ir jabūt profesionālām savā jomā un ir jazin un jaredz to momentu, kad ir jagriežās pie profesionāla citā valodā lai risināt problēmu, kas radusies un galvenaijs rīks to risinā slikti vai pilnīgi neder.

Man tieši tāda situācija ir ar tekošiem projektiem - es nodarbojos ar kolēģi WEB (PHP, MySQL, Yii Framework) un cits cilvēks nodarbojās ar servisu izstrādi uz Mono. Katrs dara savu darbu un kopā mums ir labi strādājošā sistēma. Mēs meklējas HTML/CSS/JS cilvēku, lai viņš profesionāli varētu taisīt savu daļu - mēs to tagad daram, bet neskatoties uz to ka mūsu darba kvalitāte ir drusku augstāka par videjo, mēs uzskatam ka profesionāls to padarīs daudz labāk.

 

Cilvēku, kas lēkā no vienas valodas uz otru ik pirmo-otro gadu par profesionāli es nesaukšu, jo profesionāls izveidojās sakrājot zināšanas viss maz 5-7 gadu laikā noteiktā jomā un tehnoloģijā. Lielāka daļa to, kas lēkāja pa valodām un platformām, ar kuriem es runāju pat vidēji nezin par PHP un izņēmot to populistiku, kas ir redzama visur, neko nezin. Un to pašu var pateikt par jebkuru valodu - ja cilvēks nav strādājis ilgu laiku un neiedzilinājies kārtīgi - tas ir cilvēks ar virspusejām zināšanām tajās valodās un tehnoloģijās.

Link to comment
Share on other sites

  • Replies 253
  • Created
  • Last Reply

Top Posters In This Topic

Nu, ko tur daudz analizēt pārdesmit kB kodā:

PHP parseris ir vienkārši lasāms, saprotams un viegli modulāri paplašināms

http://michelf.com/p...s/php-markdown/

Python parseris savukārt ir krietni lielāks izmēros un neko nevar saprast, kas tur vispār domāts, kaut kādi ķeburi:

http://code.google.c...ib/markdown2.py

 

P.S.

Un visvairāk mani piedur šitā rindiņa, ko no lieka visi grib rakstīt pythonā un likt vienā kastē ziemai glabāt ābolus kopā ar kartupeļiem:

if __name__ == "__main__":
sys.exit( main(sys.argv) )

Edited by codez
Link to comment
Share on other sites

Jā, esmu veicis izstrādes praktiski visās šī saraksta valodās un PHP viennozīmīgi pārspēj visas. Ja nu vienīgi BF++. Līdzīgi kā nodejs ir pret javascriptu, tā BF++ ir pret BF.

 

Aptuveni cik daudz koda rindas esi uzrakstījis jebkurā valodā, kas sākas ar N? Vairāk par nevienu?

 

Aptuveni cik PHP?

 

Cik Javascript?

 

Kas ir tava trešā biežāk lietotā valoda (minu, ka pirmās 2 ir PHP un Javascript) un cik aptuveni koda rindas esi uzrakstījis tajā?

Link to comment
Share on other sites

P.S.

Un visvairāk mani piedur šitā rindiņa, ko no lieka visi grib rakstīt pythonā un likt vienā kastē ziemai glabāt ābolus kopā ar kartupeļiem:

if __name__ == "__main__":
sys.exit( main(sys.argv) )

 

Šitā rindiņa ļauj vienam failam būt gan bibliotēkai, gan izpildāmam. PHP nav elegantāka risinājuma šādam uzdevumam.

Link to comment
Share on other sites

 

Aptuveni cik daudz koda rindas esi uzrakstījis jebkurā valodā, kas sākas ar N?

 

Šodien nav tava veiksmīgā diena, ne to burtu izvēlējies.

Ņemam par piemēru valodu NULL.

Ši ir viena no retajām 0-dimensionālajām valdoām tādā ziņā, ka jebkuru programma ir viens vienīgs skaitlis. Kas var būt vēl vienkāršāk?

Pythonā un Rūby sēdi mēnešiem un kodē, bet NULL valodā paņem vienu skaitli un programma gatava. Un tā kā NULL ir truning-complete valoda, tad tajā var uzkodēt visus tos pašus algoritmus, kurus var ierastajās c++, php, python.

 

Šitā rindiņa ļauj vienam failam būt gan bibliotēkai, gan izpildāmam. PHP nav elegantāka risinājuma šādam uzdevumam.

 

Vispār jau PHP to var izdarīt ļoti vienkārši, bet ne par to ir runa. Kas tie par apzīmējumiem ___name__, vai tomēr _name_, nē laikam vija ___name_____, īsti neatceros, varbūt šādi _________________name__. Un tālāk kas bija? ___main______ vai __main_?

 

if __name__ == "__main__":



if (PHP_SAPI=='cli') {
}

 

Bet tik un tā kārtējo reizi PHP sanāca īsāks.

Edited by codez
Link to comment
Share on other sites

 

Šodien nav tava veiksmīgā diena, ne to burtu izvēlējies.

Ņemam par piemēru valodu NULL.

Ši ir viena no retajām 0-dimensionālajām valdoām tādā ziņā, ka jebkuru programma ir viens vienīgs skaitlis. Kas var būt vēl vienkāršāk?

Pythonā un Rūby sēdi mēnešiem un kodē, bet NULL valodā paņem vienu skaitli un programma gatava. Un tā kā NULL ir truning-complete valoda, tad tajā var uzkodēt visus tos pašus algoritmus, kurus var ierastajās c++, php, python.

 

Uz jautājumu par N valodām tā arī neatbildēji. Tāpat arī uz pārējiem jautājumiem par sarakstītajām koda rindiņām ne.

 

 

Vispār jau PHP to var izdarīt ļoti vienkārši, bet ne par to ir runa. Kas tie par apzīmējumiem ___name__, vai tomēr _name_, nē laikam vija ___name_____, īsti neatceros, varbūt šādi _________________name__. Un tālāk kas bija? ___main______ vai __main_?

 

if __name__ == "__main__":



if (PHP_SAPI=='cli') {
}

 

Bet tik un tā kārtējo reizi PHP sanāca īsāks.

 

Nav ekvivalenta funkcionalitāte.

 

PHP piemērs pasaka, ka PHP programma konkrētajā brīdī tiek darbināta no komandrindas nevis no web vai kā citādi. Python piemērs pasaka, ka konkrētais Python fails tiek darbināts kā komanda, nevis, piemēram, importēts kā bibliotēka. PHP gadījumā līdzīgākais laikam ir include.

 

Manai dienai nav ne vainas, tikai kārtējo reizi pārliecinos, ka ar nekompetentiem troļļiem nevajag ielaisties diskusijās.

Edited by edgarsj
Link to comment
Share on other sites

Kāpēc pythonisti vienmēr ir tik piekasīgi. Vai tiešām valoda tā maina cilvēka raksturu?

Cik pazīstu visus PHP developerus, viņi visi ir draudzīgi un izpalīdzīgi un nepiekasās pie katra sīkuma un cik esmu sastapis, tad tie, kas darbojas PHP ir daudz profesionālāki, jo pamatā nāk no C++, savukārt starp man pazīstamajiem pytonistiem nav neviena tāda, ko varētu saukt par profesionāli. Ar pytonistiem es šeit domāju nevis visus, kas lieto python, bet tos, kas to lieto pārsvarā, nevis tikai mazu komandrindas tūļu izgatavošanai.

 

Bet nu ok, ja tik piekasīgi, tad PHP tik un tā īsāk:

if __name__ == "__main__":

 

if (!debug_backtrace()){}

Edited by codez
Link to comment
Share on other sites

Parādi man kādu «new genaration» programmētāju (jauns, zem kādiem 25 gadiem), kurš ir nācis no C/C++.

Viņi visi parasti sāk un arī paliek/beidz ar PHP. :(

Link to comment
Share on other sites

Kāpēc pythonisti vienmēr ir tik piekasīgi. Vai tiešām valoda tā maina cilvēka raksturu?

Cik pazīstu visus PHP developerus, viņi visi ir draudzīgi un izpalīdzīgi un nepiekasās pie katra sīkuma un cik esmu sastapis, tad tie, kas darbojas PHP ir daudz profesionālāki, jo pamatā nāk no C++, savukārt starp man pazīstamajiem pytonistiem nav neviena tāda, ko varētu saukt par profesionāli. Ar pytonistiem es šeit domāju nevis visus, kas lieto python, bet tos, kas to lieto pārsvarā, nevis tikai mazu komandrindas tūļu izgatavošanai.

 

Bet nu ok, ja tik piekasīgi, tad PHP tik un tā īsāk:

 

Tiešām īsāk? Pārskaiti simbolus.

 

if __name__=="__main__":

if (!debug_backtrace()){}

 

Ja nopietnāk, tad kā pats redzi, dotajai funkcionalitātei PHP nav nekas īpaši īsāks, vienkāršāks vai saprotamāks, kā apgalvoji. Varētu pat minēt, ka debug funkcijas izmantošana šādiem mērķiem šķiet nesaprotama.

 

Par "piekasīšanos" - ja X strīdā saka, ka A ir B un PHPist māj ar galvu, bet Pythonisti saka, ka nekā - A nav B, tad kuri ir profesionālāki programmētāji?

 

Un vēlreiz - ja jau lielies ar savu pieredzi, tad varētu lūdzu iedot man koda rindiņu, kas uz ekrāna izdrukā "Codez ir profesionāls programmētājs" NULL valodā? Es sapratu, ka no N burta valodām ar šo tev ir lielākā pieredze.

Edited by edgarsj
Link to comment
Share on other sites

Parādi man kādu «new genaration» programmētāju (jauns, zem kādiem 25 gadiem), kurš ir nācis no C/C++.

Viņi visi parasti sāk un arī paliek/beidz ar PHP. :(

LOL, ap 90% un skaitā virs 2 desmiti no programmētājiem, ko es pazīstu, nāk no C++ un šeit es runāju par programmētājiem, kas var paņemt priekšā IOI vai ACM uzdevumus (salīdzināšanai vari paskatīt 4 un 5 zvaigžņu uzdevumu olimpā). Šo programmētāju domāšana ir pāris līmeņus augstāka, nekā darbs, ko ikdienā viņi veic. Tas ļauj viņiem ļoti labi redzēt kopainu, pielaist daudz mazāk kļūdu, daudz ātrāk strādāt un daudz labāk izstrādāt kopējo arhitektūru.

Ja programmētājs nezin, kas ir, piemēram, O(N log(N)) vai nespēj izanalizēt dažādu algoritmi izpildes laiku, ja nemāk uzrakstīt vienkāršas datu struktūras kā binārais koks, heštabula, grafs, utt., tad uzskatu, ka šis cilvēks īsti par programmētāju nevar saukties.

Link to comment
Share on other sites

LOL, ap 90% un skaitā virs 2 desmiti no programmētājiem, ko es pazīstu, nāk no C++ un šeit es runāju par programmētājiem, kas var paņemt priekšā IOI vai ACM uzdevumus (salīdzināšanai vari paskatīt 4 un 5 zvaigžņu uzdevumu olimpā). Šo programmētāju domāšana ir pāris līmeņus augstāka, nekā darbs, ko ikdienā viņi veic. Tas ļauj viņiem ļoti labi redzēt kopainu, pielaist daudz mazāk kļūdu, daudz ātrāk strādāt un daudz labāk izstrādāt kopējo arhitektūru.

Ja programmētājs nezin, kas ir, piemēram, O(N log(N)) vai nespēj izanalizēt dažādu algoritmi izpildes laiku, ja nemāk uzrakstīt vienkāršas datu struktūras kā binārais koks, heštabula, grafs, utt., tad uzskatu, ka šis cilvēks īsti par programmētāju nevar saukties.

Gan pateikšu par algoritmiem, kā te ir stipri atkarīgs no jomas, kurā tu strādā.

Piemēram es strādāju WEB'a jau 7-8 gadus un Pascal/C/C++ izmantoju kad vel mācījos tehnikumā. Tāpēc ne binaro koku es tev uzrakstīši, ne kartošanas algoritmu kādu (99.999% variantos iebūvēts valodā būs atrāks nekājebkura no realizācijām ar PHP kodu mana gadijumā). Man vispāri viss tas nav vajadzīgs jo tās ir lietas no citas jomas, ar kuru es nenodarbojos un netaisos nodarboties. Bet visus tos pamatus es zinu un kad vajadzēs, tad problēmu man ar to nebūs. Bet reali, ja vajadzēs ko tādu darīt daudz effektivāk paņēmt cilvēku ar vajadzīgām iemaņām un iedod viņām uzdevumu, nekā šādi-tādi provēt risināt pašam.

Ko tiešām īštam programmētājām ir jāzin tas ir datorzinātnes - bez tām var iztikt, bet ja ir kāda fundamentāla problēma - tad nu ir ziepes. Pat rakstot uz PHP man tās stipri palīdz (bet es jau nu nenodarbojos ar konveira web lapu izstrādi - es nodarbojos ar backend sistēmām, API un tam līdzīgu lietu izstrādi kur WEB interfejs ir 1%-5% no paša projekta).

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...