Jump to content
php.lv forumi

Apgūstam jaunas lietas


ArnisR

Recommended Posts

Sveicināti!

 

Jauns gads ir pienācis - laiks arī apgūt jaunas lietas! Kādu valodu, framework'u, rīku, tehnoloģiju vai jebko citu jūs ieteiktu pārējiem iemācīties/apgūt? Kas vispār varētu būt aktuāls šajā gadā un tuvākajā nākotnē WEB izstrādes lauciņā?

 

Paldies par diskusiju!

Link to comment
Share on other sites

1) Tā kā procesoru jauda pārsvarā palielinās uz kodolu skaita pieaugumu, tad starp tendencēm noteikti ir distributēta programmēšana un attiecīgi freimworki un valodas, kas to veiksmīgi nodrošina.

Piemērs:

Ir 1M ierakstu, kuram katram ir 10-50 parametri pēc kuriem ir jāatrod atbilstošie un kopējais atbilstošo skaits. SQL un citu db indeksi šeit nekādi nelīdz, jo dati parametriem var būt vērtību intervāli, teksta daļas, utml. Vienīgā iespēja ir pilna pārlase. Ar jebkādu pilnu pārlasi tas aizņem sākot no vienas un beidzot ar dažiem desmitiem sekunžu atkarībā no tehnoloģiajs, ja tas tiek veikts uz viena kodola. No kopējās noslodzes viedokļa ir ok, bet tas, ka response time ir virs sekundes nekādi nav ok.

Risinājums: Izveidojam distributētu algoritmu, kurš paņem daļu saraksta, atrod vajadzīgās vērtības un tad samērdžo kopā. Rezultātā 5 serveri ar 8 korēm sekundes vietā to izdara 25ms.

 

2) Domāju, ka arvien lielāka vērība tiks pievērsta reālu webgl un canvas balstītu produktu izstrādei.

3) Datu analīze. Ariven lielāku nozīmi web konkurencē sniegs reālas pievienotās vērtības sniegšana klientam/lietotājām un tas nozīmēs, ka web aplikācijām būs jāpaliek arvien gudrākām - tām būs jāmāk sniegt labas rekomendācijas un atlasīt to informāciju, kas lietotājam nepieciešama, kā sastāvdaļa ir arī nepieciešamība saprast šo informāciju. Tātad rekomendācijas algoritmi/rīki/dzinēji un teksta analīze: nozīme, sentiments, konteksts, utt.

Link to comment
Share on other sites

Es tagad mācos Clojure. Ļoti gribējās iemācīties Lisp (http://en.wikipedia.org/wiki/Lisp_(programming_language)) un dzirdēju, ka Clojure nav freimvorki — tikai laibariji. Nevis tāpēc, ka nav uztaisīti, tieši otrādi — bija uztaisīti, bet neviens tos neizmantoja, jo nav jēgas (http://www.webnoir.org/). Gribu saprast kas tur tāds ir, ka struktūra (hence frame) pati rodas.

 

Varu teikt, ka pirmās lietas, kas mani aizrāva, bija:

 

1. (almost) no-syntax (hence iekavas),

2. Macrosi (meta-programming māte);

 

Clojure vēl ir labi/slikti tas, ka apakšā, tāpat kā Scalai, guļ JVM. Protams, ir citas implementācijas, kā clojure-py (https://github.com/halgari/clojure-py), tā kā tu neesi piesiets pie jebkā. Attiecīgi, JVM ir labs, ka no komerciālā viedokļa tas ir labi zināms un uzticams, bet īstenībā nemaz tik slikts šams nav.

 

Ja kāds grib pamācīties kko jaunu, še ku:

 

0. http://clojure.org/

 

1a. https://github.com/functional-koans/clojure-koans

 

1b. http://clojurescreencasts.com/

 

2a. http://clojuredocs.org/quickref/Clojure%20Core

 

2b. http://clojure.github.io/clojure/

 

3. http://www.clojurebook.com/

 

Ā, un aizmirsu pieminēt, tas viss protams ir functional (hence fun.)!

 

Runājot par fun. lietām, varat pievienoties #developerslv @FreeNode, kur es un Aleksejs (Леший) muldam par λ un pildam Euler. :D

Edited by daGrevis
Link to comment
Share on other sites

Pievienojos daGrevis par to, ka functional is fun.

 

Pats pētu FP uz Haskell piemēra apmēram 3 mēnešus. Pirms nepilna mēneša izdomāju, ka labāk to darīt, pildot Eilera taskus no http://projecteuler.net, pagaidām esmu ticis līdz 1 Lvl, izpildot 25 uzdevumus: https://github.com/ivanovsaleksejs/ProjectEuler

 

Haskell izvēlējos dēļ dažiem iemēsliem:

1) Tīrāka sintakse;

2) Viegli rakstīt imperatīvus koda gabalus, ja vajag;

3) Jaudīgie funktoru mehānismi, kas ļauj rakstīt real world aplikācijas, nepārkāpjot safe principu.

 

Visiem, kas vēlās apgūt ko jaunu, ļoti rekomendēju papētīt FP pasauli, jo tas atvērs pavisām jaunu skatu uz programmēšanu kā tādu.

Link to comment
Share on other sites

Algoritms veidots ar scala un akka. Uz katras cores ir threads, kurā darbojas aktori. Tā kā katrai korei ir tikai viens threads, tad teorētiski context switch nav vajadzīgs vispār. Bet aktori tiek darbināti ar eventbased asinhronu mehānismu un var tikt darbināti dažādos threados, bez context-a pārslēgšanas. Praksē protams būs kaut kādi citi procesi, kas nedaudz kaut ko gribēs padarīt arī, bet reāli, ja pamatalgoritmam nepieciešamais skaitļošanas laiks ir 25ms, tad kotekstu pārslēgšanai patērētais laiks būs mērāms mikrosekundēs.

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