Aktywne Wpisy
![JanDzbanPL](https://wykop.pl/cdn/c0834752/47611e730230c45177a38e81b3741536beb578235efde2fd8a2119a1c0bc033a,q60.png)
JanDzbanPL +443
Możesz być najlepiej zapowiadającym się piłkarzem świata, zarabiać kupę hajsu a i tak baba ciebie wystawi xD #logikarozowychpaskow #rozowepaski #fcbarcelona #gownowpis
![JanDzbanPL - Możesz być najlepiej zapowiadającym się piłkarzem świata, zarabiać kupę ...](https://wykop.pl/cdn/c3201142/ed80a498f118ab5239055f1d41e09a5ecc451d4fa4ad78b577d58dcfbad8d1c5,w150.jpg)
źródło: IMG-20240729-083725
Pobierz
polutek +82
pomyślicie a co ty na Ukrainie jesteś?
nie, jestem w polskim pociągu do Szczecina
#pkp #intercity #bekazniemogepowiedzieckogo
nie, jestem w polskim pociągu do Szczecina
#pkp #intercity #bekazniemogepowiedzieckogo
![polutek - pomyślicie a co ty na Ukrainie jesteś?
nie, jestem w polskim pociągu do Sz...](https://wykop.pl/cdn/c3201142/ed88f47155b51a5d8bd17b93252e9bccb65c8f7101f1b0045ff10b3e07ae4fe4,w150.jpg)
źródło: temp_file5872332818743737134
Pobierz
Po poprzednim krótkim zrównaniu wszystkich języków do wspólnego mianownika za co zapewne koledzy po fachu gotowi są mnie wyśmiać i spalić na stosie (stosie, hehe..) - pora powoli zmierzać w kierunku różnic.
To, co jest wokół języka - bo ten, jako prosty (bo logiczny…) zbiór reguł nie miałby sensu istnienia w próżni. Dlatego zwykle mowa o całym środowisku - od kompilator/interpreterów poprzez narzędzia na bibliotekach skończywszy.
Kod Pythona uruchamia się wprost z pliku źródłowego, podobnie PHP, a Jave trzeba wpierw skompilować. W praktyce to jedno polecenie więcej niż w Pythonie (który de facto przeprowadza wstępną kompilacje…). Z punktu widzenia “typowego” programisty - program się uruchamia taką czy inną metodą.
Inna, często spotykaną opcją przy aplikacjach webowych jest to, że program uruchamiany jest przez serwer - ale znowu - z punktu widzenia “typowego” programisty - dostarczasz serwerowi program w jakiejś formie. Czy trzeba go wcześniej skompilować, spakować, czy wrzucić po prostu pliki z kodem - kwestia, jak w większości, wtórna. Zwykle zautomatyzowana skryptem czy innym narzędziem. Ustawiana raz do końca projektu.
To, gdzie zaczyna się faktyczna różnica - to biblioteki.
Nieprzypadkowo języki z przepastnymi bibliotekami są najpopularniejsze:
- C/Cpp - historia - z początku alternatyw nie było wiele, przez lata powstały więc dobre, dopracowane, biblioteki i narzędzia - chyba nie odbiegnę wiele od prawdy pisząć, że jest tam po prostu wszystko.
- Java/C# - pieniądze. Od momentu premiery oba języki posiadały solidne zaplecze - zwyczajnie opłacone z pieniędzy korporacji które je tworzyły. To przyciągnęło społeczność która utworzyła kolejne wysokiej klasy narzędzia i biblioteki.
- Python - prostota, która pchnęła go w objęcia ludzi związanych z różnego rodzaju “nauką akademicką” zaowocowało rozwojem w kierunku mnóstwa pakietów do metod obliczeniowych, data mining, różnych problemów inżynieryjnych czy matematycznych.
Oczywiście, chyba każdy język ma jakąś formę wrapperów, przez co można korzystać w mniej lub bardziej prosty sposób z natywnych bibliotek wg. standardu C - acz z wielu względów które w obecnym profesjonalnym wytwarzaniu oprogramowania są istotne - nie jest to preferowana metoda.
Tutaj dochodzimy do tematu częstych wojen i wojenek - który język jest lepszy - a odpowiedź jest oczywiście jedna - ZALEŻY DO CZEGO!
Ja wychodzę z założenia, że tak naprawdę o zastosowaniu języka stanową jego biblioteki. I tak, mając do rozwiązania problem obliczeniowy, matematyczny czy inżynierski skłonie się w kierunku Pythona - praca z pynum to przyjemność. Nie wyobrażam sobie za to tworzenia klienta WebService w Pythonie - gdyż zdecydowanie lepiej rozwiązane jest to w Javie (generalnie generuje się “samo”). Nie wyobrażam sobie też pisania poważnej gry w C# które to za mnie zadecyduje o dokładnym czasie zwolnienia pamięci (ja wiem, wiem - Unity - ale Unity nakłada spore ograniczenia na ichnią wersje C#) - tutaj świat nie bez przyczyny żyje w C/Cpp.Z trzeciej czy czwartej strony - do prostego bloga pewnie wziąłbym PHP z WordPressem zamiast odpalać IISa czy nie daj boże WebSphere. Poważna aplikacja “bankowa” czy obsługa płatności bez wielostopniowych transakcji z serwerów aplikacyjnych Javy nie brzmi przyjemnie.
Podczas moich przygód z Unity problemem nie jest dla mnie język - problemem jest zrozumienie jak działa wszystko wokoło, jak działa Unity (czyli biblioteka). Dopisanie pluginu do WordPressa nie wywołuje u mnie mdłości ze względu na PHP (bo w PHP nie ma nic odkrywczego…) - ale ze względu na bibliotekę w postaci WordPressa).
Należy zapytać - czy zatem biblioteki, tak jak języki czy środowiska - nie są po prostu zbiorem paru koncepcji, bo i tak w gruncie rzeczy sprowadzają się do tego samego - tj. kodu wykonywanego przez procesor?
Odpowiedź, moim zdaniem, nie jest tutaj tak jednoznaczna - w przypadku języków czy narzędzi - chodzi o uproszczenie, uabstrakcyjnienie owego “kodu maszynowego”. Biblioteki i frameworki - to z kolei kolejny, jeszcze wyższy poziom abstrakcji. Celem ich istnienia nie jest udawanie komputera, a realizacja mniej lub bardziej wymyślnych paradygmatów. Jasne, mnóstwo elementów się powtarza czy jest wspólnych - wzorce projektowe nie są tylko akademicką teorią - jednak, przynajmniej dla mnie, mnogość i różnorodność ma tutaj zdecydowanie mniej zastosowanie - i dopiero tutaj zaczyna się prawdziwa “nauka programowania”
#abstrakcjaprogramowania !
W kolejnej czesci odpowiemy sobie na pytanie - co jest najwiekszym problemem wspolczesnego programowania, czy raczej "wytwarzania oprogramowania" - i co robi sie, w celu rozwiazania tego "problemu"!