Przyszłościowy język programowania dla studenta

0

Witam,
jaki język programowania polecacie studentowi ? Umiem programować w C++ i PHP ale słyszę coraz więcej głosów że te języki są martwe/wymierające. Na studiach uczą nas pythona który (podobno) wypiera C++ może to dobry kierunek rozwoju. Co o tym sądzicie?

1

C i C++ jest wykorzystywane do gier i embedded, a php wiadomo jest dość powszechny i raczej nie zniknie z rynku.

4

To prawda, Python wypiera C++, ale głównie w szkołach i na listach top n.
Python polecam się nauczyć, bo można wiele rzeczy w nim zrobić i może być bardzo poręczny w przyszłości.
Jak będziesz chciał go przyspieszyć, sięgnij po akceleratory (PyPy, Numba) lub napisz własne moduły (np. w C/C++).

10

Mówienie, że Python wypiera C++ to jak mówić, że Solarisy wypierają Porsche 911.
Na pierwszy język Python jest zarąbisty.
Jak się już nauczysz programować, to pewnym czasie nauczanie się nowego języka to około 2 tygodnie, więc wybór języka nie jest krytyczny.
A warto poznać kilka języków, bo jest to bardzo pouczające.

2

Nie ma znaczenia !!!
W swojej karierze prawdopodobnie nauczysz się 50 języków.
Najtrudniej nauczyć się myśleć i rozwiązywać problemy. Składnia języka to pikuś.

C++ jest trudny, ale gdy się go nauczysz mało niespodzianek spotka Cię w innych językach.
C++ łączy programowanie niskopoziomowe w C z programowaniem obiektowym i funkcyjnym.
Zwiększa to próg wejścia, ale pozwala dobrze poznać różne paradygmaty.

2

Różne języki są przyszłościowe w różnych zastosowaniach.
W machine learning przyszłościowy wydaje się być Python,
w programowaniu niskopoziomowym przyszłościowy jest C/C++ i Rust,
w programowaniu aplikacji mobilnych przyszłościowy jest Dart (Flutter) oraz Kotlin i Swift (native),
w programowaniu stron i aplikacji webowych przyszłościowy wydaje się być JS/TS (Node) może jeszcze Go,
w programowaniu enterprise przyszłościowe są Java/C#.

Python może być poza tym przydatny przy tworzeniu prototypów, skryptów narzędziowych, małych i średnich aplikacji webowych. PHP rzeczywiście przechodzi powoli do lamusa, oczywiście pracy wciąż będzie w tym dużo, bo ktoś musi utrzymywać te miliardy g**no-stronek wizytówek, sklepów i aplikacji.

0

Na studiach uczą nas pythona który (podobno) wypiera C++ może to dobry kierunek rozwoju.

Dziwne. Nie słyszałem jeszcze takiej opinii. W sensie, że Python jest fajny, ale ma zupełnie inne zastosowania niż C++ (już prędzej zrozumiałbym C++ => Java albo C++ => C# albo coś podobnego).

Umiem programować w C++ i PHP ale słyszę coraz więcej głosów że te języki są martwe/wymierające.

Proces wymierania języka programowania to pewnie jakieś kilkadziesiąt lat, więc się nie przejmuj.

Takie PHP nie zniknie tak szybko, choćby dlatego, że masę stron jest na Wordpressie, nie mówiąc już o innych stronach pisanych w PHP, które też trzeba będzie utrzymywać.

2

Takie PHP nie zniknie tak szybko, choćby dlatego, że masę stron jest na Wordpressie, nie mówiąc już o innych stronach pisanych w PHP, które też trzeba będzie utrzymywać.

Zależy jak długowieczne są te strony w PHP. COBOL żyje nadal, bo aplikacje napisane w COBOLu nadal przynoszą duży zysk bądź są niezbędne, a przepisywanie ich do innych języków jest karkołomne z racji ich dużego rozmiaru. Zrobienie strony wizytówki od nowa raczej nie jest karkołomnym przedsięwzięciem, więc ten argument o utrzymywaniu jest słaby :] Lepszym argumentem byłoby np to, że Wordpress to duży kombajn z masą dodatków, dużą społecznością programistów itd Dodatkowo hosting PHP jest tani. Summa summarum skoro w PHP da się postawić szybko i tanio gotowca to po co kombinować z czymś innym? Gdyby ktoś Wordpressa i inne gotowce przepisał do Pythona to wtedy Python mógłby podgryzać szybko PHPca.

PS: w PHP nie mam rozeznania, więc mogłem rozminąć się z prawdą :P

2
nie100sowny napisał(a):

C++ jest trudny, ale gdy się go nauczysz mało niespodzianek spotka Cię w innych językach.

