Tabnine - czyli AI do pomocy w kodowaniu

2

Dzisiaj YT mi wyskoczył z reklamą Tabninie - https://www.tabnine.com/.

Sprawdziłem na 4P, ale za wiele o tym nie ma. Szukajka wypluła mi tylko ten wątek - TabNine - przyszłość?, ale za wiele tam nie było konkretów, raczej głównie dyskusje o tym, do jakiej chmury to leci i co się dzieje z naszymi danymi.

Tamten wątek był jakieś półtora roku temu.

Pytanie - czy od tego czasu ktoś (poza @MasterOf ) to testował, korzystał, może coś napisać - polecić, albo wyśmiać?
Ktoś ma coś do napisania?

5

Teraz na topie jest GitHub Copilot.

2

@Saalin: dzięki za info. Dwie sprawy:

  1. Sam używasz? Masz coś do napisania w tym temacie - czy naprawdę ułatwia pracę, zwiększa produktywność, a może odwrotnie - więcej czasu traci się na naprawianie zamieszania, które to narzędzie powoduje?
  2. Cytując Wikipedię: An August 2021 study found that 40% of the code produced by Copilot included bugs, errors or potential security risk :D
0
cerrato napisał(a):

@Saalin: dzięki za info. Dwie sprawy:

  1. Cytując Wikipedię: An August 2021 study found that 40% of the code produced by Copilot included bugs, errors or potential security risk :D

Czyli tak jak u programisty z krwi kości.

0
cerrato napisał(a):

@Saalin: dzięki za info. Dwie sprawy:

  1. Sam używasz? Masz coś do napisania w tym temacie - czy naprawdę ułatwia pracę, zwiększa produktywność, a może odwrotnie - więcej czasu traci się na naprawianie zamieszania, które to narzędzie powoduje?

Na Copilot czekam, bo tam nie jest otwarty dostęp, a TabNine sprawdziłem i mi się nie spodobało, taki trochę randomowy IntelliSense. To jak się prezentuje Copilot wygląda znacznie lepiej.

0

Na Copilot czekam

Co to oznacza? Z tego co rozumiem to narzędzie już jest opublikowane, działa i ludzie z tego korzystają. W takim razie - na co czekasz?

1
cerrato napisał(a):

Na Copilot czekam

Co to oznacza? Z tego co rozumiem to narzędzie już jest opublikowane, działa i ludzie z tego korzystają. W takim razie - na co czekasz?

No nie:
Access is limited to a small group of testers during the technical preview of GitHub Copilot. Sign up today for your chance to try it out and help us improve.

2
Saalin napisał(a):
cerrato napisał(a):

Na Copilot czekam

Czeka się tylko około dwóch dni.
Nie wiem za bardzo czym się ludzie podniecają - działa to jak googlowanie kodu i przeklejanie znalezionych fragmentów, prawie żadna pomoc. Najlepsze są filmiki na youtube z wybałuszonymi oczami "łaaał, napisałem że chcę ciąg fibonacciego i napisało mi kod". Przydatne jak ktoś często googluje za kodem, może oszczędzić parę minut, ale bez przesady.

1

W przypadku GitHub Copilot i Go to bym powiedział jest całkiem ok jak na aktualny stan. Takiego typowego CRUDa z własnoręcznymi poprawkami możesz sobie za pomocą niego wygenerować, opisując komentarzem co dana funkcja ma robić. Daje rade z tworzeniem modelu, radzi sobie z wstawianiem sqlowych zapytań z warunkami i jest tam w stanie użyć jakiejś biblioteki zewnętrznej. Nieraz też coś mu tam odwali i wstawi jakąś nieistniejącą funkcję, stanie na otwartej klamrze, przymuli, uprze się na swoim, czy użyje nieistniejącej struktury ale daje ogólnie radę. Może nie jest ładnie wszystko rozwiązane ale kto robi dobrze? Jeszcze parę lat i myślę że spokojnie będzie można używać go do typowych CRUDów.

4
cerrato napisał(a):

