Ati folosit ELM?

Am inceput sa invat ELM si mi se pare foarte interesanta abordarea pentru dezvoltarea de aplicatii web. Mi-ar placea sa fac un proiect la munca in ELM, insa ma tem de faptul ca e foarte dificil sa folosesti librarii native de javascript, iar utilizarea porturilor pentru multe dintre ele, introduce un nivel de complexitate care ruineaza ideea de a avea o aplicatie declarativa. Inca nu stiu daca e o idee buna si inca mai caut informatii pe tema asta.
Ce parere va face limbajul si cat de fezabil vi se pare in productie?

2 Likes

Pe tema asta, cred ca e de vazut filmuletul:

Filmuletul l-am vazut recent,
Personal mi s-au parut valoroase primele 5 minute (graficele acelea), dar partea de dupa, e prezentata un pic inexact, cu anumite prejudecati (de exemplu cum a inteles el cum si cum a contracarat el citatul lui Alan Kay … )

De Elm nu zic nimic pentru ca nu l-am studiat. Nu am insa incredere mare in limbajele “noi” daca nu vad ca’s facute pe baze riguroase. Asa mi-am format eu o frica, dupa ce am observat ca multi se arunca sa inventeze dar fara sa aprecieze si sa studieze in profunzime ceea ce s-a inventat si descoperit deja, si sa imbunatateasca - dar mai ales sa nu ocoleasca erorile, greselile trecutului. Decat sa inventezi ceva bun, pe o baza proasta, mai bine demolezi fundatia aia proasta.
Faptul ca a spus ca “C++ defineste acum ce este OOP, ca asa s-a obisnuit lumea, sa asocieze OOP cu C++” (argumentul ca ‘asa zice lumea’), e un semn pt mine ca nu voi gasi ceea ce caut in Elm (e posibil si ca ma insel, dar am invatat de la o vreme sa acord atentie acestor semne, am vazut ca sunt corelate cu mai multe chestii… e vorba de psihologie aici.)

Lucrurile bune nu sunt acelea care sunt “la moda”, sau “vechi si folosite de multi”, si nici “noi si cele mai cautate”, ci sunt acelea proiectate pt a fi bune.

Acestea fiind spuse, am auzit chestii interesante despre Elm, daca ai experiente misto cu el te rog sa scrii pe aici; sau daca vrei sa studiem impreuna sa facem chestii proiecte etc, da-mi un msg

Las si eu aici un filmulet:


“Don’t just believe that because something is trendy, that it’s good. I’d probably go the other extreme where if… if something… if I find too many people adopting a certain idea I’d probably think it’s wrong” - Donald Knuth

“I made up the term ‘object-oriented’, and I can tell you I didn’t have C++ in mind” - Alan Kay

PS: afli de la batranii astia ai informaticii niste chestii de rămâi crăcănat;
Multe din mecanismele pe care periodic le adoptă unii și alții în limbaje și le prezintă ca fiind “noi”, sunt de fapt o reimplementare handicapată a unor descoperiri geniale făcute cu multe decenii în urmă.

1 Like

Am renuntat la ideea de Elm. Am hotarant sa ma axez pe Clojure si Clojurescript pentru viitor.
Motivul pentru care am ales sa renunt la Elm este ca desi limbajul este foarte puternic si descriptiv, sufera de faptul ca are o mare problema in a utiliza librarii native din js. Esti fortat sa ramai in ecosistemul lui. In principiu, asta poate sa fie bine pentru majoritatea cazurilor, insa cand ai nevoie neaparat sa folosesti un tool anume si in elm nu poti, e deja prea tarziu sa mai faci schimbari.
In Clojure ai posibilitatea sa accesezi cam tot ce vrei cum vrei si este un lisp. Aplicatiile web se fac folosind in ultima instanta React.
E un pic mai greu de invatat, insa e scalabil.
Inca o parte buna la Clojure e ca daca il inveti pentru frontend, pe backend poti sa folosesti acelas limbaj si aceeasi paradigma. Iti dezvolda un nou mod de gandire. Nou in sensul ca nu l-am mai folosit pana acum, pentru ca de fapt e cel mai vechi mod de a scrie programe. Lisp e printre cele mai vechi limbaje de programare. Faptul ca e folosit si in ziua de azi cu minime modificari spune multe.
Comunitatea Clojure mi se pare ca are mult mai multe materiale cu ajutorul carora poti sa te dezvolti.
Oricum, trecerea la Clojure e proiect pe termen lung. Ma astept sa pot sa-l utilizez cam in 2 ani. Intre timp trebuie sa fiu productiv cu ce-am facut pana acum.
Vreau totusi sa ma mut in directia limbajelor functionale pentru ca simt ca acolo e un potential foarte mare.

