Microsoft i dynamiczne języki

Microsoft do niedawna postrzegany był raczej jako zwolennik tradycyjnych, statycznych języków programowania - takich jak Visual Basic i C#. W ostatnim czasie koncern zaczął jednak wspierać również języki dynamiczne - nietrudno zauważyć, że zaważył fakt, iż ich popularność cały czas rośnie. "Zawsze chcieliśmy wspierać wszystkie języki, jakie było można, zwłaszcza, gdy klienci się tego domagali. Języki dynamiczne późno zyskały dużą popularność i dlatego nie mamy wyrobionego stanowiska, poza tym, że szukamy możliwości włączenia ich do listy obsługiwanej przez platformę .NET" - tłumaczy w rozmowie z IDG Jason McConnell, product manager projektu Visual Studio, odpowiedzialny w Microsofcie za języki programowania. Przedstawiciel koncernu z Redmond mówił również o przyszłości Javy, C# i C++, a także o planach rozwoju platformy .NET.
Rosnąca popularność dynamicznych języków programowania, takich jak Perl, Python, czy Ruby - używanych głównie do budowania aplikacji webowych - spowodowała, że giganci, jak Microsoft, Oracle, Sun Microsystems, czy IBM zaczęli zwracać baczną uwagę na ich rozwój. Pomimo że Microsoft kładzie główny nacisk na tradycyjne języki programowania, jak Visual Basic i C#, to ostatnio zaczął mocniej wspierać dynamiczne języki programowania. Dla przykładu na firmowej witrynie z projektami rozwijanymi przez społeczność - CodePlex - hostuje dwa projekty: IronPython i Phalanger, które mają udostępnić możliwości dynamicznych języków pod platformą .NET. Dziennikarzom należącego do wydawnictwa IDG magazynu InfoWorld - Paulowi Krillowi oraz Dougowi Dineley'owi - udało się porozmawiać na ten temat z Jasonem McConnellem, product managerem projektu Visual Studio, odpowiedzialnym w Microsofcie za języki programowania.

22.08.2006 | aktual.: 22.08.2006 15:34

InfoWorld: Jakie jest oficjalne stanowisko Microsoftu, jeżeli chodzi o wsparcie dla dynamicznych języków programowania takich, jak PHP, Perl, Python, Ruby, czy JavaScript przez platformę .NET i środowisko uruchomieniowe CLR ( Common Language Runtime )?*Jason McConnell:* Zawsze chcieliśmy wspierać wszystkie języki, jakie było można, zwłaszcza, gdy klienci się tego domagali. Języki dynamiczne, jak te wymienione wcześniej, późno zyskały dużą popularność i dlatego nie mamy wyrobionego stanowiska, poza tym, że szukamy możliwości włączenia ich do listy obsługiwanej przez platformę .NET.

Jeżeli więc szukacie takich możliwości, to jakie kroki może podjąć Microsoft? Na pewno otrzymujecie uwagi zgłaszane przez klientów i deweloperów, którzy chcą takiej funkcjonalności?

Oczywiście. Na pewno zwracamy uwagę na nowe języki, których się teraz używa. Dla przykładu rozwijamy projekt IronPython, który wszedł jakiś czas temu w ostatnią fazę testową - Release Candidate. Jest to projekt zapoczątkowany przez społeczność deweloperów i pokazuje pierwsze wysiłki w celu włączenia języków dynamicznych w poczet wspieranych przez .NET. Jest on obecnie naszą, jakby wizytówką, jeżeli chodzi o strategię i pracę w tym kierunku.

Czy uważasz, że tradycyjne języki wspierane przez Microsoft, jak Visual Basic, czy C# oferują znacznie więcej korzyści niż dynamiczne, o których tu rozmawiamy?

To są całkiem różne rzeczy. C# jest silnie typowanym statycznym językiem. Visual Basic można by uznać za częściowo dynamiczny. Ogólnie rzecz biorąc dynamiczne języki programowania najlepiej nadają się do szybkiego tworzenia aplikacji, podczas gdy języki statycznie typowane lepiej sprawdzają się przy tworzeniu dużych systemów ze ściśle zdefiniowanymi interfejsami. Więc jest to kwestia wyboru dobrego narzędzia do wykonania określonej pracy. Według mnie nie można obiektywnie porównać języków dynamicznych i statycznie typowanych.

Patrzę właśnie na definicję dynamicznego języka programowania w Wikipedii. Jak ty byś go zdefiniował?

