Чи є математика частиною інформатики

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Цейтин Г.

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

Перш, ніж намагатися уточнити зміст цієї області (наскільки це взагалі можливо), хотілося б простежити, як взагалі формувалося самоусвідомлення цій галузі, як особливої ​​галузі знань, а також суспільне визнання її самостійності (сьогодні таке визнання - вже доконаний факт).

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

Нового предмета, відмінного від усього, що було колись, інформатика не створила. Програма цілком підходить під математичне поняття алгоритму (з деякими уточненнями з-за паралельного виконання або недетермінірованності), то де ж новий предмет? І представники традиційних областей, прагнучи утримати під своїм контролем ресурси, виділення яких на нові додатки диктувалося практичними потребами, користувалися цим аргументом. Як казав один мій колега-матфізік: "І чого це все так носяться з цим системним програмуванням? Це ж всього-на-всього програмування для системи машин!" А інший колега, переглядаючи проект навчальних програм з інформатики, заявляв: "Це якась еклектика, просто зібрані разом шматочки, що належать іншим дисциплін". Втім, подібна аргументація відома ще з пушкінської "Казки про царя Салтана", де "ткаля з кухаркою, з сватів бабою Бабаріхой" розвінчували (і небеcкористно) один за одним всі чудеса, про які розповідали заморські гості.

Треба визнати, що і представники нової області допуcкалі натяжки заради того, щоб організаційно виділити свій предмет. Мені доводилося бачити математичні праці, де поверхнево формалізовивалісь деякі, вже застарілі, програмістські концепції, а потім доводили "карколомні" результати, засновані на абсолютно нереальних прикладах (в математиці це нормально, але на основі цього слід було просто замінити початкові поняття, щоб вони не включали подібні випадки). І все це робилося заради того, щоб заявити про приналежність своїх (не бозна-яких) результатів нової перспективної галузі. Втім, ці хвороби були поступово подолані.

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

А необхідність в такому усвідомленні є. Дійсно, комп'ютерна програма може розглядатися як різновид алгоритму, але чому в такому разі виникають все нові і нові мови програмування та нові концепції, наприклад, об'єктно-орієнтоване програмування? Адже в принципі будь-яка програма еквівалентна деякій машині Тьюринга, так що начебто нічого нового всі ці мови не несуть! А справа в тому, що навіть в одному і тому ж предметі з різних точок зору можуть бути важливі різні боки, і те, що важливо з точки зору математики, не збігається з тим, що важливо з точки зору інформатики. Різниця між математикою та інформатикою в оціночних критеріях свого часу досить чітко описав Ласло Кальмар *, що прийшов в програмування з математичної логіки.

Головна відмінність від математики, хоча б і розглядалися одні й ті ж об'єкти, полягає, на мій погляд, в тому, що в інформатиці визначальним є людський фактор. Програми пишуться людьми, часто великими колективами; навіть якщо програму пише одна людина, він користується отриманими від інших людей знаннями і прийомами, і, можливо, отримав початкове завдання від когось іншого. Програма має життєвий цикл: після створення вона може модифікуватися, переноситися в інше середовище, стикуватися з іншими програмами, і врешті-решт виходити з ужитку (теж з різних причин). Чи враховує ці реальності математичне поняття, що претендує на визначення програми? Хіба може алгоритм (у точному математичному розумінні) мінятися? Якщо щось зміниться, це буде просто інший алгоритм, який не треба плутати з першим. Якщо ж ми хочемо, щоб програма, наприклад, адаптована до іншого оточення, залишалася тим же самим об'єктом, то поняття програми має суттєво змінитися (загалом, деякі математичні підходи до опису цього теж можливі, але ніколи теоретики з боку математики цього не пропонували) . Важливою особливістю програм є те, що вони можуть мати помилки, і, у всякому разі, необхідні заходи для зменшення їх числа і збитків від них. Це теж не з математики. Згадаймо, до речі, і про проблему двохтисячного року.

Для чого придумуються нові й нові мови програмування? "Для більшої зручності", можливо, дадуть відповідь. А що таке зручність? Це знову людський фактор. Якщо серйозно, то це більш точну відповідність елементів пропонованого мови і тих понять і знань, якими користується людина, ставлячи і вирішуючи ту ж задачу. Значить, треба розуміти структуру людського знання і людського мислення. Цілий ряд особливостей нових мов програмування, можливо, здавалися спочатку випадковими вдалими знахідками, відображає глибокі риси організації людських знань і людської мови. Але достатньої уваги цьому не приділяється. (Один мій колега з промисловості, потребував в фахівцях з мов програмування, питав мене, не на філологічному факультеті чи їх шукати.)

Крім індивідуального чинника, є ще й соціальний. Вже згадувалося про розробку програм великими колективами, а також про супроводження програм. Є ще потреба переносити програми на знову розробляється техніку або включати в нові системи. Треба зважати і з тим, що програми, що працюють на одній машині або іншим чином взаємодіють або спільно користуються ресурсами, можуть відображати інтереси різних людей, можливо, знаходяться в конфлікті, і, значить, треба займатися захистом програм.

Коли став широко входити в життя Інтернет, стала нагальною необхідністю розробка підходів, що забезпечують правильну взаємодію великого числа незалежно розроблених програм (або їх елементів). Одночасно збільшення швидкості машин зробило менш суттєвою економію команд на нижньому рівні. У сумі це призвело до використання структур даних, які раніше вважалися б неприйнятними через неефективність, і, відповідно, до нової організації мов. Широке поширення модульності разом з прийнятністю великих накладних витрат на міжмодульних взаємодія призвело до зменшення розмірів окремих модулів, і, як наслідок, до спрощення синтаксису мов. До речі, в цьому я бачу й причину створення та подальшого широкого розповсюдження мови Java.

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

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

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Доповідь
20.8кб. | скачати


Схожі роботи:
Системи з постійною парному частиною
Податкова система РФ до набрання чинності частиною 1 НК РФ
Родини рішень з постійною парному частиною
Реклама на мостах шляхопроводах та над проїжджою частиною
Лінійні неоднорідні диференціальні рівняння з постійними коефіцієнтами та правою частиною спеціа
Розробка технологічного процесу виробництва жіночих туфель з відкритою шкарпеткової частиною клейового
Математика 3
Математика
Математика 2
© Усі права захищені
написати до нас