Jump to content
rxvt

Prosty język programowania

Recommended Posts

Prosty i przyszłościowy, to Python. Jest jeszcze C#, który imo jest bardziej "przyszłościowy" od Javy. Zainteresuj się też Scalą - zasadniczo język funkcyjny, ale obiektowo też możesz programować. Scala dla odmiany będzie alternatywą dla Javy w przypadku Big Data, a cała ta dziedzina jest "przyszłościowa".

  • Upvote 1

Share this post


Link to post
Share on other sites

Prosty i przyszłościowy, to Python. Jest jeszcze C#, który imo jest bardziej "przyszłościowy" od Javy. Zainteresuj się też Scalą - zasadniczo język funkcyjny, ale obiektowo też możesz programować. Scala dla odmiany będzie alternatywą dla Javy w przypadku Big Data, a cała ta dziedzina jest "przyszłościowa".

Wybrałem Python, ponoć jest najłatwiejszy na start do tego mam system Linux. Co do Scala to podobno jest ona trudniejsza od Javy, przez to programowanie funkcyjne. Brałem też pod uwagę Swift, Kotlin, Go, Elixir i Rust są dość nowe i sporo prostsze od C/C++. Poza Pythonem to pisali mi, że Ruby, PHP i ES6 jeszcze łatwe. Ale wybór padł na Python w wersji 3.6.

Share this post


Link to post
Share on other sites

Na przykład wskaźniki, brak odśmiecania pamięci, przestarzała składnia, na siłę wprowadzona nieumiejętnie obiektowość do C. Dużo inny zagadnień które w innych językach programowania zostały zautomatyzowane.

Lol... Wskaźniki to relikt przeszłości (za wyjątkiem niskopoziomowych sterowników czy jądra systemu). Teraz zazwyczaj stosuje się wzorzec RAII - najpopularniejszy przykład to smart pointery - obiekty przechowują w sobie wskaźniki na zaalokowany blok pamięci i zwalniają go automatycznie jak już nie ma odwołań do niego. Rozwiązanie znacznie lepsze od garbage collectora (GC) - w javie to już w ogóle z nim jest porażka, bo funkcja, która powinna zwolnić nieużywaną pamięć tylko informuję GC, że powinien to zrobić ale wcale nie musi tego robić - niedeterministyczne zachowanie :/ Do tego nigdy nie wiesz kiedy taki GC postanowi się załączyć - najgorsze jak zrobi to podczas wymagających obliczeń... C# wydaje się lepszy od javy tyle, że wciąż są jakieś 'ale'. Po pierwsze Microsoft dopiero teraz doszedł do wniosku, że łaskawie udostępni środowisko C# na inne platformy - nazwali to Core i jak narazie jest to okrojona mocno wersja .NET. Nadal to język zarządzany :P

 

Javascript (JS) jest znowu najmniej wydajny i w sumie najmniej intuicyjny - np. jazdy w this. Po za tym lepiej już uczyć się Typescripta - rozszeżenie JS od M$.

 

Wracając do C++ jest to idealny język do uczenia się. Czemu? Bo pozwala w płynny sposób przejście pomiędzy metodykami programowania. Proceduralne -> obiektowe -> generyczne.

  • Upvote 2

Share this post


Link to post
Share on other sites

Może i masz rację, niektórzy programiści wychwalają tak te Jave, która nigdy mi nie pasowała. Krytykują nowy standard języka C++17, że jest nieczytelny i bardziej zagmatwany. Podoba mi się Kotlin i Swift, ale pod Linux to Swift odpada, do Kotlina jeszcze mało materiałów. Python jednak mi nie przypadł do gustu, jest mało bezpieczny, taki większy bash i mało w tym pracy. Jednak PHP 7 tak szybko nie wygryzie. Zastanowię się jeszcze nad C++11 mam kilka książek do niego. 

https://www.wykop.pl/link/3923997/zlosliwe-moduly-w-oficjalnym-repozytorium-pythona/

 

https://przemelek.blogspot.com/2017/03/java-javascript-python-c-c-co-ma.html

https://przemelek.blogspot.com/2010/01/java-javascript-python-c-c-co-ma.html

Share this post


Link to post
Share on other sites

PHP jest popularny bo... byl pierwszy. Teraz jest popyt na phpowcow, bo duzo softu na tym siedzi, jednak przyszlosc to javascript (albo typescript, ktory polecam) i apki internetowe (angular). Na backendzie mozesz tez w js pisac (node.js) albo znacznie wydajniej w samym c++ - u mnie w robocie juz kilka takich projektow robilismy ;) Java... jeju jak mnei smiesza jej zwolennicy ;) Ok, przecietniak napisze w niej lepszy kod nic w c++, jednak c++ pozwala samemu zoptymalizowac kod pod dana architekture. Samemu decydowac co i kiedy ma sie zdarzyc. Ok, czasami jest to trudne do ogarniecia, ale wyniki mowia same za siebie. A java to taki potworek w funkcjami (jak n. wymuszacz do czyszczenia GC), ktore wg. dokumentacji "moga zadzialac albo i nie". Python jest spoko do pisania jakis pomocniczych skryptow, choiaz najwieksza jego wada sa wciecia jako wyznacznik bloku o,O Chory pomysl. Ogolnie na andku java z czasem zostanie wyparta przez kotlina - google zaczyna to promowac coraz bardziej, takze java ostanie sie tylko w jakis korpo, ale i tam pewnie powoli beda ja ubijac tym bardziej ze coraz bardziej popularne sa chmury a tutaj... java muli i zzera znacznie wiecej zasobow niz c/c++.

 

Co do c++17 czy mniej czytelny? zamiast pisac:

 

namespace A

{

namespace B

{ ... }

}

 

mozna po prostu zrobic:

 

namespace A::B {...} 

 

Co wg. mnie jest znacznei czytelniejsze. Albo zamiast:

 

{ // chcemy aby obiekt tylko cos zrobil i jak najszybciej zwolnil pamiec

ObiektX x = getObjX();

if(x != nullptr) x.doSomething();

}

 

robimy tak:

if(Obiekt x = getObjX(); x!= nullptr) x.doSomething();

 

Krocej. Moze odrobine mniej czytelnie, ale za to ogarniamy wieksza ilosc kodu naraz. Po przyzwyczajeniu sie do skladni raczej nie bedzie to juz takie upierdliwe. A Ci co narzekaja to pewnie na auto tez narzekaja... ale kto normalny programuje w notatniku? Ide podpowiadaja co jest zwracane a:

 

auto t = map.insert({key, value});

lepiej wyglada niz:

 

std::map<std::string, std::shared_ptr<Network::Session>> it = _users.insert(std::map<std::string, Network::Session>::value("nick", make_shared<Network::Session>("nick", _socket, _ip, _data, (...)))

  • Upvote 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...




×
×
  • Create New...