Evolutia limbajelor de programare

Limbajele de programare evoluaza repede in ziua de azi. Intr-un an de zile au aparut vreo 3 versiuni de java (10, 11, 12), o versiune de php (7.3) si se lucreaza la php 7.4. Microsoft lucreaza la C# 8 and so on

Folositi cele mai noi functionalitati prin proiecte ?
Ati migrat proiectul la versiune mai noi ?
Si daca da, de ce dificultati v-ati lovit ?

Ce ati dori sa vedeti in acesta evolutie ?
Eu unul ma uit in primul rand la partea de stabilitate, bug fixing si apoi acele gimmick-uri din limbaj (gen var in java)

Daca as incepe un nou proiect la munca, as folosi cea mai noua versiune.

1 Like

Personal m-am lovit de mai multe dificultati din cauza evolutiei JS. In general daca incepi un proiect nou framework-uri precum Angular si React Native sunt excelent. Angular in special daca aplicatia e mare si ai nevoie de o structura organizata. Merge brici cu rest API facut in Java. Probleme mari apar atunci cand intru pe o pozitie noua care foloseste un JS ES5 fiindca obisnuit cu ES6 devine tricky. O gramada de avantaje se pierd. Mai degraba gasesc dificultate in a ma adapta la versiuni mai vechi decat la versiuni mai noi.
Vizavi de migrare, nu prea am avut contact cu ea fiindca mai toate proiectele pe care am intrat erau ori mari si nu puteau suporta o migrare din cauza volumul de munca exagerat. Cand aveam un proiect mic il incepeam cu ce voiam eu si atunci alegeam ceva mai nou.

1 Like

Intr-adevar, cand discutam de js ecosistemul de schimba destul de rapid :smiley:

Exact de asta stau departe de partea de front-end:)

Noi am avut norocul sa incepem direct de la php 7 si upgrade-urile au fost usoare. Asteptam cu nerabdare typingul mai puternic din 7.4 (deja avem cateva experimente cu el, dar asteptam releasul cuminti).

1 Like
  1. Da, incerc mereu sa folosesc ultimile funtionalitati. Cred ca tine mult si de limbaj.
  2. Da, in majoritatea timpului, migram catre ultimile versiuni, dar astept some minor versions. Never 5.0.0, always, 5.0.2 :slight_smile:
  3. Au fost cazuri cand librariile pe care le folosim, nu functionau cu ultima versiune, so patch, fork and then PR. Este foarte dificil sa facem audit la javascript modules, si din pacate, trebuie sa facem mandatory, all the time :slight_smile:
1 Like

Pe .NET migrarea de la .Net Framework x la .Net Core nu e triviala desi astept sa va cat mai multe proiecte pe .Net Core. MS a anuntat ca .Net Framework 4.8 e ultima versiune si vor continua pe .Net Core as vrea sa vad ca se misca ceva si pe piata.

Async/await cred că e ce caut cel mai mult zilele astea in limbaje, după care ceva dram de type-inference. Cum e var-ul din Java 10+ sau auto din C+±urile mai noi.

1 Like

Existe si GraalVM. O masina virtuala bazata pe JVM care iti permite sa folosesti JS + TypeScript si ai toate librariile de Java, de C++ si JS la un loc. Dezavantajul este ca e destul de incet. Inclusiv poti sa le compilezi impreuna fara sa ai nevoie de JRE pe alte calculatoare.

Despre partea asincrona in java am gasit

Cica este inspirata din async din c#.

Am vazut ca se vor introduce corutinele si fibers in java.

@isti37, GraalVM este o chestie interesanta. Am postat si pe forum.

Un alt lucru introdus in java 12 este un nou mod de a scrie switch case

var errorCode = 404;

        switch (errorCode) {
            case 404 -> {
                System.out.println("Not found!");
                System.out.println("Simpatic switch");
            }
            case 500 -> System.out.println("Internal server error!");
        }

Si in java 13, text blocks

String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

Sunt in preview.

2 Likes

Switch-ul e dragut, string literal-ul de text box e oribil.

Tipul parca este contribuitor la php

https://nikic.github.io/2017/04/14/PHP-7-Virtual-machine.html
https://nikic.github.io/2015/05/05/Internal-value-representation-in-PHP-7-part-1.html
https://nikic.github.io/2015/06/19/Internal-value-representation-in-PHP-7-part-2.html
https://nikic.github.io/2014/12/22/PHPs-new-hashtable-implementation.html

Si saptamana asta a aparut java 13.

Text block este dragut. Mai bine decat nimic oricum

var sql = """
                    SELECT title FROM film WHERE
                    film_id IN (SELECT film_id FROM film_category WHERE
                        category_id IN (SELECT category_id FROM category WHERE
                                        name = '%s')
                        );
                   """;

System.out.println(String.format(sql, "Drama"));


Nu este chiar interpolarea de stringuri, dar momnetan merge.
Plus alte cateva lucruri adaugate

Vor urma C# 8.0 si php 7.4 si a nu stiu cata versiune de js

1 Like