Статьи

Джеймс Гослінг: "Я б прибрав з Java фігурні дужки"

ІНТЕРВ'Ю

Компанія Sun Microsystems регулярно проводить в Росії технічні семінари для Java-розробників. Однак пройшла в кінці квітня в Москві дводенна конференція Sun Tech Day мала особливий статус, оскільки проходила в рамках всесвітнього туру подібних заходів корпорації. Крім обговорення практичних питань застосування Java (в тому числі в ході майстеркласів) на ній були вперше представлені останні новинки Java - нова версія кошти розробки NetBeans 5.0, бета-версія Java Platform, Standard Edition (JSE) 6, ознайомлювальний варіант Java Platform, Enterprise Edition (JEE) 5 (див. PC Week / RE, N 11/2006, с. 26). Окрема секція Tech Day була присвячена операційним системам Solaris і OpenSolaris.

Але, можливо, найбільш значною подією конференції стало те, що в її роботі взяв участь Джеймс Гослінг, творець мови Java, який вже більше десяти років відповідає в Sun за розвиток цієї системи (див. PC Week / RE, N 19/2005, з . 31). Про Java, загальної ситуації на ринку засобів розробки і перспективи її розвитку з ним розмовляє оглядач PC Week / RE Андрій Колесов.

Про Java, загальної ситуації на ринку засобів розробки і перспективи її розвитку з ним розмовляє оглядач PC Week / RE Андрій Колесов

Джеймс Гослінг

PC Week: Складається враження, що після перших п'яти років перебування на ринку, зазначених швидким функціональним розширенням платформи Java, система перейшла в стадію повільного еволюційного розвитку. Що ви можете сказати з цього приводу?

Джеймс Гослінг: У чомусь я і згоден і не згоден з такою оцінкою. Перший час Java дійсно швидко поповнювалася новими супутніми технологіями, що цілком природно, тому що платформа шукала своє місце на ринку (точніше, боролася за нього). В останні роки зовні виглядає більш спокійна картина, але насправді в кожній новій версії Java з'являється багато нового. Наприклад, в поточному варіанті JSE 5, що вийшов в 2004 році, було відзначено найзначніше кількість нововведень у порівнянні з усіма попередніми випусками. А в JSE 6, яка з'явиться вже скоро, їх буде ще більше.

Інша справа, що в різних напрямках застосування розвиток Java йшло нерівномірно. Перші п'ять років основний вектор був націлений на освоєння сегмента корпоративних додатків, де основну роль відіграють серверні технології. Я вважаю, що JEE досягла дуже високого рівня зрілості.

Протягом останніх п'яти років ключовий акцент робиться на спрощення процесу розробки Java-додатків, звідси підвищення уваги до засобів розробки і стандартної версії платформи. Паралельно йде швидке освоєння сегмента мобільних пристроїв і сфери телекомунікацій. Повинен сказати, що перша версія Java для стільникових телефонів в 1999 р більше годилася для створення розважальних "штучок", і тільки сьогодні ми підійшли до реального освоєння корпоративних систем на рівні мікропристроїв. Якраз зараз ми спостерігається другий вибухового розширення сфери застосування Java в стільникового зв'язку, що, звичайно, визначається досягненням якісно нового рівня продуктивності апаратури.

PC Week: А як бути з реальним здійсненням головного гасла Java "Write Once - Run Anywhere" ( "Напиши один раз - запускай де завгодно")? Те, що вже давно є три різних видання платформи - Enterprise, Standard і Micro, - це цілком зрозуміло. Але ж про сумісність Java в області мобільних систем поки говорити не доводиться. Чи буде тут якось змінюватися ситуація?

Дж. Г .: Проблеми сумісності в сфері "мікро" пояснюються об'єктивними причинами. Обчислювальна потужність мобільних пристроїв виявилася настільки мала, що їх виробники були змушені для підвищення продуктивності задіяти специфічні функції процесорів за рахунок власних розширень Java. Зараз потужність використовуваних тут мікропроцесорів значно зросла і відповідно актуальність різних спеціальних функцій знизилася. Ще один важливий момент: постачальники мобільних пристроїв переходять до рішучого освоєння корпоративного ринку, а тут вимоги до уніфікації набагато вище, ніж з боку індивідуальних користувачів.

