RO
EN
×
▼ BROWSE ISSUES ▼
Issue 9

Microsoft în lumea Open-Source

Radu Vunvulea
Senior Software Engineer
@iQuest
PROGRAMMING


Așa cum știm cu toții, noțiunea de open-source a existat încă de la prima linie de cod care a fost scrisă vreodată. În cadrul acestui articol vom vedea ce a însemnat noțiunea de open-source pentru Microsoft, ce înseamnă ea în ziua de azi și care sunt noile direcții.

Cum a început totul

Noțiunea de open-source într-o forma sau alta apare încă din anii 1950-1960, când cea mai mare parte din cod era scrisă de către universități în colaborare cu corporațiile. Acest domeniu era încă la început, iar accentul era pus pe colaborare. Noile descoperi erau împărtășite cu toată lumea, iar cea mai mare parte dintre cercetători erau deschiși la colaborare și la a face share la cea ce descopereau.

Unul dintre motivele principale pentru care acest lucru se făcea era din cauza că existau o multitudine de sisteme hardware și software, iar pentru a face o componentă să funcționeze, de multe ori era nevoie să o modifici. În timp acest lucru s-a schimbat și standardizat iar comunitatea open-source s-a extins extrem de mult.

Un bun exemplu de colaborare este cel care a avut loc în anii 1960, când colaborarea între diferiți cercetători pentru dezvoltare protocoalelor de comunicare a dus la apariția cea ce noi numim astăzi internet. Oficial acesta a apărut în 1969 prin intermediul ARPANET (Advanced Research Projects Agency Network).

Începând cu anii 1970, aplicațiile au devenit din ce în ce mai complexe. Diferite corporații investeau sume mari pe partea de cercetare și dezvoltare. Acest lucru a dus ca în următoarea perioadă de timp să apară noțiunea de licențiere, trademark și copyrights. Pe lângă Microsoft, au existat și alte companii care au introdus acest lucru. Un bun exemplu este AT&T, când a decis să scoată profit din vânzarea sistemului de operare Unix.

Open-source și Microsoft înainte de 2000

Poziția pe care Microsoft a adoptat față de open-source a fost una de respingere totală. În anii 1970, Microsoft nu susținea deloc proiectele open-source, iar din punctul lor de vedere acestea nu puteau să aducă nu doar profit cât și valoare. Din punctul lor de vedere calitatea și performanțele unei aplicații open-source erau puse sub semnul întrebării.

Acest mesaj a fost transmis destul de clar în 1976, când Bill Gates scrie un eseu intitulat "Open Letter to Hobbyiests". Din punctul de vedere al unei corporații, comunitatea open-source reprezenta o amenințare, mai ales din punct de vedere financiar.

Cu sau fără susținerea Microsoft, comunitatea open-source a mers mai departe, iar în 1983 se lansează proiectul GNU Project. Acesta avea ca scop dezvoltarea unui sistem de operare gratuit, care să nu depindă de nici o companie. Tot codul sursă urma să fie open-source, oricine putând să îl modifice.

Bineînțeles acest lucru a dus la nevoia unei forme de licențiere pentru produsele open-source. Din această cauză, în 1989 apare GNU General Publice License. După acest pas, apar diferite sisteme de operare și aplicații în cadrul comunităților open-source. Sistemul de operare Linux este unul dintre cele mai cunoscute exemple. Dar să nu uităm de BSD, care apare în jurul anului 1993, iar în acest moment sistemul de operare Mac OS X are la bază acest sistem de operare.

În decursul ultimilor 20 de ani nenumărate proiecte open-source au avut un real succes pe piață. Merită de menționat Apache sau Netscape. Un pas important pe care Netscape l-a făcut este momentul în care își publică o parte din proiecte ca open-source. Dacă Netscape nu ar fi făcut acest pas, Mozilla Firefox sau Thunderbird poate nu ar fi existat deloc. Acestea au la bază componente dezvoltate de Netscape.

În toată această perioada Microsoft este inamicul proiectelor open-source. Acesta pune sub semnul întrebării în special calitatea acestor sisteme. Așa cum am spus și mai sus, tot ceea ce ținea de open-source era văzut ca o amenințare devenită din ce în ce mai mare. În 1998 apare primul dintr-o serie de documente din seria "Halloween Documents", în care tot ce ține de open-source este văzut ca și ceva rău. În decursul timpului au existat nenumărate procese în cadrul cărora Microsoft își apăra diferite patente.

Open-source și Microsoft după 2000

O schimbare destul de radicală apare după anii 2000. Cu intrarea în noul secol Microsoft își schimbă total poziția față de comunitatea open-source și față de proiectele open-source. Deși inițial multe persoane au crezut că acest lucru este făcut de corporație doar pentru a-și îmbunătăți imaginea, se pare că nu este adevărat. Încetul cu încetul Microsoft începe nu doar să susțină proiectele open-source, dar și propriile sale proiecte devin open-source.

Pe parcursul timpului există colaborări între Microsoft cu diferite comunități open-source. Un bun exemplu este când Microsoft contribuie cu drivere pentru Hiper-V (mecanism de virtualizare) sau în cazul jQuery.

Această schimbare apare în 2006, odată cu lansarea unui site pentru shared-source project. Acest nou site se numește Codeplex, iar din 2006 și până acum a crescut extrem de mult. În momentul de față o parte din proiectele open-source pe care Microsoft le susține pot fi găsite pe Codeplex.

Un an mai târziu, deși relațiile dintre Microsoft şi comunitatea open-source erau destul de tensionate, apar două tipuri de licență care întrevăd ceea ce urmează să se întâmple:

  • Microsoft Public License
  • Microsoft Reciprocal License

