· felieton · Przeczytasz w 8 min

Cursor vs Copilot - AI w codziennej pracy

Zobacz jak narzędzia AI mogą wspomóc rozwiązań client-side w codziennej pracy

TL;DR

Modele językowe, usługi SaaS oraz edytory kodu oparte o AI wchodzą do mainstreamu.

Narzędzia AI dla nowoczesnego frontend developera

Współczesny frontend development nieustannie ewoluuje, a wraz z nim rośnie znaczenie narzędzi wspomagających programistów w ich codziennych zadaniach. Generatywna sztuczna inteligencja (Gen AI) stała się jednym z kluczowych filarów tej transformacji, wpływając na produktywność, sposób pisania kodu oraz podejście do rozwiązywania problemów. W tym wpisie przyjrzymy się temu, jakie możliwości oferują narzędzia AI, takie jak Copilot czy Cursor, i jakie mają znaczenie w kontekście nowoczesnego programowania.

Kim jest “nowoczesny front-end developer”?

W kontekście szybko zmieniających się technologii wizja “kompletnego front-end developera” stała się bardziej wymagająca niż kiedykolwiek. To nie tylko osoba, która sprawnie korzysta z frameworków i bibliotek, ale także rozumie szerszy kontekst swojej pracy. Kluczowe kompetencje obejmują:

  • Znajomość narzędzi i technologii: Pisanie wysokiej jakości kodu oraz efektywne korzystanie z frameworków i bibliotek.
  • Rozumienie środowiska przeglądarek: Uwzględnianie ich ograniczeń i optymalizacja aplikacji.
  • Doświadczenie użytkownika (UX): Projektowanie aplikacji z myślą o potrzebach użytkownika końcowego.
  • Produktywność: Efektywne wykorzystanie narzędzi AI w celu automatyzacji powtarzalnych zadań, konsultacji z wirtualnym asystentem oraz przekraczania własnych limitów wiedzy.

Aby zostać “nowoczesnym” front-end developerem nie wystarczą już tylko klasyczne umiejętności kodowania, ale również świadome korzystanie z narzędzi, które zwiększają produktywność i usprawniają procesy wokół nas.

Jak AI wpływa na produktywność programistów?

Mówi się, że AI odgrywa kluczową rolę w podnoszeniu produktywności poprzez automatyzację powtarzalnych zadań, generowanie kodu, tworzenie testów jednostkowych, czy dokumentacji. Pytanie brzmi, czy mamy na to jakiekolwiek dowody i czy AI faktycznie potrafi programować?

Dane z benchmarków

Aby odpowiedzieć na to pytanie, przyjrzyjmy się popularnym benchmarkom, które sprawdzają umiejętności LLMów w programowaniu.

Zaledwie 3 lata temu skuteczność modelu GPT-3 w domenie programowania wołała o pomstę do nieba. InstructGPT od OpenAI był jednym z pierwszych sygnałów tego, że współpraca z AI faktycznie może mieć sens. Wciąż jednak daleko było do tego, by model generował kod w pełni funkcjonalny. Dzisiaj wszystko wygląda inaczej.

Flagowe modele AI, takie jak Claude 3.5 Sonnet czy GPT-4o, osiągają imponujące wyniki w testach takich jak HumanEval (93,7% poprawnych odpowiedzi przy rozwiązywaniu zadań w Pythonie) czy McEval (średnio 65% w kontekście technologii frontendowych takich jak HTML, TypeScript czy JavaScript). Przyszłość to większy nacisk na tzw. rozwiązania agentowe, a oceniać to będzie benchmark o nazwie SWE-Bench. Na dzisiaj AI radzi sobie z ok. połową zawartych w nim zadań, ale już wkrótce liczba ta pójdzie w górę.

Wzrost skuteczności modeli językowych w popularnych benchmarkach wskazuje na to, że AI nie tylko “rozumie” kod, ale w najbliższych miesiącach co raz częściej będzie wspierać inżynierów w bardziej złożonych zadaniach, takich jak debugowanie czy optymalizacja wąskich gardeł wydajnościowych.

Różnice między modelami AI

Współpraca z AI wymaga od programistów świadomego wyboru narzędzi i ciągłej praktyki, która pozwoli im zrozumieć ich ograniczenia. Poniżej przedstawiamy modele, które obecnie można uznać za najlepsze w swoim segmencie, także w kontekście frontendu.

Claude 3.5 Sonnet (Anthropic)

Lider w benchmarkach programistycznych, szczególnie w Pythonie i zadaniach związanych z testami jednostkowymi. Model ten cieszy się wysoką popularnością dzięki swojej dokładności i wszechstronności, a także wsparciu dla wielu języków (tych ludzkich). Jakościowy partner nowoczesnego frontend developera.

GPT-4o (OpenAI)

