acgp

Genialny i chwytliwy tekst ktoś kiedyś wymyślił, ale jest już kompletnie niezgodny z obecną rzeczywistością...

def

@acgp cały czas zgodny, mam na rollbarze otwartych 48 rzeczy z powodu blędów, które w kompilowanym języku by nie wystąpiły (to legacy kod)

def

a teraz długa wersja, w językach dynamicznych (np. js, python, ruby, php) nadal tak samo łatwo o błędy runtime'owe. Zmieniły się narzędzie (analiza statyczna), zmieniła się technika wytwarzania oprogramowania. Kiedyś PHP było technologią małych januszexów, które nie dbały o jakość kodu, nikt testów nie pisał, nie było działu QA. W zasadzie, to programista pisał kod i od razu wrzucał na produkcję przez FTP. Osobiście często nawet pisałem kod bezpośrednio na serwerze produkcyjnym przez vima w sesji ssh. Podumowując: masz trochę racji, że już niezgodne z rzeczywistością, ale IMO nie dlatego, że język jest lepszy (chociaż trzeba przyznać, że jest dużo lepszy niż kiedyś), ale dlatego, że podejście do wytwarzania oprogramowania się zmieniło.

30ohm

@acgp wystarczy parę typowych błędów wyświetlanych przez php wrzucić w Google i będą setki wyników ze stronami które je wyświetlają

Ragnarokk

@def Programuję w Ruby, potwierdzam w 100%.

acgp

No tak, zgodzę się że jak ktoś pisze sobie coś drobnego na kolanie to będą problemy.

Ale w poważniejszych zastosowaniach są dobre frameworki które wykryją problem no i też kompilatory które znajdują takie rzeczy że ciężko byłoby je zauważyć, np PHPStorm. Mem zakłada że aplikacje PHP nadal pisze się w Notatniku 🌝

gdybysczesciejmruczal

@def Tutaj Python, też +1

Niedawno przepisywałem najstarszy kawałek apki. Każdy bał się tam zaglądać (tylko łatano kod jak się pojawił jakiś błąd), w ~50% funkcji była obsługa wyjątków ze względu na brak typowania. Nawet po dodaniu type hintów kod dał radę się wywalić - zewnętrzna biblioteka nie zawsze zwracała co miała w dokumentacji.

Przeglądając repozytorium można zobaczyć skoki jakościowe - wprowadzenie systemu kontroli wersji, wprowadzenie code review, wprowadzenie zasad co do wyglądu kodu, zwiększenie nacisku na pisanie obiektowe w projekcie, podbicie pythona + type hinty.

Każda z tych zmian poprawiła jakość kodu w repo. Ale tylko nowego, bez przepisania staroci dalej mamy ten sam problematyczny język w którym dużo może pójść nie tak.

def

Ziom, phostorm to nie kompilator, tylko IDE, napisalem, ze istnieja analizatory statyczne, czyli “odpowiednik” kompilatorow dla jezykow dynamicznych, ale to nie to samo.

RobertCalifornia

Czyli acgp dobrze ci napisał że obecnie nie występują. Bo mam nadzieję że czujesz te nieprzyzwoitość mówienia o legacy w kontekście "obecnie" :)

ElektrolizatorDwuczlonowy

W C++ nie testujesz już programu jeśli nie wyrzuci błędu?

Po drugie każde współczesne IDE na żywo wyszukuje błędów.

Zaloguj się aby komentować