Nie zgadzam się z drugą częścią twierdzenia. Jeszcze w C++03 można było się z tym zgodzić, ale patrząc na ostatnie trendy, którymi kieruje się społeczność to przestaje to być prawdą. Lata temu próbowano w C++ programować obiektowo, tak jak w innych językach, chcąc udowodnić że C++ wcale nie jest gorszy. Teraz większość najpopularniejszych obiektowych wzorców jest uznawane za antywzorce w C++. Społeczność tworzy własne idiomy/semantyki unikalne dla C++, które lepiej pasują do jego charakterystyki a których nie widzi się wcale, lub prawie wcale w innych technologiach. Dlatego uważam, że nie powinno się już powtarzać, że ucząc się C++ ułatwiamy sobie naukę innych języków.

0
MarekR22 napisał(a):

Mówienie, że Python wypiera C++ to jak mówić, że Solarisy wypierają Porsche 911.
Na pierwszy język Python jest zarąbisty.
Jak się już nauczysz programować, to pewnym czasie nauczanie się nowego języka to około 2 tygodnie, więc wybór języka nie jest krytyczny.
A warto poznać kilka języków, bo jest to bardzo pouczające.

No nie wiem, ostatnio trochę się ruszałem różne języki i jestem mocno sceptyczny co do tej tezy o 2 tygodniach. Pewnie to zależy od tego co kto rozumie przez 'umieć', ale tak czy inaczej po 2 tygodniach programowania w Scali nadal czułem się słaby, po 2 tygodniach Rusta też jest słabo. Nie wiem, dwa tygodnie to może jakieś przejście Java -> C# ale i to też wątpię bo JVM to zgoła trochę inna maszyna niż CLR.
Może jak ktoś już zna cały przekrój i z jakiegoś powodu uczy się kolejnego takiego samego języka to się to może i sprawdza, nie wiem Java -> Kotlin?

0

Jeżeli mają być wydajne gry to ucz się C++17, tu nie ma konkurencji, sam piszę w zespolę małą gierkę na PS4 w C++17. Co do PHP to jedyna jego przewaga nad innymi językami jest taka, że ma stworzony interpreter, dzięki któremu można w nim pisać backend bez frameworka. Python jak i Ruby, może być wykorzystywany do lekkiego backendu i mniejszych stronek. Chociaż PHP i Node nie ustąpi mu miejsca. Tu jest za duża konkurencja PHP, JS, RoR, Django, Elixir/Phoenix, Crystal, Go...

0

Zależy co rozumiesz przez przyszłościowy:
Jeżeli chcesz iść w stronę stronek to na pewno must have: html/css/js. Z tym że musisz ogarnąć do tego jakiś framwork, który zapewne umrze:
ember lub vue lub angular lub react. Za 2-3 lata będzie pewnie kolejny nowy modny framework oparty na JS.
Jeżeli chcesz iść w stronę backendu to Java, C# na pewno będą jeszcze rządziły kilkanaście lat. Jest jeszcze RoR i PHP ale ciężko stwierdzić, co z nimi będzie.

W stronę bardziej nowoczesnych to na pewno Scala, Rust, Go.

Python też ma swoją przyszłość. ale raczej nie jako webówka typu Django, tylko uczenie maszynowe/AI itd.

No i oczywiście z niskopoziomowych to C też raczej nie umrze.

0

@albundy: Masz rację Python już pokazał, że Django nie zdominuje rynku PHP, Node czy nawet RoR.

2
Nadziany Ogórek napisał(a):

Masz rację Python już pokazał, że Django nie zdominuje rynku PHP, Node czy nawet RoR.

Python i Django trafiły na taki dziwny moment w historii, gdzie było mnóstwo tanich hostingów PHP, a hostingi Pythona były słabo dostępne i dużo droższe. Stąd Python + Django nie przebiły się do programistycznego mainstreamu. Obecnie czasy znacząco się zmieniły i teraz dużo bardziej popularne jest stawianie aplikacji w chmurze np. AWS, Heroku, Azure i tam już nie ma dużego znaczenia czy piszesz to w PHP, Node, Python, Ruby czy Go. Wiele firm stawia apki nadal w PHP ale tylko ze względu na fakt, że to potrafią i w tym się od lat specjalizują, a nie dlatego, że to jest lepsze.

0

JVM:
Polecam zacząć od Javy, później douczyć się Grooviego/Kotlina. Gdy umie się Jave to Kotlin jest bardzo prosty, może być tak że Java jako język będzie słabnąć, ale samej maszynie wirtualnej nic nie grozi (na 99% jestem pewien). Groovy tez jest bardzo prosty i przydaje się do pisania jakiś skryptów, testów, taki język "pomocniczy"

0

technologie wybiera sie pod projekt. zastanow sie czym chcialbys sie zajmowac i zorientuj sie w technologiach ktore sa uzywane

0