Acesta reprezintă adevăratul moment de cotitură, când proiectele open-source sunt văzute ca un lucru bun.

Dată

Eveniment

31 Octombrie 1998

Primul memo denumit "Halloween Memo". Open-source e văzut ca o amenințare din cauza modului de licențiere

Mai 2001

Un mesaj prin care se dă exemplul de companii care au oferit codul comunități sperând că vor câștiga banii din suport, dar care nu au reușit

Junie 2001

B. Gates descrie modul de licențiere Generic Public Licence ca şi Pac-Man-Like

Junie 2001

S. Ballmer afirmă că, dacă scrii un sistem de operare open-source atunci e nevoie ca întreg sistemul de operare să fie open-source

Iunie 2005

S. Ballmer afirmă că Microsoft lucrează în fiecare zi pentru finalizarea proiectelor proprii neconcurând cu mișcările (Linux și comunitatea open-source)

Iunie 2006

Codeplex este lansat

Octombrie 2007

Două moduri de licențiere pentru open-source.

În prezent

Avem nenumărate proiecte open-source susținute de către Microsoft.

Tabel 1 Open-source și Microsoft

Proiecte Microsoft care sunt open-source

Există nenumărate proiecte open-source care au venit din lumea Microsoft. Și nu ne referim la proiecte mici sau doar de fațadă. Codul unor proiecte precum Entity Framework sau ASP.NET MVC, ASP.NET Web API, ASP.NET Razor au ajuns să fie disponibile oricărei persoane. Pe zi ce trece, din ce în ce mai mult proiecte Microsoft ajung să aibă codul sursă publicat.

În ultimul timp au apărut diferite știri care anunță că Git va fi integrat în IDE-ul de Visual Studio. În momentul de față, Git este considerat un mecanism de source control extrem de bun, care poate să fie folosit nu doar de către comunitatea open-source cât și de enterprise. Acesta nu va fi doar suportat de către Visual Studio, dar o să fie integrat în totalitate cu TFS. Este bine de știut că Microsoft lucrează la acest proiect de ceva vreme. În cazul în care urmăriți commit-urile pe Git, veți observa că de mult timp angajați Microsoft au început să apară în commit-uri.

Reacțiile care au apărut în momentul în care s-a anunțat că Git va fi suportat și integrat în Visual Studio au fost diverse. Unele persoane au considerat acest pas, un pas extrem de bun, pe când alte persoane au privit acest lucru cu multă suspiciune. Pentru Git, acest lucru este extrem de bun din două motive. Primul este din punct de vedere al răspândirii, unde numărul utilizatorilor va crește destul de mult și pe platforma Microsoft. În al doilea rând, odată integrat în Visual Studio ne putem aștepta ca Microsoft să ofere suport și să rezolve diferite probleme care pot să apară în Git.

Un alt proiect extrem de interesant, care a venit în susținerea comunități open-source este VM Depot. Acesta permite încărcarea, share-ul și folosirea pe Windows Azure oricărui tip de sistem de operare, inclusiv Linux. VM Depot are la bază un API public, extrem de bine documentat, putând fi folosit de către orice dezvoltator.

Nume proiect

Descriere

Reactive Extension

Interfață comună pentru diferite surse de date (FB, Tweeter, NetFlix, GitHub, etc)

Reactive Extension

Permite lucrul cu diferite stream-uri de date asincrone

 

Phone Gab, jQuery Mobile, SQLite, Senqua Touch Diferite framework-uri suportate de către Windows 8

Diferite framework-uri suportate de către Windows 8

SQL Server Connector for Apache Hadoop

Permite transferul de date intre SQL Server s Hadoop

EF, ASP.NET, MVC, WebPI

Framework-uri consacrate au devenit open-source

VM Depot

Un catalog de mașini virtuale pentru Windows Azure

Type Script

"Limbaj" ce ajută la crearea de aplicații scalabile având la bagă JavaScript.

În prezent

Avem nenumărate proiecte open-source susținute de către Microsoft.

Tabel 2 Proiecte open-source susținute de Microsoft

Microsoft Open Tech Hub

Pentru o colaborare mai ușoară între Microsoft şi comunitatea open-source, a apărut Microsoft Open Tech Hub. În cadrul acestui hub, există oameni plătiți de către Microsoft pentru a contribui la proiecte open-source. Prin intermediul acestui hub se speră că oamenii să fie mult mai implicați, comunicarea între comunitatea open-source şi Microsoft să fie mult mai buna și ușoară și să faciliteze dezvoltarea diferitelor standarde.

Trebuie înțeles că open-source nu înseamnă doar share de cod sursă. Acesta înseamnă mai mult de atât. Pe lângă share-ul de cod, share-ul de informație este la fel important, fiind uneori chiar mult mai important (open-information). Putem să avem disponibil codul de la un proiect de 20 de milioane de linii de cod, dar fără documentație acesta o să însemne aproape nimic - este exact același lucru cu a avea disponibile mai multe assembly-uri. Din acest punct de vedere Microsoft, încearcă să aducă valoare, oferind nu doar un cod, ci și documentația și toată informația care există în jurul acestuia.

Concluzie

Un proiect open-source trebuie să fie mai mult decât un cod pe care îl pui pe un server și îi faci share. Este nevoie să oferi documentație, suport și să ai grijă să fie funcțional. Dacă în urmă cu câțiva ani, comunitatea open-source era privită cu scepticism și dezaprobare, în momentul de față viitorul ei se arată promițător.

Sponsors

  • Endava
  • iSDC
  • Small Footprint
  • 3PillarGlobal
  • Fortech
  • Accesa
  • Betfair Romania
  • yardi
  • Accenture
  • Arobs Transilvania Software
  • Mozaic Works