GitHub Copilot now available for Visual Studio 2022 | The GitHub Blog

Documentatia oficiala:

Cateva exemple:

1 Like

Anul 2033: “hire a human to supervise your copilots”

1 Like

E valabil 60 zile in free trial pentru toata lumea si in mai multe IDE.
Dupa o prima vedere nu am fost impresionat.
Nu am sters plugin-ul si am uitat de el.
Spre surprinderea mea a facut niste super-sugestii.
A redus durata scrierii unui cod de la vreo 60 de secunde la 5 secunde – pentru ca a trebuit sa verific daca e corect.

Si posibilul bug de la 1 ora la cateva zile sau mai mult :grin:

2 Likes

Asta in rarele situatii in care chiar propune ceva bun si nu o tampenie.
Caz in care pierzi timp suplimentar ca sa-ti dai seama ca tampenia propusa e tampenie.

There is no silver bullet.

Folosesc Tabnine de vreo 6 luni si mai da rateuri, dar per ansamblu are plus valoare.
Copilot face unele lucruri diferite si cred ca are potential.

Update.
M-am decis să ii fac un review, aici.

Folosesc GitHub Copilot ca plugin in Jetbrain WebStorm, pentru următoarele limbaje/tehnologii/frameworks:

  • TypeScript
  • JavaScript
  • HTML
  • CSS

Update 1:
(TypeScript) intuiește când vreau să șterg un element dintr-o mulțime si imi sugerează codul.
Exemplu:

users = [];

removeFromUsers(user){
  if
}

După if, Copilot sugerează:

if(this.users.includes(user){
  this.users.splice(this.users.indexOf(user), 1);
}

Bănuiesc că semantica variabilelor cântărește mult.

2 Likes

Ma joc cu el si java

  • Sugereaza bine numele de metode. Vorba aia, naming-ul este al doilea cel mai dificil lucru dupa invalidarea cache :smiley:
  • Te ajuta la date de test
  • Interfereaza cu Tab. Vrei poate sa dai tab doar ca sa aliniezi.
  • Cel putin in Java, foloseste api-uri mai vechi

La proiect personal, merge, dar la munca zic pas. Sau pentru a scrie ceva intr-un limbaj semi necunoscut. Plus ca daca dai tot tab, nu mai treci prin filtrul gandirii linia de cod. Pana si aia pe care o iei cu copy paste de pe StackOverflow.

Sigur, in viitor o sa vedem imbunatatiri.

Cod scris de AI

import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class Main {

    record User (String name, Long id) {}

    List<User> users = List.of(
        new User("John", 1L),
            new User("Jane", 2L),
            new User("Jack", 3L),
            new User("Jill", 4L));


    public static void main(String[] args) {
        System.out.println("Hello World!");
    }

    /**
     * Dear John,
     * Sincerely, Computer Science
     * Java is a programming language.
     * I have a lot of experience with Java.
     * I am a Java developer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * I am a Java programmer.
     * PHP is a programming language.
     * I have a lot of experience with PHP.
     * I am a PHP developer.
     * I am a PHP programmer.
     * I am a PHP programmer.
     * @param user
     */
    public void removeUser(User user) {
        users.remove(user);
    }
    public Date calculateDate(Date date, int days) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, days);
        return cal.getTime();
    }

    public boolean isLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
    }

    public boolean isOdd(int number) {
        return number % 2 != 0;
    }

    public boolean isEven(int number) {
        return number % 2 == 0;
    }

    public int getNumberOfDaysInMonth(int year, int month) {
        if (month == 2) {
            if (isLeapYear(year)) {
                return 29;
            } else {
                return 28;
            }
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            return 30;
        } else {
            return 31;
        }
    }
}

Mie nu imi e clar cu liceenta pt munca, daca e safe

Acolo nu ma bag cu el.

Cod propietar, licenta, etc :slight_smile:

1 Like

N-am inteles concluzia.

Mie mi se pare super util. Il folosesc cu PhpStorm si chiar ma ajuta.
Nu stiu insa daca o sa dau 10$ pe luna din august incolo

Si eu il evaluez pana atunci.
Mai am si Tabnine, plus sugestiile default din WebStorm.

E posibil ca Copilot sa isi imbunatateasca functionalitatea pe masura ce e folosit.
Mai vedem.

Mda. eu nu am continuat…ma enerva la un moment dat ca nu mai puteam sa scap de sugestiile lui

1 Like

Am renunțat la copilot când a expirat trial-ul.
Mi-am facut abonament vreo 2 luni mai târziu.

Astăzi a reusit să scrie vreo 100 de linii de cod in 5 minute, ceea ce mie îmi lua cam 30 de minute - pentru codul respectiv.

Sunt foarte încântat.
Am descoperit si tehnici pe care eu nu le folosesc in mod curent.
Merită fiecare bănuț.

Cred că eficiența lui depinde de semantică in mare măsură. Astfel că face predicții pe bandă rulantă dacă variabilele au denumiri regăsite in dicționare.

mie mi s-au parut suggestiile distracting, si mai mare efortul de a fi atent ca nu sugereaza un bug decat sa scriu eu, plus ca nu pot sa il folosesc la munca, licensing / privacy etc.

Problema aia cu sugerat code under license, nu a fost pt ca scanau ei repositori-ul fara permisiune, ci pt ca altii au luat algoritmul-ul fara permisiune si copilot a scanat repo-urile alea, github nu isi asuma nimic.