scibi92 przecież Kotlin ma dużo więcej funkcji niż Java, z czego ta jego prostota wynika, że jest mieszanka Pythona i Javy z jakimiś dziwnymi typami po prawej stronie? Do tego Swift skopiował wszystko od Kotlina i już jest jakiś amajzing? Ktoś kto się uczy od podstaw języka nie wybierze Kotlina na pierwszy język programowania czy nawet Scali. Więc polecanie JVM na start jest trochę dziwne. Zwłaszcza, że najlepsi autorzy książek o Javie Schild, Hartmann tłumaczą jasno i przejrzyście, że Java nie jest językiem do nauki programowania od podstaw, jej celem jest ułatwienie programowania zawodowym programistom.

0

z jakimiś dziwnymi typami po prawej stronie?

Niektóre języki mają po lewej, niektóre po prawej. Gdyby nie to, że Java miała być podobna do C++ ze względów marketingowych to prawdopodobnie miałaby typy z prawej, a co za tym idzie C# też by to skopiował (jak prawie całą Javę na początku) i inne języki podobnie. Rust, Go, Crystal, Scala, itd mają typy po prawej.

tłumaczą jasno i przejrzyście, że Java nie jest językiem do nauki programowania od podstaw, jej celem jest ułatwienie programowania zawodowym programistom.

Zacytuj te jasne i przejrzyste tłumaczenia.

1

Java przyszłościowa?

Dlaczego nowi mieliby wybrać głupszego brata C# w erze .NET Cora? a jeżeli tak bardzo lubią JVMa, to są inne języki JVMowe, na które z czasem bardziej doświadczeni Javowcy przechodzą :D

0

Dla mnie przyszłościowym jest Swift i Crystal, powstały w 2014 roku i mają najnowocześniejsze rozwiązania techniczne.

1

Dla mnie przyszłościowym jest Swift i Crystal, powstały w 2014 roku i mają najnowocześniejsze rozwiązania techniczne.

Crystal. On się pojawiał chyba w zagadkach "Jaki to język". Tylko tam się z nim spotkałem.

5

C++ się nie ucz, bo najpewniej zaczniesz od źródeł, które Ci przez cały rozdział będą tłumaczyć alokowanie pamięci przez new i delete, albo że łańcuchy to const char*, przez co się zniechęcisz. Lepiej chyba od czystego C zacząć - jeżeli już.
Python daje chyba najlepszy stosunek nieuczenia złych praktyk do trudności języka.

0
WeiXiao napisał(a):

Java przyszłościowa?

Dlaczego nowi mieliby wybrać głupszego brata C# w erze .NET Cora? a jeżeli tak bardzo lubią JVMa, to są inne języki JVMowe, na które z czasem bardziej doświadczeni Javowcy przechodzą :D

Hahahaha dobre

  1. Java króluje jako język na backendzie pod względem popularności
  2. Poznajesz ekosystem np. JVM, narzędzia do budowania, IDE i frameworki
    3)a później Kotlin Groovy czy Scala. Znając Javke będzie prosto

EDIT:
@WeiXiao żeby wyjaśnić o co mi chodziło - trudno jest brać się za Scale czy Grooviego nie znając Javy. Java to dla mnie na ten moment entry point do świata JVM

0

c++ żeby zrozumieć
python żeby robić

najlepsze połączenie

0

Ta Python żeby robić gry, zwłaszcza te wydajne na PC, Konsolach, dobry żart. Tylko C++, nawet Rust się obecnie do gier nie nadaje.

0
Mistrzowski Lis napisał(a):

Ta Python żeby robić gry, zwłaszcza te wydajne na PC, Konsolach, dobry żart. Tylko C++, nawet Rust się obecnie do gier nie nadaje.

A kto tu mówi o robieniu gier w Pythonie.

0

Do anonima odpisałem, C++ jest bardziej użyteczny. Jak chcesz zarobić na programie typu gra, to nie możesz programować w skryptowym języku, ponieważ nie tylko jest wolniejszy ale widać jego kod źródłowy. Zarobkowych aplikacji na desktop typu antywirus, odtwarzacz video, audio, photoshop nie stworzysz w Pythonie, Javie, JavaScript. Niby można je potraktować obfuscatorem ale i tak łatwo je zdekompilować, co innego w C/C++.

1
Mistrzowski Kot napisał(a):

Do anonima odpisałem, C++ jest bardziej użyteczny. Jak chcesz zarobić na programie typu gra, to nie możesz programować w skryptowym języku, ponieważ nie tylko jest wolniejszy ale widać jego kod źródłowy. Zarobkowych aplikacji na desktop typu antywirus, odtwarzacz video, audio, photoshop nie stworzysz w Pythonie, Javie, JavaScript. Niby można je potraktować obfuscatorem ale i tak łatwo je zdekompilować, co innego w C/C++.

Co złego w tym, że kod photoshopa / odtwarzacza byłby open source? serio pytam

0

Patryk27 chyba ty teraz brednie napisałeś, zarób sobie na desktopowym programie w Pythonie, no powodzenia życzę. To po prostu idiotyzm, co innego program Open Source, gdzie twórcą o to chodzi, aby widać kod źródłowy. Pisze mi brednie, a nie wyjaśni dlaczego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1