PC Week: На ринку засобів Java-розробки йде абсолютно очевидний процес консолідації. Чому ж Sun не вдалося підключитися до проекту Eclipse, який став одним з центрів об'єднання всього Java-спільноти, і продовжує розвиток свого середовища NetBeans? Чи не піде це на шкоду ідеї просування Java взагалі і ролі самої Sun зокрема?

Дж. Г .: Правильна постановка питання мала б звучати так: чому IBM запустила свій проект Eclipse, коли вже існував NetBeans, відкритий для широкого співробітництва Java-постачальників * 1? Адже хронологічно ми перетворили NetBeans у відкритий проект на рік раніше, ніж IBM зробила це з Eclipse.

_____

* 1 На цю тему див. Також PC Week / RE, N 17/2005, с. 38. - Прим. ред.

PC Week: Ви вважаєте, що ці дві лінії продовжать автономне розвиток, або все-таки є шанси, що вони зіллються?

Дж. Г .: Швидше за все, буде перший варіант.

PC Week: Періодично в Java-співтоваристві обговорюється можливість реалізації на базі ядра Java підтримки різних по синтаксису мов програмування (те, що реалізує Microsoft на своїй платформі .NET). І в зв'язку з цим часом лунають закиди на адресу Sun, яка нібито протидіє таким прагненням. Яка ваша думка з цього приводу?

Дж. Г .: Взагалі-то в світі Java цим займаються всю історію її існування, і я не бачу ніяких перешкод такої діяльності з боку Sun. Є реалізації таких мов, як Lisp, Perl, Фортран і ряд інших. Інша справа, що ці реалізації на базі Java не отримали широкого застосування, хоча для цього є об'єктивні пояснення, ніяк не пов'язані з позицією Sun з даного питання. Це визначається відсутністю ринкового попиту на подібні інструменти.

Ну а Microsoft по суті справи реалізувала те, що ми зробили ще задовго до них, але тільки супроводивши все це потужною рекламною кампанією. Я свого часу щиро побоювався, що Microsoft у відповідь на нашу Java зробить щось дійсно нове і цікаве, але вони вирішили піти шляхом копіювання наших ідей.

До речі, незважаючи на офіційні декларації про багатомовному підтримки, в середовищі .NET перевага віддається одній мові - C #, який є явним аналогом Java, а популярний раніше Visual Basic відходить на другий план. І це при тому, що деякі нові цікаві ідеї в області мов були якраз пов'язані з можливим розвитком VB і отримали розвиток в останні роки у вигляді набирають популярність скриптових мов.