@Saalin: dzięki za info. Dwie sprawy:

  1. Sam używasz? Masz coś do napisania w tym temacie - czy naprawdę ułatwia pracę, zwiększa produktywność, a może odwrotnie - więcej czasu traci się na naprawianie zamieszania, które to narzędzie powoduje?
  2. Cytując Wikipedię: An August 2021 study found that 40% of the code produced by Copilot included bugs, errors or potential security risk :D

No właśnie. Mam wrażenie, że cały czas panuje jakiś niezrozumiały dla mnie kult szybkiego klepania kodu. Włącznie z tym, że spotkałem na rekrutacji imbecyla, który zabierał ludziom myszkę i naśmiewał się potem, jak się męczyli ze skrótami klawiaturowymi. Czy praca programisty to jest to samo co praca stenotypistki? Ile statystycznie linijek kodu piszecie w ciągu dnia? I czy serio te końcowy_produkt_metabolizmune oszczędności w postaci kilku sekund no powiedzmy minut dziennie są w stanie zrekompensować ryzyko, że wskoczy Ci jakiś niepożądany fragment, który przeoczysz? Bo mi się już to zdarza z poziomu intellisense intellija, że kliknę coś a potem szukam WTF? A co dopiero przy jakimś JS?

1

Tego typu narzędzia się pojawiają co najmniej od 6 lat. Np. tutaj wątek na HN o czymś podobnym o nazwie Kite: https://news.ycombinator.com/item?id=11497111 . Pamiętam, że był mega szum z tym. Aż w szoku jestem, że to aż 6 lat ma, bo pamiętam jak dziś. I przez te lata ciągle ktoś z czymś nowym podobnym wyskakuje (ostatnio Github Copilot). Tylko jakoś nie widać, żeby to zrewolucjonizowało programowanie. Nie wiem, czy to dlatego, że nikt z tego nie korzysta, czy może dlatego, że nie jest to wcale żadna rewolucja, a jedynie drobna ewolucja rozdmuchana marketingowo. Bo przecież "machine learning", a wszystko oparte na ML od razu się rozdmuchuje. Tak jak to GPT-3, które potrafi napisać jakiś hello world i ludzie już zaczęli się martwić, że to zlikwiduje zawód programisty 🤪

PanamaJoe napisał(a):

No właśnie. Mam wrażenie, że cały czas panuje jakiś niezrozumiały dla mnie kult szybkiego klepania kodu.

To też mnie szokuje. Czemu nikt nie rozwiąże poważniejszego problemu (czytanie/przeglądanie/rozumienie napisanego kodu, eksploracja i modyfikacja dużych projektów), tylko ludzie tworzą kolejny tool pomagający szybciej klepać greenfieldy?

1
LukeJL napisał(a):

To też mnie szokuje. Czemu nikt nie rozwiąże poważniejszego problemu (czytanie/przeglądanie/rozumienie napisanego kodu, eksploracja i modyfikacja dużych projektów), tylko ludzie tworzą kolejny tool pomagający szybciej klepać greenfieldy?

To by było dobre. Nie wiem jak zawodowcy z wieloletnim doświadczeniem - może lookną na kilka pkt. i już wiedzą co to robi. Ja mam z tym problem. No wiadomo, że jak sobie klikne ctrl+b na jakiejś metodzie to mi się wyświetla gdzie zostało użyte/zdefiniowane. Ale żebym sobie zbudował jakiś obraz flow chociażby w części tej apki, to musze się naklikać. Jakby powstał jakiś tool (a może jest taki, tylko nie wiem?) mapujący to co się dzieje i jakiś obrazek graficzny tworzący, gdzie by było widac co i gdzie idzie. Żeby jeszcze to jeszcze można było skalować na poziomy uszczegółowienia. Kurde od razu by przy okazji było widać, czy jakiś kod jest makaronem, czy sensownie napisany.

1