Uniwersalne rozwiązanie, które sprawdza się w szerokim spektrum zadań, od generowania kodu po optymalizację istniejących projektów. Mimo nieco niższej skuteczności w benchmarkach frontendowych, oferuje elastyczność i dostępność. W kontekście programowania, zdecydowanie warta uwagi alternatywa do modelu Claude 3.5 Sonnet.

o1-mini oraz o1-preview (OpenAI)

To nowa rodzina modeli, która charakteryzuje się jeszcze lepszą jakością odpowiedzi i bardziej złożonym wnioskowaniem. Niestety, pierwsza generacja tych rozwiązań to czas interakcji czasami dochodzący do jeden lub dwóch minut, co w kontekście codziennej pracy programisty może być bardziej niż irytujące. Wciąż, jeśli masz problem, który możesz dokładnie opisać, a następnie poczekać kilkadziesiąt sekund na odpowiedź, warto z tymi modelami eksperymentować.

Tańsze alternatywy (np. Qwen2.5-Coder)

Modele takie jak Qwen2.5-Coder czy Deep Seek V2.5 oferują konkurencyjne umiejętności programowania w niższej cenie, co czyni je interesującą opcją dla użytkowników z mniejszym budżetem. W ich przypadku musimy jednak ograniczyć się do komunikacji w języku angielskim, co dla wielu początkujących programistów może być minusem.

Wrappery modeli AI

W świecie generatywnej sztucznej inteligencji popularność zyskują również narzędzia takie jak v0 i Bolt, które kierowane są do osób chcących szybko prototypować aplikacje i komponenty interfejsu użytkownika.

Są to narzędzia typu low-code/no-code, które obiecują uproszczenie pracy z tworzeniem UI, a nawet całych aplikacji webowych. Poniżej przyjrzymy się szczegółom ich funkcjonalności oraz przypadkom użycia.

v0: Tworzenie interfejsów użytkownika

v0, rozwijane przez firmę Vercel, koncentruje się na automatyzacji tworzenia frontendowych komponentów i interfejsów użytkownika. Narzędzie wykorzystuje modele językowe do przekształcania zapytań w języku naturalnym w interaktywne elementy aplikacji (Blocks).

Główne cechy:

  • Szybkie prototypowanie: Możliwość tworzenia podstawowych komponentów bez kodowania.
  • Interaktywny sandbox: Środowisko, które pozwala testować generowane komponenty w czasie rzeczywistym.
  • Wsparcie dla popularnych frameworków: Narzędzie jest głęboko zintegrowane z ekosystemem Vercel, wspierając technologie takie jak React, Next.js i Svelte.
  • Darmowy plan: Umożliwia wymianę ograniczonej liczby wiadomości z modelem bez rozliczania za ilość tokenów, co jest ciekawą alternatywą w porównaniu do standardowych modeli billingowych.

Zalety:

  • Idealne do szybkiej wizualizacji pomysłów, szczególnie w sytuacjach, gdy brakuje designera.
  • Umożliwia iteracyjne podejście do projektowania interfejsów.

Wady:

  • Brak pełnego systemu plików ogranicza możliwość tworzenia większych projektów.
  • Rozmowy są wykorzystywane do trenowania modeli, chyba że korzystamy z droższej wersji Enterprise.
  • Ograniczenie do ekosystemu React i Next.js może być problematyczne dla użytkowników Angulara czy mniej popularnych frameworków takich jak Lit czy Solid.

Przykładowe zastosowanie: Tworzenie prototypów interfejsu użytkownika dla nowej strony internetowej lub aplikacji, które można później rozwijać na własną rękę.

Bolt: Full-stackowe prototypy całych aplikacji

Bolt, opracowany przez StackBlitz, idzie krok dalej niż v0, umożliwiając tworzenie pełnoprawnych aplikacji full-stackowych. Narzędzie integruje frontend z backendem, oferując środowisko bardziej przypominające tradycyjne IDE.

Główne cechy:

  • Tworzenie aplikacji full stack: Obsługuje zarówno warstwę frontendową, jak i backendową, pozwalając na komunikację pomiędzy warstwami.
  • Interaktywny edytor kodu: Zintegrowany system plików, możliwość instalowania zależności oraz przeprowadzania natychmiastowego deploymentu na platformy takie jak Netlify.
  • Dostępność open source: Kod źródłowy Bolta jest otwarty, co pozwala użytkownikom na podgląd i modyfikację implementacji.
  • Lokalny hosting: Możliwość pracy z własnym backendem LLMów oraz pełnej kontroli nad środowiskiem pracy.

Zalety:

  • Elastyczność dzięki integracji backendu i frontendu.
  • Możliwość pracy w pełni lokalnie, co zwiększa bezpieczeństwo.
  • Dostęp do struktury plików oraz funkcjonalności podobnych do edytora VS Code.

