Ponad 20 lat temu byłem świadkiem straszliwych wydarzeń. Robiłem jakiś serwis www, chyba dla RUCH-u, w którym MUSIAŁEM korzystać z Ms SQL Servera. Sam serwer był OK ale narzędzia pod IIS-en służące do komunikacji i odpalania zapytań… to była niemożebna nędza. Jak zwykle zresztą.
Ale co tam ja… obok mnie siedział skromny, spokojny programista FoxPro zwany Kalim. W życiu nie spotkałem weselszego i bardziej statecznego człowieka. Skupiony na klawiaturą, dzień po dniu tworzył jakiś program usprawniający działanie działu księgowości. W Microsoft Visual FoxPro z bazą Microsoft SQL Server. A to jest ważne.
Pewnego słonecznego dnia, siedzieliśmy obaj nad naszymi projektami. Przez okno wpadały słoneczne promienie, lądując żółtymi packami na ścianie za monitorem, z podwórka dochodził śpiew ptaków, przerywany niezrozumiałą z powodu odległości, leniwą gadką ochroniarzy. Sielanka, spokój, koncentracja i medytacja.
Nagle Kali zerwał się z krzesła! Ominął biurko by dostać się do ściany i zaczał w nią walić pięściami, wywrzaskując przy tym najgorsze inwektywy jakie zna język polski. Ich adresatem była firma z Redmond i jej produkty. Pomijam co stało się dalej, a stało się, bo nie ma to znaczenia dla całości tego wpisu. Kali darł się bo choć robił wszystko zgodnie z dokumentacją, to Microsoft wiedział lepiej. Czy raczej, nie wiedział.
Parę dni potem i ja zetknąłem się klątwą Microsoftu. Do dziś pamiętam zapytania w T-SQL-u, które nie chciały się wykonać, mimo że składnia była poprawna. Wyłem ze złości.
Czemu to piszę?
Bo przerzucam projekt w PHP z MySQL-a na Microsoft SQL Server i… i co? I mam dwa identyczne zapytania, jedno „chodzi”, drugie nie. K…a, dwadzieścia lat jak… krew w piach.
p.s.
Pamiętam wpis na blogu któregoś z programistów Dooma: Carmacka albo Romero. Koleś kupił dwie identyczne maszyny, zainstalował Windows i potrzebne narzędzia developerskie, sklonował na drugą maszynę, na obu zapuścił kompilację tego samego kodu i… wyszły mu binarki różniące się rozmiarem. Powtarzalność w produktach Microsoftu dotyczy tylko błędów.