מה לינוקס הוא בשבילי
אני מתכנת ומפתח במקצועי, ואני מנוסה בפיתוח בסביבת לינוקס (וביוניקס בכלל) ובסביבת חלונות. אני מעדיף את לינוקס לשם כך, ואני רוצה לספר לכם מדוע.
לא אשקר לכם בכך שאומר שכל הכלים שאפשר למצוא בלינוקס, אינם קיימים לסביבת חלונות. למעשה, אפשר ליצור סביבת פיתוח דמוית-לינוקס על גבי חלונות. אולם, פתרון זה הנו גם לא משולב באותה מידה כמו סביבת לינוקס רגילה, וגם ידרוש הרבה זמן ותסכול להקים. עובדה זה נובעת חלקית מכך שתכנה חופשית צמחה במקור בעולם היוניקס, וחלקית מהעובדה שמיקרוסופט אינה עושה די כדי לשנות מצב זה. (אם היא רוצה בכך, זהו עניין שונה, אבל לא אתעסק בכך כאן).
אחרי שהורדתי מהרשת והתקנתי הפצת לינוקס טיפוסית, יש בידי כבר את רוב הכלים שאני צריך ומשתמש בהם, על הכונן הקשיח שלי. מה שאין בידי, אני יכול להוריד מהאינטרנט בחינם. בלינוקס כמעט כל דבר מתקמפל ועובר התקנה עם כמה שפחות בעיות בדרך, בשל העובדה שהוא ואריאנט היוניקס הפופולרי ביותר וזה שבו מתבצע רוב הפיתוח של תוכנת קוד-פתוח.
לא זאת בלבד, אך אני מוצא את הכלים שעומדים לידי בלינוקס, יותר טובים (לפחות אם לוקחים אותם בשלמותם) מאשר הכלים המסחריים המקבילים להם. פיתחתי תכנה מאוד עדינה ומורכבת בשפת C שיכולה לרוץ גם על לינוקס וגם על חלונות, ומצאתי את דיבאגר ה-gdb הרבה יותר מועיל בניפוי שגיאות לא מובנות, מאשר Microsoft Visual Studio עם כל הקשקושים שלו.
בנוסף, פיתחתי לאחרונה סימולטור לרעש אינטרנט שרץ על בלינוקס. עם הכוח שניתן לנו על-ידי ארכיטקטורת Netfilter היינו מסוגלים לשמור חלק גדול מהפיתוח בפרל שהיא שפת תכנות עילית שמשתמשים בה הרבה בלינוקס. יותר מאוחר, המרנו את הקוד לשפת סי כדי שירוץ יותר מהר, אך היה לנו את היתרון שהיה בידינו קוד פרל עובד, כדי להתבסס עליו.
מלבד כל זאת, פיתחתי הרבה שירותים מבוססי-ווב בלינוקס. על-ידי שימוש בשרת אפאצ‘י בצרוף עם פרל הצלחתי לפתח אותם במהירות ובקלות, כל זאת מבלי לשלם או להיות חייב לאיש, אגורה. לפעמים עשיתי את זה מבלי לצאת מהבית. למען הפרוטוקול, מערכת של חלונות עם אותה הקיבולת עולה עשרות אלפי דולרים (לא כולל החומרה).
עם התקדמות סביבות ממשק-המשתמש הגרפי כמו KDE מצאתי שלעבוד על לינוקס, אפילו שלא כדי לפתח דברים, נעשה יותר נוח מאשר על חלונות. על אף שאני משתמש בממשק המשתמש הרבה, אני תמיד יכול להסתמך על שורת הפקודה ועל פרל כדי לבצע ולעשות אוטומטיזיציה של המטלות שאני צריך לבצע כמשתמש. בלינוקס, ניתן לעשות כמעט הכל על שורת הפקודה, ולכן, הכל בר-תכנות.