wtorek, 19 kwietnia 2011

Visual Basic .NET? Who cares?

Tekst zainspirowany własnymi doświadczeniami i przemyśleniami, pytaniem, które zadał Tomasz Wiśniewski na 2nd Silesian Code Camp podczas prowadzenia sesji, później zapomniany a następnie przypomniany przez wpis na Twitterze (Wojtek, pozdrawiam!).

Pięć lat temu brałem udział w projekcie szkoleniowym promowanym przez Microsoft, w którym chodziło m. in. o zachęcenie programistów PHP do przejścia lub chociaż wypróbowania technologii ASP.NET, wkraczjącej na rynek w wersji 2.0 i stającej się wreszcie atrakcyjną dla tworzących serwisy WWW. Moim zadaniem w projekcie było – oprócz popraowadzenia zajęć - przygotowanie prezentacji i materiałów szkoleniowych, a w ogóle, to znalazłem się tam jako ekspert od PHP. No dobra, fakt, byłem wtedy jeszcze pehapowcem. Jako programista przyzwyczajony do języków klasycznych (C/C++, Java, C#…), których składnię stosowałem również w PHP (oczywiście w miarę jak na to pozwalał ten język), przygotowałem zarówno prezentację, jak i przykłady oraz materiały szkoleniowe z wykorzystaniem jedynie wtedy dla mnie słusznego języka “dotnetowskiego” C#… I wtedy się zaczęło. Trenerzy, z którymi miałem współpracować, zdenerwowali się i chyba obrazili na mnie, że nie użyłem VB.NET, bo – ich zdaniem – był to właśnie język, którego powinno się używać na .NET. Bo podobno było parcie firm na ten właśnie język. Starałem się im wytłumaczyć, że programiści PHP (pewnie też znający przy okazji Javę – później, podczas luźnych rozmów z uczestnikami warsztatów, okazało się, że miałem rację) o wiele łatwiej i płynniej przejdą na C# niż VB.NET, choćby poprzez fakt, że VB.NET musieli by się w zasadzie uczyć jako całkiem nowego języka (weźcie np. deklarację zmiennych…). A poza tym zawsze wydawało mi się, że VB.NET należy raczej do języków niszowych.

Dziś wiele (wszystko?) wskazuje na to, że miałem rację. Popularność VB ciągle spada, podczas gdy C# regularnie rośnie – wystarczy przejrzeć sobie indeks popularności języków programowania TIOBE. Czy uważam się przez to za informatycznego proroka? Oczywiście, że nie – wzrost popularności tak elastycznego i wygodnego języka, jak C#, przy dużym wsparciu Microsoftu i działalności społeczności oraz dzięki ciągłemu rozwojowi platformy Mono, był po prostu do przewidzenia.

wtorek, 5 kwietnia 2011

My Top Twenty+ #AlternateTitlesForSourceCode

Dziś, od wczesnych godzin porannych (w naszej strefie czasowej :-)), na Twitterze aż się trzęsie (znaczy dysk) od propozycji #AlternateTitlesForSourceCode. Dominują głównie odwołania do filmów i niekoniecznie do kodowania :-)

Poniżej przedstawiam listę tytułów, które mi sie najbardziej spodobały (początkowo miało być dwadzieścia, ale szybko sie zorientowałem, że to mało).

C++ The Bjarne Ultimatum
The A-gile Team
Saving Private Method
Das Reboot
catch(Me if_) { you(can); }
C-Sharp 3: Rise of the LINQ
Harry Potter and the Index Out of Range Exception
CRUD: Legacy
IChocolateFactory
!Forgiven
The silence of the lambdas
A Room with a ViewModel
Life<brian>
PrivateRyan.Save()
The Bjarne Stroustrup Identity
The Lord of the Pings: The Fellowship of the Ping
Rollback to the Future
return _jedi;
return _king;
Run(Lola).Run()
Tibet.AddYears(7);
try { matrix.Reload(); } catch ( matrix.StartRevolution(); }
Callback Mountain
Dr StrangeLoop
“/dev/null’s Advocate”
Pla .NET of the devs
Stack Wars
Code Wars: Episode vi - Return of the Editor
The good, the bad, and the bug
The Codefather
#000000 Swan
Enter the Mutex
Use The Source, Luke!
A view to a nil
Honey I shrunk the database
Schindler's Heap
mohicans.Last();
var seal = seals.Take(7).Last();
The unbearable lighness of bing
Terminator 3: Rise of the Virtual Machines
The Unbearable Lightness of Being a geek
Highlander: The sourcecode
Pirates of the Code - The Curse of the Black Thread
Pirates of the Code - The Curse of the Black Perl
kill -9 Bill
Lost in Compilation
The Null Terminator
TheBlairWitch.csproj

Oczywiście obserwuję dalej.

Gdzieś pośród "tytułów" jest też moja radosna twórczość - "RAMbo: First Boot", "Total Eclipse", "The HobBIT" i "One Flew Over the SQL Injection" :-)