Tabnine, moja opinia, w bardziej twórczej pracy raczej przeszkadza, ale do wyrobnictwa - czyli roboty:) - nadaje się znakomicie; używam od jakiegoś czasu. Denerwuje mnie tylko, jak wpisze nazwę zaimportowanego modułu, podpowiada wszystko co mam w przestrzeni nazw, a nie tylko to, co w nim siedzi. Na przykład:
jestem w klasie, (Python) dziedziczącej z, unittest.TestCase, piszę, self. i zamiast tylko asercji z, TestCase wyjeżdżają mi nazwy wszelakich metod, jakie mam dostępne w module, co jest trochę mylące. Ale generalnie na plus.

2

W najnowszym VS 2022 jest jakieś prymitywne AI do podpowiadania kodu włączone out of box, i już się od tego uzależniłem, niesamowicie wygodne.

0

O, nie wiedziałem, pewnie tabnine mi to przesłania, Masz jakiś feedback?

1
neves napisał(a):

W najnowszym VS 2022 jest jakieś prymitywne AI do podpowiadania kodu włączone out of box, i już się od tego uzależniłem, niesamowicie wygodne.

prymitywne nie jest, bardzo fajnie działa. Prawdopodobnie zresztą jest to wycinek copilota bo za github copilot też praktycznie stoi microsoft, różnica taka że AI intellisense nie podpowiada całych fragmentów kodu tylko obecną linię na podstawie kontekstu ale za to działa offline. moim zdaniem dużo bardziej przydatne niż analizowanie wklejek cudzego kodu co czasem trwa dłużej niż napisanie ich samemu a nie wiem w jakim projekcie można sobie pozwolić na wklejkę losowego fragmentu kodu bez dokładnego przeanalizowania

1

Tez sobie chwalę podpowiedzi w VS22, czasem potrafią zaskoczyć fajną sugestią lub zaoszczędzić klepania.

Pierwszy lepszy przykład:

screenshot-20220113001440.png

screenshot-20220113001507.png

screenshot-20220113001626.png

screenshot-20220113001700.png

screenshot-20220113001812.png

0

Musze spróbować, tylko po co to głupawe, tab to accept?

2

Takie narzędzia to powinien używać jedynie w miare doswiadczony developer który wie co dany kod robi, a nie każdy pierwszy junior ktory sobie wygeneruje kod, za nic nie ma pojecia o co w nim chodzi i robi sobie pusha do branchki a jak wpadnie bug to nie bedzie wiedzial jak to ogarnac, kolejne narzedzia ktore maja myslec za czlowieka

1

Tak z boku dodam, że taki kod:
screenshot-20220114090633.png
to raczej u mnie review by nie przeszedł ;)

Tak na serio to snippety były od kiedy pamiętam, tutaj jest to ogarnięte trochę fajniej - ale nie wydaje mi się, żeby to jakoś znacząco wpływało na produktywność podczas klepania kodu. Pół biedy jeśli człowiek wie, jak chce coś zrobić - wtedy wybierze sobie z podpowiedzi odpowiednie wartości. Problem się zaczyna, gdy nie wiesz co chcesz osiągnąć (czyli jakieś 80% pracy) - wtedy podpowiedzi ci nie pomogą zbytnio.

1

Kiedyś próbowałem troche takich tooli (Codota miało chyba plugin do intellij np.) i mój wniosek jest taki, że czasem działa to nawet ok, ale tak ogólnie to jest raczej mało użyteczne, bo 90% mojego czasu schodzi na wymyślenie co i jak napisać, a nie na wyklepanie tego, a taki tool pomaga tylko w tym ostatnim.

0

W porządku jest Tabnine - jakoś dużo nie pomaga, ale troche ułatwia pisanie. Jak ktoś studiuje, to jest za darmo dla studentów.

0
Cyrec napisał(a):

W porządku jest Tabnine - jakoś dużo nie pomaga, ale troche ułatwia pisanie. Jak ktoś studiuje, to jest za darmo dla studentów.

Jakby co:
Tabnine does not have a student program.
https://support.tabnine.com/hc/en-us/articles/6240224382225-Does-Tabnine-have-a-Student-Plan-

Ale copilot ma chyba program 'for students' .

1 użytkowników online, w tym zalogowanych: 0, gości: 1