PC Week: Виходить, що зараз настала епоха моноязика (C # і Java можна вважати в даному випадку просто кілька розрізняються його версіями), яка прийшла на зміну багатомовності попередніх десятиліть?

Дж. Г .: В якійсь мірі це дійсно так, і пов'язана така ситуація із загальносвітовими процесами глобалізації, які неминуче вимагають уніфікації застосовуваних технологій. Але при цьому багато мов міцно утримують свої нішеві позиції, як, наприклад, Фортран в галузі математичних обчислень. Потрібно підкреслити, що зустрічається часом в публікаціях протиставлення "старих" і "нових" мов є невірним. Всі мови програмування пов'язані між собою, якщо так можна висловитися, на генетичному рівні. В Java ви знайдете багато від Ada, SmallTalk і ряду інших систем. Так що мови не вмирають, вони передають усе найкраще наступним поколінням. До речі, нас часом дорікають, що ми постійно модифікуємо Java. Але як раз найстрашніше буде, якщо через 30 років Java залишиться таким же, як сьогодні.

PC Week: А ви не боїтеся наростаючої конкуренції з боку скриптових мов - Perl, Python, PHP?

Дж. Г .: Ні, не боюся. Їх популярність дійсно швидко зростає, але все ж вони не можуть претендувати на роль універсальних мов широкого призначення. Власне, сила і успіх цих мов полягають саме в тому, що їх автори не мають жодних комплексів з приводу деяких серйозних обмежень і не намагаються перетворити свої мови зі спеціалізованих в універсальні.

PC Week: У останньому десятилітті минулого століття ми спостерігали чітко виражені вибухові моменти в розвитку технологій розробки: Visual Basic, потім Java, потім .NET. Зараз таких помітних явищ начебто немає. Але чи можна очікувати в найближчому майбутньому якихось принципово нових платформ, які прийдуть на зміну сьогоднішнім?

Дж. Г .: Зараз дійсно настав такий стабільний етап розвитку ІТ, коли наявні кошти і технології здатні задовольнити будь-які запити ринку. Спрогнозувати розвиток ситуації в довгостроковій перспективі дуже складно, може бути, навіть нереально. Тому цілком ймовірно, що кращою стратегією є орієнтація на поточне положення справ і швидке реагування на його зміну. Наприклад, ще недавно ніхто не очікував, що смуга пропускання каналів зв'язку буде рости так стрімко і спричинить за собою необхідність радикальної корекції не тільки архітектурних рішень, але і використовуваних моделей бізнесу.

З іншого боку, вирішальна роль в розвитку ІТ належить не самим технологіям. Тут все більшого значення набуває сфера так званих соціальних експериментів: що дійсно потрібно людям, щоб поліпшити їх якість життя, ефективність бізнесу? Які ІТ-пропозиції ними будуть прийняті, а які відкинуті ...

PC Week: Ви дійсно вірите, що розвитком ринку управляє споживач? Адже інколи складається враження, що ми, користувачі, йдемо, і не усвідомлюючи цього, під звуки чарівної дудочки ІТ-постачальників.

Дж. Г .: Тут двояка ситуація. З одного боку, звичайно, маркетингове тиск з боку ІТ-галузі на замовників дуже велике. Але з іншого - змусити людей купувати те, що їм не потрібно в довгостроковій перспективі, просто неможливо. Ну, якщо, звичайно, ваша компанія не називається Microsoft.

PC Week: Зараз ми спостерігаємо перехід до багатоядерним мікропроцесорах і різке підвищення інтересу до паралельних обчислень. Може бути, це послужить основою для сплеску інновацій в області мов програмування?

Дж. Г .: Так, настав етап освоєння більш складних мікропроцесорних рішень, і пов'язано це з тим, що методи підвищення продуктивності обчислювачів, що застосовувалися останні 15-20 років, зараз перестають працювати. До речі, закон Мура все ще залишається життєздатним. Але ж він говорить тільки про подвоєння числа транзисторів на мікросхемі кожні півтора-два роки. Це відбувається і зараз, але вже не призводить до настільки ж значного зростання продуктивності, в тому числі за рахунок тактової частоти.

У Java є багато засобів для підтримки багатопроцесорної середовища, і їх можливості дуже далекі від появи якихось обмежень в цьому напрямку. Є приклади застосування Java в системах з тисячами процесорів. Sun сама виробляє комп'ютери з сотнями мікропроцесорів. Правда, коли ми будемо реально мати справу з системами з багатьма тисячами обчислювальних вузлів, тут все ж доведеться вносити якісь серйозні архітектурні зміни на рівні мови і віртуальної машини.

PC Week: Чи можна очікувати зближення платформ Java і .NET в плані підвищення рівня їх інтероперабельності? Або подібні питання будуть вирішуватися тільки на рівні технологій Web Services?

Дж. Г .: Думаю, що Web Services цілком достатньо для вирішення проблем міжплатформного взаємодії. До речі, співпраця в цій галузі провідних ІТ-постачальників - величезне досягнення ІТ-індустрії, яка показала, що вона може, незважаючи на гостру внутрішню конкуренцію, спільно вирішувати поставлені перед нею завдання.

PC Week: Які відносини Sun з спільнотою Open Source? Поряд з явною близькістю позицій тут є і помітні розбіжності.

Дж. Г .: Ідеологія Open Source нам дуже близька, багато наших програмні продукти створюються якраз відповідно до цієї концепції. За великим рахунком відмінність позицій спостерігається тільки в ліцензуванні відкритого ПЗ: ми вважаємо, що, застосовуючи чуже відкрите ПЗ, розробник повинен провести тестування своїх продуктів на предмет сумісності з встановленими стандартами.

Ще я повинен сказати, що світова спільнота розробників ПЗ - це абсолютно унікальне явище в сучасному світі. Жодна інша галузь, жодна сфера діяльності людства не може похвалитися чимось подібним. Цілком можливо, що Open Source є модель розвитку не тільки ІТ-галузі, а й усієї нашої цивілізації в цілому.

PC Week: Оскільки ми розмовляємо в Москві, то хотілося б торкнутися російські справи. Одна з улюблених тем наших внутрішніх дискусій - пошук свого місця на світовому ринку. Як тут вам бачаться можливості російських розробників?

Дж. Г .: Я не думаю, що їм потрібно шукати якісь свої ніші і особливі шляху просування на світовий ринок. У вас дуже сильні розробники, здатні працювати в самих різних областях. Наприклад, ми в США давно знали, що ваші програмісти особливо добре підготовлені в сфері математичних обчислень. Але коли ми шукали фахівців для роботи у себе, ми виявили, що тут є багато людей, які вміють управляти якістю процесів розробки. Є відмінні професіонали в галузі створення софта для стільникових телефонів.

PC Week: Як ви оцінюєте діяльність свого центру розробки в Санкт-Петербурзі?

Дж. Г .: Я висловлю думку керівництва Sun, з яким абсолютно згоден: ми в повному захваті! Сам я багато років стежу за розвитком ситуації в Росії і щиро вражений успіхами, яких вдалося домогтися вашим людям. У тому чи іншому вигляді ми ведемо свої розробки в Росії вже років десять. Раніше вони були розкидані по різних містах і командам, а потім ми вирішили об'єднати їх в Петербурзі. У нас є плани розширення цього центру, але поки я не можу їх назвати.

PC Week: І все ж якби ви сьогодні отримали можливість заново створити Java з урахуванням його одинадцятирічної історії і сьогоднішніх реалій ІТ-світу, то що б ви зробили в ньому по-іншому?

Дж. Г .: В принципі, нічого радикально я б не став міняти. Напевно, варто було б більше уваги приділити питанням паралельних обчислень. Можливо, ще я б відмовився від синтаксису Сі і вже точно прибрав би з мови ці фігурні дужки.

Версія для друку

Тільки зареєстровані користувачі можуть залишати коментарі.

Що ви можете сказати з цього приводу?
PC Week: А як бути з реальним здійсненням головного гасла Java "Write Once - Run Anywhere" ( "Напиши один раз - запускай де завгодно")?
Чи буде тут якось змінюватися ситуація?
Чому ж Sun не вдалося підключитися до проекту Eclipse, який став одним з центрів об'єднання всього Java-спільноти, і продовжує розвиток свого середовища NetBeans?
Чи не піде це на шкоду ідеї просування Java взагалі і ролі самої Sun зокрема?
Правильна постановка питання мала б звучати так: чому IBM запустила свій проект Eclipse, коли вже існував NetBeans, відкритий для широкого співробітництва Java-постачальників * 1?
PC Week: Ви вважаєте, що ці дві лінії продовжать автономне розвиток, або все-таки є шанси, що вони зіллються?
Яка ваша думка з цього приводу?
PC Week: Виходить, що зараз настала епоха моноязика (C # і Java можна вважати в даному випадку просто кілька розрізняються його версіями), яка прийшла на зміну багатомовності попередніх десятиліть?
PC Week: А ви не боїтеся наростаючої конкуренції з боку скриптових мов - Perl, Python, PHP?

Новости