Język dynamiczny, to taki, który potrafi w czasie wykonywania określać typy i jest kompilowany w locie. W czasie wykonywania kodu, kompilator wykonuje sprawdzanie typów i składni, w przeciwieństwie do języków statycznych, kiedy jest to robione podczas kompilacji, przed wykonaniem programu.Jak Microsoft zapatruje się na zewnętrzne próby stworzenia dynamicznych języków działających na platformie .NET, takich jak Ruby On Steel, czy projekt Phalanger dla PHP?

Już od powstania podwalin CLR w 2001 roku, staramy się wspierać wszelkie takie wysiłki. Kilka tygodni temu odbyło się sympozjum Lang.Net, które było próbą zebrania pomysłów i poparcia społeczności w budowaniu innych języków programowania wokół platformy .NET.

Jaki według Ciebie był odbiór tego wydarzenia?

Moim zdaniem, bardzo pozytywny. Głos zabierali nie tylko ludzie z branży, ale także tacy, dla których jest to hobby. Wydarzenie okazało się wspaniałym forum do rozmowy o powstających technologiach i innych intelektualnych dyskusji.Czy Microsoft obrał jakieś konkretne stanowisko po tym spotkaniu?

Nie. Sympozjum to miało na celu spotkanie zainteresowanych ludzi z branży, możliwość wymiany pomysłów i sprawdzenia, jakie są obecnie trendy. Na pewno Microsoft wyciągnie jakieś wnioski po spotkaniu, ale nie będzie w rezultacie zmieniać, czy określać swojego stanowiska wobec poruszanych tam tematów.

Czy wobec rosnącej popularności języków dynamicznych, można mówić o policzonych dniach dla "tradycyjnych" języków Microsoftu i głównego rywala Javy?

Sądzę, że zakwalifikowałbym Javę, C# i C++ jako systemowe języki programowania, dla których zawsze będzie dużo miejsca przy programowaniu dużych, dobrze zdefiniowanych systemów.

Czy można nazwać CLR nieprzyjaznym dla dynamicznych języków?

W wersji 2.0 platformy .NET poczyniono sporo zmian, które mają ułatwić dynamiczne wywołania. Szukamy ciągle możliwości, aby uczynić CLR przyjaznym dla dynamicznych języków, lecz sądzę, że już obecnie nie można powiedzieć, że jest on "nieprzyjazny". Jeżeli przyjrzymy się pracy Jima Hugunina nad IronPythonem, to zobaczymy wiele naprawdę dobrych rzeczy. Udało mu się stworzyć IronPythona w stosunkowo krótkim czasie, co pokazuje że platforma .NET nie jest nieprzyjazna.

Czy Microsoft wspiera projekty Phalanger i IronPython swoimi deweloperami?

Nie. Projekty te rozwija społeczność. [IronPython powstał jako projekt rozwijany przez społeczność, lecz później jego twórca dołączył do szeregów Microsoftu - red.].

Czy są jakieś wybrane dynamiczne języki, nad którymi pracujecie, aby rozszerzyć dla nich wsparcie i umożliwić lepsze działanie na platformie .NET?

Nie na obecnym etapie. Staramy się ogólnie polepszyć działanie wszystkich dynamicznych języków. Podobnie jak CLR jest wspólny pomiędzy językami statycznymi, tak staramy się, żeby w równym stopniu wspierał wszystkie dynamiczne języki programowania.

Czyli wszelkie usprawnienia środowiska uruchomieniowego CLR dla języków dynamicznych są robione dla wszystkich, a nie wybranych?

Tak.

Więc nie ma w planach Microsoftowej wersji PHP, Perla, czy innego z wymienionych tu języków? Czy firma pozwoli zewnętrznym deweloperom zająć się tymi sprawami?

Nie ma na razie żadnych firmowych planów w tym kierunku... Chcemy, aby platforma .NET stała się liderem w obsłudze tego typu języków. Cały czas rozwijamy ją w tym kierunku. Obecnie mamy wersję 2.0 platformy. Kolejna - 3.0 - pojawi się razem z Windows Vista. Wersja 3.5 będzie dostępna z kolejną wersją narzędzi, które zamierzamy udostępnić. Cały czas trwają prace nad usprawnianiem platformy, ze szczególnym zwracaniem uwagi na to, co jest istotne dla branży i naszych klientów.

Wybrane dla Ciebie
Komentarze (0)