Programmē zaļi
Ziniet, man iepatikās stipri utopiskā bet loģiskā Rasmus Leedorf doma. Tā vietā, lai īdētu par to - ko tad es kā parasts koderis varu darīt - ne man ir kur šķirot atkritumus (it kā vienīgā mana pārtika - alus pudeles būtu jāšķiro, hehe), ne man ūdens jātaupa (kurš tad mazgājas biežāk kā reizi nedēļā? tās ir 10 minūtes, kuru laikā var paprogrammēt!), ne man šis un tas, vajag rakstīt optimālu un ātru kodu. Tas ir zaļi. Tas ietaupa resursus, ietaupa mašīnlaiku (jēdziens atgriežas!), līdz ar ko palīdz Amazones mežiem (tur ir Amazones vēl?) un Eiropai netērēt tik daudz Krievijas elektroenerģijas.
Principā, teksts ir trivializēts un brutalizēts pārfrāzējums no Rasmusa raksta iekš SitePoint'a.
In his address he choose to highlight PHP frameworks (Drupal was not spared) and how poor they are at performance. Not only are they slow, but their "jack-of-all-trades" attitude leads developers down the wrong path by not using what is best for the job. He continues on by stating that PHP developers really need to think about performance for not only scalability reasons but for green reasons. If programs were more efficient it would cut the number of data centres and would reduce energy needs as a result. In our newly emerging age of energy awareness this does become an important aspect and I am glad that he is raising awareness.
Tagad es to visiem cirtīšu acīs, kad izdzirdēšu - bet mums takš skaitļošanas jaudas neko nemaksā un ir bezizmēra!
z
2008. gada 2. septembrī, plkst. 11:07
nu un? ieslēdzam/izveidojam gudru cache un ir mums gan scalability, gan zaļums. protams, masīvus monstrus tāpēc lietot nevajag. un kādu freimworku lieto laacz pats? (drošvien, ka tieši codeigniter)
Ģirts
2008. gada 2. septembrī, plkst. 11:27
Kas šis par sviestu un kāda praktiskā vai garīgā jēga ir šim rakstam?
xyz
2008. gada 2. septembrī, plkst. 11:40
Gribēt jau var to zaļumu, bet ja lētāk ir nezaļi tad tā arī notiks.
Vilx-
2008. gada 2. septembrī, plkst. 11:45
Heh, interesanti. No šāda viedokļa par to nebiju iedomājies. Taču taisnība ir - IT industrija par zaļumu <i>šajā</i> virzienā vēl nedomā. Varbūt ar laiku. Bet diezvai. :P
Kaut arī no otras puses - mazāk datu centru nozīmē arī mazākas izmaksas. Tiesa - te jau paceļas jautājums par to, kas ir lētāk - sviestains softs un liels datacentrs, vai labs softs un mazs datacentrs.
purvainais
2008. gada 2. septembrī, plkst. 12:26
Piekasīšos par pareizrakstību. Kāpēc domuzīmes vietā lietota defise?
weedy
2008. gada 2. septembrī, plkst. 12:53
Tāds maksimālistisks raksts un ne gluži korekts, jo no virsraksta varētu domāt, ka autors iesaka visu PHP rakstīt pašam, kaut īstenā ideja ir, ka īsts ātrums un scalability nāk no ne-skriptēšanas valodām, piemēram C++.
PHP freimworkiem nav nekādas vainas kamēr tie turas pie MVC un citām labām lietām, es pat teiktu, ka kāds no "ātrajiem" PHP freimworkiem (tai skaitā tas pats minētais CodeIgniter) dienas beigās vidēji ir ātrāks par pilnībā pašdarinātu kodu, jo otrais pēc pieredzes vienmēr ir pilns ar ne pārāk labām lietām. Ja tam visam vēl piemet memcached, PHP kļūst visai izveicīgs. :)
Dzhonijs
2008. gada 2. septembrī, plkst. 12:53
Nu par optimizāciju var runāt bezgalīgi. Kaut vai elementāra XHTML/CSS/JS līmenī. Piemeram, samazināt visu id, class, failu u.c nosaukumu pēc iespējas īsāku. Kodu rakstīt īsu un saprotamu. Tā var piemēram dabūt weba izmērus no 100kb uz 50kb. It kā nekas liels, BET parēķinam 50kb x 365 dienas x apmeklētāju skaits webam un galā dabūnam smuku cipariņu par cik mazāk tiek truba noslogota un lietotājam viss lādējas ātrāk un cik vairāk lietotāju var komfortabli pieslēgties Tavam webam :).
laacz Autors
2008. gada 2. septembrī, plkst. 12:57
weedy, jāatcerās, ka Leedorfs ir "vecā kaluma" programmētājs. So - nepatika pret freimvorkiem ir saprotama, lai arī ne vienmēr pieņemama.
Dzhonijs
2008. gada 2. septembrī, plkst. 12:57
Protams optimizācija ir arī koks ar diviem galiem. Viens variants ir optimizēt visu līdz sīkumiem, bet optimizētais kods var kļūt nesaprotamākas un necilvēcīgāks, tad parēķinam cik eletroenerģijas un laika patērēs developeris lai iebrauktu kas, kāpēc un kā ticis optimizēts, ja vēlēsies ieviest izmaiņas :). Jāatrod balanss starp optimizāciju un veselo saprātu :).
ctrnz
2008. gada 2. septembrī, plkst. 13:20
Tā pa lielam ar "zaļumu" tam visam maz sakars. Ja gribam labākas programmas - vajag vairāk/lābakus programmētājus, kas arī pātērē resursus. Vajag vairāk/labākas izglītības iestādes, kursus, citu atbalstu - atkal resursi. Un tā tālāk. Beigu beigās efektīvāki tomēr būs tie paši frameworki (un ne tikai PHP), tadējādi tiek optimizēti programmēšanas resursi un arī uzlabota ar šo frameworku radīto aplikāciju veiktspēja. To laikam sauc par evolūciju, ko mēs šoreiz novērojam attiecībā uz programmēšanu.
Ģirts
2008. gada 2. septembrī, plkst. 13:49
Ā, tad runa ir par to vai izmantot freimvorkus vai nē? Nezinu... Manuprāt, nav jau tik daudz laika un resursu, lai drukātu visu no 0, to ko parasti jau ir izdarījis freimvorks, tas vispār ir muļķīgs jautājums pats par sevi - "izmantot freimvorku vai nē?"! Viss ir atkarīgs no vajadzības - tak netaisīsi portālu bez freimvorka, ja vēlāk pats sev negrib problēmas, bet lai uzprogrammētu aptaujas formu, nav arī obligāti vajadzīgs freimvorks... Manuprāt, kodera/programmētāja amats un veikums nav jāierindo kategorijās "zīmēšanās" vai "redz, ko es esmu uztaisījis", bet ir jāatrod optimālais risinājums starp patērēto laiku, kvalitāti un ieguldījumu nākotnē (elastība, koda tīrība utt.).
DD
2008. gada 2. septembrī, plkst. 15:00
Nu parasti kad kodēju uz sava mājas servera (riktīgs bremze), centos max. optimizēt lai kaut cik ātri strādātu. Kods un laiks krietni atšķirās no tā, kad kodē uz jaudīga servera :)
Ģirts
2008. gada 2. septembrī, plkst. 18:18
P.S. Es tiešām brīnos, cik nopietni jūs ņemat vērā kaut kāda Rasmusa tekstus, tikai tāpēc, ka viņš izgudroja php valodu! Viņš vienkārši ņirgājas par tādiem kā jums, kā jūs to nesaprotat! :D Tas čalis, kas izgudroja C++ arī varētu ņirgt par "lētticīgajiem" ja gribētu un stāstīt visādas muļķības! ;)
Aizejiet labāk igauņiem pastāstīt kā vajadzēja taisīt Skype! :D
Roze
2008. gada 2. septembrī, plkst. 19:29
KIS
binary
2008. gada 2. septembrī, plkst. 22:50
Dzhonij, par "no 100kb uz 50kb" - tas nav jādara, veidojot klašu nosaukumus no 2 burtiem (sēdi pēc tam un domā, ko nozīmē "c1"... vai varbūt "cl"?); kaut ko tādu var panākt, izmantojot gzip.
Roze, piekrītu. Diemžēl "augstāk stāvošiem cilvēkiem" tas ne vienmēr ir pieņemami...
weedy
2008. gada 3. septembrī, plkst. 09:32
Augstāk stāvošiem cilvēkiem tas nav pieņemami viena ļoti vienkārša iemesla dēļ - programmētāju resurss ir krietni mazāks par darāmā darba apjomu. Freimvorki ir tieši tādēļ, lai šo problēmu risinātu.
Un ja pieejam šai lietai vēsturiski, tad jāsaka, ka PHP arī ir freimvorks un tāpat C++ un pat asm, tā, ka davai visi mācamies mašīnkodu drukāt.
trolling
2008. gada 3. septembrī, plkst. 11:02
Tad jau jāiesaka programmētājiem retāk kompilēt kodu un darbināt vienībtestus, neveikt nightly builds, utml. ;)
Peeteriz
2008. gada 3. septembrī, plkst. 12:59
Man tomēr šķiet, ka ietaupīt pāris vatus uz mazāku procesora noslodzi ir mazlietiņ zaļi; bet daudz lielāks zaļums ir tad, ja var tam pašam uzdevumam iztikt ar mazāk programmētājstundām - pa kurām to pāris procesora vatu vietā ietaupās simtvatu spuldzīte, kas ir viņam virs galvas, neekoloģisks bifšteks, ko pārstrādā viņa kuņģis, un miskastē izmestā plastmasas pudele - kam ir daudz lielāks ekoloģiskais iespaids.
Dzhonijs
2008. gada 4. septembrī, plkst. 10:40
binary: kā jau minēju te vienā postā tad ir jāatrod balanss starp veselo saprātu un optimizāciju. Protams klase vai id kura sastāv no diviem burtiem ne vienmēr ir tas labākais variants, bet arī klases nosaukums kurš sastāv no 128 burtiem nav tas labākais variants :). Taču nav jau tikai nosaukumos optimizācija. Ir daudzi XHTML/CSS un tabless design pretinieku, taču tieši koda izmēra samazināšana, skaidrības un saprotamības palielināšana ir viens no plusiem atdalot saturu no vizuālās daļas. Kas arī eventuāli samazina lapas izmēru. Un gzipot serveris var arī 50kb lapu, kas vēl vairāk ietaupa trafiku :)
Dzhonijs
2008. gada 4. septembrī, plkst. 10:43
Un vispār man mācija programmēt uz bekām vecā kaluma developeri, kuri paši vēl ar perfokartēm strādāja :). Un mācīja ka no sākuma svecītes gaismiņā izdomājam ko un kā, izprojektējam, uzrakstam algoritmu un tikai tad rubījam iekšā kompi un rakstam jau izdomāto kodu, nevis kā tagad - tikai sēžam un developējam neprojektējot un lieki tērējot resursus :P.