Visual Basic .NET bez statycznego typowania

Dzisiaj będzie o najgorszej rzeczy, jaka pojawia się w niektórych projektach pisanych w Visual Basic .NET.
Kompilator Visual Basic jest bardziej konfigurowalny niż ten w C#. Możnaby tak miło o nim powiedzieć. W praktyce wygląda to tak, że możemy wyłączyć większość statycznego sprawdzania typów, wartości zwracanych itp. W praktyce wygląda to tak (piszę odpowiednik w C#, żeby łatwiej było się nad tym pochylić;):

Foo() 
{
    string number = "floor";
    int index = number;
}

int Bar() 
{
     return false; 
}

int FooBar(int age)
{
    if(age > 7)
    {
        return age * 12;
    }

    // nie zwracamy nic, a po co 🙂
    // jakby undefined w JavaScript
}

To wszystko wywali się oczywiście w runtime.

WTF – kto tak pisze?

Dla mnie i podejrzewam każdego znającego C# to jakaś masakra. Jak można tak pisać?! Weszło to może historycznie, aby część kodu portowanego ze starego skryptowego Visual Basic nie .NET mogła byś w ogóle uruchomiona. Tylko dlaczego przez tyle lat nikt nic z tym nie robił. Co jeszcze lepsze domyślnie tworzony projekt w VB będzie miał takie właśnie łagodne traktowanie wszystkiego. Grrrr.

Visual Basic dot NET project settings

Domyślny setup projektu Visual Basic. A po co nam statyczne sprawdzanie?!

Czym można to odkręcić?

Jak z tym sobie poradzić. Siłą spokoju i pracą organiczną. Kiedyś miałem taki case. Na początku włączyłem aby komplilator rzucał Warningiem w takich sytuacjach. Dzięki temu chodząc w niebezpiecznym kodzie już widziałem co może się wydarzyć i co w pierwszej kolejności poprawiać. Co kilka dni brałem kolejny projekt/kawałek kodu i poprawiałem ileś tam takich ciekawostek. Stopniowo w kolejnych projektach mogłem włączyć sprawdzanie typów na poziom Error. Wtedy była już gwarancja że nikt nie wyłączy tego z powrotem, a podczas przenoszenia kodu z innych projektów będzie trzeba ten kod dostosować.

Advertisements
Ten wpis został opublikowany w kategorii Programowanie i oznaczony tagami , . Dodaj zakładkę do bezpośredniego odnośnika.