marrtins Posted July 1, 2011 Report Share Posted July 1, 2011 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 ;) Quote Link to comment Share on other sites More sharing options...
rpr Posted July 1, 2011 Report Share Posted July 1, 2011 sūdīgi serveri tev :D Quote Link to comment Share on other sites More sharing options...
codez Posted July 1, 2011 Author Report Share Posted July 1, 2011 No kura laika, ja kaut ko nevar izdarīt, serveris skaitās nesūdīgs? Quote Link to comment Share on other sites More sharing options...
codez Posted July 1, 2011 Author Report Share Posted July 1, 2011 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. Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 1, 2011 Report Share Posted July 1, 2011 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 Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 1, 2011 Report Share Posted July 1, 2011 (edited) sūdīgi serveri tev :D :) codez jau atbildēja. Edited July 1, 2011 by marrtins Quote Link to comment Share on other sites More sharing options...
rpr Posted July 1, 2011 Report Share Posted July 1, 2011 piesienaties jūs vārdiem. Quote Link to comment Share on other sites More sharing options...
codez Posted July 1, 2011 Author Report Share Posted July 1, 2011 (edited) Š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 July 1, 2011 by codez Quote Link to comment Share on other sites More sharing options...
spainis Posted July 1, 2011 Report Share Posted July 1, 2011 (edited) scala lift twitter'a backends tagad ir pārrakstīts no ruby uz scala, piemēram Edited July 1, 2011 by spainis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 1, 2011 Report Share Posted July 1, 2011 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. Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 1, 2011 Report Share Posted July 1, 2011 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ā. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 1, 2011 Report Share Posted July 1, 2011 Visi tagad pakāpensiki pāriesim no OOP uz procedurālo? Hāāā! P.S. Daudziem pat nebūs jāpāriet! Quote Link to comment Share on other sites More sharing options...
codez Posted July 2, 2011 Author Report Share Posted July 2, 2011 (edited) 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 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 July 2, 2011 by codez Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 2, 2011 Report Share Posted July 2, 2011 (edited) Skaisti! Bet pamēģini Board3 >:) Erlang variants ir gandrīz 10x ātrāks. Atļāvos iepostēt apspriešanai arī bootā. Edited July 2, 2011 by marrtins Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.