Wady:

  • Wyższa bariera wejścia w porównaniu do v0, co sprawia, że jest bardziej skierowany do technicznych użytkowników.
  • Wersja darmowa ma ograniczenia w liczbie wymienianych tokenów.

Przykładowe zastosowanie: Prototypowanie małych aplikacji full-stack, które można natychmiast wdrożyć lub prezentować klientowi.

Kiedy korzystać z v0 lub Bolta?

  • v0: Dla zespołów lub osób potrzebujących szybko przygotować wizualizację interfejsu lub komponentów, bez potrzeby wdrażania pełnej funkcjonalności aplikacji.
  • Bolt: Dla programistów i zespołów tworzących kompleksowe prototypy aplikacji, które wymagają backendu i frontendowej integracji.

Oba narzędzia pokazują, że opakowanie surowego modelu językowego w dedykowany interfejs i niestandardowe prompty może dać początek niejednemu startupowi lub projektowi, na który wcześniej nie było czasu lub pieniędzy.

Integracje z workflow programisty, czyli Cursor vs. Copilot

Tym, na co liczy największa grupa pasjonatów AI, jest ścisła integracja modeli językowych ze środowiskami programistycznymi. W tej kategorii liderami są Cursor i Copilot, które porównamy poniżej.

Cursor

Cursor to fork edytora Visual Studio Code z funkcjami współpracy z AI. Cechuje się:

  • Obsługą wielu modeli, w tym przez usługę OpenRouter omawianą na naszym kanale YouTube.
  • Możliwością podłączenia własnych kluczy API, co pozwala na większą kontrolę nad wydatkami.
  • Znakomitymi autorskimi rozwiązaniami takimi jak Cursor Tab i Cursor Composer, dzięki którym edycja kodu staje się jeszcze szybsza.

Copilot

Copilot, jako plugin, integruje się bezpośrednio z popularnymi edytorami kodu pokroju VS Code i rozwiązań JetBrains. Jego główne cechy to:

  • Łatwość instalacji i konfiguracji (rozwiązanie plug-and-play).
  • Wsparcie dla funkcji takich jak rules for AI, które pozwalają na precyzyjne definiowanie zasad generowania i testowania kodu.
  • Integracje z modelami OpenAI, Google oraz Anthropic w ramach jednego abonamentu (10$ / miesiąc).

Co wybrać?

Wybór pomiędzy Cursorem a Copilotem w dużej mierze sprowadza się do filozofii pracy.

Cursor to rozwiązanie, za którym stoi mały startup z Doliny Krzemowej. Wdrażają oni swoje pomysły w szalonym tempie, ale część z nich nie jest w pełni stabilna od momentu premiery. Pracując z Cursorem masz gwarancję bycia “na krawędzi” tego, co oferuje AI w codziennej pracy programisty, ale czasami może to być nieco frustrujące.

Copilot to z kolei bardziej wyważone rozwiązanie, ale o innowacjach względem konkurencji raczej nie ma mowy. Chociaż integracja Copilota z VS Code przebiega bezproblemowo, to w kontekście oferowanych możliwości nie spodziewajmy się przeskoku nad tym, co dzisiaj oferuje Cursor.

Po ostatniej aktualizacji, rywalizacja stała się bardziej wyrównana, ale Cursor nadal oferuje nieco więcej możliwości, a Copilot co najwyżej naśladuje wybrane pomysły. Przede wszystkim jednak w Copilocie znajdziecie na dzisiaj modele dwóch firm (OpenAI i Anthropic, z modelami Google zapowiedzianymi w najbliższych miesiącach), a Cursor to już dzisiaj dostęp do ponad 200 modeli z OpenRoutera.

AI wchodzi do mainstreamu programowania

Przedstawione w tym artykule rozwiązania pokazują, że już wkrótce współpraca programisty z AI będzie tym samym co korzystanie z systemu kontroli wersji lub przeprowadzanie Code Review. Warto już teraz obserwować rozwój opisywanych modeli i narzędzi aby budować nawyki, które przygotują nas na epokę regularnego delegowania zadań do AI.


Tekst powstał w oparciu o Webinar Przeprogramowanych (link) - korekty wprowadziliśmy z wykorzystaniem ChataGPT, Cursora oraz modelu Claude 3.5 Sonnet.

Newsletter Opanuj AI

Subskrybuj ręcznie selekcjonowane materiały z obszarów AI i rynku nowych technologii, które pomagają dowozić lepsze rezultaty i budować kulturę innowacji

Zapisując się do newslettera akceptujesz naszą politykę prywatności.

W każdy poniedziałek
Otrzymuj podsumowanie najważniejszych informacji z branży AI i nowych technologii. Gwarantujemy zero spamu i tylko wartościowe treści.
Tylko najlepsze materiały
Materiały zamieszczane w newsletterze przechodzą proces selekcji, gdzie wymagamy jakości i możliwej do wykorzystania wiedzy.