Jump to content
php.lv forumi

PHP gals ir tuvu.


codez

Recommended Posts

par javu arī nevaru piekrist. kamēr php nebūs mainīgo tipi konkrēti jāpadod, tikmēr tās ir nesalīdzināmas lietas.

Strong vs weak typing jau nav tik fundamentālas lietas.

 

nevajag jau baigi oponēt par lietām, ko pats neesi ska'tijies. es domāju php6.

Nesatraucies :) Ir skatīts/lasīts, bet pietiekami sen un tajā laikā neradās pārliecība par OOP.

 

nedomāju ka šobrīd vēl uz kāda lv hostētāja servera varētu palaist php3 kodu. vismaz bez lieku rindu pierakstīšanas noteitki nevar.

Uz maniem serveriem var ;)

Link to comment
Share on other sites

  • Replies 43
  • Created
  • Last Reply

Top Posters In This Topic

bet tas viss ir čerez žopu, Scalas, Erlanga, Io utt. paralēlā izpilde ir viegla un ērta

Ko tu āksties, salīdzināt Scala un Erlang ar PHP ir absurdi. Tās ir dažādu programēšanas paradigmu valodas un tad jau jasalīdzina nevis valodas, bet gan programmēšanas paradigmas - Imperative vs Functional.

 

Bez tam fukcionālajām valodām ir daudz šaurāks pielietojums un tās pēc definīcijas izpildās lēnāk. Gribētu redzēt kā tu Erlangā uztaisītu teiksim vienkāršu blogu, kurš izmanto datubāzes.

Link to comment
Share on other sites

Bez tam fukcionālajām valodām ir daudz šaurāks pielietojums un tās pēc definīcijas izpildās lēnāk.

Šaurāks? Tu ko pīpē? :) Ātrāks/lēnāks ir tik relatīvi...

 

Gribētu redzēt kā tu Erlangā uztaisītu teiksim vienkāršu blogu, kurš izmanto datubāzes.

Tas nav tas grūtākais, Erlangā pat pāris web frameworki: http://nitrogenproject.com/, http://www.erlang-web.org/

Ja Tu domā izmantot Erlang + MySQL, tad tā būtu nepareizu rīku kombinēšana. Mass paralēls erlang datus dotu neparalēlam MySQL.

 

Grūtāk ir ar spēlītēm, reku "problēma" ir labi aprakstīta: http://prog21.dadgum.com/23.html

Link to comment
Share on other sites

Šaurāks? Tu ko pīpē? :)

 

Reāli funkcionālās programmēšanas lielākais pluss ir tas, ka tai nav nepieciešamība pēc stāvokļu saglabāšanas, tā rezultātā, šāda veida programmas var efektīvi, īsāk kodējot un ar daudz mazāku kļūdu iespējamību izmantotas paralēlai skaitļošanai: filtri, datu apstrāde un vēl šis tas līdzīgs pēc būtības. Bet tas arī ir vienīgais kur viņas ir pārākas par imperatīvo pieeju (bet pat tur ne visos gadījumos).

Tu jau pieminēji spēles, bet nejau tas ir tikai tāpēc, ka spēle ir spēle, bet gan tāpēc, ka parādās nepieciešamība pēc stāvokļiem, pēc izpildāmu darbību kopuma un blakusefektiem, kurus nevar aprakstīt kā funkciju, vai arī to izdarīt ir ļoti sarežģīti. Visos šajos gadījumos, kas ir vairākums, tad arī funckionālās programmēšanas pieeja vai nu nestrādā vai to izmantot ir daudz sarežģītāk kā imperatīvā programmēšanas pieejā.

Jebkurš blakusefekts, kurš var ietekmēt programmas darbību strauji palielina funkcionālās programmas sarežģītību, kamēr imperatīvajā programmā tas var būt viena mainīgā vai kāda stāvokļa izmaiņa. Deļ šī aspekta ir praktsiki neiespējami jēdzīgi uztaisīt user interfeisu izmantojot funkcionālo programmēšanu. Tieši šo iemeslu dēļ arī funkcionālai programmēšanai ir daudz šaurāks pielietojums.

 