Cred ca e o alegere foarte buna

Eu folosesc Common Lisp pt frontend , in el fac si html-ul (cl-foo) si css-ul (lass) si js-ul (parenscript); iar pt backend tot Common Lisp (ningle).
E f misto cand te “catzari” cu Lisp-ul pe sintaxele altor limbaje si le unifici, apoi le extinzi cum ai nevoie, intr-un mod lejer insa greu de imaginat pentru cei obisnuiti cu limbaje care nu suporta nici macar stringurile pe mai multe linii; :)) (greu de imaginat pt mine acum cativa adica… afirmatia e facuta pe un ton glumet, nu fac misto de nimeni, cu cat invatam cu atat mai mult vedem cat e de invatat… )

Clojure l-am incercat dar mergea prea greoi pe calculatorul meu, si n-are reader macros , dar in rest ar trebui sa fie f bun ; am auzit mai multe lucruri bune despre el

13:22 https://youtu.be/f9vRcSAneiw?t=800
“26:00 Lisp code is faster than optimized C (quantum) programs when running on the QVM. For non trivial benchmarks (…) {Lisp faster} on an average of 40% percent.”

“Some time between 2 and 6 decades ago, Lisp invented approximately all of the popular things in programming, some of which are just starting to make an appearance [long list of features follow]”
36:40 Interesting, beautiful comparison of using Lisp versus doing calligraphy with calligraphy pens.
51:00 Explanation of what quantum computing is all about

In The Mythical Man-Month, Frederick Brooks proposed that the productivity of a group of programmers does not grow linearly with its size. As the size of the group increases, the productivity of individual programmers goes down. The experience of Lisp programming suggests a more cheerful way to phrase this law: as the size of the group decreases, the productivity of individual programmers goes up. A small group wins, relatively speaking, simply because it’s smaller. When a small group also takes advantage of the techniques that Lisp makes possible, it can win outright. - Paul Graham

Ma bate gandul sa ma pun un pic si pe prolog ca am vazut ca pt o anumita categorie de aplicatii e foarte agil, si se combina si bine cu Lisp-ul

1 Like

Nu stiu cat de relevant ar fi QVM. Am aruncat o privire peste prezentare, o chestie amuzanta a fost ‘benchmark’-ul pentru molecula de hidrogen, unde rezultatele sunt incredibil de gresite pentru ce e laudat, atat dpdv al energiei minime, cat si a distantei dintre atomi.
Pana si programul meu ‘de jucarie’ Hartree-Fock da rezultate mult mai bune (ochiometric cam aceleasi cu rezultatele ‘teoretice’):

Eroare de peste 0.1 hartree (hartree = aprox 27.211 eV) e inadmisibila pentru ceva atat de simplu. M-as fi asteptat la ceva mult mai bine decat atat.

Serios, care-i ala de crede ca e off topic, dar QVMul e on topic?

1 Like

Este foarte interesant ce ai facut tu, dar nu inteleg legatura cu ELM si ce se discuta prin topic :slight_smile:

Eventual ar merge un subiect separat in care sa dezvolti subiectul, dar mai pe intelesul nostru

1 Like

Dar legatura cu QVMul o intelegi?

In ce limbaj ai scris “jucaria” ? :upside_down_face:

Acum chiar ca devenim total off topic :slight_smile:
In C++. Alternativa ar fi fost… fortran.

Aici e codul sursa, in caz ca esti curios sa vezi ce implica: https://github.com/aromanro/HartreeFock

1 Like

[KWxIUElW8Xt0tD9][on May 29, 2018]
“Learned APL in a college linear algebra class long ago and loved it (still have the books). Best story: circuit synthesis class assignment to perform matrix exponentiation – two lines of APL while the rest of the class was struggling with FORTRAN and the like.”