Uczestniczyłem ostatnio w kilku konferencjach i seminariach, które miały w swoich tytułach termin computing — tłumaczony najczęściej jako obliczanie. Słuchając różnych referatów i dyskusji, uświadomiłem sobie, że nawet w tak wąskim kontekście jak informatyka i jej komputerowe zastosowania, różne osoby używają tego terminu w różnych znaczeniach.
Przykładowo: w znaczeniu wykonywania obliczeń, przetwarzania danych, realizacji algorytmów, rozwiązywania problemów… a nawet jako nazwy dyscypliny naukowej, Computing właśnie, która zajmuje się po trochu wszystkimi wymienionymi czynnościami lub procesami.
W ślad za wieloznacznością idzie tendencja do łączenia computing z przymiotnikami, które mają wskazywać na konkretne formy lub aspekty obliczeń; niekiedy jednak tak od siebie różne, że trudno dopatrzeć się w nich wspólnego mianownika. Mamy zatem: digital computing, analog computing, quantum computing, hyper-computing, physical computing, natural computing, mortal computing etc…
Dla zobrazowania powyższych obserwacji warto przytoczyć kilka ogólnych określeń specjalistów. Każde z nich próbuje uchwycić istotę computing, lecz wzięte łącznie ukazują dobrze typową dla współczesnych dyskusji wieloznaczność i wieloaspektowość obliczeń. Rozwinięcie kolejnych cytatów wymagałoby oczywiście osobnego wpisu (może nawet wykładu😊), lecz nie o to tu chodzi. Chodzi o ukazanie różnorodności znaczeń i sprowokowanie dalszej dyskusji…
A oto wybrane przeze mnie przykłady:
To compute is to execute an algorithm (Jack Copeland).
The Church-Turing thesis identifies the intuitive concept of what means “to compute” with a formal model of computation (Paula Quinon).
Computing can be seen as an epistemic process evolving in time, by means of which an agent (or community), aided by some machinery or instrumentation, obtains an answer with respect to a certain state-of-affairs (mathematical or physical) that the agent interprets as a problem, and can express mathematically (Philippos Papayonnopoulos).
Computing, today more than ever before, is a multi-faceted discipline which collates several methodologies, areas of interest, and approaches: mathematics, engineering, programming, and applications (Giuseppe Primiero).
Computing is the manipulation of representations of numbers (Corey Maley).
Sformułowanie ostatnie, poprzez zawarte w nim odniesienie do liczb, jest najbliższe duchowi polskiego tłumaczenia, o którym wspomniałem na początku: computing = obliczanie.
Polskie obliczanie odnosi się do liczb w sposób ewidentny. Widać to wyraźnie w zdaniach typu „Oblicz coś…”. Na przykład: „Oblicz pole trójkąta”, „Oblicz wymiary działki”, „Oblicz kąt przy podstawie trójkąta równoramiennego” czy „Oblicz prędkość ciała po 2 sekundach swobodnego spadku w kierunku ziemi”. W każdym z przywołanych kontekstów wynikami czynności obliczania są pewne wartości liczbowe, które uzyskuje się poprzez przekształcanie innych wartości liczbowych za pomocą specjalnie dobranych wzorów i reguł. Wartości te mogą dotyczyć przy tym i obiektów abstrakcyjnych (jak pola figur geometrycznych), i fizycznych (jak wymiary działki).
Właśnie ze względu na swój „liczbowy” charakter polskie obliczanie wydaje się – przynajmniej na pierwszy rzut oka – dużo węższe niż angielskie computing. Spostrzeżenie to może prowadzić do wyboru innych tłumaczeń, spośród których na pierwszy plan wysuwa się przetwarzanie danych. Przetwarzając dane bowiem, niekoniecznie musimy operować na ich reprezentacjach liczbowych. Nie musimy też zakładać, że na pewnym – koniecznym dla informatycznej teorii – poziomie, dane redukują się do jakichś liczb, a operacje na danych do operacji arytmetycznych. Nie musimy zatem posługiwać się nacechowanym „liczbowo” terminem obliczanie – dla którego zresztą w języku angielskim istnieje różny od computing odpowiednik, tj. calculating.
Być może jednak za powszechną praktyką utożsamiania computing z obliczaniem stoi coś istotnego. Być może takie tłumaczenie, choć przy pierwszym spojrzeniu zbyt wąskie a nawet mylące, oddaje jednak istotę czynności nazywanej computing: istota ta polegałaby na teoretycznej konieczności definiowania różnych rodzajów computations/obliczeń za pomocą różnego rodzaju liczb i operacji na liczbach. Przykładowo: digital computing byłoby definiowane poprzez odniesienie do własności liczb naturalnych (własność bodaj najprostsza to dyskretność zbioru tych liczb), a pewne przynajmniej postaci analog computing wymagałyby definicji w kategoriach własności liczb rzeczywistych (jak ciągłość).
Formułując ostatnie zdania, uświadomiłem sobie, że kilka lat temu dyskutowaliśmy o podobnych sprawach przy okazji wpisu „O teoretycznej (nie)zbędności pojęcia liczby w informatyce teoretycznej i jej metodologii”. Dyskutowaliśmy nawet dość zażarcie.
Nie będę tutaj powtarzać formułowanych tam argumentów, ALE…
Bardzo jestem ciekaw, jak zapatrujecie się Państwo na:
a) wieloznaczność terminu computing,
b) naturę związków między computations/obliczeniami a światem liczb…?
A także:
c) czy wspomnianą w punkcie (a) wieloznaczność da się istotnie ograniczyć poprzez taką czy inną redukcję computing do operacji na liczbach (co zdaje się sugerować polskie tłumaczenie computing = obliczanie)?
Serdecznie zapraszam do rozmowy — Paweł Stacewicz.
ad a) Wieloznaczność jest naturalną konsekwencją różnic potrzeb, intuicji, tradycji, etc., więc trzeba ją zaakceptować, uważać na znaczenie bieżące, i zostawić w spokoju.
ad b) Warto natomiast skupić się na znaczeniu filozoficznym, epistemicznym, elegancko powyżej zaprezentowanym przez Philipposa Papayonnopoulosa, ogólnym, nie ograniczonym do liczb.
Związek jest taki, że liczby są jednym z wielu możliwych indywiduów, podlegających przetwarzaniu.
ad c) Ograniczać „Computing” do liczb naprawdę nie warto!
(Choć to liczby uświadomiły starszy proces przetwarzania informacji).
A. Stąd, proponuję następujące wytyczne do definicji pojęcia „Obliczenie”:
1) Konstytutywne dla intencjonalnego Obliczenia powinno być poznanie odpowiedzi na jakieś pytanie (np.: 1234*4321=?) – czyli aspekt epistemiczny.
2) Przedmiot atomowy procesu Obliczenia powinien być matematycznie wyrażalny, więc: bity, wart. logiczne, liczby, symbole, formuły, zdania, teksty, etc..
3) Zatem ugotowanie zupy jarzynowej lub upolowanie mamuta (więc wykonanie algorytmu) nie powinno być Obliczeniem.
4) A dedukcyjne udowodnienie twierdzenia (które nie jest wykonaniem algorytmu) powinno być Obliczeniem (tu: Jest dowodliwe?, Treść dowodu?).
5) Więc pojęcie algorytmu w ogóle nie powinno uczestniczyć w definiowaniu Obliczenia.
6) Natura ciągle generuje matematycznie wyrażalne dane, które można zinterpretować jako odpowiedzi na pewne pytania – zatem oblicza naturalnie.
B. Stąd, proponuję następujące dościślenie charakteryzacji Papayonnopoulosa, dodanie nowych definicji i twierdzenia:
1) Def.: Obliczenie epistemiczne – to proces (nazwijmy: epistemiczny, tj. poznawczy), o zmiennym w czasie stanie, toczący się w Umyśle pewnego Podmiotu (jednostkowego lub grupowego) i/lub w obserwowanej przez ten Podmiot Instrumentacji, za pomocą którego Podmiot uzyskuje Odpowiedź na pewne matematycznie wyrażone Pytanie o stanie pewnego innego systemu (matematycznego lub fizycznego), które to Pytanie Podmiot interpretuje jako swój Problem poznawczy.
(P. Papayonnopoulos, M. P. Jankowski).
2) Def.: Obliczenie naturalne – to proces (nazwijmy: naturalny), o zmiennym w czasie stanie, toczący się spontanicznie w pewnej Instrumentacji, który mógłby przez jakiś Podmiot zostać zinterpretowany jako proces epistemiczny pewnego Obliczenia epistemicznego, rozwiązującego jego Problem poznawczy.
Np.:
a) Stabilizacja powierzchni bańki mydlanej na drucianym szkielecie – jako wyznaczenie powierzchni minimum energii potencjalnej.
b) Wyznaczenie tempa utraty momentu pędu pary gwiazd neutronowych – jako test dla przewidywań emisji fal grawitacyjnych w OTW.
3) Def.: Obliczenie – to Obliczenie epistemiczne lub Obliczenie naturalne.
Stąd:
4) Tw.: Obliczenie epistemiczne Podmiotu A, może zostać zinterpretowane przez Podmiot B jako Obliczenie naturalne, a następnie jako Obliczenie epistemiczne Podmiotu B, wykonane siłami Podmiotu A, będącymi dla Podmiotu B siłami natury, a Podmiot A – elementem natury.
Np.:
a) Konstrukcje mrówek, termitów, pszczół i pająków – dla inżyniera architekta Homo Sapiens.
b) Wyniki prac zespołu Projektu Manhattan, dla Igora Kurczatowa i Stalina w ZSRR.
Gdybyśmy mieli prowadzić rozważania lingwistyczne, to podpowiem, że polszczyzna zna takie słowo jak „rachować”. Dawniej dzieci w szkole uczono rachunków, dopiero później ten przedmiot nauczania zmienił nazwę na „matematyka”. Uczono przede wszystkim tego, jak za pomocą kartki i ołówka wykonywać cztery podstawowe działania na liczbach większych niż jednocyfrowe. Ale z drugiej strony mówimy też o „rachunku różniczkowym”, „rachunku całkowym”, „rachunku zdań logicznych”, „rachunku predykatów”, „rachunku kwantyfikatorów”, a nawet o „rachunku sumienia”. Żaden z tych rachunków nie dotyczy operacji na liczbach. Może zatem „rachowanie” jest lepszym odpowiednikiem słowa „computing”?
W matematyce, gdy mówimy o liczeniu i o „liczbach” mamy na myśli nieskończone zbiory elementów — np. o mocy Aleph_0 (gdy to liczby naturalne, całkowiete etc), lub Continuum (tak będzie na przykład w przypadku liczb rzeczywistych). Z kolei w informatyce rachować potrafimy tylko na elementach zbiorów skończonych — Turing postawił warunek, by symbole na taśmie należały do zbioru N-elementowego, a w realnym komputerze rejestry i komórki pamięci mają określoną wielkość. Warto podkreślić, że wynikiem informatycznych rachunków mogą być również liczby (o tym było w dyskusji wcześniej przywołanej przez Pawła Stacewicza).
Zwięzłość jest cnotą, istotę obliczania/rachowania w informatycznym znaczeniu najtrafniej i najkrócej ujął cytowany Jack Copeland — jest to wykonywanie algorytmu.
Do wyrażonej przez Autora i Gospodarza seminarium zachęty do rozważań nad wieloznacznością określeń, dołączam swoje pytanie. Czy tak rozumiane informatyczne rachowanie (realizacja algorytmu) ma odpowiednik poza samą informatyką (teoretyczną lub praktyczną)? Albo to samo inaczej: czy metody informatyczne są wynalazkiem człowieka, czy odkryciem sposobu działania przyrody?
Pozostawiam to w formie pytania bez (mojej) odpowiedzi, bo tak wypada przed samym spotkaniem seminaryjnym.
Bardzo podoba mi się termin „Rachunek” jako odpowiednik „Computing”.
Dodam: Rachunek: Prawdopodobieństwa, Wektorowy, Macierzowy, Tensorowy.
Do rozważań o praktykach Turinga dodam, że choć jego Maszyna Turinga miała pamięć (taśmę) nieskończoną, to jego fizyczny (lampowo-taśmowy) komputer Colossus, choć działał na zasadzie MT, to miał pamięć skończoną…
„Wszystko należy upraszczać ile się da, ale nie bardziej!” (A. Einstein).
Istnieje ogólny algorytm różniczkowania. Ludzie też całkują symbolicznie i dowodzą twierdzenia – to rachunek całkowy i rachunek predykatów.
Dołączam pytanie dla zwolenników rachunku jako wykonania algorytmu – jakiż to algorytm, ogólnie, bez użycia inwencji, produkuje formuły całek i dowody twierdzeń? Może być na przykładzie niewymierności Pi^2 lub prostego Twierdzenia Pitagorasa.
Uważając, że im więcej ciekawych idei przed seminarium, tym bogatsze i ciekawsze może być seminarium, pozwolę sobie wyrazić pogląd, że każde obliczenie naturalne jest obliczeniem, bo produkuje jakiś matematycznie wyrażalny wynik, z jakichś danych początkowych, jakąś regułą. A jednocześnie jest poza ludzką informatyką – jest sposobem działania przyrody.
Ludzie to odkrywają, budując Naukę. Ale z drugiej strony ludzie wynaleźli techniki, których przyroda nie wynalazła – to np. binarna reprezentacja, modele symboliczne, cyfrowa reprezentacja liczb, algebraizacja geometrii.
„Wszystko należy upraszczać ile się da, ale nie bardziej” — to bardzo dobra zasada i należy ją odnieść do stwierdzenia, że rachowanie jest realizacją algorytmu. Łatwo tu wpaść w pułapkę, jeśli przyjmie się nadmiernie uproszczoną definicję algorytmu. Słowo to przeniknęło już do języka potocznego, używa się go w odniesieniu do każdej instrukcji postępowania (np. z żywym jeszcze mamutem lub pofragmentowanym i przeznaczonym na zupę). Dla informatyki taka definicja jest bezużyteczna.
Algorytm w informatycznym rozumieniu realizowany jest przez wykonawcę mającego skończoną definicję (np. maszynę Turinga, ale niekoniecznie). Czyli zapisany jest (może być) liniowo przy użyciu skończonej i opisanej liczby symboli, a wykonawca może mieć skończoną i opisaną liczbę stanów. Ten drugi warunek w bardziej obrazowej formie oznacza, że wykonawca umie wykonać rozkazy z zamkniętej listy czynności elementarnych.
Co może zdziałać tak rozumiany algorytm, sformułowany przez człowieka i realizowany przez komputer? Ano może wyprodukować zapis funkcji (w tym takiej z symbolem ∫), będącej np. rozwiązaniem zadanego równania różniczkowego. Może sprawdzić poprawność dowodu twierdzenia (vide Mizar), może samemu poprowadzić dowód, albo wykonać ogrom „czarnej roboty” przy dowodzeniu (vide twierdzenie o czterech barwach). Dzisiaj z takimi algorytmami łatwo się zapoznać, umiejętnie posługując się poleceniem „git clone” — wiele z nich jest publicznie dostępne.
Na koniec pytanie: czy takie podejście, że człowiek opisuje wymyślony przez siebie algorytm, który następnie wykonuje komputer, zaspokoi wszystkie nasze oczekiwania? Czy w skończonym czasie (a więc w praktyce) znajdziemy w ten sposób odpowiedzi na pytania, które odpowiedź mają? A jeśli nie, to czy na gruncie informatyki da się wypracować inne metody, które będą bardziej skuteczne?
Z drugiej strony przyroda w ramach radiacji specjacyjnej form trwania „wynalazła” także bardzo złożone struktury struktury neuronalne rachujące abstrakcyjne treści, które obrodziły w/w modelami symbolicznymi, cyfrową reprezentacją liczb itd…
„Algorytm” działania przyrody był zasadniczo dość prosty: naturalna domieszka chaosu sprawia, że organizmy potomne nie są kopia idealną swoich poprzedników, a to co mimo „uchyby” działa dalej – i w wyścigu o przetrwanie „lepiej”- to zyskuje ewolucyjną przewagę.
Niejako „pośrednio” – jedynie rachująca modele form przetrwania zgodnie z wyżej nakreślonym zgrubnie algorytmem – ewolucja, w miliardach prób i błędów, wygenerowała także i dowody twierdzenia Pitgorasa (które zresztą były znane Chińczykom sporo przed urodzeniem się Pitagorasa).
Bo (z trzeciej strony) jeśli nie wierzymy w paranormalne oddziaływanie magicznie ukonstytuowanego Rozumu na fizyczne struktury neuronalne w mózgu, to nie ma innego (bardziej od przyrody bezpośredniego) kandydata na producenta formuł całek i dowodów niż złożenie równoległego i rozproszonego przetwarzania się bodźców przez komórki nerwowe – z których każda działa i funkcjonuje chyba dość algorytmicznie.
Tak w skrócie: nie, neuron nie działa algorytmicznie. Przynajmniej mnie o tym nic nie wiadomo. W ogóle nie znam rzeczy w przyrodzie, które działają algorytmicznie, w sensie bycia ekwiwalentem maszyny Turinga. I to jest (moja) odpowiedź na pytanie, które zadałem przed seminarium.
Było też pytanie drugie, które w nieco innym sformułowaniu brzmi tak: czy z dostępnych nam działających algorytmicznie bytów (np. komputerów) da się zbudować strukturę działającą dalej już niealgorytmiczne, ale przewyższającą efektywnością algorytmiczne komputery?
Tu krótkiej odpowiedzi nie mam, ale wydaje mi się, że tak. Przynajmniej jest nadzieja.
Ja znam kilka naturalnie powtarzających się „swoistych algorytmów” – w bardzo szerokim rozumieniu (powtarzania się B w odpowiedzi na A i vice versa):
A: (w skrócie): 'Każde obliczenie naturalne jest obliczeniem’
B: (w skrócie): 'Pojęcie obliczeń naturalnych nie ma sensu/treści bo „obliczanie to abstrakcyjne operacje na liczbach”’
A: (w skrócie): 'Przyroda jest algorytmiczna bo obserwujemy w niej procesy, które „przeprowadzają system (w określonych okolicznościach) z pewnego stanu początkowego do pożądanego stanu końcowego”’
B: (w skrócie): 'W przyrodzie w ogóle nie przejawiają się algorytmy – „nic w przyrodzie nie działa algorytmicznie w sensie bycia ekwiwalentem maszyny Turinga”.
Regularności i algorytmy (w szerokim tego słowa rozumieniu) można bowiem obserwować na różnych poziomach złożoności. Zasadniczo to regularności w występowaniu X po Y budują złożone struktury w przyrodzie – bez regularności w reakcjach komórek (także nerwowych) na określone bodźce nie mogłyby nie tylko funkcjonować, ale w ogóle powstać żadne organy.
Jeśli bardzo złożone naturalne struktury, składające się z poddających się w działaniu regułom elementów składowych (w szczególności tych jeszcze mniejszych od komórek biologicznych) potrafią zrodzić coś co wygląda na niealgorytmiczne – ale nie-chaotyczne a właśnie nawet „twórcze”/ „odkrywcze” działanie,
to
(mi także się wydaje, iż) cyfrowe (działające regularnie i algorytmicznie w rozumieniu maszyny Turinga) „symulacje” takich procesów również powinny kiedyś potrafić manifestować swym działaniem takie „niealgorytmiczne, ale przewyższającą efektywnością algorytmiczne komputery” działania.
Jeśli tak się stanie będzie to wskazówką, że te „przewyższającą efektywnością algorytmiczne komputery” działania Umysłu jawią się nam jako niealgorytmiczne dlatego, że nie jesteśmy w stanie jednocześnie objąć pojęciem regularnie przetwarzających (algorytmicznie w sensie szerokim) elementów składowych fizycznej/chemicznej/biologicznej struktury przetwarzającej „dane” w rozproszeniu równoległych połączeń.
Skrótowe określenie Copelanda, że „computing/obliczanie polega na realizacji algorytmów” przemawia do mnie. Dla mnie pojęcie postępowania zgodnie z regułami pewnego rachunku (zarówno w sferze matematyki czystej, jak i stosowanej) zlewa się w jedno z postępowaniem algorytmicznym. Jądro każdego rachunku stanowi bowiem pewien zestaw algorytmów.
Diabeł jednak tkwi jak zawsze w szczegółach, których pomijanie grozi nadmiernym upraszczaniem :)
Otóż, według mnie, nawet w kontekście tak ścisłym jak informatyka teoretyczna – czy nawet najściślejszym i najbardziej dla informatyki fundamentalnym jak teoria obliczeń – nie mamy jednego pojęcia algorytmu. Mamy ich tyle, ile jest modeli obliczeń. Wśród nich zaś jeden tylko jest wyznaczony przez koncept maszyny Turinga.
Wychodzi zatem na to, że określenie Copelanda czy też każde inne określenie, które polega na definiowaniu obliczania/computing poprzez odniesienie do algorytmów, staje się zrozumiałe dopiero wtedy, kiedy sprecyzujemy, jaki model obliczeń mamy na myśli. Przykładowo: model UMT Turinga (jako model obliczeń cyfrowych) czy model GPAC Shannona (jako model obliczeń analogowych ciągłych)…?
Gigantyczne pytanie, którego tutaj zapewne nie rozstrzygniemy, ale możemy przybliżać się do jego rozstrzygnięcia, brzmi:
Czy różne teoretyczne modele obliczeń – a przynajmniej takie, które są przez informatyków traktowane poważnie – mają takie cechy wspólne, które pozwolą uchwycić istotę wszelkiego rodzaju obliczeń?
Od czasów Turinga zmieniło się wiele. Przede wszystkim to, że z rozważań teoretycznych (co by było gdyby) mogliśmy przejść do praktyki. Dzisiaj komputerów na świecie jest więcej niż ludzi. A ludzi przecież też niemało. Wszystkie te praktyczne realizacje maszyn wypełniają teoretyczne założenia maszyny Turinga (choć przeważnie są to maszyny von Neumana, z adresowana pamięcią w miejsce nieadresowanej taśmy, ale te różnice są w tym momencie zupełnie nieistotne). W praktyce informatycznej, jak również w informatyce teoretycznej pracującej (ciężko) na rzecz tej praktyki, pojęcie algorytmu jest jednoznaczne. Doceniam teoretyczne rozważania innych modeli obliczeń, jednak nie dostrzegam dzisiaj ich praktycznej użyteczności. W tym również użyteczności używania innych definicji algorytmu.
Jeszcze uwaga dotycząca modelu obliczeń analogowych ciągłych. Tutaj zmiana zaszła w odwrotnym kierunku. Za życia Turinga, a nawet później, komputery analogowe miały praktyczne zastosowanie. Dzisiaj została z tego piękna teoria, do której — można powiedzieć — „przyroda nie dorosła”. Wyobraźmy sobie, że chcemy prowadzić obliczenia ciągłe na modelu elektrycznym, co pewnie jest u wszystkich pierwszym skojarzeniem. Zresztą realne komputery analogowe były (w większości) elektryczne. Prąd o natężeniu jednego ampera płynący przez jedną sekundę to przepływ 6,241,509,074,000,000,000 elektronów. Nasze obecne komputery cyfrowe przeważnie są 64-bitowe, czyli „za jednym zamachem” mogą wykonywać operacje na liczbach z zakresu od zera do 18,446,744,073,709,551,615.
To nawet więcej niż tych elektronów w poprzednim przykładzie (trzy razy), ale rząd wielkości ten sam. Z tym że komputer wykonuje tych operacji miliardy w ciągu sekundy, a wcześniej założyliśmy sobie, że zliczamy całą sekundę i że potrafimy liczyć pojedyncze elektrony, jak baca owce na hali. A jeden amper to ogromny prąd w porównaniu z tym, do czego przyzwyczaiła nas współczesna elektronika, dla której nawet mikroamper to dużo.
No to może zamiast elektronów liczmy cząsteczki i zbudujmy na przykład komputer hydrauliczny? Liczba Avogadra to około 6 × 10^23. To znaczy, że tyle cząsteczek zawiera jeden mol materii. Niby pięć rzędów wielkości lepiej, ale i tak mało, by dawało nadzieję praktykom. Filiżanka espresso, która stoi przede mną (częściowo wypita), to zaledwie dwa mole wody (i „kawy”). Znajomość tych liczb (czy tylko rzędów wielkości) w opisie atomowej budowy świata wystarczy, by poniechać wysiłków nad zbudowaniem licznika elektronów, atomów, cząsteczek i użycia go do celów informatycznych.
a) Wieloznaczność terminu „computing”:
Wieloznaczność terminu „computing” wynika także z faktu, że informatyka obejmuje szereg specjalizacji, a zastosowania komputerów sięgają praktycznie wszystkich dziedzin życia. Dla inżynierów oprogramowania może to oznaczać pisanie efektywnego kodu i projektowanie nowatorskich algorytmów. Dla naukowców zajmujących się teorią obliczeń może to być związane z abstrakcyjnymi modelami matematycznymi, takimi jak maszyny Turinga. Dla specjalistów od sztucznej inteligencji może to oznaczać tworzenie systemów zdolnych do uczenia się i podejmowania decyzji.
b) Natura związków między computations/obliczeniami a światem liczb:
Ważne jest zauważenie, że choć komputery operują na liczbach, to nie wszystko, co robią, sprowadza się do tradycyjnych operacji arytmetycznych. W przetwarzaniu tekstu, na przykład, komputer musi zrozumieć strukturę języka, co wymaga bardziej skomplikowanego podejścia niż jedynie manipulacje liczbami. Podobnie, w dziedzinie grafiki komputerowej, komputery pracują z obrazami i dźwiękiem, co również wymaga specjalistycznych algorytmów, znacznie wykraczających poza operacje na liczbach. Dlatego związki między obliczeniami a liczbami są istotne, ale nie są jedynym kluczem do zrozumienia szerokości działań w informatyce.
c) Ograniczenie wieloznaczności poprzez redukcję computing do operacji na liczbach:
Wprowadzenie ograniczenia, że computing to wyłącznie operacje na liczbach, może przynieść pewne uproszczenie teoretyczne, ale jednocześnie odbiera elastyczność i szerokość zastosowań dziedziny. Informatyka to nie tylko matematyka, ale również nauka o przetwarzaniu informacji. Redukcja computing do operacji na liczbach pomija takie elementy jak manipulacja danymi, rozpoznawanie wzorców, komunikacja międzyludzka poprzez interfejsy użytkownika, czy nawet zagadnienia związane z etyką i społeczeństwem cyfrowym. W związku z tym, aby pełniej zrozumieć i efektywnie stosować computing, konieczne jest uwzględnienie tej różnorodności aspektów i paradygmatów.
Podsumowując, informatyka to dziedzina, która rozwija się w sposób dynamiczny i nieustanny, obejmując różne kierunki i wymagając różnych umiejętności. Wieloaspektowość terminu „computing” jest zatem nie tylko naturalna, ale również fundamentalna dla pełnego zrozumienia tej dziedziny.
Z punktu widzenia osoby związanej z informatyką uważam, że wieloznaczeniowość computingu można uzasadnić szybko rozwijającą się dziedziną informatyki. Samo słowo zapożyczone od języka angielskiego w znacznym stopniu odnosi się do zaawansowanych obliczeń, zbyt ciężkich, aby wykonać je ręcznie – niezbędna jest dodatkowa maszyna. Opierając się na zasadzie działania komputerów (skąd też pochodzi ich nazwa) można uznać, że ta wieloznaczność ma jednak w sobie wspólne centrum wskazujące na konieczność rozwiązania skomplikowanego problemu matematycznego. Forma zapisu, tematyka, sposób wykonania może definiować dalszą część – np. przetwarzanie danych, digital computing, analog computing.
Jeśli chodzi o naturę związków między computations/obliczeniami a światem liczb to ponownie należałoby wrócić do natury słowa computations. Obliczenia są zbiorem pewnych kroków, które należy wykonać aby uzyskać pożądany rezultat. Nie jest konieczne do tego operowanie na liczbach, jednak, jakby to powiedzieli matematycy – wszystko da się sprowadzić do świata liczb. Przedstawienie konkretnych operacji, zjawisk, danych w postaci liczbowej pozwala na dużo szerszą analizę zagadnienia i uzyskanie większej ilości informacji.
Jeśliby spojrzeć na rzeczywistą, szerszą definicje słowa obliczanie, która nie odnosi się jedynie do liczb można by uznać, że tłumaczenie computingu na obliczanie jest adekwatne. Jednak wgłębiając się we wszystkie możliwe procesy ukryte pod słowem computing i uwzględniając zwyczajowe skojarzenie obliczeń z liczbami, zabieg ten byłby znaczącym zawężeniem możliwości słowa „computing”.
Ad. a) Dla mnie osobiście wieloznaczność terminu „computing” jest zagadnieniem typowo językowym. Zauważmy, że terminy używane w dziedzinie technologii i informatyki ulegają szybkiej ewolucji wraz z postępem technologicznym i zmianami w społeczeństwie. Nawet ów słowo „computing” nie istniało w obiegu jeszcze 10 lat temu. Różne definicje tego terminu odzwierciedlają różne, lecz jak najbardziej aktualne perspektywy i podejścia do dziedziny informatyki. Być może za kolejne 10 lat zmienimy nazewnictwo tego, o czym dzisiaj mówimy „computing”..
Ad. b) Naturę związków między computations/obliczeniami a światem liczb można interpretować z różnych perspektyw. Autor wspomina o teoretycznej konieczności definiowania różnych rodzajów computations/obliczeń za pomocą różnego rodzaju liczb i operacji na liczbach. Ciężko opuścić „świat liczb”, jeżeli wszystkie operacje jakie wykonujemy na swoich maszynach sprowadzają się do przestawiania binarnych „0” i „1”.
Według mnie, liczby i operacje na nich powinny być postrzegane jako narzędzia w komunikacji między ludźmi/maszynami, a takie kategoryzowanie obliczeń nie wprowadza żadnych realnych usprawnień.
Jednakże – żyjemy w czasach, gdzie rozwój informatyki i technologii komputerowej wydaje się przechodzić w kierunku bardziej abstrakcyjnych form obliczeń, takich jak obliczenia kwantowe czy przetwarzanie danych w formie symbolicznej, co wykracza poza tradycyjne operacje arytmetyczne. Jestem przekonany, że pociągnie to ze sobą konieczność zmiany pewnej bazy pojęciowej, której używamy w języku matematyki, telekomunikacji i informatyki.
Ad. c) Mam tutaj parę pomysłów…
Ludzie zajmujący się tematem nauki profesjonalnie potrzebują bardzo dobrych i wyrazistych narzędzi, żeby uniknąć nieporozumień. Nasuwa mi się tutaj myśl – że i tak przeważająca większość artykułów naukowych pisana jest w języku angielskim m.in w celu ułatwienia współpracy między naukowcami z całego świata czy uniknięcia błędów w tłumaczeniach. Zastanówmy się przede wszystkim komu potrzebne jest polskie tłumaczenie tego słowa? Studentom politechnik nie trzeba tłumaczyć słówek z języka angielskiego – dobrze wiemy, że czasami wynik jest karykaturalny (np. interface tłumaczone w rozmaitych starszych skryptach jako międzymordzie – i tak się nie przyjął, a do języka weszło słowo oryginalne, ze spolszczoną transkrypcją – interfejs). Takie polskie tłumaczenie wydaje się więc być przydatne głównie w dziedzinie popularnonaukowej. Redukcja i ograniczenie computing do operacji na liczbach, choć może być zrozumiała z perspektywy „typowego Kowalskiego”, może okazać się zbyt upraszczająca. Warto wtedy dodać kilka słów wyjaśnienia, tak abyśmy wszyscy mieli pewność o czym jest rozmowa. Szczególnie że współczesna informatyka obejmuje nie tylko tradycyjne obliczenia liczbowe, ale także symboliczne, logiczne, kwantowe, a nawet obliczenia oparte na strukturach biologicznych. Ograniczenie computing do operacji na liczbach może nie uwzględniać pełnej złożoności i różnorodności dziedziny.
Być może Rada Języka Polskiego ma na swojej liście zadanie odnalezienia dobrego (lepszego) tłumaczenia słowa computing?
Osobiście nie widzę aktualnie w słowniku języka polskiego dobrego kandydata na zastąpienie „obliczania” w kontekście tłumaczenia tego słowa, ale zostawmy to ekspertom. Może po prostu musimy poczekać na wyklarowanie się nowych tłumaczeń? W końcu język jest płynny i elastyczny, z biegiem czasu zmieniając znaczenia pewnych słów, dodając nowe i archaizując dawno nieużywane.
Rzeczywiście pojęcie computing jest zagadnieniem niezwykle szerokim. Interesujący jest fakt, że współczesna technika na podstawie zaawansowanych obliczeń potrafi określać (na podstawie prawdopodobieństwa) zaistnienie danej sytuacji, a nawet próbuje określić emocje użytkowników danej technologii. Z jednej strony ma to szereg zalet. Chociażby systemy bezpieczeństwa w pojazdach, które potrafią zapobiec wielu niebezpiecznym sytuacjom w otoczeniu pojazdu, jak również są wstanie wykryć zmęczenie kierowcy i zareagować w odpowiedni sposób. Z drugiej zaś strony człowiek znacząco traci swoją indywidualność. W świecie pełnym porównań, zwrotów typu „… % Polaków deklaruje”, „…% społeczeństwa popiera” wyjątkowość istoty ludzkiej zostaje silnie zaburzona. Okazuje się, że bycie indywidualistą staje się „statycznie” niemożliwe.
Zastanawiając się dłuższą chwilę nad tym pojęciem ciekawym zagadnieniem wydaje się zakorzenienie pojęcia computing w społeczeństwie. Za pewne każdy z nas kojarzy przysłowia: „liczyć na samego siebie”, „obliczyć coś na palcach jednej ręki”, „nie liczy się ilość tylko jakość”, „nie liczą się słowa, lecz czyny”. Tak więc, czy już od najmłodszych lat nie jesteśmy wychowywani w nurcie obliczania i liczenia, a co za tym idzie w terminie computing?
W kwestii wieloznaczności terminu “computing”, uważam, że jest to nieodłączny element rozwoju technologii i nauki. “Computing” to nie tylko obliczenia matematyczne, ale także przetwarzanie danych, algorytmy, sztuczna inteligencja i wiele innych aspektów, które są fundamentem współczesnej informatyki.
Jeśli chodzi o związki między “computations” a światem liczb, to obliczenia są narzędziem do manipulowania liczbami w celu reprezentacji i rozwiązywania problemów. Jednakże, obliczenia nie ograniczają się do liczb – mogą dotyczyć różnorodnych typów danych i struktur.
Co do punktu c), wydaje mi się, że redukcja “computing” do operacji na liczbach jest zbyt uproszczona. Wieloznaczność terminu wynika z jego bogactwa i złożoności, a próba ograniczenia go do jednego aspektu mogłaby pomijać inne ważne i innowacyjne zastosowania słowa “computing”.
Bardzo ciekawe spostrzeżenia PH oraz WojKo. Jedynie małe wtrącenie odnośnie użytek zwrotu przez WojKo „manipulowanie liczbami”. Moim zdaniem jest to zwrot niepoprawny, gdyż sugeruje odbiorcy tekstu, że obliczenia mają na celu wprowadzenie w błąd odbiorcę tych obliczeń lub poprostu przekłamanie wartości.
Zapewne nie było to celem tej wypowiedzi, ale osobiście uważam, że znacznie bardziej poprawnym zwrotem byłoby „obliczenia są narzędziem operowania liczbami w celu reprezentacji i rozwiązywania problemów.”
Co do samych obliczeń i operacji na liczbach. Z mojej perspektywy wydaje się też interesującym dążenie do doskonałości. Nie mówię tylko o optymalizacji procesów czy to technologicznych, biznesowych itd., w których obliczenia są niezwykle pomocne, ale chociażby w przyrodzie. Matematyka, a co za nim idzie także obliczenia i liczby, pozwalają opisać wiele interesujących zjawisk w przyrodzie. Wiele obiektów spotykanych w przyrodzie „po opisaniu za pomocą równań” okazuje się, że są optymalne. Dobrym przykładem może być chociażby rozmieszczenie liści na łodydze rośliny.
Z drugiej zaś strony, czy tak wielki związek pomiędzy obliczeniami i naszym codziennym życiem sprawia, że zostajemy zamknięci w bańce dążenia do doskonałości? Z pewnością są obszary, w których opis matematyczny jest niezwykle przedatny, jednak czy na przykład proporcja, symetria, równania i inne bardziej skomplikowane operacje matematyczne są właściwe w momencie tworzenia nowych przedmiotów lub nawet sztuki? Czy w ten sposób nie tracimy globalnej społecznej kreatywności? Przecież po co samodzielnie dążyć do poszukiwania optymalnych (już niekoniecznie najlepszych) rozwiązać jak możemy nasz problem zaimplementować w odpowiednim programie i po pewnym czasie otrzymać najlepsze rozwiązanie ze względu na postawione kryteria.
Z jednej strony dostajemy bardzo szybko, być może i tanio, najlepsze rozwiązanie, z drugiej co się dzieje z całym procesem twórczym? Może wyda się to niewłaściwe, ale czy w ten sposób nie przypominamy chociażby małp z lepiej rozwiniętymi kończynami, które bezwiednie korzystają z programów, które za nas znajdują odpowiednie rozwiązanie.
Gdzie jest ten balans pomiędzy wykorzystaniem technologii, ze wszystkimi jej możliwościami, a wykorzystaniem własnej wiedzy, umiejętności i kreatywności? Jestem ciekawa Państwa zdania na ten temat.
Uważam, że komputer nie jest odpowiedzialny jedynie za „obliczanie”. Zatarcie światów matematyki i informatyki bardzo dobrze widać w języku funkcyjnym Haskell a dokładnie mam na myśli zjawisko efektów ubocznych https://en.wikipedia.org/wiki/Side_effect_(computer_science). Typowe matematyczne („czyste”) funkcje posiadają jedynie wejście w postaci argumentów i wyjście w postaci wyniku będącego obliczeniami (na które mogą się składać (również rekurencyjne) wywołania innych funkcji). Funkcje, które nie są „czyste” mogą chociażby zmieniać stan globalnych zmiennych lub wykonywać wywołania systemowe odpowiedzialne za operacje wejścia/wyjścia.
W wielu zastosowaniach komputer wykorzystany jest w sposób „inżynierski” jeśli chodzi o problemy matematyczne: metody numeryczne, metody Monte Carlo – za pomocą rozważanego „Computingu” jesteśmy w stanie rozwiązać chociażby całki których nie jesteśmy w stanie znaleźć analitycznych rozwiązań.
Powiedziałbym, że na Computing składają się „obliczenia” takie jak operacje arytmetyczne i operacje na liczbach zmiennoprzecinkowych, ale również na computing składa się cała reszta dostępnych operacji, w zależności od poziomu abstrakcji, np. dla procesora: skoki warunkowe, przypisania, modyfikacje rejestrów; na wyższym poziomie abstrakcji: wywołania systemowe realizujące operacje wejścia wyjścia (pliki, komunikacja sieciowa).
Najbardziej przemawiają do mnie definicje #1 (Jack Copeland) i #4 (Giuseppe Primiero), jednak problem bardziej jest z tłumaczeniem „obliczanie”, prawidło tłumaczy ono słowo „computing”, lecz tak jakby w języku polskim to słowo było bardziej oddalone od komputera, być może przydałoby się nowe słowo takie jak „komputować”, które podkreślałoby, że operacje wykonywane są przez komputer.
Zgadzam się, że komputery nie ograniczają się jedynie do czystych obliczeń matematycznych, ale zjawisko efektów ubocznych, które zostało podniesione, wydaje mi się być bardziej związane z programowaniem i jego praktycznymi aspektami, niż z samymi obliczeniami. To raczej kwestia sposobu, w jaki kod jest pisany i wykonywany, niż samej natury komputerowych obliczeń.
Rozumienie computingu jako procesu, który obejmuje operacje na liczbach, ale również szerszy zakres operacji, wydaje się bardziej adekwatne. Komputerowe obliczenia nie ograniczają się jedynie do czystych matematycznych funkcji; obejmują również operacje na danych, zarządzanie pamięcią, komunikację z użytkownikiem i wiele innych działań, które są integralną częścią współczesnego środowiska informatycznego.
Co do sugestii dotyczącej nowego słowa, które lepiej oddałoby specyfikę komputerowych obliczeń, to rzeczywiście wydaje się to być ciekawą propozycją. „Komputować” mogłoby lepiej podkreślić właśnie charakter operacji wykonywanych przez komputer i zapobiec nieporozumieniom w przyszłości. Jest to szczególnie istotne, że w dobie rewolucji informatycznej coraz częściej posługujemy się słowem „obliczać” w kontekście operacji wykonywanych przez komputer, a jednocześnie oryginalne, matematyczne znaczenie tego słowa nie traci na użyteczności, gdyż cała informatyka stoi na naukach matematycznych. Rozwój matematyki bezpośrednio wpływa na możliwości rozwoju informatyki, natomiast w drugą stronę relacja ta jest znacznie słabsza.
Termin „computing” jest rzeczywiście wieloznaczny i obejmuje szeroki zakres działań związanych zarówno z przetwarzaniem danych, jak i operacjami na liczbach. Jest to zrozumiałe, biorąc pod uwagę dynamiczny rozwój technologii i coraz szersze zastosowanie informatyki we współczesnym świecie.
Z jednej strony, zgadzam się z autorem, że próba sprowadzenia computingu do operacji na liczbach może być użyteczna w pewnych kontekstach, szczególnie w analizie algorytmów i teorii informatyki. Jednakże, patrząc na szerokie spektrum zastosowań computingu, trudno byłoby ograniczyć go wyłącznie do operacji na liczbach.
Z drugiej strony, zauważam, że istnieje głęboka integracja między computingiem a światem liczb. Liczby są nieodłączną częścią procesów obliczeniowych i stanowią podstawę dla wielu dziedzin informatyki, takich jak uczenie maszynowe, analiza danych czy symulacje.
W mojej opinii, kluczowe jest zachowanie elastyczności w rozumieniu terminu „computing”, aby móc uwzględniać jego różnorodne aspekty i zastosowania. W ten sposób możemy lepiej zrozumieć naturę obliczeń oraz ich związek z liczbami, jednocześnie otwierając się na nowe możliwości i perspektywy w dziedzinie informatyki.
Zgadzam się z tym, że rozwój nowych technologii dynamicznie zmienia znaczenie terminu „computing”, ponieważ ramy jego używania ulegają ciągłym zmianom. Tradycyjnie, „computing” było przecież kojarzone głównie z manipulacją liczbami, szczególnie w kontekście digital computing, jednak nowe technologie, takie jak uczenie maszynowe czy przetwarzanie danych w formie grafów, poszerzają jego zakres, umożliwiając analizę danych nienumerycznych. „Computing” staje się pojęciem coraz bardziej złożonym, które obejmuje te różne rodzaje danych i techniki ich przetwarzania, co z kolei prowadzi do zmiany percepcji tego terminu i trudności w uchwyceniu jego pełnej istoty.
Dodatkowo różnice kulturowe i językowe wprowadzają trudność w interpretacji znaczenia „compute”. W miarę jak pojęcie to jest przekazywane i tłumaczone między różnymi kulturami i językami, istnieje ryzyko, że subtelności semantyczne mogą zostać utracone lub niepoprawnie zinterpretowane. Różne kulturowe ramy odniesienia mogą prowadzić do różnych wyobrażeń na temat tego, co obejmuje „compute” i jakie są jego główne aspekty.
Czytając powyższy artykył pomyślałam, że warto byłoby zastanowić się nad sposobem rozróżniania znaczeń terminu „computing”. Mogłoby to zmniejszyć występujące niejasności i uniknąć nieporozumień związanych z niepoprawnym zrozumieniem. Jednak czy rzeczywiście powinniśmy dążyć do jednoznacznego wyznaczenia granic pomiędzy różnymi interpretacjami tego pojęcia, czy też powinniśmy pozwolić na jego elastyczność i otwartość na zmiany? Po zastanowieniu skłaniam się ku temu, że rożnorodność znaczeń „computing” oddaje jego wieloaspektowość oraz dynamiczny charakter. Nie jest to jednoznaczne pojęcie, które można opisać w sposób statyczny. Zamiast tego, „computing” jest koncepcją ewoluującą, która odzwierciedla rozwój technologii i różnorodność dziedzin, w których jest wykorzystywane. W związku z tym, myślę, że istotne może być nie tyle ustalenie jednego, szczegółowego znaczenia „computing”, ale raczej zrozumienie jego szerokiego spektrum i elastyczności.
Zastanawiając się nad wieloznacznością słowa „computing” swoje poszukiwania rozpoczęłam od słownika, który zdefiniował to słowo jako przetwarzanie danych, prowadzenie obliczeń, obliczenia a nawet sam proces stosowania komputera do obróbki danych. Już początkowe poszukiwania potwierdziły wieloznaczność tego słowa.
Pozostając w kontekście informatyki, przetwarzania danych a nawet sztucznej inteligencji natrafiłam na bardzo intrygującą kolokację „computing with words”. Podczas, gdy zwykłe obliczenia („computing”) skupiają się na liczbach i symbolach, „computing with words” inspiruje się ludzką zdolnością do wykonywania czynności bez żadnych obliczeń i pomiarów, wykorzystując zdolność do manipulacji percepcją. „Computing with words” stanowi podstawę racjonalnego podejmowania decyzji podczas występowania niepewności. Taki model mógłby mieć duże zastosowanie w rozwoju między innymi sztucznej inteligencji. Sytuacja, w której dostępne dane liczbowe nie są wystarczające lub nie zależy nam na precyzyjnych wynikach, a na związku z teraźniejszością może skłaniać do zastosowania takiego rozwiązania.
Przeczytanie dostępnych materiałów na temat rozwijającego się „computing with words” uświadomiło mnie, że zawężenie znaczenia słowa „computing” do operacji na liczbach byłoby błędne, ponieważ nie wiemy czy w przyszłości nie zostanie odkryty nowy sposób przetwarzania danych wcale nie związany z liczbami i informatyką, a samo „computing with words” będzie się rozwijało i może znaleźć zastosowanie w wielu dziedzinach również związanych z informatyką i uczeniem maszynowym. Moim zdaniem szerokość tego pojęcia jest jego zaletą i siłą. Termin ten bez względu na rozległość i kierunek zmian pozostanie aktualny.
Ostatnio zastanawiałem się nad związkiem między obliczeniami, a światem liczb. Wydaje się, że to, co kiedyś było zrozumiałe jako proste manipulacje matematyczne, ewoluowało na przestrzeni lat, stając się kluczowym elementem wielu dziedzin naukowych i technologicznych. Dzisiejsze computing w informatyce to coś znacznie bardziej złożonego i dynamicznego niż kiedyś. Mimo tego fundamentalne miejsce liczb w obliczeniach nadal pozostaje, choć często są one ukryte głęboko w strukturach danych i algorytmach.
Różne definicje computing, które zostały przywołane, podkreślają tę różnorodność. Uważam, że computing może być postrzegane jako wykonywanie algorytmów, jak mówi Copeland, jako proces epistemiczny związany z pozyskiwaniem wiedzy o stanie świata według Papayonnopoulosa, lub jako dyscyplina naukowa integrująca matematykę, inżynierię i programowanie według Primiero. Każde z tych ujęć podkreśla inne aspekty obliczeń, ale wspólnym mianownikiem jest wykorzystanie liczbowych (lub formalnie zdefiniowanych) reprezentacji.
Nie można zapomnieć o fundamentalnym znaczeniu liczb dla teorii obliczeń. W digital computing mamy do czynienia z liczbami binarnymi, które reprezentują dane i instrukcje, a analog computing operuje na wartościach ciągłych, przypominających własności liczb rzeczywistych, takie jak ciągłość. To różnorodne podejście do liczb podkreśla różnorodność metod i celów obliczeniowych, co jeszcze bardziej potwierdza, że liczby są integralną, choć nie jedyną, częścią procesu computing.
Interesujące jest, że computing rozciąga się również na obszary, które z pozoru mogą wydawać się odległe od matematyki, takie jak przetwarzanie tekstu, obrazów czy dźwięków. W tych przypadkach dane są przekształcane na liczbowe reprezentacje, co umożliwia ich przetwarzanie algorytmami liczbowymi. To pokazuje, jak nawet w dziedzinach niezwiązanych bezpośrednio z matematyką, liczby odgrywają kluczową rolę w procesach computing.
Podsumowując, relacja między obliczeniami a światem liczb jest nie tylko głęboka, ale i wielowymiarowa. Liczby są podstawowym narzędziem dla wielu aspektów computing, od teoretycznych modeli aż po praktyczne aplikacje. Jednak computing jako dziedzina naukowa i praktyczna działalność jest o wiele bardziej złożona i obejmuje szeroki zakres metod i celów. Rozwój technologii i nauk obliczeniowych pokazuje, że liczby mogą być stosowane w coraz to nowszych i innowacyjnych sposobach, co jest kluczowe dla dalszego postępu w informatyce i technologii.
Patrząc na stwierdzenia między innymi Pitagorejczyków. Platona czy Leibniza wydawałoby się, że wszystko dawałoby się sprowadzić do liczby, zatem „computing” i „obliczenia” przedstawiałyby koncepty ekwiwalentne. W takim postrzeganiu świata wszystkie znaczenia „computing” mogłyby zostać sprowadzone do ostatniej definicji Corey Maley.
Mimo tego słowo „calculate” i „compute” niosą różne znaczenia w języku angielskim – „calculate” (oraz „obliczanie”) zdecydowanie nie przekazuje wszystkich możliwych znaczeń słuchaczowi w porównaniu do słowa „compute”. Nawet ograniczając się do maszyn cyfrowych, gdzie wszystko jest de facto „kalkulowane”, słowo „calculate” jest traktowane jako pewien podzbiór działań, które opisywane są słowem „compute”. Nawet nazwy maszyn cyfrowych to odzwierciedlają – mówiąc „kalkulator” zazwyczaj myślimy o niewielkiej maszynie wyspecjalizowanej w wykonywaniy działań matematycznych, podczas gdy „komputer” jest zarezerwowany bardziej dla maszyn bardziej wyogólnionych. Więc nawet gdy myślimy o operacjach na liczbach, przeciętny słuchacz rozróżnia dane postrzegane jako liczby oraz dane które są tylko przechowywane i przetwarzane jako liczby, lecz reprezentują coś innego, na przykład obrazek albo tekst.
Sugerowałoby to zatem, że brakuje w języku polskim słowa analogicznego do „compute”, znajdującego się gdzieś między zdecydowanie zbyt ogólnym „przetwarzaniem” i matematycznie nastawionym „obliczaniem”. Z braku takiego słowa jednak „obliczanie” przerosło swoją etymologię i obecnie jest w polskim języku postrzegane niekoniecznie jako „liczenie”, lecz jako „przetwarzanie danych”, ale tylko w wybranych przypadkach. Gdy patrzymy jednak na inne typy maszyn, na przykład aparaty (cyfrowe) nikt jednak nie korzysta z „compute”, „calculate” ani „obliczania” mimo tego, że dokładnie to robi taki aparat, przeliczając odczyty z cyfrowego czujnika na zdjęcie zapisane w cyfrowym formacie. W praktyce wszystkie trzy słowa są ograniczone w użytku, głównie używane gdy przetwarzane są dane „abstrakcyjne”, a nie namacalne. Większość procesów/algorytmów otrzymała własne, wyspecjalizowane terminy, takie jak „renderowanie”, czy „autokorekta”, które wyparły „przetwarzanie” czy „obliczanie”.
Zgadzam się z przedmówcami, że termin „computing” w ostatnich latach mocno się zmienił i ma coraz więcej znaczeń. Kiedyś kojarzył się głównie z liczbami i operacjami matematycznymi, ale teraz wyraźnie widać, że chodzi o coś znacznie szerszego. W dzisiejszej informatyce, oprócz tradycyjnych obliczeń, mamy do czynienia z przetwarzaniem danych w bardzo różnych formach – tekstach, obrazach, dźwiękach, a nawet w sygnałach biologicznych. Co więcej, te dane nie muszą wcale być liczbami. Dlatego wydaje mi się, że tłumaczenie „computing” jako „obliczanie” w języku polskim może być trochę zbyt wąskie, bo nie oddaje całej różnorodności tego, co teraz oznacza „computing”.
Z moich doświadczeń wynika, że „computing” to dzisiaj nie tylko operacje matematyczne, ale przede wszystkim praca z danymi, które mogą mieć przeróżne formy. We współczesnej informatyce coraz bardziej liczy się przetwarzanie ogromnych ilości informacji, które często wcale nie mają związku z liczbami. Na przykład, sztuczna inteligencja i uczenie maszynowe zajmują się analizą tekstów czy obrazów – i choć komputery nadal gdzieś „pod spodem” operują na liczbach, to nie jest to już tak oczywiste, jak w klasycznych obliczeniach.
Z drugiej strony, ostatnio w kręgach związanych z przetwarzaniem danych na dużą skalę zauważyłam, że słowo „compute” zaczęło być używane w zupełnie nowym znaczeniu. W dużych korporacjach, takich jak Microsoft czy Amazon, „compute” nie oznacza już tylko „obliczania” czy „przetwarzania danych”, ale odnosi się do zasobów obliczeniowych, które można wykorzystać do różnych zadań. Dla mnie to ciekawe, bo widzę, jak szybko zmienia się język w odpowiedzi na rozwój technologii.
Przykładem tego jest Azure Databricks, gdzie „compute” oznacza po prostu dostęp do mocy obliczeniowej, którą można używać do różnych zadań, takich jak przetwarzanie danych, analizy strumieniowe czy projekty z uczenia maszynowego. Co więcej, użytkownicy mogą tworzyć nowe zasoby „compute” lub korzystać z już istniejących, co pozwala na elastyczne zarządzanie mocą obliczeniową. Takie „compute” obejmuje np. all-purpose compute, czyli zasoby wykorzystywane do analizowania danych w interaktywnych notatnikach.
Co ciekawe, pomimo popularności tego terminu w dużych firmach technologicznych, słowo „compute” w tym sensie wciąż nie zostało uwzględnione w popularnych słownikach, takich jak Britannica. Tam „compute” nadal jest przedstawiane wyłącznie jako czasownik związany z obliczaniem. Jednak już teraz widać, że to pojęcie szybko się zmienia i dostosowuje do nowych potrzeb.
Wieloznaczność „computing” wynika z jego interdyscyplinarnego charakteru oraz szerokiego spektrum zastosowań. Trudno jest sprowadzić ten termin do jednej definicji, ponieważ obejmuje on zarówno formalne operacje logiczne, jak i złożone procesy poznawcze, jak w „natural” czy „quantum computing”. Warto tu zauważyć specyfikę języka angielskiego, który cechuje się mniejszą precyzją leksykalną – często stosuje jedno pojęcie w różnych kontekstach. Język polski, z bogatszym zasobem terminów, umożliwia bardziej precyzyjne rozróżnianie zjawisk, co sprawia, że przekład terminów takich jak „computing” wymaga większej uwagi i doprecyzowania.
Matematyka, jako królowa nauk, nie istnieje bez liczb, dlatego też związek między obliczeniami a liczbami jest fundamentem matematycznej teorii obliczeń. W praktyce jednak „computing” wykracza poza klasyczne operacje arytmetyczne. Przykłady takie jak przetwarzanie obrazów czy uczenie maszynowe pokazują, że dane mogą być reprezentowane i przetwarzane w formie, która nie musi mieć bezpośredniego charakteru liczbowego, mimo że w końcowej analizie można je sprowadzić do formuł matematycznych. „Quantum computing”, operujący na kubitach, wyraźnie demonstruje, że obliczenia mogą przybierać formy daleko wykraczające poza standardowe pojęcia liczbowe.
Niestety redukcja „computing” do „obliczania” jako manipulacji liczbami wydaje się problematyczna i zbyt uproszczona. Choć liczby są fundamentalne dla formalizacji wielu procesów obliczeniowych, to ograniczenie tego terminu do takiej perspektywy zubaża jego znaczenie, które może obejmować zarówno reprezentacje numeryczne, jak i struktury danych o bardziej abstrakcyjnym charakterze. Jak w dzisiejszym świecie możemy zauważyć wiele współczesnych form „computing”, jak przetwarzanie języka naturalnego czy symulacje biologiczne, wymaga wyjścia poza tę redukcję, aby uchwycić złożoność problemów.
Podsumowując, wieloznaczność terminu „computing” wskazuje na ewolucję tej dyscypliny, która z narzędzia obliczeniowego przekształciła się w platformę do eksploracji i modelowania złożonych systemów. Może być to postrzegane jako odpowiedź na rosnące potrzeby poznawcze – zrozumienie zjawisk, które wykraczają poza prostą arytmetykę. Warto więc traktować tę wieloznaczność jako bogactwo, które pozwala dostosowywać metody obliczeniowe do coraz bardziej złożonych wyzwań współczesnej nauki.
Fascynujące, jak jeden termin wchłonął aż tyle znaczeń, od czysto matematycznych, przez inżynierskie, po filozoficzne. Właśnie ta wielość interpretacji odsłania, jak głęboko computing wniknął w różne dziedziny.
Jeśli przyjrzymy się computing jako „obliczaniu”, dostrzegamy jednoznaczność działań liczbowych — zgodnie z polskim tłumaczeniem. W rzeczywistości jednak niektóre formy computing (jak natural computing czy quantum computing) wymykają się tej liczbowej naturze, oscylując wokół zagadnień przetwarzania, interpretacji, czy nawet symulacji naturalnych procesów. W quantum computing, na przykład, klasyczne obliczanie zostaje całkowicie przekształcone, gdy obliczenia przestają być liniowe i deterministyczne.
Czy więc da się w ogóle uchwycić jedno spójne znaczenie tego terminu? Wydaje się, że „obliczanie” zbyt ogranicza jego zakres, szczególnie w dzisiejszej erze, gdzie computing oznacza nie tylko przekształcanie liczb, ale też przekształcanie informacji, modelowanie rzeczywistości i odkrywanie nowych form wiedzy. Być może w przyszłości będziemy potrzebować nowego słownika lub terminów opisujących różne aspekty computing, by móc bardziej precyzyjnie uchwycić to wieloaspektowe zjawisko.