Un galu galā mūsdienu procesori paša pamatā ir imperatīvi, līdz ar to, pat jebkurai funkcionālajai programmai būs kāda vieta, kur tā pāriet imperatīvā, tāpēc galu galā funkcionālā stilā taisīta programma vienmēr būs tikai plugins lielā imperatīvā stilā taisītā hostā.

Edited by codez
Link to comment
Share on other sites

twitter'a backends tagad ir pārrakstīts no ruby uz scala, piemēram

 

O! Interesanti... žēl tikai, ka tas nav "open-source". Un žēl, ka "nerubīju" Scala.

Link to comment
Share on other sites

codez, jā un nē. Kaut-kāds stāvoklis (state) ir jebkurai programmai, savādāk - kāda jēga? Par spēlēm - kaut kad uzdūros visai veiksmīgai online spēlei (cik varēja saprast), kurai backends rakstīts Erlang (vismaz man šķiet, ka Erlang, katrā ziņā kādā no funkcionālām valodām), tik tagad neatceros kur un kā sauca. Man šķiet, ka labi iebraucot šajā fiškā, var itin labi kodēt praktiski jebko. Vienīgi es tagad strikti nestrīdēšos ko labāk darīt funkcionālās, ko imperatīvajās, jo nav vēl tās iemaņas funkcionālās programmēšanas jomā.

 

Ir vērts arī atcerēties Paul Graham ar savu Lisp shopu (diviņdesmitajos?), Facebook Erlang chat un slaveno telekom aplikāciju ar 2+ milj. Erlang koda un 99.999999999% uptime. Tākā diezgan plašs spektrs.

 

Reku mans nesenais mēģinājums atsvaidzināt Erlang ar Sudoku: http://www.boot.lv/forums/index.php?/topic/138874-jaunakais-java-programmetajs/page__view__findpost__p__1433576

 

Kā redzams, viss state katreiz tiek padots f-ijai. Der šādam mazam uzdevumam, lielākam būtu jādomā kas cits - efektīvāks.

 

Pirmais mēģinājums Erlang pirms gandrīz jau četriem gadiem ir counter.hackers.lv web serveris - vāc hitus (~2milj diennaktī) un servē bildes. Kādas 200-300 rindiņas kopā.

Link to comment
Share on other sites

 

Bootā nereģistrēšos, iepostēšu tepat.

Mans python risinājums imperatīvā stilā šķiet daudz īsāks par visiem tur piedāvātajiem funkcionālajā stilā veidotiem risinājumiem:

def solve(m):
   try:
       p=m.index(0)
   except ValueError:
       return m
   c=p%9
   r=p/9
   k=(p / 27)*3+((p%9)/3)
   mm=[m[i] for i in range(81) if i % 9 == c or i/9==r or (i / 27)*3+((i%9)/3) == k]
   for j in range(1,10):
       if (j not in mm):
           m[p]=j
           if (solve(m)):
               return m
           m[p]=0
   return 0

print solve(
   [0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0])

print solve(
   [5,0,0,0,0,0,0,1,7,
   0,0,0,0,0,1,0,0,9,
   7,0,1,0,0,3,5,0,0,
   0,6,8,0,1,0,0,0,0,
   0,0,0,2,0,5,0,0,0,
   0,0,0,0,7,0,2,9,0,
   0,0,6,1,0,0,3,0,8,
   3,0,0,5,0,0,0,0,0,
   8,7,0,0,0,0,0,0,4])

Ideja pavisam vienkārša, meklējam 0, atrodam, izrēķinām kolonnu, rindu un kvadrantu atrastajai nullei.

Tālāk atlasam listā mm visus tos elementus, kas atbilst atrastās nulles kollonai, rindai vai kvadrantam.

Tālāk testējam ciklā vai varam likt 1 līdz 9. Ja varam, liekam iekšā un izpildam rekursīvi solve vēlreiz. Kā nulles vairs nevar atrast atgriežam atrasto masīvu.

Edited by codez
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...